[SOURCE] AKCore

abalossa

Utente Emerald
30 Settembre 2009
1,078
91
126
419
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
 

sevendragon

Utente Emerald
7 Novembre 2008
1,497
16
365
386
Ti riferisci alle skill?
Si, non ci sono i nomi.

P.S Penso che per ora siamo in pochi ad interessarci, poi aprire un thread solo per postare due file.... :\
 

abalossa

Utente Emerald
30 Settembre 2009
1,078
91
126
419
Ultima modifica:
Ti riferisci alle skill?
Si, non ci sono i nomi.

P.S Penso che per ora siamo in pochi ad interessarci, poi aprire un thread solo per postare due file.... :\
Uno che vuole givvarsi un item non puo perche un cattivone come te non gli ha messo a disposizione l'id dell'item? :p
se ci fossero i nomi sarebbe ottimo cosi si potrebbero tradurre :\ dimmi dove hai preso le tabelle xD io so leggere i geroglifici xD
 

abalossa

Utente Emerald
30 Settembre 2009
1,078
91
126
419
Ultima modifica:
Cosa andrebbe fixato?

ps:sono riuscito a risolvere tutti i bug precedentemente riportati.
Nel caso a qualcuno servisse una mano non esitate a inviare un PM
 

abalossa

Utente Emerald
30 Settembre 2009
1,078
91
126
419
Ultima modifica:
Teoricamente ho risolto il bug dello shop(Quando compri piu oggetti contemporaneamente te ne da 1 solo...) il problema è che lo fixato sul client della AKCore...quando vado a compilarlo ho questo problema:
ddeyh4.png

@sevendragon
 

sevendragon

Utente Emerald
7 Novembre 2008
1,497
16
365
386
Ultima modifica:
Devi installare l'sdk di directx, come vedi nelle inclusioni usa la variabile di ambiente dxsdk_dir, per cui se installi l'sdk in maniera "personalizzata" dovrai inserire il percorso o crearti a mano la variabile associando il path dell'sdk.
 

abalossa

Utente Emerald
30 Settembre 2009
1,078
91
126
419
Devi installare l'sdk di directx, come vedi nelle inclusioni usa la variabile di ambiente dxsdk_dir, per cui se installi l'sdk in maniera "personalizzata" dovrai inserire il percorso o crearti a mano la variabile associando il path dell'sdk.

Gia ho implementato directx sdk...pero come puoi vedere nonostante non va .-.
 

sevendragon

Utente Emerald
7 Novembre 2008
1,497
16
365
386
Sei sicuro che l'installazione si sia conclusa con successo?
Su windows 7 c'è un bug che fa fallire l'installazione.
Hai provato anche a mettere direttamente il percorso?
 

abalossa

Utente Emerald
30 Settembre 2009
1,078
91
126
419
Sei sicuro che l'installazione si sia conclusa con successo?
Su windows 7 c'è un bug che fa fallire l'installazione.
Hai provato anche a mettere direttamente il percorso?
il percorso è stato inserito personalmente da me...anzi..conosci un metodo per far si che venga auto implementato automaticamente in tutti i progetti come succede per "boost"?
 

sevendragon

Utente Emerald
7 Novembre 2008
1,497
16
365
386
Allora, controlla una cosa, tasto destro su Computer-> Proprietà -> Impostazioni di sistema avanzate -> Tab Avanzate, in basso c'è variabili d'ambiente, vedi se esiste DXSDK_DIR nel riquadro "Variabili di sistema" e controlla che il valore sia associato al percorso dell'SDK installato.
 

Smarty1098

Utente Silver
17 Agosto 2013
120
7
21
70
Sono finalmente riuscito a compilare tutto tranne ChatServer mi da questo errore:

Error 2 error LNK2019: unresolved external symbol "public: void __thiscall ChatFunctionsClass::AddRemoveFriend(int,int,bool,bool)" ([email protected]@@[email protected]) referenced in function "public: void __thiscall CClientSession::SendAddFriend(class CNtlPacket *,class CChatServer *)" ([email protected]@@[email protected]@[email protected]@@Z) C:\Users\Samuel\Desktop\DBO\server\AKcore\AKCore-master\Server\ChatServer\PacketChatServer.obj


Consigli?