Fethi Polat 1
Fethi Polat
ShadowFon 1
ShadowFon
bikral 1
bikral
-TuRKuaZ- 1
-TuRKuaZ-
SLyFeLLowTR 1
SLyFeLLowTR
TGamesZeus 1
TGamesZeus
Best Studio 1
Best Studio
berkmenoo 1
berkmenoo
InfernoShade 1
InfernoShade
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Agora Metin2 1
Agora Metin2
Hikaye Ekle

[C++]6 Taş Sistemi Sorunlar Fixed

KarLock97

Level 5
TM Üye
Üye
Katılım
23 Mar 2015
Konular
32
Mesajlar
572
Reaksiyon Skoru
65
Altın Konu
0
TM Yaşı
11 Yıl 2 Ay 26 Gün
Başarım Puanı
68
MmoLira
-2
DevLira
0
Ticaret - 0%
0   0   0

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

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.
Kod:
"SELECT id,    owner_id, count, vnum, socket0, socket1, socket2,"
Değiştirilir;
Kod:
"SELECT id,    owner_id, count, vnum, socket0, socket1, socket2, socket3, socket4, socket5"
Aratılır :
Kod:
str_to_number(item.alSockets[2], row[cur++]);
Altına Eklenir.
Kod:
str_to_number(item.alSockets[3], row[cur++]);
str_to_number(item.alSockets[4], row[cur++]);
str_to_number(item.alSockets[5], row[cur++]);
Açılır Cache.cpp
Kod Bloğu Aratılır.
Kod:
void CItemCache::OnFlush()
Kod:
{
    if (m_data.vnum == 0) // vnumÀÌ 0ÀÌ¸é »èÁ¦Ç϶ó°í Ç¥½ÃµÈ °ÍÀÌ´Ù.
    {
        char szQuery[QUERY_MAX_LEN];
        snprintf(szQuery, sizeof(szQuery), "DELETE FROM item%s WHERE id=%u", GetTablePostfix(), m_data.id);
        CDBManager::instance().ReturnQuery(szQuery, QID_ITEM_DESTROY, 0, NULL);


        if (g_test_server)
            sys_log(0, "ItemCache::Flush : DELETE %u %s", m_data.id, szQuery);
    }
    else
    {
        long alSockets[ITEM_SOCKET_MAX_NUM];
        TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_MAX_NUM];
        bool isSocket = false, isAttr = false;


        memset(&alSockets, 0, sizeof(long) * ITEM_SOCKET_MAX_NUM);
        memset(&aAttr, 0, sizeof(TPlayerItemAttribute) * ITEM_ATTRIBUTE_MAX_NUM);


        TPlayerItem * p = &m_data;


        if (memcmp(alSockets, p->alSockets, sizeof(long) * ITEM_SOCKET_MAX_NUM))
            isSocket = true;


        if (memcmp(aAttr, p->aAttr, sizeof(TPlayerItemAttribute) * ITEM_ATTRIBUTE_MAX_NUM))
            isAttr = true;


        char szColumns[QUERY_MAX_LEN];
        char szValues[QUERY_MAX_LEN];
        char szUpdate[QUERY_MAX_LEN];


        int iLen = snprintf(szColumns, sizeof(szColumns), "id, owner_id, window, pos, count, vnum");


        int iValueLen = snprintf(szValues, sizeof(szValues), "%u, %u, %d, %d, %u, %u",
                p->id, p->owner, p->window, p->pos, p->count, p->vnum);


        int iUpdateLen = snprintf(szUpdate, sizeof(szUpdate), "owner_id=%u, window=%d, pos=%d, count=%u, vnum=%u",
                p->owner, p->window, p->pos, p->count, p->vnum);


        if (isSocket)
        {
            iLen += snprintf(szColumns + iLen, sizeof(szColumns) - iLen, ", socket0, socket1, socket2");
            iValueLen += snprintf(szValues + iValueLen, sizeof(szValues) - iValueLen,
                    ", %lu, %lu, %lu", p->alSockets[0], p->alSockets[1], p->alSockets[2]);
            iUpdateLen += snprintf(szUpdate + iUpdateLen, sizeof(szUpdate) - iUpdateLen,
                    ", socket0=%lu, socket1=%lu, socket2=%lu", p->alSockets[0], p->alSockets[1], p->alSockets[2]);
        }


        if (isAttr)
        {
            iLen += snprintf(szColumns + iLen, sizeof(szColumns) - iLen,
                    ", attrtype0, attrvalue0, attrtype1, attrvalue1, attrtype2, attrvalue2, attrtype3, attrvalue3"
                    ", attrtype4, attrvalue4, attrtype5, attrvalue5, attrtype6, attrvalue6");


            iValueLen += snprintf(szValues + iValueLen, sizeof(szValues) - iValueLen,
                    ", %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d",
                    p->aAttr[0].bType, p->aAttr[0].sValue,
                    p->aAttr[1].bType, p->aAttr[1].sValue,
                    p->aAttr[2].bType, p->aAttr[2].sValue,
                    p->aAttr[3].bType, p->aAttr[3].sValue,
                    p->aAttr[4].bType, p->aAttr[4].sValue,
                    p->aAttr[5].bType, p->aAttr[5].sValue,
                    p->aAttr[6].bType, p->aAttr[6].sValue);


            iUpdateLen += snprintf(szUpdate + iUpdateLen, sizeof(szUpdate) - iUpdateLen,
                    ", attrtype0=%d, attrvalue0=%d"
                    ", attrtype1=%d, attrvalue1=%d"
                    ", attrtype2=%d, attrvalue2=%d"
                    ", attrtype3=%d, attrvalue3=%d"
                    ", attrtype4=%d, attrvalue4=%d"
                    ", attrtype5=%d, attrvalue5=%d"
                    ", attrtype6=%d, attrvalue6=%d",
                    p->aAttr[0].bType, p->aAttr[0].sValue,
                    p->aAttr[1].bType, p->aAttr[1].sValue,
                    p->aAttr[2].bType, p->aAttr[2].sValue,
                    p->aAttr[3].bType, p->aAttr[3].sValue,
                    p->aAttr[4].bType, p->aAttr[4].sValue,
                    p->aAttr[5].bType, p->aAttr[5].sValue,
                    p->aAttr[6].bType, p->aAttr[6].sValue);
        }


        char szItemQuery[QUERY_MAX_LEN + QUERY_MAX_LEN];
        snprintf(szItemQuery, sizeof(szItemQuery), "REPLACE INTO item%s (%s) VALUES(%s)", GetTablePostfix(), szColumns, szValues);


        if (g_test_server)   
            sys_log(0, "ItemCache::Flush :REPLACE  (%s)", szItemQuery);


        CDBManager::instance().ReturnQuery(szItemQuery, QID_ITEM_SAVE, 0, NULL);


        //g_item_info.Add(p->vnum);
        ++g_item_count;
    }


    m_bNeedQuery = false;
}
Kod Bloğu Değiştirilir
Kod:
void CItemCache::OnFlush()
Kod:
{
    if (m_data.vnum == 0) // vnumÀÌ 0ÀÌ¸é »èÁ¦Ç϶ó°í Ç¥½ÃµÈ °ÍÀÌ´Ù.
    {
        char szQuery[QUERY_MAX_LEN];
        snprintf(szQuery, sizeof(szQuery), "DELETE FROM item%s WHERE id=%u", GetTablePostfix(), m_data.id);
        CDBManager::instance().ReturnQuery(szQuery, QID_ITEM_DESTROY, 0, NULL);


        if (g_test_server)
            sys_log(0, "ItemCache::Flush : DELETE %u %s", m_data.id, szQuery);
    }
    else
    {
        long alSockets[ITEM_SOCKET_MAX_NUM];
        TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_MAX_NUM];
        bool isSocket = false, isAttr = false;


        memset(&alSockets, 0, sizeof(long) * ITEM_SOCKET_MAX_NUM);
        memset(&aAttr, 0, sizeof(TPlayerItemAttribute) * ITEM_ATTRIBUTE_MAX_NUM);


        TPlayerItem * p = &m_data;


        if (memcmp(alSockets, p->alSockets, sizeof(long) * ITEM_SOCKET_MAX_NUM))
            isSocket = true;


        if (memcmp(aAttr, p->aAttr, sizeof(TPlayerItemAttribute) * ITEM_ATTRIBUTE_MAX_NUM))
            isAttr = true;


        char szColumns[QUERY_MAX_LEN];
        char szValues[QUERY_MAX_LEN];
        char szUpdate[QUERY_MAX_LEN];


        int iLen = snprintf(szColumns, sizeof(szColumns), "id, owner_id, window, pos, count, vnum");


        int iValueLen = snprintf(szValues, sizeof(szValues), "%u, %u, %d, %d, %u, %u",
                p->id, p->owner, p->window, p->pos, p->count, p->vnum);


        int iUpdateLen = snprintf(szUpdate, sizeof(szUpdate), "owner_id=%u, window=%d, pos=%d, count=%u, vnum=%u",
                p->owner, p->window, p->pos, p->count, p->vnum);


        if (isSocket)
        {
            iLen += snprintf(szColumns + iLen, sizeof(szColumns) - iLen, ", socket0, socket1, socket2, socket3, socket4, socket5");
            iValueLen += snprintf(szValues + iValueLen, sizeof(szValues) - iValueLen,
                    ", %lu, %lu, %lu, %lu, %lu, %lu", p->alSockets[0], p->alSockets[1], p->alSockets[2], p->alSockets[3], p->alSockets[4], p->alSockets[5]);
            iUpdateLen += snprintf(szUpdate + iUpdateLen, sizeof(szUpdate) - iUpdateLen,
                    ", 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]);
        }


        if (isAttr)
        {
            iLen += snprintf(szColumns + iLen, sizeof(szColumns) - iLen,
                    ", attrtype0, attrvalue0, attrtype1, attrvalue1, attrtype2, attrvalue2, attrtype3, attrvalue3"
                    ", attrtype4, attrvalue4, attrtype5, attrvalue5, attrtype6, attrvalue6");


            iValueLen += snprintf(szValues + iValueLen, sizeof(szValues) - iValueLen,
                    ", %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d",
                    p->aAttr[0].bType, p->aAttr[0].sValue,
                    p->aAttr[1].bType, p->aAttr[1].sValue,
                    p->aAttr[2].bType, p->aAttr[2].sValue,
                    p->aAttr[3].bType, p->aAttr[3].sValue,
                    p->aAttr[4].bType, p->aAttr[4].sValue,
                    p->aAttr[5].bType, p->aAttr[5].sValue,
                    p->aAttr[6].bType, p->aAttr[6].sValue);


            iUpdateLen += snprintf(szUpdate + iUpdateLen, sizeof(szUpdate) - iUpdateLen,
                    ", attrtype0=%d, attrvalue0=%d"
                    ", attrtype1=%d, attrvalue1=%d"
                    ", attrtype2=%d, attrvalue2=%d"
                    ", attrtype3=%d, attrvalue3=%d"
                    ", attrtype4=%d, attrvalue4=%d"
                    ", attrtype5=%d, attrvalue5=%d"
                    ", attrtype6=%d, attrvalue6=%d",
                    p->aAttr[0].bType, p->aAttr[0].sValue,
                    p->aAttr[1].bType, p->aAttr[1].sValue,
                    p->aAttr[2].bType, p->aAttr[2].sValue,
                    p->aAttr[3].bType, p->aAttr[3].sValue,
                    p->aAttr[4].bType, p->aAttr[4].sValue,
                    p->aAttr[5].bType, p->aAttr[5].sValue,
                    p->aAttr[6].bType, p->aAttr[6].sValue);
        }


        char szItemQuery[QUERY_MAX_LEN + QUERY_MAX_LEN];
        snprintf(szItemQuery, sizeof(szItemQuery), "REPLACE INTO item%s (%s) VALUES(%s)", GetTablePostfix(), szColumns, szValues);


        if (g_test_server)   
            sys_log(0, "ItemCache::Flush :REPLACE  (%s)", szItemQuery);


        CDBManager::instance().ReturnQuery(szItemQuery, QID_ITEM_SAVE, 0, NULL);


        //g_item_info.Add(p->vnum);
        ++g_item_count;
    }


    m_bNeedQuery = false;
}

Açılır ClientManager.cpp
öncelikle şu kod aratılır
Kod:
dwSocket2
yaklaşık 10 11 tane olacaktır hepsi değiştirilir
Kod:
dwSocket5
aratılır.
Kod:
socket0, socket1, socket2,
Değiştirilir
Kod:
socket0, socket1, socket2, socket3, socket4, socket5

aratılır
Kod:
socket0, socket1, socket2
değiştirilir
Kod:
socket0, socket1, socket2, socket3, socket4, socket5

arat
Kod:
"VALUES(%u, %u, '%s', %d, %u, %u, %u, %u, %u)",
değiştir
Kod:
"VALUES(%u, %u, '%s', %d, %u, %u, %u, %u, %u, %u, %u, %u)",
arat
Kod:
pItemAward->dwVnum, pItemAward->dwCount, pItemAward->dwSocket0, pItemAward->dwSocket1, dwSocket2);
değiştir
Kod:
pItemAward->dwVnum, pItemAward->dwCount, pItemAward->dwSocket0, pItemAward->dwSocket1, pItemAward->dwSocket2, pItemAward->dwSocket3, pItemAward->dwSocket4, dwSocket5);
arat
Kod:
item.alSockets[2] = pItemAward->dwSocket2;
altına ekle
Kod:
                    item.alSockets[3] = pItemAward->dwSocket3;
Kod:
                    item.alSockets[4] = pItemAward->dwSocket4;
                    item.alSockets[5] = dwSocket5;
arat
Kod:
"REPLACE INTO item%s (id, owner_id, window, pos, count, vnum, socket0, socket1, socket2, "
değiştir
Kod:
"REPLACE INTO item%s (id, owner_id, window, pos, count, vnum, socket0, socket1, socket2, socket3, socket4, socket5, "
arat
Kod:
"VALUES(%u, %u, %d, %d, %u, %u, %ld, %ld, %ld, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)",
değiştir
Kod:
"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)",
Burda Depodan İtem Kaybolmayı engelliyoruz :)
arat
Kod:
p->alSockets[2],
altına ekle
Kod:
            p->alSockets[3],
Kod:
            p->alSockets[4],
            p->alSockets[5],
ClientManagerPlayer.cpp açılır

aratılır
Kod:
str_to_number(item.alSockets[2], row[cur++]);
altına eklenir
Kod:
        str_to_number(item.alSockets[3], row[cur++]);
Kod:
       str_to_number(item.alSockets[4], row[cur++]);
        str_to_number(item.alSockets[5], row[cur++]);
aratılır
Kod:
socket0,socket1,socket2,
yanına eklenir
Kod:
socket3,socket4,socket5,
tekrar yukarıdaki işlem yapılır.
açılır ItemAwardManager.cpp
aratılır
Kod:
socket0,socket1,socket2
yanına eklenir
Kod:
socket3,socket4,socket5
aratılır
Kod:
str_to_number(kData->dwSocket2, row[col++]);
altına eklenir
Kod:
str_to_number(kData->dwSocket3, row[col++]);
str_to_number(kData->dwSocket4, row[col++]);
str_to_number(kData->dwSocket5, row[col++]);
açılır ItemAwardManager.h
aratılır
Kod:
DWORD    dwSocket2;
altına eklenir
Kod:
DWORD    dwSocket3;
DWORD    dwSocket4;
DWORD    dwSocket5;
DB ile işimiz Bitti
common/item_lengt.h
açılır ve aratılır
item_socket_max_num
6 yapılır
Client/gametype.h
arat
ITEM_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 ;



Dipnot:Bu sistemi Kimseden alıntı yapmadım hiç bir forumdan ben ürettim diye bir şeyde demiyorum tamamen kendi mantığımla yaptım.
İtem Yansıtma Problemi fixi aşşağıda :)
root/uitooltip.py
arat değiştir

Kod:
    def SetHyperlinkItem(self, tokens):
        minTokenCount = 3 + player.METIN_SOCKET_MAX_NUM
        maxTokenCount = minTokenCount + 2 * player.ATTRIBUTE_SLOT_MAX_NUM
        if tokens and len(tokens) >= minTokenCount and len(tokens) <= maxTokenCount:
            head, vnum, flag = tokens[:3]
            itemVnum = int(vnum, 16)
            metinSlot = [int(metin, 16) for metin in tokens[3:9]]


            rests = tokens[9:]
            if rests:
                attrSlot = []


                rests.reverse()
                while rests:
                    key = int(rests.pop(), 16)
                    if rests:
                        val = int(rests.pop())
                        attrSlot.append((key, val))


                attrSlot += [(0, 0)] * (player.ATTRIBUTE_SLOT_MAX_NUM - len(attrSlot))
            else:
                attrSlot = [(0, 0)] * player.ATTRIBUTE_SLOT_MAX_NUM


            self.ClearToolTip()
            self.AddItemData(itemVnum, metinSlot, attrSlot)


            ItemToolTip.OnUpdate(self)
////////////////////////////////


pythonchatmodule.cpp




açılır




//////////////////////////




PyObject * chatGetLinkFromHyperlink(PyObject * poSelf, PyObject * poArgs)




arat


Kod:
PyObject * chatGetLinkFromHyperlink(PyObject * poSelf, PyObject * poArgs)
Kod:
{
    char * szHyperlink;

    if (!PyTuple_GetString(poArgs, 0, &szHyperlink))
        return Py_BuildException();




    std::string stHyperlink(szHyperlink);
    std::vector<std::string> results;




    split_string(stHyperlink, ":", results, false);




    // item:vnum:flag:socket0:socket1:socket2:socket3:socket4:socket5
    if (0 == results[0].compare("item"))
    {
        if (results.size() < 9)
            return Py_BuildValue("s", "");




        CItemData * pItemData = NULL;




        if (CItemManager::Instance().GetItemDataPointer(htoi(results[1].c_str()), &pItemData))
        {
            char buf[1024] = { 0 };
            char itemlink[256];
            int len;
            bool isAttr = false;




            len = snprintf(itemlink, sizeof(itemlink), "item:%x:%x:%x:%x:%x:%x:%x:%x",
                    htoi(results[1].c_str()),
                    htoi(results[2].c_str()),
                    htoi(results[3].c_str()),
                    htoi(results[4].c_str()),
                    htoi(results[5].c_str()),
                    htoi(results[6].c_str()),
                    htoi(results[7].c_str()),
                    htoi(results[8].c_str()));




            if (results.size() >= 11)
            {
                for (int i = 9; i < results.size(); i += 2)
                {
                    len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d",
                            htoi(results[i].c_str()),
                            atoi(results[i+1].c_str()));
                    isAttr = true;
                }
            }




            if (isAttr)
                //"item:¹øÈ£:Ç÷¡±×:¼ÒÄÏ0:¼ÒÄÏ1:¼ÒÄÏ2"
                snprintf(buf, sizeof(buf), "|cffffc700|H%s|h[%s]|h|r", itemlink, pItemData->GetName());
            else
                snprintf(buf, sizeof(buf), "|cfff1e6c0|H%s|h[%s]|h|r", itemlink, pItemData->GetName());




            return Py_BuildValue("s", buf);
        }
    }




    return Py_BuildValue("s", "");
}




değiştir.


///////////////////////////////////////////////////////////////////


pythonplayermodule.cpp
arat
Kod:
PyObject * playerGetItemLink(PyObject * poSelf, PyObject * poArgs)






///////////////////////////


[CODE]PyObject * playerGetItemLink(PyObject * poSelf, PyObject * poArgs)
Kod:
{
    TItemPos Cell;




    switch (PyTuple_Size(poArgs))
    {
    case 1:   
        if (!PyTuple_GetInteger(poArgs, 0, &Cell.cell))
            return Py_BuildException();
        break;
    case 2:
        if (!PyTuple_GetByte(poArgs, 0, &Cell.window_type))
            return Py_BuildException();
        if (!PyTuple_GetInteger(poArgs, 1, &Cell.cell))
            return Py_BuildException();
        break;
    default:
        return Py_BuildException();
    }
    const TItemData * pPlayerItem = CPythonPlayer::Instance().GetItemData(Cell);
    CItemData * pItemData = NULL;
    char buf[1024];




    if (pPlayerItem && CItemManager::Instance().GetItemDataPointer(pPlayerItem->vnum, &pItemData))
    {
        char itemlink[256];
        int len;
        bool isAttr = false;




        len = snprintf(itemlink, sizeof(itemlink), "item:%x:%x:%x:%x:%x:%x:%x:%x",
                pPlayerItem->vnum, pPlayerItem->flags,
                pPlayerItem->alSockets[0], pPlayerItem->alSockets[1], pPlayerItem->alSockets[2] , pPlayerItem->alSockets[3], pPlayerItem->alSockets[4], pPlayerItem->alSockets[5]);




        for (int i = 0; i < ITEM_ATTRIBUTE_SLOT_MAX_NUM; ++i)
            if (pPlayerItem->aAttr[i].bType != 0)
            {
                len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d",
                        pPlayerItem->aAttr[i].bType, pPlayerItem->aAttr[i].sValue);
                isAttr = true;
            }








        if( GetDefaultCodePage() == CP_ARABIC ) {
            if (isAttr)
                //"item:¹øÈ£:Ç÷¡±×:¼ÒÄÏ0:¼ÒÄÏ1:¼ÒÄÏ2"
                snprintf(buf, sizeof(buf), " |h|r[%s]|cffffc700|H%s|h", pItemData->GetName(), itemlink);
            else
                snprintf(buf, sizeof(buf), " |h|r[%s]|cfff1e6c0|H%s|h", pItemData->GetName(), itemlink);
        } else {
            if (isAttr)
                //"item:¹øÈ£:Ç÷¡±×:¼ÒÄÏ0:¼ÒÄÏ1:¼ÒÄÏ2"
                snprintf(buf, sizeof(buf), "|cffffc700|H%s|h[%s]|h|r", itemlink, pItemData->GetName());
            else
                snprintf(buf, sizeof(buf), "|cfff1e6c0|H%s|h[%s]|h|r", itemlink, pItemData->GetName());
        }
    }
    else
        buf[0] = '\0';




    return Py_BuildValue("s", buf);
}[/FONT]


değiştir.

teşekkürler :)

:)


Not bir kaç gün içerisinde binek bugunun çözümünü paylaşacağım
Keyifli Forumlar...

 
Moderatör tarafında düzenlendi:

En Çok Reaksiyon Alan Mesajlar

SYSERR: Jul 3 23:27:21 :: ChildLoop: AsyncSQL: query failed: Unknown column 'socket3' in 'field list' (query: SELECT id,login,vnum,count,socket0,socket1,socket2,socket3,socket4,socket5,mall,why FROM item_award WHERE taken_time IS NULL and id > 0 errno: 1054)
SYSERR: Jul 3 23:27:26 :: ChildLoop: AsyncSQL: query failed: Unknown column 'socket3' in 'field list' (query: SELECT id,login,vnum,count,socket0,socket1,socket2,socket3,socket4,socket5,mall,why FROM item_award WHERE taken_time IS NULL and id > 0 errno: 1054)
SYSERR: Jul 3 23:27:31 :: ChildLoop: AsyncSQL: query failed: Unknown column 'socket3' in 'field list' (query: SELECT id,login,vnum,count,socket0,socket1,socket2,socket3,socket4,socket5,mall,why FROM item_award WHERE taken_time IS NULL and id > 0 errno: 1054)
SYSERR: Jul 3 23:27:36 :: ChildLoop: AsyncSQL: query failed: Unknown column 'socket3' in 'field list' (query: SELECT id,login,vnum,count,socket0,socket1,socket2,socket3,socket4,socket5,mall,why FROM item_award WHERE taken_time IS NULL and id > 0 errno: 1054)
item award'a socket3 ekle
bkz:

1-tabloyu masa üstüne çıkar (tablo sağ tık yapıp dump)
2-çıkardığın tabloya sağ tık
3-socket2 altına yeni bir socket tanımı (socket3) (6 taş eklemişsin socket5'e kadar yap)
bkz:
socket0
socket1
socket2
socket3
socket4
socket5
4-kaydedip navicat alakalı bölüme okutulur

iyi forumlar k.g.
Paylaşım için teşekkürler. :)
 
Teşekkür ettim :)
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst