Jump to content

useless69

Inactive Member
  • Posts

    56
  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by useless69

  1. search void CHARACTER::Dead(LPCHARACTER pkKiller, bool bImmediateDead) add something like this, and change mobvnum and ITEM if (true == IsMonster() && MOBVNUM == GetMobTable().dwVnum) { if (pkKiller->IsPC() ) { pkKiller->AutoGiveItem(ITEM); } }
  2. step by step, this is for range. iDam = number(pkBow->GetValue(3)+pkArrow->GetValue(3), pkBow->GetValue(4)) +pkArrow->GetValue(4); arrow value 3 = 10 value = 20
  3. arrows damage taking from function CalcArrowDamage but if you using sword this should take from function CalcMeleeDamage, i dont think its connected, check and compare calcarrowdamage and calcmeleedamage function This is function arrow iDam = number(pkBow->GetValue(3), pkBow->GetValue(4)) * 2 + pkArrow->GetValue(3); but its only count when you wear bow.
  4. while teleporting cpu going for moment +1.4% (less like 0.3 second), then go back to the cca 0.8
  5. how much inv do you have? search guide how to 4 inv and check all files or try make 5 inv, just for testing
  6. i have 0.8% cpu with three persons in game, 2gb and 1vcpu (vps)
  7. you cant find something what you dont have. add this before def OverOutItem(self): def AttachMetinToItem(self, metinSlotPos, targetSlotPos): metinIndex = player.GetItemIndex(metinSlotPos) targetIndex = player.GetItemIndex(targetSlotPos) item.SelectItem(metinIndex) itemName = item.GetItemName() result = player.CanAttachMetin(metinIndex, targetSlotPos) if player.ATTACH_METIN_NOT_MATCHABLE_ITEM == result: chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_CAN_NOT_ATTACH(itemName)) if player.ATTACH_METIN_NO_MATCHABLE_SOCKET == result: chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NO_SOCKET(itemName)) elif player.ATTACH_METIN_NOT_EXIST_GOLD_SOCKET == result: chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NO_GOLD_SOCKET(itemName)) elif player.ATTACH_METIN_CANT_ATTACH_TO_EQUIPMENT == result: chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_EQUIP_ITEM) if player.ATTACH_METIN_OK != result: return self.attachMetinDialog.Open(metinSlotPos, targetSlotPos)
  8. official function, try replace there 3 fuctions def RefreshAlignment(self): point, grade = player.GetAlignmentData() import colorInfo COLOR_DICT = { 0 : colorInfo.TITLE_RGB_GOOD_4, 1 : colorInfo.TITLE_RGB_GOOD_3, 2 : colorInfo.TITLE_RGB_GOOD_2, 3 : colorInfo.TITLE_RGB_GOOD_1, 4 : colorInfo.TITLE_RGB_NORMAL, 5 : colorInfo.TITLE_RGB_EVIL_1, 6 : colorInfo.TITLE_RGB_EVIL_2, 7 : colorInfo.TITLE_RGB_EVIL_3, 8 : colorInfo.TITLE_RGB_EVIL_4, } colorList = COLOR_DICT.get(grade, colorInfo.TITLE_RGB_NORMAL) gradeColor = ui.GenerateColor(colorList[0], colorList[1], colorList[2]) self.toolTipAlignment.ClearToolTip() self.toolTipAlignment.AutoAppendTextLine(localeInfo.TITLE_NAME_LIST[grade], gradeColor) self.toolTipAlignment.AutoAppendTextLine(localeInfo.ALIGNMENT_NAME + str(point)) self.toolTipAlignment.AlignHorizonalCenter() def GetAlignmentTitleName(alignment): if alignment >= 12000: return TITLE_NAME_LIST[0] elif alignment >= 8000: return TITLE_NAME_LIST[1] elif alignment >= 4000: return TITLE_NAME_LIST[2] elif alignment >= 1000: return TITLE_NAME_LIST[3] elif alignment >= 0: return TITLE_NAME_LIST[4] elif alignment > -4000: return TITLE_NAME_LIST[5] elif alignment > -8000: return TITLE_NAME_LIST[6] elif alignment > -12000: return TITLE_NAME_LIST[7] return TITLE_NAME_LIST[8] TITLE_NAME_LIST = ( PVP_LEVEL0, PVP_LEVEL1, PVP_LEVEL2, PVP_LEVEL3, PVP_LEVEL4, PVP_LEVEL5, PVP_LEVEL6, PVP_LEVEL7, PVP_LEVEL8, )
  9. download character window from another client and try it , i had similar problem and error was in packet in client source, so first be sure its not client problem then look somewhere else.
  10. if you dont have backup, give whatever you removed back and remove it step by step
  11. uicharacter.py show function RefreshAlignment , something in sysser?
  12. thanks for answer, you mentioned webhosting plan on OVH it won't be too slow with multiple connections?
  13. hello, what hosting is good for patcher? what properties are important, or what are you using? Thanks for any ideas
  14. 40k Hello, can i ask about this error what i have in syserr/syslog in db if its dangerous or from where comes it, some fix for it. syserr syslog it doesnt kick me from game, so i can play but i dont like it. Thanks for any help, have a nice day
  15. update: when i change LPITEM pkItem = ch->GetInventoryItem(bPos); to LPITEM pkItem = ch->GetDragonSoulInventoryItem(bPos); its work, but only for alchemy, how i can combine these two functions? Thanks
  16. check root dragon_soul_refine_settings and dragon_soul_table.txt in sf
  17. Version of Files : XXX Hello i have one problem with offline shop, i cant add dragon soul there, after i add core down, sysser, syslog dont say anything. if somebody can look for this code what i have i will be thankfull void COfflineShopManager::AddItem(LPCHARACTER ch, BYTE bDisplayPos, BYTE bPos, long long iPrice, long long iPricem) { if (!ch) return; // Fixed bug 6.21.2015 if (bDisplayPos >= OFFLINE_SHOP_HOST_ITEM_MAX_NUM) { sys_err("Overflow offline shop slot count [%s]", ch->GetName()); return; } // End Of fixed bug 6.21.201 // End Of Check player has offline shop or not LPITEM pkItem = ch->GetInventoryItem(bPos); const char* nameseller = ch->GetName(); const char* nameitem = pkItem->GetName(); int iItemRefine = pkItem->GetRefineLevel(); int iItemLevel; int iItemType = pkItem->GetType(); int iItemSubtype = pkItem->GetSubType(); DWORD iItemAntiflag = pkItem->GetAntiFlag(); if (pkItem->GetLimitType(0)) iItemLevel = pkItem->GetLimitValue(0); else iItemLevel = 0; if (!pkItem) return; // Check const TItemTable * itemTable = pkItem->GetProto(); if (IS_SET(itemTable->dwAntiFlags, ITEM_ANTIFLAG_GIVE | ITEM_ANTIFLAG_MY_OFFLINE_SHOP)) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("OFFLINEANTIFLAG.")); return; } if (pkItem->isLocked()) return; if (pkItem->IsEquipped()) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("OFFLINEEQIUP.")); return; } char szColumns[QUERY_MAX_LEN], szValues[QUERY_MAX_LEN]; int iLen = snprintf(szColumns, sizeof(szColumns), "id,owner_id,pos,count,price,pricem,vnum,owner_name,meno_itemu,item_level,item_refine, item_type, item_subtype, item_antiflag"); int iUpdateLen = snprintf(szValues, sizeof(szValues), "%u,%u,%d,%u,%lld,%lld,%u,'%s','%s',%d,%d,%d,%d,%d", pkItem->GetID(), ch->GetPlayerID(), bDisplayPos, pkItem->GetCount(), iPrice, iPricem, pkItem->GetVnum(),nameseller, nameitem, iItemLevel, iItemRefine,iItemType, iItemSubtype, iItemAntiflag); if (g_bOfflineShopSocketMax == 3) { iLen += snprintf(szColumns + iLen, sizeof(szColumns) - iLen, ",socket0,socket1,socket2"); iUpdateLen += snprintf(szValues + iUpdateLen, sizeof(szValues) - iUpdateLen, ",%ld,%ld,%ld", pkItem->GetSocket(0), pkItem->GetSocket(1), pkItem->GetSocket(2)); } else if(g_bOfflineShopSocketMax == 4) { iLen += snprintf(szColumns + iLen, sizeof(szColumns) - iLen, ",socket0,socket1,socket2,socket3"); iUpdateLen += snprintf(szValues + iUpdateLen, sizeof(szValues) - iUpdateLen, ",%ld,%ld,%ld,%ld", pkItem->GetSocket(0), pkItem->GetSocket(1), pkItem->GetSocket(2), pkItem->GetSocket(3)); } else if(g_bOfflineShopSocketMax == 5) { iLen += snprintf(szColumns + iLen, sizeof(szColumns) - iLen, ",socket0,socket1,socket2,socket3,socket4"); iUpdateLen += snprintf(szValues + iUpdateLen, sizeof(szValues) - iUpdateLen, ",%ld,%ld,%ld,%ld,%ld", pkItem->GetSocket(0), pkItem->GetSocket(1), pkItem->GetSocket(2), pkItem->GetSocket(3), pkItem->GetSocket(4)); } else if(g_bOfflineShopSocketMax == 6) { iLen += snprintf(szColumns + iLen, sizeof(szColumns) - iLen, ",socket0,socket1,socket2,socket3,socket4,socket5"); iUpdateLen += snprintf(szValues + iUpdateLen, sizeof(szValues) - iUpdateLen, ",%ld,%ld,%ld,%ld,%ld,%ld", pkItem->GetSocket(0), pkItem->GetSocket(1), pkItem->GetSocket(2), pkItem->GetSocket(3), pkItem->GetSocket(4), pkItem->GetSocket(5)); } iLen += snprintf(szColumns + iLen, sizeof(szColumns) - iLen, ", attrtype0, attrvalue0, attrtype1, attrvalue1, attrtype2, attrvalue2, attrtype3, attrvalue3, attrtype4, attrvalue4, attrtype5, attrvalue5, attrtype6, attrvalue6,attrtype7, attrvalue7, attrtype8, attrvalue8"); iUpdateLen += snprintf(szValues + iUpdateLen, sizeof(szValues) - iUpdateLen, ",%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d", pkItem->GetAttributeType(0), pkItem->GetAttributeValue(0), pkItem->GetAttributeType(1), pkItem->GetAttributeValue(1), pkItem->GetAttributeType(2), pkItem->GetAttributeValue(2), pkItem->GetAttributeType(3), pkItem->GetAttributeValue(3), pkItem->GetAttributeType(4), pkItem->GetAttributeValue(4), pkItem->GetAttributeType(5), pkItem->GetAttributeValue(5), pkItem->GetAttributeType(6), pkItem->GetAttributeValue(6), pkItem->GetAttributeType(7), pkItem->GetAttributeValue(7), pkItem->GetAttributeType(8), pkItem->GetAttributeValue(8)); char szInsertQuery[QUERY_MAX_LEN]; snprintf(szInsertQuery, sizeof(szInsertQuery), "INSERT INTO player.offline_shop_item (%s) VALUES (%s)", szColumns, szValues); InsertInMysql(ch, pkItem, bPos, iPrice, iPricem); std::auto_ptr<SQLMsg> pMsg(DBManager::instance().DirectQuery(szInsertQuery)); pkItem->RemoveFromCharacter(); LPCHARACTER npc = CHARACTER_MANAGER::instance().Find(FindMyOfflineShop(ch->GetPlayerID())); if (!npc) return; LPOFFLINESHOP pkOfflineShop = FindOfflineShop(npc->GetVID()); if (!pkOfflineShop) return; pkOfflineShop->BroadcastUpdateItem(bDisplayPos, ch->GetPlayerID()); LogManager::instance().ItemLog(ch, pkItem, "ADD ITEM OFFLINE SHOP", ""); } Thanks very much.
×
×
  • 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.