Frage zur item_proto

02/19/2019 01:44 »DeneX«#1
Moin, Ich hab mal ne' Frage.
Wenn ich eine bestimmten bereich einer Tabelle ausfülle und speicher, macht er sie einfach wieder leer nachdem ich reload p oder reboot gemacht habe woran kann dass liegen? Hab ich bis jetzt noch nicht gehabt

Hat wohl mit der ClientManagerBoot.cpp zutun, kann mir einer sagen was ich da machen muss?

[Only registered and activated users can see links. Click Here To Register...]
PHP Code:
bool CClientManager::MirrorItemTableIntoDB()
{
    for (
itertype(m_vec_itemTableit m_vec_itemTable.begin(); it != m_vec_itemTable.end(); it++)
    {
        if (
g_stLocaleNameColumn != "name")
        {
            const 
TItemTable= *it;
            
char query[4096];
            
snprintf(querysizeof(query),
                
"replace into item_proto%s ("
                "vnum, type, subtype, name, %s, gold, shop_buy_price, weight, size, "
                "flag, wearflag, antiflag, immuneflag, "
                "refined_vnum, refine_set, magic_pct, socket_pct, addon_type, specular,"
                "limittype0, limitvalue0, limittype1, limitvalue1, "
                "applytype0, applyvalue0, applytype1, applyvalue1, applytype2, applyvalue2, "
                "value0, value1, value2, value3, value4, value5 ) "
                "values ("
                "%d, %d, %d, \"%s\", \"%s\", %d, %d, %d, %d, "
                "%d, %d, %d, %d, "
                "%d, %d, %d, %d, %d, %d, "
                "%d, %d, %d, %d, "
                "%d, %d, %d, %d, %d, %d, "
                "%d, %d, %d, %d, %d, %d )"
,
                
GetTablePostfix(), g_stLocaleNameColumn.c_str(),
                
t.dwVnumt.bTypet.bSubTypet.szNamet.szLocaleNamet.dwGoldt.dwShopBuyPricet.bWeightt.bSize,
                
t.dwFlagst.dwWearFlagst.dwAntiFlagst.dwImmuneFlag,
                
t.dwRefinedVnumt.wRefineSett.bAlterToMagicItemPctt.bGainSocketPctt.sAddonTypet.bSpecular,
                
t.aLimits[0].bTypet.aLimits[0].lValuet.aLimits[1].bTypet.aLimits[1].lValue,
                
t.aApplies[0].bTypet.aApplies[0].lValuet.aApplies[1].bTypet.aApplies[1].lValuet.aApplies[2].bTypet.aApplies[2].lValue,
                
t.alValues[0], t.alValues[1], t.alValues[2], t.alValues[3], t.alValues[4], t.alValues[5]);
            
CDBManager::instance().AsyncQuery(query);
        }
        else
        {
            const 
TItemTable= *it;
            
char query[4096];
            
snprintf(querysizeof(query),
                
"replace into item_proto%s ("
                "vnum, type, subtype, name, gold, shop_buy_price, weight, size, "
                "flag, wearflag, antiflag, immuneflag, "
                "refined_vnum, refine_set, magic_pct, socket_pct, addon_type, "
                "limittype0, limitvalue0, limittype1, limitvalue1, "
                "applytype0, applyvalue0, applytype1, applyvalue1, applytype2, applyvalue2, "
                "value0, value1, value2, value3, value4, value5 ) "
                "values ("
                "%d, %d, %d, \"%s\", %d, %d, %d, %d, "
                "%d, %d, %d, %d, "
                "%d, %d, %d, %d, %d, %d, "
                "%d, %d, %d, %d, "
                "%d, %d, %d, %d, %d, %d, "
                "%d, %d, %d, %d, %d, %d )"
,
                
GetTablePostfix(),
                
t.dwVnumt.bTypet.bSubTypet.szNamet.dwGoldt.dwShopBuyPricet.bWeightt.bSize,
                
t.dwFlagst.dwWearFlagst.dwAntiFlagst.dwImmuneFlag,
                
t.dwRefinedVnumt.wRefineSett.bAlterToMagicItemPctt.bGainSocketPctt.sAddonTypet.bSpecular,
                
t.aLimits[0].bTypet.aLimits[0].lValuet.aLimits[1].bTypet.aLimits[1].lValue,
                
t.aApplies[0].bTypet.aApplies[0].lValuet.aApplies[1].bTypet.aApplies[1].lValuet.aApplies[2].bTypet.aApplies[2].lValue,
                
t.alValues[0], t.alValues[1], t.alValues[2], t.alValues[3], t.alValues[4], t.alValues[5]);
            
CDBManager::instance().AsyncQuery(query);
        }
    }
    return 
true;

02/19/2019 02:07 Natsu Dragneel#2
Kann das in der reload p funktion liegen, dass diese nicht richtig die item_proto savet/reloaded?
02/19/2019 02:12 »DeneX«#3
Quote:
Originally Posted by abdu931 View Post
Kann das in der reload p funktion liegen, dass diese nicht richtig die item_proto savet/reloaded?
Ja dass wird glaub in der ClientManagerBoot definiert kann aber nicht herauslesen was ich dort ändern muss damit es klappt ^^
02/19/2019 02:17 Natsu Dragneel#4
Quote:
Originally Posted by »DeneX« View Post
Ja dass wird glaub in der ClientManagerBoot definiert kann aber nicht herauslesen was ich dort ändern muss damit es klappt ^^
oder entpackst du es und packst es wieder falsch, oder trägst du es fehlerhaft in die item_proto ein?
02/19/2019 02:18 »DeneX«#5
Quote:
Originally Posted by abdu931 View Post
oder entpackst du es und packst es wieder falsch, oder trägst du es fehlerhaft in die item_proto ein?
Nein es geht um die specular Tabelle in der item_proto trage dort ganz normal zahlen ein und er setzt es wieder auf 0 wenn die neugeladen wird.
02/19/2019 02:28 Natsu Dragneel#6
Quote:
Originally Posted by »DeneX« View Post
Nein es geht um die specular Tabelle in der item_proto trage dort ganz normal zahlen ein und er setzt es wieder auf 0 wenn die neugeladen wird.
und hast du es mal mit server ganz abschließen, herunterfahren (rebooten) nd dann zu starten? ohne reload direkt? ja oder?
02/19/2019 02:30 »DeneX«#7
Quote:
Originally Posted by abdu931 View Post
und hast du es mal mit server ganz abschließen, herunterfahren (rebooten) nd dann zu starten? ohne reload direkt? ja oder?
Ja kommt das gleiche bei raus
02/28/2019 19:45 Benhero#8
Dann würde ich mal überprüfen per ausgabe ob "t.bSpecular" überhaupt einen Wert beinhaltet und wenn ja welchen und von wo es diesen ausliest. Den das ist der Wert der in die entsprechende Spalte geschrieben wird.

Beziehungsweise, kann es sein das du mit Text Item_proto arbeitest? So sieht es zumindest laut funktion aus...

Grüße
02/28/2019 22:40 Ocelot2606#9
Du hast Hier die Funktion MirrorIntoDB deswegen die Frage bist du dir sicher das er die Sachen aus der item_proto in der Datenbank liest und eh nicht aus der item_proto.txt
03/01/2019 12:29 »DeneX«#10
Quote:
Originally Posted by Ocelot2606 View Post
Du hast Hier die Funktion MirrorIntoDB deswegen die Frage bist du dir sicher das er die Sachen aus der item_proto in der Datenbank liest und eh nicht aus der item_proto.txt
Ja habs gefixxt bekommen kann geclosed werden.

MirrorItemTableIntoDB specular einfügen

Code:
"refined_vnum, refine_set, magic_pct, socket_pct, addon_type, specular, "
Code:
"%d, %d, %d, %d, %d, %d"
GetTablePostfix

Code:
t.bSpecular,
MYSQL_ROW

Code:
if (row[34] && *row[34]) temp.bSpecular = strtoul(row[16], NULL, 10);
ProtoReader.cpp

//column

Code:
itemTable->bSpecular = dataArray[34];