• Content count

  • Joined

  • Last visited

Community Reputation

38 Good

About Tasho

Profile Information

  • Gender
  1. open

    Then go and make a dbg on class where is opened for can be sure is called or is problem with your uiscript (some keys failed) and can't show and not all time show something on syserr. root/uiSystem.py (replace the function OpenDialog) with this: def OpenDialog(self): import chat chat.AppendChat(chat.CHAT_TYPE_INFO, "uiSystem.SystemDialog().OpenDialog()") self.Show() If he show you message and not appear the window that means you have problem in ../SystemDialog.py (uiscript or locale) You can try also with: #self.Show() ui.ScriptWindow.Show(self)
  2. open

    Be sure you have same on root/game.py def OnPressEscapeKey(self): if app.TARGET == app.GetCursor(): app.SetCursor(app.NORMAL) elif TRUE == mouseModule.mouseController.isAttached(): mouseModule.mouseController.DeattachObject() else: self.interface.OpenSystemDialog() return TRUE
  3. solved

    @danio475 Where is scope of break in this loop? You did a loop and check if not wear stop the loop without do nothing, so this loop not have sense. return wear[i]; You can't do that because "i" is not declared. Should look like this what you say. else if (GetWearFlag() & WEARABLE_UNIQUE) { BYTE WEAR_EQ_LIST[4] = { WEAR_UNIQUE1, WEAR_UNIQUE2, WEAR_UNIQUE3, WEAR_UNIQUE4 }; for (BYTE i=0; i<_countof(WEAR_EQ_LIST); i++) { BYTE bCell = WEAR_EQ_LIST[i]; if (!ch->GetWear(bCell)) return bCell; } }
  4. Try this. #@root/uiInventory.py #Search for: def OnPickMoney(self, money): mouseModule.mouseController.AttachMoney(self, player.SLOT_TYPE_INVENTORY, money) #Add after: def RefreshSlotAcce(self): [self.wndEquip.SetItemSlot(item.COSTUME_SLOT_START + i, player.GetItemIndex(item.COSTUME_SLOT_START + i), 0) for i in xrange(item.COSTUME_SLOT_COUNT)] self.wndEquip.RefreshSlot() #Search in class InventoryWindow(ui.ScriptWindow): def Show(self): self.__LoadWindow() #Add after: self.RefreshSlotAcce() #Search in def RefreshEquipSlotWindow(self): self.wndEquip.RefreshSlot() #Add after: self.RefreshSlotAcce() #@locale/xx/InventoryWindow.py #Search for: "slot" : ( #Add after: {"index": item.COSTUME_SLOT_START + 2, "x": 80, "y": 3, "width":32, "height": 32},
  5. Here is a release from him on 2016 from another forum. #ifdef ENABLE_EFFECT_COSTUME //vegas_20160821 case CItemData::ITEM_TYPE_COSTUME: if (pItem->GetSubType() == CItemData::COSTUME_BODY) { struct SCostumeEffect { DWORD iVnum; DWORD iValueEffect; }; const int COSTUME_EFFECT_MAX_NUM = 4; static SCostumeEffect data[COSTUME_EFFECT_MAX_NUM] = { /* Change EFFECT_BODYARMOR_SPECIAL with your effect name what is declared on InstanceBase.h (enum), you can add how many item's you want. */ { 41003, EFFECT_BODYARMOR_SPECIAL }, { 41301, EFFECT_BODYARMOR_SPECIAL }, { 41307, EFFECT_BODYARMOR_SPECIAL }, { 41311, EFFECT_BODYARMOR_SPECIAL } }; for (DWORD i=0; i<COSTUME_EFFECT_MAX_NUM; i++){ if (pItem->GetIndex() == data[i].iVnum){ __AttachEffect(EFFECT_REFINED + data[i].iValueEffect); break; } } } #endif
  6. solved

    quest coins_for_kill begin state start begin when kill begin local mobVnum = npc.get_race() local mobCoins = ({ [8024] = 30, -- 30 Coins [8025] = 20 -- 20 Coins }) [mobVnum] if not mobCoins then return end pc.charge_cash(mobCoins, "coins_for_kill") syschat(string.format("You get %d coins from %s.", mobCoins, mob_name(mobVnum))) end end end This is correctly quest rewrited. Already ymir did the function for lua to charge the coins via pc.charge_cash, but not all people was used because name of row is called: "cash" and they are used on website/itemshop etc row "coins", but can change very easy. Go in /src/db/ClientManager.cpp sprintf(szQuery, "update account set `cash` = `cash` + %d where id = %d limit 1", packet->dwAmount, packet->dwAID); Replace `cash` = `cash` with `coins` = `coins`
  7. So, __AttachSelectEffectPVP() is member of class CInstanceBase same with GetDuelMode(). You need to change like this: if (GetDuelMode()) __AttachSelectEffectPVP();
  8. CInstanceBase* pInstance = CPythonPlayer::Instance().NEW_GetMainActorPtr(); if (pInstance->GetDuelMode()) // do something you are in duel You was try with this?
  9. //Soure/Client/UserInterface/InstanceBaseEffect.cpp //Search for: strDamageType = "target_"; //Replace with: strDamageType = (flag & DAMAGE_CRITICAL) ? "target_crit_" : "target_"; d:/ymir work/effect/affect/damagevalue/ https://mega.nz/#!GJRiiAKD!VnROSw-OlAv1BT_DtavewoJ2EQn7PZBCeX6hL0Y36j8
  10. //Source/Client/InstanceBase.cpp Search and delete "//" from: //rkEftMgr.CreateEffect(ms_adwCRCAffectEffect[EFFECT_DAMAGE_CRITICAL],v3Pos,v3Rot); Location effect: d:/ymir work/effect/affect/damagevalue/critical.mse Download effect: http://www.dosyaupload.com/9ii Also is here:
  11. Hi there, I just came acorss a problem that I didnt figure out how to resolve and maybe you guys know something about it. I implemented on a new client a interface and it looks like this : New client: if you look carefully you can see that there are 1px distance beteween the frames and the center. Old client: Here you can see that its all normal. The problem is somewhere in the client source, I tested with the old client launcher and it show the image normally. #Solved Problem was directx.
  12. Is same code. //char_skill.cpp bool CHARACTER::UseSkill(DWORD dwVnum, LPCHARACTER pkVictim, bool bUseGrandMaster) { if (IsPC() && IsPolymorphed() && pkVictim->IsPC()) { RemoveAffect(AFFECT_POLYMORPH); ChatPacket(CHAT_TYPE_INFO, "Transformarea in modul PVP este interzisa!"); } [..........................................] }
  13. Because you need to use a block condition. ( { } ) if (IsPC() && IsPolymorphed() && pkVictim->IsPC()) { RemoveAffect(AFFECT_POLYMORPH); ChatPacket(CHAT_TYPE_INFO, "Transformarea in modul PVP este interzisa!"); }
  14. if (IsPC() && IsPolymorphed() && pkVictim->IsPC())