Mandrilux

Member
  • Content Count

    809
  • Joined

  • Last visited

  • Points

    210 [ Donate ]

Community Reputation

13 Neutre

About Mandrilux

  • Rank
    Canonnier

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Tu semble avoir des erreurs dans le "mobload" , hors je n'ai pas publié de code pour mob proto Donc non ce n'est pas moi qui est fourni le code que tu as. j'ai publié uniquement item proto. déja à la ligne 188 remplace std::auto_ptr pkMsg(CDBManager::instance().DirectQuery(query)); par std::auto_ptr<SQLMsg> pkMsg(CDBManager::instance().DirectQuery(query)); Les autres erreurs semble etre la meme chose , le template "sqlMSg qui n'est pas déclaré
  2. J'ai repris le code et appliqué au file 2016 V3 et il ne fonctionne pas. Voila la version corrigé pour les fichiers 2016 V3 pour l'item proto bool CClientManager::InitializeItemTable() { char query[2048]; fprintf(stderr,"Loading item_proto from MySQL"); snprintf(query, sizeof(query), "SELECT vnum,name,%s,type,subtype,weight,size,antiflag,flag,wearflag,immuneflag+0,gold,shop_buy_price,refined_vnum," "refine_set,magic_pct,limittype0,limitvalue0,limittype1,limitvalue1,applytype0,applyvalue0," "applytype1,applyvalue1,applytype2,applyvalue2,value0,value1,value2,value3,value4,value5,socket_pct,addon_type FROM item_proto%s ORDER BY vnum", g_stLocaleNameColumn.c_str(), GetTablePostfix()); std::auto_ptr<SQLMsg> pkMsg(CDBManager::instance().DirectQuery(query)); SQLResult * pRes = pkMsg->Get(); if (!pRes->uiNumRows) return false; int addNumber = pRes->uiNumRows; if (!m_vec_itemTable.empty()) { sys_log(0, "RELOAD: item_proto"); m_vec_itemTable.clear(); m_map_itemTableByVnum.clear(); } m_vec_itemTable.resize(addNumber-1); memset(&m_vec_itemTable[0], 0, sizeof(TItemTable) * m_vec_itemTable.size()); TItemTable * item_table = &m_vec_itemTable[0]; MYSQL_ROW data; //return true; set<int> vnumSet; while ((data = mysql_fetch_row(pRes->pSQLResult))) { str_to_number(item_table->dwVnum, data[0]); strlcpy(item_table->szName,data[1] , sizeof(item_table->szName)); strlcpy(item_table->szLocaleName, data[2], sizeof(item_table->szLocaleName)); str_to_number(item_table->bType, data[3]); str_to_number(item_table->bSubType, data[4]); str_to_number(item_table->bWeight, data[5]); str_to_number(item_table->bSize, data[6]); str_to_number(item_table->dwAntiFlags, data[7]); str_to_number(item_table->dwFlags, data[8]); str_to_number(item_table->dwWearFlags, data[9]); str_to_number(item_table->dwImmuneFlag, data[10]); str_to_number(item_table->dwGold, data[11]); str_to_number(item_table->dwShopBuyPrice, data[12]); str_to_number(item_table->dwRefinedVnum, data[13]); str_to_number(item_table->wRefineSet, data[14]); str_to_number(item_table->bAlterToMagicItemPct, data[15]); item_table->cLimitRealTimeFirstUseIndex = -1; item_table->cLimitTimerBasedOnWearIndex = -1; str_to_number(item_table->aLimits[0].bType, data[16]); str_to_number(item_table->aLimits[0].lValue, data[17]); if (LIMIT_REAL_TIME_START_FIRST_USE == item_table->aLimits[0].bType) item_table->cLimitRealTimeFirstUseIndex = (char)0; if (LIMIT_TIMER_BASED_ON_WEAR == item_table->aLimits[0].bType) item_table->cLimitTimerBasedOnWearIndex = (char)0; str_to_number(item_table->aLimits[1].bType, data[18]); str_to_number(item_table->aLimits[1].lValue, data[19]); if (LIMIT_REAL_TIME_START_FIRST_USE == item_table->aLimits[1].bType) item_table->cLimitRealTimeFirstUseIndex = (char)1; if (LIMIT_TIMER_BASED_ON_WEAR == item_table->aLimits[1].bType) item_table->cLimitTimerBasedOnWearIndex = (char)1; str_to_number(item_table->aApplies[0].bType, data[20]); str_to_number(item_table->aApplies[0].lValue, data[21]); str_to_number(item_table->aApplies[1].bType, data[22]); str_to_number(item_table->aApplies[1].lValue, data[23]); str_to_number(item_table->aApplies[2].bType, data[24]); str_to_number(item_table->aApplies[2].lValue, data[25]); str_to_number(item_table->alValues[0], data[26]); str_to_number(item_table->alValues[1], data[27]); str_to_number(item_table->alValues[2], data[28]); str_to_number(item_table->alValues[3], data[29]); str_to_number(item_table->alValues[4], data[30]); str_to_number(item_table->alValues[5], data[31]); str_to_number(item_table->bGainSocketPct, data[32]); str_to_number(item_table->sAddonType, data[33]); vnumSet.insert(item_table->dwVnum); m_map_itemTableByVnum.insert(std::map<DWORD, TItemTable *>::value_type(item_table->dwVnum, item_table)); // test_map_mobTableByVnum.insert(std::map<DWORD, TMobTable *>::value_type(test_mob_table->dwVnum, test_mob_table)); sys_log(0, "ITEM: #%-5lu %-24s %-24s VAL: %d %ld %d %d %d %d WEAR %d ANTI %d IMMUNE %d REFINE %lu REFINE_SET %u MAGIC_PCT %u", item_table->dwVnum, item_table->szName, item_table->szLocaleName, item_table->alValues[0], item_table->alValues[1], item_table->alValues[2], item_table->alValues[3], item_table->alValues[4], item_table->alValues[5], item_table->dwWearFlags, item_table->dwAntiFlags, item_table->dwImmuneFlag, item_table->dwRefinedVnum, item_table->wRefineSet, item_table->bAlterToMagicItemPct); item_table++; } fprintf(stderr,"Complete LOAD ITEM ! %d Items loaded.\r\n",addNumber); return true; }
  3. oui , j'ai bien déclarer le + 1 je ne comprend vraiment pas d'ou vien le problème .
  4. je vais essayer , mais c'est vraiment qu'avec une seul arme que je porte
  5. Bonjour a tous, j'ai implanté une armure sur mon serveur et j'ai un soucis , je ne comprend pas pourquoi l'armure s'affiche pas quand je la porte. j'ai copié le gr2 dans pc / pc2 baso_arcobaleno_war_m.gr2 est bien nommé comme sa et est dans le dossier pc/warrior le shapeIndex est q'une fois présent pour la valeur 77 . le group ShapeData158 est déclaré egalement qu'une fois. la valeur ShapeIndex est bien la valeur de value3 coté BDD. Et voila la parti que j'ai rajouté dans les fichier de conf .msm . Group ShapeData158 { SpecialPath "d:/ymir Work/pc/warrior/" ShapeIndex 77 Model "baso_arcobaleno_war_m.gr2" } Je suis en fichier 2014 coté serveur et client 2014 (lanceur non compilé, en tout cas pas par moi) Pouvez vous m'aider ? En postant ma demande d'aide, j'affirme avoir lu et accepté le règlement des demandes d'aides.