-
Posts
137 -
Joined
-
Last visited
-
Days Won
9 -
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by Rideas
-
-
23 minutes ago, BekirAkdemir27 said:
-> : https://metin2.download/picture/JbZ5l2gqC2M2jKM75wk4U80gc8LwB1n4/.jpg sanma ki sen söyledin de ben yaptım, şaka şaka ben yaptım (naber lan oç rideas packetcisi anan zaa)
xd
-
On 11.07.2015 16:43:49, WhiteEagle said:
I Need This System Please Help Me
All Packets :
// game
char_battle.cpp : void CHARACTER::SendDamagePacket(LPCHARACTER pAttacker, int Damage, BYTE DamageFlag)
char_battle.cpp : bool CHARACTER::Damage(LPCHARACTER pAttacker, int dam, EDamageType type)
packet.h : typedef struct packet_damage_info
// client
packet.h : typedef struct packet_damage_info
PythonNetworkStreamPhaseGame.cpp : bool CPythonNetworkStream::RecvDamageInfoPacket()
InstanceBaseEffect.cpp : void CInstanceBase::AddDamageEffect(DWORD damage,BYTE flag,BOOL bSelf,BOOL bTarget)
InstanceBaseEffect.cpp : void CInstanceBase::ProcessDamage()
Thanks.
:D
- 1
-
-
On 11.11.2015 21:33:40, ReFresh said:
I don't need create tutorial, if it's simple.
:D
-
It's simple, but thanks.
No problem
- 1
-
Hi, i make sash system but i have little problem with compilation. My error:
char.cpp:1625: error: 'POINT_PRESTIGE_LEVEL' was not declared in this scope char.cpp:1625: error: 'GetPrestigeLevel' was not declared in this scope
My char.cpp
http://pastebin.com/ZwbTzdrz
Can you help me?
char.cpp line 1625 delete.
They will work sashes if I delete it?
Yes.
- 1
-
Hi, i make sash system but i have little problem with compilation. My error:
char.cpp:1625: error: 'POINT_PRESTIGE_LEVEL' was not declared in this scope char.cpp:1625: error: 'GetPrestigeLevel' was not declared in this scope
My char.cpp
http://pastebin.com/ZwbTzdrz
Can you help me?
char.cpp line 1625 delete.
-
i try with classic tutorial from google:if(iLv <= 90)
PointChange(POINT_STAT, ((MINMAX(1, iLv, 90) - 1) * 3) + GetPoint(POINT_LEVEL_STEP) - GetPoint(POINT_STAT));
else
PointChange(POINT_STAT, 270 - GetPoint(POINT_STAT));
ComputePoints();But i belive i don`t have function "if(iLv"
Sorry for my english.
open char.cpp
Search:
if (GetLevel() < 91) PointChange(POINT_STAT, 1);
change:
if (GetLevel() < 99) PointChange(POINT_STAT, 1);
Search:
if(iLv <= 91) PointChange(POINT_STAT, ((MINMAX(1, iLv, 91) - 1) * 3) + GetPoint(POINT_LEVEL_STEP) - GetPoint(POINT_STAT)); else PointChange(POINT_STAT, 91*3 - GetPoint(POINT_STAT));
change:
if(iLv <= 99) PointChange(POINT_STAT, ((MINMAX(1, iLv, 99) - 1) * 3) + GetPoint(POINT_LEVEL_STEP) - GetPoint(POINT_STAT)); else PointChange(POINT_STAT, 99*3 - GetPoint(POINT_STAT));
:D
-
i try with classic tutorial from google:if(iLv <= 90)
PointChange(POINT_STAT, ((MINMAX(1, iLv, 90) - 1) * 3) + GetPoint(POINT_LEVEL_STEP) - GetPoint(POINT_STAT));
else
PointChange(POINT_STAT, 270 - GetPoint(POINT_STAT));
ComputePoints();But i belive i don`t have function "if(iLv"
Sorry for my english.
open char.cpp
Search:
if (GetLevel() < 91) PointChange(POINT_STAT, 1);
change:
if (GetLevel() < 99) PointChange(POINT_STAT, 1);
Search:
if(iLv <= 91) PointChange(POINT_STAT, ((MINMAX(1, iLv, 91) - 1) * 3) + GetPoint(POINT_LEVEL_STEP) - GetPoint(POINT_STAT)); else PointChange(POINT_STAT, 91*3 - GetPoint(POINT_STAT));
change:
if(iLv <= 99) PointChange(POINT_STAT, ((MINMAX(1, iLv, 99) - 1) * 3) + GetPoint(POINT_LEVEL_STEP) - GetPoint(POINT_STAT)); else PointChange(POINT_STAT, 99*3 - GetPoint(POINT_STAT));
-
Thank you! Nice
Can you say me the music Name in the Video ?
not my video
-
İs bug : https://www.youtube.com/watch?v=ZmgEDKdDono&feature=youtu.b
Fix :
open char_item.cpp
Search:
bool CHARACTER::EquipItem(LPITEM item, int iCandidateCell) {
Add:
if (ITEM_BELT == item->GetType() && CBeltInventoryHelper::IsExistItemInBeltInventory(this)) { ChatPacket(CHAT_TYPE_INFO, "Empty your belt inventory !"); return false; }
- 4
-
try this
... if (item->GetType() == ITEM_COSTUME && item->GetSubType() >= COSTUME_BELL && item->GetSubType() <= COSTUME_TWO_HANDED) { LPITEM lpWeapon = GetWear(WEAR_WEAPON); if (lpWeapon == NULL) return false; ...
I've already fixed it. I pasted the code on wrong place.
Can you add me please in Skype? (mravenue.epvp) I've got a question
Another problem fix
bool CHARACTER::UnequipItem(LPITEM item) { [...] if (item->GetType() == ITEM_WEAPON) { if (GetWear(WEAR_COSTUME_WEAPON)) { ChatPacket(CHAT_TYPE_INFO, "Remove the first costume weapons"); return false; } } }
- 1
-
def __SendChatPacket(self, text, type):
name = player.GetName()
if net.IsChatInsultIn(text):
chat.AppendChat(chat.CHAT_TYPE_INFO, locale.CHAT_INSULT_STRING)
return
else:
text = "|Hmsg:" + name + "|h""[PM]""|h|r " + text
net.SendChatPacket(text, type)That is my def of chat. When i say something e say this line :
text = "|Hmsg:" + name + "|h""[PM]""|h|r " + text
How can i say that only in ChatPacket, GuildChatPacket and ShoutChatPacket
Please?
Found it:
def __SendChatPacket(self, text, type):
name = player.GetName()
if net.IsChatInsultIn(text):
chat.AppendChat(chat.CHAT_TYPE_INFO, locale.CHAT_INSULT_STRING)
return
else:
if type == chat.CHAT_TYPE_SHOUT or type == chat.CHAT_TYPE_GUILD or type == chat.CHAT_TYPE_PARTY:
text = "|Hmsg:" + name + "|h""[PM]""|h|r " + text
net.SendChatPacket(text, type)
else:
net.SendChatPacket(text, type)Close it please.
texts = "|Hmsg:" + name + "|h"+"[PM]"+"|h|r " + text
net.SendChatPacket(texts, type) -
-
On 10/8/2015 at 10:16 PM, Ken.Kaneki said:
Good effects
- 2
-
Will try and post if it helps
Hello
I'm having problems with some of the itmes i put in the shop. When I change their price in navi to something they don't get saved and
in-game they are just 0 yang and when i try to buy it says i dont have enough yang.
Anyone know the solution for this? That would be greatly appreciated!
Have a nice day:)
open game/shop.cpp
Search:
if (r_item.price <= 0)
change:
if (r_item.price < 0)
And where exactly is this folder?
Sorry if it's a stupid question I'm a beginner
Kraziy.tgz game/src/
-
Hi,
I'm working on it when I have free time for coding, and yes, I will release my version, I'm trying to make Official copy in this case also.
I do not publish it, while it is not working properly.Oke i will whait good luck
https://www.youtube.com/watch?v=3OxO20DVxpc&feature=youtu.be
can you share the systems with us?
No, for myself
-
Hello
I'm having problems with some of the itmes i put in the shop. When I change their price in navi to something they don't get saved and
in-game they are just 0 yang and when i try to buy it says i dont have enough yang.
Anyone know the solution for this? That would be greatly appreciated!
Have a nice day:)
open game/shop.cpp
Search:
if (r_item.price <= 0)
change:
if (r_item.price < 0)
- 2
-
Hi,
I'm working on it when I have free time for coding, and yes, I will release my version, I'm trying to make Official copy in this case also.
I do not publish it, while it is not working properly.Oke i will whait good luck
https://www.youtube.com/watch?v=3OxO20DVxpc&feature=youtu.be
:P -
Here works right, thank you ...
Np bro
-
Thanks men
http://www.mpcforum.pl/topic/1443548-transfer-bonusów-kostiumów/
It isn't your code in cpp, I published it 2 months ago on polish forum. I'm so disappointed, I thought that only in Poland people steal everything what they can. You made little changes in code, but it's still looks too similar to my code.
I did not say you belong to me
- 1
-
open game/char.h
Add:
void CostumeBonusTransfer(DWORD cell1, DWORD cell2);
open game/char.cpp
Add:
void CHARACTER::CostumeBonusTransfer(DWORD cell1, DWORD cell2) { int CostumeTransferBonusItemVnum = 76025; // costume bonus transfer item vnum if ((GetExchange() || IsOpenSafebox() || GetShopOwner()) || IsCubeOpen() || IsDead()) { ChatPacket(CHAT_TYPE_INFO, "Alisveris durumunda kostum bonusu aktarilamaz !"); return; } LPITEM costume1 = GetInventoryItem(cell1); LPITEM costume2 = GetInventoryItem(cell2); if (!costume1){ ChatPacket(CHAT_TYPE_INFO, "Kostum bulunamadi hata !"); return; } if (costume1->GetType() != ITEM_COSTUME || costume1->GetType() == ITEM_COSTUME && costume1->GetSubType() != ARMOR_BODY) { ChatPacket(CHAT_TYPE_INFO, "Bu islem sadece zirh kostumune yapilabilir!"); return; } if (!costume2){ ChatPacket(CHAT_TYPE_INFO, "Kostum bulunamadi hata!"); return; } if (costume2->GetType() != ITEM_COSTUME || costume2->GetType() == ITEM_COSTUME && costume2->GetSubType() != ARMOR_BODY) { ChatPacket(CHAT_TYPE_INFO, "Sadece kostumun bonusu aktarilabilir !"); return; } if (CountSpecifyItem(CostumeTransferBonusItemVnum) < 1){ ChatPacket(CHAT_TYPE_INFO, "Bonus transfer esyasi bulunamadi"); return; } if (costume2->GetAttributeCount() < 1){ ChatPacket(CHAT_TYPE_INFO, "Bonusu olmayan bir kostumun efsunu aktarilamaz!"); return; } RemoveSpecifyItem(CostumeTransferBonusItemVnum, 1); costume1->ClearAttribute(); for (int i = 0; i < costume2->GetAttributeCount(); i++){ costume1->SetForceAttribute(i, costume2->GetAttributeType(i), costume2->GetAttributeValue(i)); } costume2->RemoveFromCharacter(); ChatPacket(CHAT_TYPE_INFO, "Kostum bonus aktarimi basarili"); }
open cmd.cpp:
Search:
ACMD(do_block_chat);
Add:
ACMD(do_costume_bonus_transfer);
open cmd_gm.cpp
Search:
ACMD(do_block_chat) { // GM이 아니거나 block_chat_privilege가 없는 사람은 명령어 사용 불가 if (ch && (ch->GetGMLevel() < GM_HIGH_WIZARD && ch->GetQuestFlag("chat_privilege.block") <= 0)) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("그런 명령어는 없습니다")); return; } char arg1[256]; argument = one_argument(argument, arg1, sizeof(arg1)); if (!*arg1) { if (ch) ch->ChatPacket(CHAT_TYPE_INFO, "Usage: block_chat <name> <time> (0 to off)"); return; } const char* name = arg1; long lBlockDuration = parse_time_str(argument); if (lBlockDuration < 0) { if (ch) { ch->ChatPacket(CHAT_TYPE_INFO, "잘못된 형식의 시간입니다. h, m, s를 붙여서 지정해 주십시오."); ch->ChatPacket(CHAT_TYPE_INFO, "예) 10s, 10m, 1m 30s"); } return; } sys_log(0, "BLOCK CHAT %s %d", name, lBlockDuration); LPCHARACTER tch = CHARACTER_MANAGER::instance().FindPC(name); if (!tch) { CCI * pkCCI = P2P_MANAGER::instance().Find(name); if (pkCCI) { TPacketGGBlockChat p; p.bHeader = HEADER_GG_BLOCK_CHAT; strlcpy(p.szName, name, sizeof(p.szName)); p.lBlockDuration = lBlockDuration; P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGBlockChat)); } else { TPacketBlockChat p; strlcpy(p.szName, name, sizeof(p.szName)); p.lDuration = lBlockDuration; db_clientdesc->DBPacket(HEADER_GD_BLOCK_CHAT, ch ? ch->GetDesc()->GetHandle() : 0, &p, sizeof(p)); } if (ch) ch->ChatPacket(CHAT_TYPE_INFO, "Chat block requested."); return; } if (tch && ch != tch) tch->AddAffect(AFFECT_BLOCK_CHAT, POINT_NONE, 0, AFF_NONE, lBlockDuration, 0, true); }
Add:
ACMD(do_costume_bonus_transfer) { char arg1[256], arg2[256]; DWORD cell1, cell2; two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2)); if (!*arg1 || !*arg2) return; str_to_number(cell1, arg1); str_to_number(cell2, arg2); if (cell1 < 0 || cell1 > INVENTORY_MAX_NUM || cell2 < 0 || cell2 > INVENTORY_MAX_NUM || cell1 == cell2) return; ch->CostumeBonusTransfer(cell1, cell2); }
open root
create uibonustransfer.py
add:
import ui import player import event import uiToolTip import exception import item import uiCommon import mouseModule import chat import net class BonusTransfer(ui.ScriptWindow): def __init__(self): ui.ScriptWindow.__init__(self) self.buttons, self.grids, self.costumes = {}, {}, {300 : {},303 : {},} self.__Load() self.tooltipItem = uiToolTip.ItemToolTip() self.tooltipItem.Hide() def __del__(self): ui.ScriptWindow.__del__(self) self.Close() def __Load_LoadScript(self, fileName): try: pyScriptLoader = ui.PythonScriptLoader() pyScriptLoader.LoadScriptFile(self, fileName) except: import exception exception.Abort("BonusTransfer.__Load_LoadScript") def __Load_BindObject(self): try: self.titleBar = self.GetChild("TitleBar") self.grids[300] = self.GetChild("Costume1") self.grids[303] = self.GetChild("Costume2") self.grids[2] = self.GetChild("Costume3") self.grids[3] = self.GetChild("Item") self.buttons[0] = self.GetChild("Button1") self.buttons[1] = self.GetChild("Button2") except: import exception exception.Abort("BonusTransfer.__Load_BindObject") self.titleBar.SetCloseEvent(ui.__mem_func__(self.Close)) self.grids[300].SetOverInItemEvent(ui.__mem_func__(self.OverInItem)) self.grids[300].SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) self.grids[300].SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot)) self.grids[300].SetUnselectItemSlotEvent(ui.__mem_func__(self.UnselectItemSlot)) self.grids[303].SetOverInItemEvent(ui.__mem_func__(self.OverInItem)) self.grids[303].SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) self.grids[303].SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot)) self.grids[303].SetUnselectItemSlotEvent(ui.__mem_func__(self.UnselectItemSlot)) self.grids[2].SetOverInItemEvent(ui.__mem_func__(self.OverInItem)) self.grids[2].SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) self.grids[3].SetOverInItemEvent(ui.__mem_func__(self.OverInItem)) self.grids[3].SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) self.grids[3].SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot)) self.grids[3].SetUnselectItemSlotEvent(ui.__mem_func__(self.UnselectItemSlot)) self.buttons[0].SetEvent(self.TransferDialog) self.buttons[1].SetEvent(self.Close) def __Load(self): self.__Load_LoadScript("uiscript/bonustransfer.py") self.__Load_BindObject() def OnPressEscapeKey(self): self.Close() return TRUE def Shows(self): ui.ScriptWindow.Show(self) def Close(self): self.Hide() return TRUE def TransferDialog(self): self.ConfirmEkran = uiCommon.QuestionDialog() self.ConfirmEkran.SetText("Kostüm bonusu aktarılsın mı ?") self.ConfirmEkran.SetAcceptEvent(self.Transfer) self.ConfirmEkran.SetCancelEvent(self.NoTransfer) self.ConfirmEkran.Open() def Transfer(self): self.ConfirmEkran.Close() if self.costumes[300][0] is None or self.costumes[303][0] is None: return self.grids[3].ClearSlot(3) self.grids[3].RefreshSlot() self.grids[303].ClearSlot(303) self.grids[303].RefreshSlot() net.SendChatPacket("/costume_bonus_transfer "+str(self.costumes[300][0])+" "+str(self.costumes[303][0])) self.Close() def NoTransfer(self): self.ConfirmEkran.Close() def OverInItem(self, index): target = 303 if index == 400: itemVnum = player.GetItemIndex(self.costumes[300][0]) if self.costumes[303][0] is None: target = 300 stones = [player.GetItemMetinSocket(self.costumes[target][0], i) for i in xrange(player.METIN_SOCKET_MAX_NUM)] attr = [player.GetItemAttribute(self.costumes[target][0], i) for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM)] self.tooltipItem.SetControledToolTip(itemVnum, stones, attr) else: if self.costumes[index] is None: return self.tooltipItem.SetInventoryItem(self.costumes[index][0]) def OverOutItem(self): if self.tooltipItem: self.tooltipItem.HideToolTip() def SelectEmptySlot(self, selectedSlotPos): if mouseModule.mouseController.isAttached(): attachedSlotType = mouseModule.mouseController.GetAttachedType() attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber() itemVnum = player.GetItemIndex(attachedSlotPos) itemCount = player.GetItemCount(attachedSlotPos) item.SelectItem(itemVnum) itemType = item.GetItemType() itemSubType = item.GetItemSubType() if selectedSlotPos == 301: selectedSlotPos = 300 if selectedSlotPos == 304: selectedSlotPos = 303 if selectedSlotPos == 403: if itemVnum == 76025: # costume bonus transfer item kod self.grids[3].SetItemSlot(403, itemVnum, itemCount) else: return mouseModule.mouseController.DeattachObject() if player.SLOT_TYPE_INVENTORY == attachedSlotType: if itemType != item.ITEM_TYPE_COSTUME: mouseModule.mouseController.DeattachObject() return elif itemType == item.ITEM_TYPE_COSTUME and itemSubType == 0: pass if attachedSlotPos in self.costumes: mouseModule.mouseController.DeattachObject() return self.grids[selectedSlotPos].SetItemSlot(selectedSlotPos, itemVnum) self.grids[selectedSlotPos].RefreshSlot() self.costumes[selectedSlotPos][0] = attachedSlotPos if selectedSlotPos == 300: self.grids[2].SetItemSlot(400, itemVnum) mouseModule.mouseController.DeattachObject() self.OverOutItem() def UnselectItemSlot(self, selectedSlotPos): isAttached = mouseModule.mouseController.isAttached() if not isAttached: self.costumes[selectedSlotPos][0] = 0 self.grids[selectedSlotPos].ClearSlot(selectedSlotPos) self.grids[selectedSlotPos].RefreshSlot() if selectedSlotPos == 300: self.grids[2].ClearSlot(400) self.grids[2].RefreshSlot()
open game.py
Search:
"MyShopPriceList" : self.__PrivateShop_PriceList,
Add:
"kostumekran" : self.OpenBonusTransferWindow,
game.py endline add:
def OpenBonusTransferWindow(self): import uibonustransfer self.BonusTransfers = uibonustransfer.BonusTransfer() self.BonusTransfers.Show()
open uiscript
create bonustransfer.py
Add:
window = { "name" : "Bonusessssssss", "style" : ("movable", "float",), "x":(SCREEN_WIDTH - 188+8+8) / 2, "y":(SCREEN_HEIGHT - 335) / 2, "width" : 188+8+8, "height" : 335+42, "children" : ( { "name" : "Board", "type" : "board", "style" : ("attach",), "x" : 0, "y" : 0, "width" : 188+8+8, "height" : 335+42, "children" : ( { "name" : "TitleBar", "type" : "titlebar", "style" : ("attach",), "x" : 8, "y" : 8, "width" : 188+8+8-16, "color" : "gray", "children" : ( { "name":"TitleName", "type":"text", "x":0, "y":4, "text" : "Bonus Transfer", "horizontal_align":"center", "text_horizontal_align":"center" }, ), }, { "name" : "Background", "type" : "image", "x" : 8, "y" : 28, "image" : "comb1.tga", "children" : ( { "name" : "Costume1", "type" : "grid_table", "x" : 28, "y" : 67, "x_count" : 1, "y_count" : 3, "x_step" : 32, "y_step" : 32, "start_index" : 300, }, { "name" : "Costume2", "type" : "grid_table", "x" : 128, "y" : 67, "x_count" : 1, "y_count" : 3, "x_step" : 32, "y_step" : 32, "start_index" : 303, }, { "name" : "Costume3", "type" : "grid_table", "x" : 80, "y" : 185, "x_count" : 1, "y_count" : 3, "x_step" : 32, "y_step" : 32, "start_index" : 400, }, { "name" : "Item", "type" : "grid_table", "x" : 80, "y" : 14, "x_count" : 1, "y_count" : 1, "x_step" : 32, "y_step" : 32, "start_index" : 403, }, ), }, { "name" : "Button1", "type" : "button", "x" : 34, "y" : 342, "text" : "Aktar", "default_image" : "d:/ymir work/ui/public/middle_button_01.sub", "over_image" : "d:/ymir work/ui/public/middle_button_02.sub", "down_image" : "d:/ymir work/ui/public/middle_button_03.sub", }, { "name" : "Button2", "type" : "button", "x" : 34+70, "y" : 342, "text" : "İptal", "default_image" : "d:/ymir work/ui/public/middle_button_01.sub", "over_image" : "d:/ymir work/ui/public/middle_button_02.sub", "down_image" : "d:/ymir work/ui/public/middle_button_03.sub", }, ), }, ), }
Lua:
quest costumbonus begin state start begin when 20087.chat."Bonus Transfer" begin cmdchat("kostumekran") setskin(NOWINDOW) end end end
uiscript add:
comb1.tga- 31
- 1
- 3
- 3
- 13
-
if (ITEM_BELT == item->GetType()) ERROR_MSG(CBeltInventoryHelper::IsExistItemInBeltInventory(this), "Error text");
if (item->GetType() == ITEM_BELT && CBeltInventoryHelper::IsExistItemInBeltInventory(this)) ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이는에러 메시지 이다"));
At first, ERROR_MSG define is useless here for me. This condition will be helpful for everyone.
Kind Regards ~ Ken
Thanks
-
bu bug fixli normalde ama şey lazım kemerde pot varken diğer kemer giyilmemeli
Öyle zaten kemerde pot varken diğer kemer giyilemiyor.
- 1
[40250] Reference Serverfile + Client + Src [15 Available Languages]
in Binaries
Posted
Thanks