rica ederimonu yarın sabah kalktığımda yapayım ilk defa konu açıyorumda
k.bakmayın
Rica ettim sadece kusurluk bir şey yok

teşekkürler elimde özel sistemlerde var hack koruma ile ilgili onlarıda paylaşacam forumumuz gelişsinKonu sabitlendi
%100 Otopacksız Giriş Engelleme Konusu açacam Yakında 
merhaba arkadaşlar söz verdiğim gibi sizlerle 6 taş sistemini paylaşacağım.öncelikle 6 taş sistemini paylaşacağım mantıklı olarak düşünüldüğünde bu sistemi kendinize göre 4 taş 5 taş vs. şeklinde ayarlayabilirsiniz isterseniz 9 taşta yapabilirsiniz fakat 9 taşı ekledikten sonra item silinir çünkü mysql.player.item tablosunda socket0 dan başlar socket5 e kadardır yani 9 taş felan yapacaksanız burdaki socket sayısınıda arttırmanız gerekmektedir.
şimdi konumuza geçelim.
Db > auctionmanager.cpp açılır ve aratılır.
değiştirilir;Kod:"select id, owner_id, count, vnum, socket0, socket1, socket2,"
aratılır :Kod:"select id, owner_id, count, vnum, socket0, socket1, socket2, socket3, socket4, socket5"
altına eklenir.Kod:str_to_number(item.alsockets[2], row[cur++]);
açılır cache.cppKod:str_to_number(item.alsockets[3], row[cur++]); str_to_number(item.alsockets[4], row[cur++]); str_to_number(item.alsockets[5], row[cur++]);
kod bloğu aratılır.
Kod:void cıtemcache::onflush()kod bloğu değiştirilirKod:[sıze=2]{[/sıze] [sıze=2] if (m_data.vnum == 0) // vnumàì 0àì¸é »èá¦çï¶ó°í 祽ãµè °íàì´ù.[/sıze] [sıze=2] {[/sıze] [sıze=2] char szquery[query_max_len];[/sıze] [sıze=2] snprintf(szquery, sizeof(szquery), "delete from item%s where id=%u", gettablepostfix(), m_data.id);[/sıze] [sıze=2] cdbmanager::instance().returnquery(szquery, qıd_ıtem_destroy, 0, null);[/sıze] [sıze=2] [/sıze] [sıze=2] if (g_test_server)[/sıze] [sıze=2] sys_log(0, "ıtemcache::flush : Delete %u %s", m_data.id, szquery);[/sıze] [sıze=2] }[/sıze] [sıze=2] else[/sıze] [sıze=2] {[/sıze] [sıze=2] long alsockets[ıtem_socket_max_num];[/sıze] [sıze=2] tplayerıtemattribute aattr[ıtem_attrıbute_max_num];[/sıze] [sıze=2] bool issocket = false, isattr = false;[/sıze] [sıze=2] [/sıze] [sıze=2] memset(&alsockets, 0, sizeof(long) * ıtem_socket_max_num);[/sıze] [sıze=2] memset(&aattr, 0, sizeof(tplayerıtemattribute) * ıtem_attrıbute_max_num);[/sıze] [sıze=2] [/sıze] [sıze=2] tplayerıtem * p = &m_data;[/sıze] [sıze=2] [/sıze] [sıze=2] if (memcmp(alsockets, p->alsockets, sizeof(long) * ıtem_socket_max_num))[/sıze] [sıze=2] issocket = true;[/sıze] [sıze=2] [/sıze] [sıze=2] if (memcmp(aattr, p->aattr, sizeof(tplayerıtemattribute) * ıtem_attrıbute_max_num))[/sıze] [sıze=2] isattr = true;[/sıze] [sıze=2] [/sıze] [sıze=2] char szcolumns[query_max_len];[/sıze] [sıze=2] char szvalues[query_max_len];[/sıze] [sıze=2] char szupdate[query_max_len];[/sıze] [sıze=2] [/sıze] [sıze=2] int ilen = snprintf(szcolumns, sizeof(szcolumns), "id, owner_id, window, pos, count, vnum");[/sıze] [sıze=2] [/sıze] [sıze=2] int ivaluelen = snprintf(szvalues, sizeof(szvalues), "%u, %u, %d, %d, %u, %u",[/sıze] [sıze=2] p->id, p->owner, p->window, p->pos, p->count, p->vnum);[/sıze] [sıze=2] [/sıze] [sıze=2] int iupdatelen = snprintf(szupdate, sizeof(szupdate), "owner_id=%u, window=%d, pos=%d, count=%u, vnum=%u",[/sıze] [sıze=2] p->owner, p->window, p->pos, p->count, p->vnum);[/sıze] [sıze=2] [/sıze] [sıze=2] if (issocket)[/sıze] [sıze=2] {[/sıze] [sıze=2] ilen += snprintf(szcolumns + ilen, sizeof(szcolumns) - ilen, ", socket0, socket1, socket2");[/sıze] [sıze=2] ivaluelen += snprintf(szvalues + ivaluelen, sizeof(szvalues) - ivaluelen,[/sıze] [sıze=2] ", %lu, %lu, %lu", p->alsockets[0], p->alsockets[1], p->alsockets[2]);[/sıze] [sıze=2] iupdatelen += snprintf(szupdate + iupdatelen, sizeof(szupdate) - iupdatelen,[/sıze] [sıze=2] ", socket0=%lu, socket1=%lu, socket2=%lu", p->alsockets[0], p->alsockets[1], p->alsockets[2]);[/sıze] [sıze=2] }[/sıze] [sıze=2] [/sıze] [sıze=2] if (isattr)[/sıze] [sıze=2] {[/sıze] [sıze=2] ilen += snprintf(szcolumns + ilen, sizeof(szcolumns) - ilen, [/sıze] [sıze=2] ", attrtype0, attrvalue0, attrtype1, attrvalue1, attrtype2, attrvalue2, attrtype3, attrvalue3"[/sıze] [sıze=2] ", attrtype4, attrvalue4, attrtype5, attrvalue5, attrtype6, attrvalue6");[/sıze] [sıze=2] [/sıze] [sıze=2] ivaluelen += snprintf(szvalues + ivaluelen, sizeof(szvalues) - ivaluelen,[/sıze] [sıze=2] ", %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d",[/sıze] [sıze=2] p->aattr[0].btype, p->aattr[0].svalue,[/sıze] [sıze=2] p->aattr[1].btype, p->aattr[1].svalue,[/sıze] [sıze=2] p->aattr[2].btype, p->aattr[2].svalue,[/sıze] [sıze=2] p->aattr[3].btype, p->aattr[3].svalue,[/sıze] [sıze=2] p->aattr[4].btype, p->aattr[4].svalue,[/sıze] [sıze=2] p->aattr[5].btype, p->aattr[5].svalue,[/sıze] [sıze=2] p->aattr[6].btype, p->aattr[6].svalue);[/sıze] [sıze=2] [/sıze] [sıze=2] iupdatelen += snprintf(szupdate + iupdatelen, sizeof(szupdate) - iupdatelen,[/sıze] [sıze=2] ", attrtype0=%d, attrvalue0=%d"[/sıze] [sıze=2] ", attrtype1=%d, attrvalue1=%d"[/sıze] [sıze=2] ", attrtype2=%d, attrvalue2=%d"[/sıze] [sıze=2] ", attrtype3=%d, attrvalue3=%d"[/sıze] [sıze=2] ", attrtype4=%d, attrvalue4=%d"[/sıze] [sıze=2] ", attrtype5=%d, attrvalue5=%d"[/sıze] [sıze=2] ", attrtype6=%d, attrvalue6=%d",[/sıze] [sıze=2] p->aattr[0].btype, p->aattr[0].svalue,[/sıze] [sıze=2] p->aattr[1].btype, p->aattr[1].svalue,[/sıze] [sıze=2] p->aattr[2].btype, p->aattr[2].svalue,[/sıze] [sıze=2] p->aattr[3].btype, p->aattr[3].svalue,[/sıze] [sıze=2] p->aattr[4].btype, p->aattr[4].svalue,[/sıze] [sıze=2] p->aattr[5].btype, p->aattr[5].svalue,[/sıze] [sıze=2] p->aattr[6].btype, p->aattr[6].svalue);[/sıze] [sıze=2] }[/sıze] [sıze=2] [/sıze] [sıze=2] char szıtemquery[query_max_len + query_max_len];[/sıze] [sıze=2] snprintf(szıtemquery, sizeof(szıtemquery), "replace ınto item%s (%s) values(%s)", gettablepostfix(), szcolumns, szvalues);[/sıze] [sıze=2] [/sıze] [sıze=2] if (g_test_server) [/sıze] [sıze=2] sys_log(0, "ıtemcache::flush :replace (%s)", szıtemquery);[/sıze] [sıze=2] [/sıze] [sıze=2] cdbmanager::instance().returnquery(szıtemquery, qıd_ıtem_save, 0, null);[/sıze] [sıze=2] [/sıze] [sıze=2] //g_item_info.add(p->vnum);[/sıze] [sıze=2] ++g_item_count;[/sıze] [sıze=2] }[/sıze] [sıze=2] [/sıze] [sıze=2] m_bneedquery = false;[/sıze] }
Kod:void cıtemcache::onflush()Kod:[sıze=2]{[/sıze] [sıze=2] if (m_data.vnum == 0) // vnumàì 0àì¸é »èá¦çï¶ó°í 祽ãµè °íàì´ù.[/sıze] [sıze=2] {[/sıze] [sıze=2] char szquery[query_max_len];[/sıze] [sıze=2] snprintf(szquery, sizeof(szquery), "delete from item%s where id=%u", gettablepostfix(), m_data.id);[/sıze] [sıze=2] cdbmanager::instance().returnquery(szquery, qıd_ıtem_destroy, 0, null);[/sıze] [sıze=2] [/sıze] [sıze=2] if (g_test_server)[/sıze] [sıze=2] sys_log(0, "ıtemcache::flush : Delete %u %s", m_data.id, szquery);[/sıze] [sıze=2] }[/sıze] [sıze=2] else[/sıze] [sıze=2] {[/sıze] [sıze=2] long alsockets[ıtem_socket_max_num];[/sıze] [sıze=2] tplayerıtemattribute aattr[ıtem_attrıbute_max_num];[/sıze] [sıze=2] bool issocket = false, isattr = false;[/sıze] [sıze=2] [/sıze] [sıze=2] memset(&alsockets, 0, sizeof(long) * ıtem_socket_max_num);[/sıze] [sıze=2] memset(&aattr, 0, sizeof(tplayerıtemattribute) * ıtem_attrıbute_max_num);[/sıze] [sıze=2] [/sıze] [sıze=2] tplayerıtem * p = &m_data;[/sıze] [sıze=2] [/sıze] [sıze=2] if (memcmp(alsockets, p->alsockets, sizeof(long) * ıtem_socket_max_num))[/sıze] [sıze=2] issocket = true;[/sıze] [sıze=2] [/sıze] [sıze=2] if (memcmp(aattr, p->aattr, sizeof(tplayerıtemattribute) * ıtem_attrıbute_max_num))[/sıze] [sıze=2] isattr = true;[/sıze] [sıze=2] [/sıze] [sıze=2] char szcolumns[query_max_len];[/sıze] [sıze=2] char szvalues[query_max_len];[/sıze] [sıze=2] char szupdate[query_max_len];[/sıze] [sıze=2] [/sıze] [sıze=2] int ilen = snprintf(szcolumns, sizeof(szcolumns), "id, owner_id, window, pos, count, vnum");[/sıze] [sıze=2] [/sıze] [sıze=2] int ivaluelen = snprintf(szvalues, sizeof(szvalues), "%u, %u, %d, %d, %u, %u",[/sıze] [sıze=2] p->id, p->owner, p->window, p->pos, p->count, p->vnum);[/sıze] [sıze=2] [/sıze] [sıze=2] int iupdatelen = snprintf(szupdate, sizeof(szupdate), "owner_id=%u, window=%d, pos=%d, count=%u, vnum=%u",[/sıze] [sıze=2] p->owner, p->window, p->pos, p->count, p->vnum);[/sıze] [sıze=2] [/sıze] [sıze=2] if (issocket)[/sıze] [sıze=2] {[/sıze] [sıze=2] ilen += snprintf(szcolumns + ilen, sizeof(szcolumns) - ilen, ", socket0, socket1, socket2, socket3, socket4, socket5");[/sıze] [sıze=2] ivaluelen += snprintf(szvalues + ivaluelen, sizeof(szvalues) - ivaluelen,[/sıze] [sıze=2] ", %lu, %lu, %lu, %lu, %lu, %lu", p->alsockets[0], p->alsockets[1], p->alsockets[2], p->alsockets[3], p->alsockets[4], p->alsockets[5]);[/sıze] [sıze=2] iupdatelen += snprintf(szupdate + iupdatelen, sizeof(szupdate) - iupdatelen,[/sıze] [sıze=2] ", socket0=%lu, socket1=%lu, socket2=%lu, socket3=%lu, socket4=%lu, socket5=%lu", p->alsockets[0], p->alsockets[1], p->alsockets[2], p->alsockets[3], p->alsockets[4], p->alsockets[5]);[/sıze] [sıze=2] }[/sıze] [sıze=2] [/sıze] [sıze=2] if (isattr)[/sıze] [sıze=2] {[/sıze] [sıze=2] ilen += snprintf(szcolumns + ilen, sizeof(szcolumns) - ilen, [/sıze] [sıze=2] ", attrtype0, attrvalue0, attrtype1, attrvalue1, attrtype2, attrvalue2, attrtype3, attrvalue3"[/sıze] [sıze=2] ", attrtype4, attrvalue4, attrtype5, attrvalue5, attrtype6, attrvalue6");[/sıze] [sıze=2] [/sıze] [sıze=2] ivaluelen += snprintf(szvalues + ivaluelen, sizeof(szvalues) - ivaluelen,[/sıze] [sıze=2] ", %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d",[/sıze] [sıze=2] p->aattr[0].btype, p->aattr[0].svalue,[/sıze] [sıze=2] p->aattr[1].btype, p->aattr[1].svalue,[/sıze] [sıze=2] p->aattr[2].btype, p->aattr[2].svalue,[/sıze] [sıze=2] p->aattr[3].btype, p->aattr[3].svalue,[/sıze] [sıze=2] p->aattr[4].btype, p->aattr[4].svalue,[/sıze] [sıze=2] p->aattr[5].btype, p->aattr[5].svalue,[/sıze] [sıze=2] p->aattr[6].btype, p->aattr[6].svalue);[/sıze] [sıze=2] [/sıze] [sıze=2] iupdatelen += snprintf(szupdate + iupdatelen, sizeof(szupdate) - iupdatelen,[/sıze] [sıze=2] ", attrtype0=%d, attrvalue0=%d"[/sıze] [sıze=2] ", attrtype1=%d, attrvalue1=%d"[/sıze] [sıze=2] ", attrtype2=%d, attrvalue2=%d"[/sıze] [sıze=2] ", attrtype3=%d, attrvalue3=%d"[/sıze] [sıze=2] ", attrtype4=%d, attrvalue4=%d"[/sıze] [sıze=2] ", attrtype5=%d, attrvalue5=%d"[/sıze] [sıze=2] ", attrtype6=%d, attrvalue6=%d",[/sıze] [sıze=2] p->aattr[0].btype, p->aattr[0].svalue,[/sıze] [sıze=2] p->aattr[1].btype, p->aattr[1].svalue,[/sıze] [sıze=2] p->aattr[2].btype, p->aattr[2].svalue,[/sıze] [sıze=2] p->aattr[3].btype, p->aattr[3].svalue,[/sıze] [sıze=2] p->aattr[4].btype, p->aattr[4].svalue,[/sıze] [sıze=2] p->aattr[5].btype, p->aattr[5].svalue,[/sıze] [sıze=2] p->aattr[6].btype, p->aattr[6].svalue);[/sıze] [sıze=2] }[/sıze] [sıze=2] [/sıze] [sıze=2] char szıtemquery[query_max_len + query_max_len];[/sıze] [sıze=2] snprintf(szıtemquery, sizeof(szıtemquery), "replace ınto item%s (%s) values(%s)", gettablepostfix(), szcolumns, szvalues);[/sıze] [sıze=2] [/sıze] [sıze=2] if (g_test_server) [/sıze] [sıze=2] sys_log(0, "ıtemcache::flush :replace (%s)", szıtemquery);[/sıze] [sıze=2] [/sıze] [sıze=2] cdbmanager::instance().returnquery(szıtemquery, qıd_ıtem_save, 0, null);[/sıze] [sıze=2] [/sıze] [sıze=2] //g_item_info.add(p->vnum);[/sıze] [sıze=2] ++g_item_count;[/sıze] [sıze=2] }[/sıze] [sıze=2] [/sıze] [sıze=2] m_bneedquery = false;[/sıze] }
açılır clientmanager.cpp
öncelikle şu kod aratılır
yaklaşık 10 11 tane olacaktır hepsi değiştirilirKod:dwsocket2
aratılır.Kod:dwsocket5
değiştirilirKod:socket0, socket1, socket2,
Kod:socket0, socket1, socket2, socket3, socket4, socket5
aratılır
değiştirilirKod:socket0, socket1, socket2
Kod:socket0, socket1, socket2, socket3, socket4, socket5
arat
değiştirKod:"values(%u, %u, '%s', %d, %u, %u, %u, %u, %u)",
aratKod:"values(%u, %u, '%s', %d, %u, %u, %u, %u, %u, %u, %u, %u)",
değiştirKod:pıtemaward->dwvnum, pıtemaward->dwcount, pıtemaward->dwsocket0, pıtemaward->dwsocket1, dwsocket2);
aratKod:pıtemaward->dwvnum, pıtemaward->dwcount, pıtemaward->dwsocket0, pıtemaward->dwsocket1, pıtemaward->dwsocket2, pıtemaward->dwsocket3, pıtemaward->dwsocket4, dwsocket5);
altına ekleKod:item.alsockets[2] = pıtemaward->dwsocket2;
Kod:item.alsockets[3] = pıtemaward->dwsocket3;aratKod:[sıze=2] item.alsockets[4] = pıtemaward->dwsocket4;[/sıze] item.alsockets[5] = dwsocket5;
değiştirKod:"replace ınto item%s (id, owner_id, window, pos, count, vnum, socket0, socket1, socket2, "
aratKod:"replace ınto item%s (id, owner_id, window, pos, count, vnum, socket0, socket1, socket2, socket3, socket4, socket5, "
değiştirKod:"values(%u, %u, %d, %d, %u, %u, %ld, %ld, %ld, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)",
burda depodan item kaybolmayı engelliyoruzKod:"values(%u, %u, %d, %d, %u, %u, %ld, %ld, %ld, %ld, %ld, %ld, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)",
arat
altına ekleKod:p->alsockets[2],
Kod:p->alsockets[3],clientmanagerplayer.cpp açılırKod:[sıze=2] p->alsockets[4],[/sıze] p->alsockets[5],
aratılır
altına eklenirKod:str_to_number(item.alsockets[2], row[cur++]);
Kod:str_to_number(item.alsockets[3], row[cur++]);aratılırKod:[sıze=2] str_to_number(item.alsockets[4], row[cur++]);[/sıze] str_to_number(item.alsockets[5], row[cur++]);
yanına eklenirKod:socket0,socket1,socket2,
tekrar yukarıdaki işlem yapılır.Kod:socket3,socket4,socket5,
Açılır ıtemawardmanager.cpp
aratılır
yanına eklenirKod:socket0,socket1,socket2
aratılırKod:socket3,socket4,socket5
altına eklenirKod:str_to_number(kdata->dwsocket2, row[col++]);
açılır ıtemawardmanager.hKod:str_to_number(kdata->dwsocket3, row[col++]); str_to_number(kdata->dwsocket4, row[col++]); str_to_number(kdata->dwsocket5, row[col++]);
aratılır
altına eklenirKod:dword dwsocket2;
db ile işimiz bittiKod:dword dwsocket3; dword dwsocket4; dword dwsocket5;
common/item_lengt.h
açılır ve aratılır
item_socket_max_num
6 yapılır
client/gametype.h
arat
ıtem_socket_slot_max_num arat 3 ü 6 yap
game/src/constants.cpp
aratılır
3, // weapon_sword,
weapon_dagger
weapon_bow
weapon_two_handed
weapon_bell
weapon_fan
armor_body
bunların yanındaki "3" sayısı 6 olarak değiştirilir.
şimdi item proto'ya geçelim çoğu kişi yanlış anlatıyor sadece mysql item_protoda örnek veriyorum runik kılıcı +9
6 taş yapacağınız itemlerin en sonuna gidin sağ tarafına orda socket_pct var o 3 tür onu 6 yapalım işlem bu kadar
not: Python item_proto ellemeyin yani ordaki socket_pct ellemeyin eğer orayla oynarsanız o itemin parlaması gidecektir!
Skype;mimikkral001
yapamayan herkese yardımcı olurum yeterki boş boş konuşmayın.
Kanıt ;
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
dipnot:bu sistemi kimseden alıntı yapmadım hiç bir forumdan ben ürettim diye bir şeyde demiyorum tamamen kendi mantığımla yaptım.
Item yansıtma problemi fixi aşşağıda
root/uitooltip.py
arat değiştir
////////////////////////////////Kod:[font=arial black] def sethyperlinkıtem(self, tokens):[/font] [font=arial black] mintokencount = 3 + player.metın_socket_max_num[/font] [font=arial black] maxtokencount = mintokencount + 2 * player.attrıbute_slot_max_num[/font] [font=arial black] if tokens and len(tokens) >= mintokencount and len(tokens) <= maxtokencount:[/font] [font=arial black] head, vnum, flag = tokens[:3][/font] [font=arial black] itemvnum = int(vnum, 16)[/font] [font=arial black] metinslot = [int(metin, 16) for metin in tokens[3:9]][/font] [font=arial black] [/font] [font=arial black] rests = tokens[9:][/font] [font=arial black] if rests:[/font] [font=arial black] attrslot = [][/font] [font=arial black] [/font] [font=arial black] rests.reverse()[/font] [font=arial black] while rests:[/font] [font=arial black] key = int(rests.pop(), 16)[/font] [font=arial black] if rests:[/font] [font=arial black] val = int(rests.pop())[/font] [font=arial black] attrslot.append((key, val))[/font] [font=arial black] [/font] [font=arial black] attrslot += [(0, 0)] * (player.attrıbute_slot_max_num - len(attrslot))[/font] [font=arial black] else:[/font] [font=arial black] attrslot = [(0, 0)] * player.attrıbute_slot_max_num[/font] [font=arial black] [/font] [font=arial black] self.cleartooltip()[/font] [font=arial black] self.addıtemdata(itemvnum, metinslot, attrslot)[/font] [font=arial black] [/font] [font=arial black] ıtemtooltip.onupdate(self)[/font]
pythonchatmodule.cpp
açılır
//////////////////////////
pyobject * chatgetlinkfromhyperlink(pyobject * poself, pyobject * poargs)
arat
Kod:pyobject * chatgetlinkfromhyperlink(pyobject * poself, pyobject * poargs)Kod:[font=arial black]{[/font] [font=arial black] char * szhyperlink;[/font] [font=arial black] if (!pytuple_getstring(poargs, 0, &szhyperlink))[/font] [font=arial black] return py_buildexception();[/font] [font=arial black] [/font] [font=arial black] [/font] [font=arial black] std::string sthyperlink(szhyperlink);[/font] [font=arial black] std::vector<std::string> results;[/font] [font=arial black] [/font] [font=arial black] [/font] [font=arial black] split_string(sthyperlink, ":", results, false);[/font] [font=arial black] [/font] [font=arial black] [/font] [font=arial black] // item:vnum:flag:socket0:socket1:socket2:socket3:socket4:socket5[/font] [font=arial black] if (0 == results[0].compare("item"))[/font] [font=arial black] {[/font] [font=arial black] if (results.size() < 9)[/font] [font=arial black] return py_buildvalue("s", "");[/font] [font=arial black] [/font] [font=arial black] [/font] [font=arial black] cıtemdata * pıtemdata = null;[/font] [font=arial black] [/font] [font=arial black] [/font] [font=arial black] if (cıtemmanager::ınstance().getıtemdatapointer(htoi(results[1].c_str()), &pıtemdata))[/font] [font=arial black] {[/font] [font=arial black] char buf[1024] = { 0 };[/font] [font=arial black] char itemlink[256];[/font] [font=arial black] int len;[/font] [font=arial black] bool isattr = false;[/font] [font=arial black] [/font] [font=arial black] [/font] [font=arial black] len = snprintf(itemlink, sizeof(itemlink), "item:%x:%x:%x:%x:%x:%x:%x:%x", [/font] [font=arial black] htoi(results[1].c_str()),[/font] [font=arial black] htoi(results[2].c_str()),[/font] [font=arial black] htoi(results[3].c_str()),[/font] [font=arial black] htoi(results[4].c_str()),[/font] [font=arial black] htoi(results[5].c_str()),[/font] [font=arial black] htoi(results[6].c_str()),[/font] [font=arial black] htoi(results[7].c_str()),[/font] [font=arial black] htoi(results[8].c_str()));[/font] [font=arial black] [/font] [font=arial black] [/font] [font=arial black] if (results.size() >= 11)[/font] [font=arial black] {[/font] [font=arial black] for (int i = 9; i < results.size(); i += 2)[/font] [font=arial black] {[/font] [font=arial black] len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d", [/font] [font=arial black] htoi(results[i].c_str()),[/font] [font=arial black] atoi(results[i+1].c_str()));[/font] [font=arial black] isattr = true;[/font] [font=arial black] }[/font] [font=arial black] }[/font] [font=arial black] [/font] [font=arial black] [/font] [font=arial black] if (isattr)[/font] [font=arial black] //"item:¹øè£:çã·¡±×:¼òäï0:¼òäï1:¼òäï2"[/font] [font=arial black] snprintf(buf, sizeof(buf), "|cffffc700|h%s|h[%s]|h|r", itemlink, pıtemdata->getname());[/font] [font=arial black] else[/font] [font=arial black] snprintf(buf, sizeof(buf), "|cfff1e6c0|h%s|h[%s]|h|r", itemlink, pıtemdata->getname());[/font] [font=arial black] [/font] [font=arial black] [/font] [font=arial black] return py_buildvalue("s", buf);[/font] [font=arial black] }[/font] [font=arial black] }[/font] [font=arial black] [/font] [font=arial black] [/font] [font=arial black] return py_buildvalue("s", "");[/font] [font=arial black]}[/font]
değiştir.
///////////////////////////////////////////////////////////////////
pythonplayermodule.cpp
arat
Kod:pyobject * playergetıtemlink(pyobject * poself, pyobject * poargs)[/font] [font=arial black] [/font] [font=arial black] [/font] [font=arial black] [/font] [font=arial black]///////////////////////////[/font] [font=arial black] [/font] [font=arial black][code]pyobject * playergetıtemlink(pyobject * poself, pyobject * poargs)Kod:[font=arial black]{[/font] [font=arial black] tıtempos cell;[/font] [font=arial black] [/font] [font=arial black] [/font] [font=arial black] switch (pytuple_size(poargs))[/font] [font=arial black] {[/font] [font=arial black] case 1: [/font] [font=arial black] if (!pytuple_getınteger(poargs, 0, &cell.cell))[/font] [font=arial black] return py_buildexception();[/font] [font=arial black] break;[/font] [font=arial black] case 2:[/font] [font=arial black] if (!pytuple_getbyte(poargs, 0, &cell.window_type))[/font] [font=arial black] return py_buildexception();[/font] [font=arial black] if (!pytuple_getınteger(poargs, 1, &cell.cell))[/font] [font=arial black] return py_buildexception();[/font] [font=arial black] break;[/font] [font=arial black] default:[/font] [font=arial black] return py_buildexception();[/font] [font=arial black] }[/font] [font=arial black] const tıtemdata * pplayerıtem = cpythonplayer::ınstance().getıtemdata(cell);[/font] [font=arial black] cıtemdata * pıtemdata = null;[/font] [font=arial black] char buf[1024];[/font] [font=arial black] [/font] [font=arial black] [/font] [font=arial black] if (pplayerıtem && cıtemmanager::ınstance().getıtemdatapointer(pplayerıtem->vnum, &pıtemdata))[/font] [font=arial black] {[/font] [font=arial black] char itemlink[256];[/font] [font=arial black] int len;[/font] [font=arial black] bool isattr = false;[/font] [font=arial black] [/font] [font=arial black] [/font] [font=arial black] len = snprintf(itemlink, sizeof(itemlink), "item:%x:%x:%x:%x:%x:%x:%x:%x", [/font] [font=arial black] pplayerıtem->vnum, pplayerıtem->flags,[/font] [font=arial black] pplayerıtem->alsockets[0], pplayerıtem->alsockets[1], pplayerıtem->alsockets[2] , pplayerıtem->alsockets[3], pplayerıtem->alsockets[4], pplayerıtem->alsockets[5]);[/font] [font=arial black] [/font] [font=arial black] [/font] [font=arial black] for (int i = 0; i < ıtem_attrıbute_slot_max_num; ++i)[/font] [font=arial black] if (pplayerıtem->aattr[i].btype != 0)[/font] [font=arial black] {[/font] [font=arial black] len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d", [/font] [font=arial black] pplayerıtem->aattr[i].btype, pplayerıtem->aattr[i].svalue);[/font] [font=arial black] isattr = true;[/font] [font=arial black] }[/font] [font=arial black] [/font] [font=arial black] [/font] [font=arial black] [/font] [font=arial black] [/font] [font=arial black] if( getdefaultcodepage() == cp_arabıc ) {[/font] [font=arial black] if (isattr)[/font] [font=arial black] //"item:¹øè£:çã·¡±×:¼òäï0:¼òäï1:¼òäï2"[/font] [font=arial black] snprintf(buf, sizeof(buf), " |h|r[%s]|cffffc700|h%s|h", pıtemdata->getname(), itemlink);[/font] [font=arial black] else[/font] [font=arial black] snprintf(buf, sizeof(buf), " |h|r[%s]|cfff1e6c0|h%s|h", pıtemdata->getname(), itemlink);[/font] [font=arial black] } else {[/font] [font=arial black] if (isattr)[/font] [font=arial black] //"item:¹øè£:çã·¡±×:¼òäï0:¼òäï1:¼òäï2"[/font] [font=arial black] snprintf(buf, sizeof(buf), "|cffffc700|h%s|h[%s]|h|r", itemlink, pıtemdata->getname());[/font] [font=arial black] else[/font] [font=arial black] snprintf(buf, sizeof(buf), "|cfff1e6c0|h%s|h[%s]|h|r", itemlink, pıtemdata->getname());[/font] [font=arial black] }[/font] [font=arial black] }[/font] [font=arial black] else[/font] [font=arial black] buf[0] = '\0';[/font] [font=arial black] [/font] [font=arial black] [/font] [font=arial black] return py_buildvalue("s", buf);[/font] [font=arial black]}[/font]
değiştir.
keyifli forumlar...
itemi depoya atınca efsun değişiyordu oncekinlerde bundada varmı sorun

hayır öyle bir soruna hiç rastlamadımitemi depoya atınca efsun değişiyordu oncekinlerde bundada varmı sorun![]()

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 4
- Görüntüleme
- 276
- Cevaplar
- 11
- Görüntüleme
- 536
- Cevaplar
- 3
- Görüntüleme
- 165
- Cevaplar
- 14
- Görüntüleme
- 641
k.bakmayın