Ultima modifica:
@Zlays Io ho risolto il problema che mi bloccava all'entrata del gameserver, bastava aggiornare la struttura delle tabelle, sono andato a vedere tutte le modifiche effettuate sulla repository di github e mi sono schiaffeggiato per 2 minuti per non essermi accorto che il db era stato aggiornato.
Ad ogni modo, ieri ho estratto dal game la tabella delle skill e degli item, per gli item purtroppo non sono riuscito a prendere i nomi (mi esce un solo simbolo per item).
Se volete vi rilascio il codice che ho scritto per farlo, anzi ve lo lascio sotto. (devo ringraziare Daneos di ragezone per avermi dato l'idea, io stavo ancora tentando di decompilare i file rdf "dall'esterno")
Struttura items: https://mega.co.nz/#!G1pHWaAZ!Pkc9kiZmNIUO7ZNKtZxb-vTty6HU0J7p13fHo78GQjs
Struttura skills: https://mega.co.nz/#!apB3FSDb!Vbhas7eF_4gEFYrNPujhdXd144qdn4l-hrRssIOqkZc
Codice Skill:
Codice:/* SKILL READING*/ ofstream fout("skill", ios::binary); if(fout.is_open()) { CSkillTable* pSkillTbl = g_pTableContainer->GetSkillTable(); cout << "File Opened successfully!!!. Writing data from array to file" << endl; for ( CTable::TABLEIT itSKILLS = pSkillTbl->Begin(); itSKILLS != pSkillTbl->End(); ++itSKILLS ) { sSKILL_TBLDAT* pSKILLTblData = (sSKILL_TBLDAT*) itSKILLS->second; fout << "ID: " << (int)pSKILLTblData->tblidx << " dwNextSkillTblidx: " << (int)pSKILLTblData->dwNextSkillTblidx << " Root_Skill: " << (int)pSKILLTblData->Root_Skill << " bDash_Able: " << (int)pSKILLTblData->bDash_Able << " bDefaultDisplayOff: " << (int)pSKILLTblData->bDefaultDisplayOff << " bKeep_Effect: " << (int)pSKILLTblData->bKeep_Effect << " bDash_AbSelfTrainble: " << (int)pSKILLTblData->bSelfTrain << " bValidity_Able: " << (int)pSKILLTblData->bValidity_Able << " byApply_Area_Size_1: " << (int)pSKILLTblData->byApply_Area_Size_1 << " byApply_Area_Size_2: " << (int)pSKILLTblData->byApply_Area_Size_2 << " byApply_Range: " << (int)pSKILLTblData->byApply_Range << " byApply_Target: " << (int)pSKILLTblData->byApply_Target << " byApply_Target_Max: " << (int)pSKILLTblData->byApply_Target_Max << " byAppoint_Target: " << (int)pSKILLTblData->byAppoint_Target << " byBuff_Group: " << (int)pSKILLTblData->byBuff_Group << " byPC_Class_Change: " << (int)pSKILLTblData->byPC_Class_Change << " byRequire_Epuip_Slot_Type: " << (int)pSKILLTblData->byRequire_Epuip_Slot_Type << " byRequire_Item_Type: " << (int)pSKILLTblData->byRequire_Item_Type << " byRequire_RP_Ball: " << (int)pSKILLTblData->byRequire_RP_Ball << " byRequire_Train_Level: " << (int)pSKILLTblData->byRequire_Train_Level << " bySkill_Active_Type: " << (int)pSKILLTblData->bySkill_Active_Type << " bySkill_Class: " << (int)pSKILLTblData->bySkill_Class << " bySkill_Grade: " << (int)pSKILLTblData->bySkill_Grade << " bySkill_Type: " << (int)pSKILLTblData->bySkill_Type << " bySlot_Index: " << (int)pSKILLTblData->bySlot_Index << " dwPC_Class_Bit_Flag: " << (int)pSKILLTblData->dwPC_Class_Bit_Flag << " dwRequire_Zenny: " << (int)pSKILLTblData->dwRequire_Zenny << " fSuccess_Rate: " << (float)pSKILLTblData->fSuccess_Rate << " uiRequire_Skill_Tblidx_Max_1: " << (float)pSKILLTblData->uiRequire_Skill_Tblidx_Max_1 << " uiRequire_Skill_Tblidx_Max_2: " << (int)pSKILLTblData->uiRequire_Skill_Tblidx_Max_2 << " uiRequire_Skill_Tblidx_Min_1: " << (int)pSKILLTblData->uiRequire_Skill_Tblidx_Min_1 << " uiRequire_Skill_Tblidx_Min_2: " << (int)pSKILLTblData->uiRequire_Skill_Tblidx_Min_2 << " wAction_Animation_Index: " << (int)pSKILLTblData->wAction_Animation_Index << " wAction_End_Animation_Index: " << (int)pSKILLTblData->wAction_End_Animation_Index << " wAction_Loop_Animation_Index: " << (int)pSKILLTblData->wAction_Loop_Animation_Index << " wAdditional_Aggro_Point: " << (int)pSKILLTblData->wAdditional_Aggro_Point << " wCasting_Animation_Loop: " << (int)pSKILLTblData->wCasting_Animation_Loop << " wCasting_Animation_Start: " << (int)pSKILLTblData->wCasting_Animation_Start << " wCool_Time: " << (int)pSKILLTblData->wCool_Time << " wFunction_Bit_Flag: " << (int)pSKILLTblData->wFunction_Bit_Flag << " wKeep_Time: " << (int)pSKILLTblData->wKeep_Time << " wNext_Skill_Train_Exp: " << (int)pSKILLTblData->wNext_Skill_Train_Exp << " wRequireSP: " << (int)pSKILLTblData->wRequireSP << " wRequire_EP: " << (int)pSKILLTblData->wRequire_EP << " wRequire_LP: " << (int)pSKILLTblData->wRequire_LP <<endl; } } /*SKILL READING*/
Codice Item:
Codice:/*Item Reading*/ ofstream fout("items", ios::binary); if(fout.is_open()) { CItemTable* itemTbl = g_pTableContainer->GetItemTable(); cout << "File Opened successfully!!!. Writing data from array to file" << endl; for ( CTable::TABLEIT itITEMS = itemTbl->Begin(); itITEMS != itemTbl->End(); ++itITEMS ) { sITEM_TBLDAT* pItemData = (sITEM_TBLDAT*) itITEMS->second; fout << "ID: " << (int)pItemData->tblidx << " Rank: " << (int)pItemData->byRank << " Item_Type: " << (int)pItemData->byItem_Type << " Equip_Type: " << (int)pItemData->byEquip_Type << " Equip_Slot_Type_Bit_Flag: " << (int)pItemData->wEquip_Slot_Type_Bit_Flag << " Function_Bit_Flag: " << (int)pItemData->wFunction_Bit_Flag << " Max_Stack: " << (int)pItemData->byMax_Stack << " Cost: " << (int)pItemData->dwCost << " Sell_Price: " << (int)pItemData->bySell_Price << " Durability: " << (int)pItemData->byDurability << " Durability_Count: " << (int)pItemData->byDurability_Count << " Battle_Attribute: " << (int)pItemData->byBattle_Attribute << " Physical_Offence: " << (int)pItemData->wPhysical_Offence << " Energy_Offence: " << (int)pItemData->wEnergy_Offence << " Physical_Defence: " << (int)pItemData->wPhysical_Defence << " Energy_Defence: " << (int)pItemData->wEnergy_Defence << " Physical_OffenceUpgrade: " << (int)pItemData->dwPhysical_OffenceUpgrade << " Energy_OffenceUpgrade: " << (int)pItemData->dwEnergy_OffenceUpgrade << " Physical_DefenceUpgrade: " << (int)pItemData->dwPhysical_DefenceUpgrade << " Energy_DefenceUpgrade: " << (int)pItemData->dwEnergy_DefenceUpgrade << " Attack_Range_Bonus: " << (float)pItemData->fAttack_Range_Bonus << " Attack_Speed_Rate: " << (int)pItemData->wAttack_Speed_Rate << " Need_Level: " << (int)pItemData->byNeed_Level << " Need_Class_Bit_Flag: " << (int)pItemData->dwNeed_Class_Bit_Flag << " Class_Special: " << (int)pItemData->byClass_Special << " Race_Special: " << (int)pItemData->byRace_Special << " Need_Str: " << (int)pItemData->byNeed_Str << " Need_Con: " << (int)pItemData->byNeed_Con << " Need_Foc: " << (int)pItemData->byNeed_Foc << " Need_Dex: " << (int)pItemData->byNeed_Dex << " Need_Sol: " << (int)pItemData->byNeed_Sol << " Need_Eng: " << (int)pItemData->byNeed_Eng << " set_Item_Tblidx: " << (int)pItemData->set_Item_Tblidx << " Note: " << (int)pItemData->Note << " Bag_Size: " << (int)pItemData->byBag_Size << " Scouter_Watt: " << (int)pItemData->wScouter_Watt << " Scouter_MaxPower: " << (int)pItemData->dwScouter_MaxPower << " Scouter_Parts_Type: " << (int)pItemData->byScouter_Parts_Type << " Scouter_Parts_Value: " << (int)pItemData->byScouter_Parts_Value << " Use_Item_Tblidx: " << (int)pItemData->Use_Item_Tblidx << " Item_Option_Tblidx: " << (int)pItemData->Item_Option_Tblidx << " ItemGroup: " << (int)pItemData->byItemGroup << " Charm_Tblidx: " << (int)pItemData->Charm_Tblidx << " CostumeHideBitFlag: " << (int)pItemData->wCostumeHideBitFlag << " NeedItemTblidx: " << (int)pItemData->NeedItemTblidx << " CommonPoint: " << (int)pItemData->CommonPoint << " CommonPointType: " << (int)pItemData->byCommonPointType << " NeedFunction: " << (int)pItemData->byNeedFunction << " UseDurationMax: " << (int)pItemData->dwUseDurationMax << " DurationType: " << (int)pItemData->byDurationType << " contentsTblidx: " << (int)pItemData->contentsTblidx << " DurationGroup: " << (int)pItemData->dwDurationGroup <<endl; } } /*Item Reading*/
o.o ggwp xD comunque ti esce solo un simbolo perche molto probabilmente sono in coreano o qualche altra lingua della quale tu non disponi un font adatto per leggerlo allora dovrebbe apparire il classico quadratino
- - - Updated - - -
Ps:io se fossi in te aprirei un topic a parte con la lista di tutti gli item,skill,mob perche se a qualcuno dovesse servire...qui non la ritroverebbe nessuno xD