Jump to content

Rideas

Inactive Member
  • Posts

    137
  • Joined

  • Last visited

  • Days Won

    9
  • Feedback

    0%

Everything posted by Rideas

  1. char.cpp line 1625 delete. They will work sashes if I delete it? Yes.
  2. 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
  3. 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));
  4. İs bug : [Hidden Content] 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; }
  5. 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; } } }
  6. texts = "|Hmsg:" + name + "|h"+"[PM]"+"|h|r " + text net.SendChatPacket(texts, type)
  7. Open uibonustransfer.py Search: itemVnum == 76025: # costume bonus transfer item kod
  8. 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/
  9. 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
  10. open game/shop.cpp Search: if (r_item.price <= 0) change: if (r_item.price < 0)
  11. Oke i will whait good luck https://www.youtube.com/watch?v=3OxO20DVxpc&feature=youtu.be :P
  12. Thanks men I did not say you belong to me
  13. M2 Download Center Download Here ( Internal ) 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 [Hidden Content]
  14. Öyle zaten kemerde pot varken diğer kemer giyilemiyor.
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.