#include "stdafx.h"
void DragonTools(INIReader reader)
{
CreateObjectFileClass save;
ObjFileHeadInfo info;
int start = EM_ObjectClassType_Dragon * Def_ObjectClass_BlockSize + 1;
int end = start + g_ObjectData->GetObjTypeTotalCnt( EM_ObjectClassType_Dragon );
save.OpenFile( "Dragons.db" , g_ObjectData->GetObjTypeTotalCnt( EM_ObjectClassType_Dragon ) , g_ObjectData->GetObjReader( start ) , info );
int ead = end +1;
for (int i = start; i < ead; ++i )
{
//printf("%i of %i\n", i, ead);
GameObjDbStructEx *objDb = g_ObjectData->GetObj(i);
if(objDb){
//printf("ObjID: %i\n", objDb->ObjID);
//printf("Name: %S\n", objDb->GetName());
add_log(".\\Dragon.log", "\n");
add_log(".\\Dragon.log", "==========================================================\n");
add_log(".\\Dragon.log", "ID: %i\n", i);
add_log(".\\Dragon.log", "Name: %S\n", objDb->GetName());
add_log(".\\Dragon.log", "TagID: %i\n", objDb->TagID);
add_log(".\\Dragon.log", "ObjID: %i\n", objDb->ObjID);
add_log(".\\Dragon.log", "Classification: %i\n", objDb->Classification);
add_log(".\\Dragon.log", "ImageID: %i\n", objDb->ImageID );
add_log(".\\Dragon.log", "GameNote: %S\n", objDb->GameNote);
add_log(".\\Dragon.log", "DesignNote: %S\n", objDb->DesignNote);
add_log(".\\Dragon.log", "ACTField: %s\n", objDb->ACTField );
add_log(".\\Dragon.log", "ACTWorld: %s\n", objDb->ACTWorld );
add_log(".\\Dragon.log", "CheckTag: %i\n", objDb->CheckTag);
add_log(".\\Dragon.log", "==========================================================\n");
add_log(".\\Dragon.log", "objDb->NPC\n");
add_log(".\\Dragon.log", "==========================================================\n");
add_log(".\\Dragon.log", "NickName: %S\n", objDb->NPC->NickName );
add_log(".\\Dragon.log", "ModelSize: %i\n", objDb->NPC->ModelSize );
add_log(".\\Dragon.log", "PetSize: %i\n", objDb->NPC->PetSize );
add_log(".\\Dragon.log", "RideSize: %i\n", objDb->NPC->RideSize );
add_log(".\\Dragon.log", "BoundRadiusX: %f\n", objDb->NPC->BoundRadiusX );
add_log(".\\Dragon.log", "BoundRadiusY: %f\n", objDb->NPC->BoundRadiusY );
add_log(".\\Dragon.log", "BoundHeight: %f\n", objDb->NPC->BoundHeight );
add_log(".\\Dragon.log", "BoundBack: %f\n", objDb->NPC->BoundBack );
add_log(".\\Dragon.log", "BoundCollisionPower: %f\n", objDb->NPC->BoundCollisionPower );
add_log(".\\Dragon.log", "BoundUseBone: %i\n", objDb->NPC->BoundUseBone );
add_log(".\\Dragon.log", "Shadow: %i\n", objDb->NPC->Shadow );
add_log(".\\Dragon.log", "Race: %i\n", objDb->NPC->Race );
add_log(".\\Dragon.log", "Job: %i\n", objDb->NPC->Job );
add_log(".\\Dragon.log", "Sex: %i\n", objDb->NPC->Sex );
add_log(".\\Dragon.log", "Physique: %i\n", objDb->NPC->Physique );
add_log(".\\Dragon.log", "StarLv: %i\n", objDb->NPC->StarLv );
add_log(".\\Dragon.log", "ExpRate: %i\n", objDb->NPC->ExpRate );
add_log(".\\Dragon.log", "ModelType: %i\n", objDb->NPC->ModelType );
add_log(".\\Dragon.log", "MinLevel: %i\n", objDb->NPC->MinLevel );
add_log(".\\Dragon.log", "MaxLevel: %i\n", objDb->NPC->MaxLevel );
add_log(".\\Dragon.log", "MoveSpeed: %i\n", objDb->NPC->MoveSpeed );
add_log(".\\Dragon.log", "SkySpeed: %i\n", objDb->NPC->SkySpeed );
add_log(".\\Dragon.log", "WaterSpeed: %i\n", objDb->NPC->WaterSpeed );
add_log(".\\Dragon.log", "SearchRange: %i\n", objDb->NPC->SearchRange );
add_log(".\\Dragon.log", "SearchRangeY: %i\n", objDb->NPC->SearchRangeY );
add_log(".\\Dragon.log", "KeepDistance: %i\n", objDb->NPC->KeepDistance );
add_log(".\\Dragon.log", "FollowRange: %i\n", objDb->NPC->FollowRange );
add_log(".\\Dragon.log", "FollowRangeY: %i\n", objDb->NPC->FollowRangeY );
add_log(".\\Dragon.log", "RotateTime: %f\n", objDb->NPC->RotateTime );
add_log(".\\Dragon.log", "RotateAngle: %i\n", objDb->NPC->RotateAngle );
add_log(".\\Dragon.log", "RotateNoVDA: %i\n", objDb->NPC->RotateNoVDA );
add_log(".\\Dragon.log", "StartMoveDist: %i\n", objDb->NPC->StartMoveDist );
add_log(".\\Dragon.log", "CampID: %i\n", objDb->NPC->CampID );
add_log(".\\Dragon.log", "TitleName: %S\n", objDb->NPC->TitleName );
add_log(".\\Dragon.log", "ReviveTime: %i\n", objDb->NPC->ReviveTime );
add_log(".\\Dragon.log", "Collections: %i\n", objDb->NPC->Collections );
add_log(".\\Dragon.log", "SearchGroupID: %i\n", objDb->NPC->SearchGroupID );
add_log(".\\Dragon.log", "SearchEnemyType: %i\n", objDb->NPC->SearchEnemyType );
add_log(".\\Dragon.log", "HelpType: %i\n", objDb->NPC->HelpType );
add_log(".\\Dragon.log", "RaceGroupType: %i\n", objDb->NPC->RaceGroupType );
add_log(".\\Dragon.log", "RaiseChangeNPCID[0]: %i\n", objDb->NPC->RaiseChangeNPCID[0] );
add_log(".\\Dragon.log", "RaiseChangeNPCID[1]: %i\n", objDb->NPC->RaiseChangeNPCID[1] );
add_log(".\\Dragon.log", "RaiseChangeRate[0]: %i\n", objDb->NPC->RaiseChangeRate[0] );
add_log(".\\Dragon.log", "RaiseChangeRate[1]: %i\n", objDb->NPC->RaiseChangeRate[1] );
add_log(".\\Dragon.log", "PhyResistRate[0]: %i\n", objDb->NPC->PhyResistRate[0] );
add_log(".\\Dragon.log", "PhyResistRate[1]: %i\n", objDb->NPC->PhyResistRate[1] );
add_log(".\\Dragon.log", "PhyResistRate[2]: %i\n", objDb->NPC->PhyResistRate[2] );
add_log(".\\Dragon.log", "Resist[0]: %i\n", objDb->NPC->Resist[0] );
add_log(".\\Dragon.log", "Resist[1]: %i\n", objDb->NPC->Resist[1] );
add_log(".\\Dragon.log", "Resist[2]: %i\n", objDb->NPC->Resist[2] );
add_log(".\\Dragon.log", "DeadDropPlot: %s\n", objDb->NPC->DeadDropPlot );
add_log(".\\Dragon.log", "MainHandEQ[0]: %i\n", objDb->NPC->MainHandEQ[0] );
add_log(".\\Dragon.log", "MainHandEQ[1]: %i\n", objDb->NPC->MainHandEQ[1] );
add_log(".\\Dragon.log", "MainHandEQ[2]: %i\n", objDb->NPC->MainHandEQ[2] );
add_log(".\\Dragon.log", "MainHandEQ[3]: %i\n", objDb->NPC->MainHandEQ[3] );
add_log(".\\Dragon.log", "MainHandEQ[4]: %i\n", objDb->NPC->MainHandEQ[4] );
add_log(".\\Dragon.log", "SecHandEQ[0]: %i\n", objDb->NPC->MainHandEQ[0] );
add_log(".\\Dragon.log", "SecHandEQ[1]: %i\n", objDb->NPC->MainHandEQ[1] );
add_log(".\\Dragon.log", "SecHandEQ[2]: %i\n", objDb->NPC->MainHandEQ[2] );
add_log(".\\Dragon.log", "SecHandEQ[3]: %i\n", objDb->NPC->MainHandEQ[3] );
add_log(".\\Dragon.log", "SecHandEQ[4]: %i\n", objDb->NPC->MainHandEQ[4] );
add_log(".\\Dragon.log", "ScriptMode: %i\n", objDb->NPC->ScriptMode );
add_log(".\\Dragon.log", "ObjType: %i\n", objDb->NPC->ObjType );
add_log(".\\Dragon.log", "MapIcon: %i\n", objDb->NPC->MapIcon );
add_log(".\\Dragon.log", "ActionTip: %i\n", objDb->NPC->ActionTip );
add_log(".\\Dragon.log", "LandNPCStorage: %i\n", objDb->NPC->LandNPCStorage );
add_log(".\\Dragon.log", "Enemy_EnemyGroupSet: %i\n", objDb->NPC->Enemy_EnemyGroupSet );
add_log(".\\Dragon.log", "Enemy_MyGroupSet: %i\n", objDb->NPC->Enemy_MyGroupSet );
add_log(".\\Dragon.log", "MaxAttackRange: %i\n", objDb->NPC->MaxAttackRange );
add_log(".\\Dragon.log", "SendAttackRange: %i\n", objDb->NPC->SendAttackRange );
add_log(".\\Dragon.log", "BallTNP2Set[0]: %i\n", objDb->NPC->BallTNP2Set[0] );
add_log(".\\Dragon.log", "BallTNP2Set[1]: %i\n", objDb->NPC->BallTNP2Set[1] );
add_log(".\\Dragon.log", "BallTNP2Set[2]: %i\n", objDb->NPC->BallTNP2Set[2] );
add_log(".\\Dragon.log", "BallTNP2Set[3]: %i\n", objDb->NPC->BallTNP2Set[3] );
add_log(".\\Dragon.log", "BallTNP2Set[4]: %i\n", objDb->NPC->BallTNP2Set[4] );
add_log(".\\Dragon.log", "BallTNP2Set[5]: %i\n", objDb->NPC->BallTNP2Set[5] );
add_log(".\\Dragon.log", "BallTNP2Set[6]: %i\n", objDb->NPC->BallTNP2Set[6] );
add_log(".\\Dragon.log", "BallTNP2Set[7]: %i\n", objDb->NPC->BallTNP2Set[7] );
add_log(".\\Dragon.log", "BallTNP2Set[8]: %i\n", objDb->NPC->BallTNP2Set[8] );
add_log(".\\Dragon.log", "BallTNP2Set[9]: %i\n", objDb->NPC->BallTNP2Set[9] );
add_log(".\\Dragon.log", "TrainNodeCount: %i\n", objDb->NPC->TrainNodeCount );
add_log(".\\Dragon.log", "MobTalentGroupID: %i\n", objDb->NPC->MobTalentGroupID );
add_log(".\\Dragon.log", "PetTalentGroupID: %i\n", objDb->NPC->PetTalentGroupID );
add_log(".\\Dragon.log", "DropType[0]: %i\n", objDb->NPC->DropType[0] );
add_log(".\\Dragon.log", "DropType[1]: %i\n", objDb->NPC->DropType[1] );
add_log(".\\Dragon.log", "DropType[2]: %i\n", objDb->NPC->DropType[2] );
add_log(".\\Dragon.log", "DropRate[0]: %f\n", objDb->NPC->DropRate[0] );
add_log(".\\Dragon.log", "DropRate[1]: %f\n", objDb->NPC->DropRate[1] );
add_log(".\\Dragon.log", "DropRate[2]: %f\n", objDb->NPC->DropRate[2] );
add_log(".\\Dragon.log", "SearchType: %i\n", objDb->NPC->SearchType );
add_log(".\\Dragon.log", "SearchRate: %i\n", objDb->NPC->SearchRate );
add_log(".\\Dragon.log", "DecorateFee: %i\n", objDb->NPC->DecorateFee );
add_log(".\\Dragon.log", "UseCommonDrop: %i\n", objDb->NPC->UseCommonDrop );
add_log(".\\Dragon.log", "CannonACTWorld: %s\n", objDb->NPC->CannonACTWorld );
add_log(".\\Dragon.log", "RaceGroup: %i\n", objDb->NPC->RaceGroup );
add_log(".\\Dragon.log", "MobTalentBeginFightPlot: %s\n", objDb->NPC->MobTalentBeginFightPlot );
add_log(".\\Dragon.log", "SpiritShieldRate: %i\n", objDb->NPC->SpiritShieldRate );
add_log(".\\Dragon.log", "Damage[0]: %f\n", objDb->NPC->Damage[0] );
add_log(".\\Dragon.log", "Damage[1]: %f\n", objDb->NPC->Damage[1] );
add_log(".\\Dragon.log", "Damage[2]: %f\n", objDb->NPC->Damage[2] );
add_log(".\\Dragon.log", "==========================================================\n");
add_log(".\\Dragon.log", "objDb->NPC->Paperdoll\n");
add_log(".\\Dragon.log", "==========================================================\n");
add_log(".\\Dragon.log", "PartName[0]: %s\n", objDb->NPC->Paperdoll->Part[0].PartName );
add_log(".\\Dragon.log", "PartName[0]: %s\n", objDb->NPC->Paperdoll->Part[1].PartName );
add_log(".\\Dragon.log", "PartName[0]: %s\n", objDb->NPC->Paperdoll->Part[2].PartName );
add_log(".\\Dragon.log", "PartName[0]: %s\n", objDb->NPC->Paperdoll->Part[3].PartName );
add_log(".\\Dragon.log", "PartName[0]: %s\n", objDb->NPC->Paperdoll->Part[4].PartName );
add_log(".\\Dragon.log", "PartName[0]: %s\n", objDb->NPC->Paperdoll->Part[5].PartName );
add_log(".\\Dragon.log", "PartName[0]: %s\n", objDb->NPC->Paperdoll->Part[6].PartName );
add_log(".\\Dragon.log", "PartName[0]: %s\n", objDb->NPC->Paperdoll->Part[7].PartName );
add_log(".\\Dragon.log", "PartName[0]: %s\n", objDb->NPC->Paperdoll->Part[8].PartName );
add_log(".\\Dragon.log", "PartName[0]: %s\n", objDb->NPC->Paperdoll->Part[9].PartName );
add_log(".\\Dragon.log", "PartName[0]: %s\n", objDb->NPC->Paperdoll->Part[10].PartName );
add_log(".\\Dragon.log", "PartName[0]: %s\n", objDb->NPC->Paperdoll->Part[11].PartName );
add_log(".\\Dragon.log", "ComponentName[0]: %s\n", objDb->NPC->Paperdoll->Part[0].ComponentName);
add_log(".\\Dragon.log", "ComponentName[1]: %s\n", objDb->NPC->Paperdoll->Part[1].ComponentName );
add_log(".\\Dragon.log", "ComponentName[2]: %s\n", objDb->NPC->Paperdoll->Part[2].ComponentName );
add_log(".\\Dragon.log", "ComponentName[3]: %s\n", objDb->NPC->Paperdoll->Part[3].ComponentName );
add_log(".\\Dragon.log", "ComponentName[4]: %s\n", objDb->NPC->Paperdoll->Part[4].ComponentName);
add_log(".\\Dragon.log", "ComponentName[5]: %s\n", objDb->NPC->Paperdoll->Part[5].ComponentName );
add_log(".\\Dragon.log", "ComponentName[6]: %s\n", objDb->NPC->Paperdoll->Part[6].ComponentName );
add_log(".\\Dragon.log", "ComponentName[7]: %s\n", objDb->NPC->Paperdoll->Part[7].ComponentName );
add_log(".\\Dragon.log", "ComponentName[8]: %s\n", objDb->NPC->Paperdoll->Part[8].ComponentName);
add_log(".\\Dragon.log", "ComponentName[9]: %s\n", objDb->NPC->Paperdoll->Part[9].ComponentName);
add_log(".\\Dragon.log", "ComponentName[10]: %s\n", objDb->NPC->Paperdoll->Part[10].ComponentName );
add_log(".\\Dragon.log", "ComponentName[11]: %s\n", objDb->NPC->Paperdoll->Part[11].ComponentName );
add_log(".\\Dragon.log", "==========================================================\n");
add_log(".\\Dragon.log", "objDb->NPC->Dragon\n");
add_log(".\\Dragon.log", "==========================================================\n");
add_log(".\\Dragon.log", "RunSpeedLimit: %i\n", objDb->NPC->Dragon->RunSpeedLimit );
add_log(".\\Dragon.log", "RunSpeedInitialValue: %i\n", objDb->NPC->Dragon->RunSpeedInitialValue );
add_log(".\\Dragon.log", "AcquiredPointDiscount: %i\n", objDb->NPC->Dragon->AcquiredPointDiscount );
add_log(".\\Dragon.log", "ExtraAcquiredPoint: %i\n", objDb->NPC->Dragon->ExtraAcquiredPoint );
add_log(".\\Dragon.log", "IntelligenceInitValSeed: %i\n", objDb->NPC->Dragon->IntelligenceInitValSeed );
add_log(".\\Dragon.log", "OrgTacit: %i\n", objDb->NPC->Dragon->OrgTacit );
add_log(".\\Dragon.log", "ResistValue: %i\n", objDb->NPC->Dragon->ResistValue );
add_log(".\\Dragon.log", "Type: %i\n", objDb->NPC->Dragon->Type );
add_log(".\\Dragon.log", "Class: %i\n", objDb->NPC->Dragon->Class );
add_log(".\\Dragon.log", "BaseSkill: %i\n", objDb->NPC->Dragon->BaseSkill );
add_log(".\\Dragon.log", "MinSkillNum: %i\n", objDb->NPC->Dragon->DSkillDrop.MinSkillNum );
add_log(".\\Dragon.log", "MaxSkillNum: %i\n", objDb->NPC->Dragon->DSkillDrop.MaxSkillNum );
add_log(".\\Dragon.log", "BeforeContractScript: %s\n", objDb->NPC->Dragon->BeforeContractScript );
add_log(".\\Dragon.log", "AfterContractScript: %s\n", objDb->NPC->Dragon->AfterContractScript );
add_log(".\\Dragon.log", "FailContractScript: %s\n", objDb->NPC->Dragon->FailContractScript );
add_log(".\\Dragon.log", "CustomizeScript: %s\n", objDb->NPC->Dragon->CustomizeScript );
add_log(".\\Dragon.log", "==========================================================\n");
add_log(".\\Dragon.log", "objDb->NPC->Wagon\n");
add_log(".\\Dragon.log", "==========================================================\n");
add_log(".\\Dragon.log", "WagonCount: %i\n", objDb->NPC->Wagon->Count);
add_log(".\\Dragon.log", "WagonType: %i\n", objDb->NPC->Wagon->Type);
add_log(".\\Dragon.log", "WagonOnOffLuaScript: %s\n", objDb->NPC->Wagon->OnOffLuaScript);
add_log(".\\Dragon.log", "WagonCheckLuaScript: %s\n", objDb->NPC->Wagon->CheckLuaScript);
add_log(".\\Dragon.log", "WagonFlag: %i\n", objDb->NPC->Wagon->Mode);
add_log(".\\Dragon.log", "WagonReinX: %f\n", objDb->NPC->Wagon->ReinX);
add_log(".\\Dragon.log", "WagonReinY: %f\n", objDb->NPC->Wagon->ReinY);
add_log(".\\Dragon.log", "WagonReinZ: %f\n", objDb->NPC->Wagon->ReinZ);
add_log(".\\Dragon.log", "PetSaddleSize: %f\n", objDb->NPC->Wagon->PetSaddleSize);
add_log(".\\Dragon.log", "PetArmorSize: %f\n", objDb->NPC->Wagon->PetArmorSize);
add_log(".\\Dragon.log", "PetLimbAnnulusSize: %f\n", objDb->NPC->Wagon->PetLimbAnnulusSize);
add_log(".\\Dragon.log", "ActionID[0]: %i\n", objDb->NPC->Wagon->Node[0].ActionID );
add_log(".\\Dragon.log", "ActionID[1]: %i\n", objDb->NPC->Wagon->Node[1].ActionID );
add_log(".\\Dragon.log", "ActionID[2]: %i\n", objDb->NPC->Wagon->Node[2].ActionID );
add_log(".\\Dragon.log", "ActionID[3]: %i\n", objDb->NPC->Wagon->Node[3].ActionID );
add_log(".\\Dragon.log", "ActionID[4]: %i\n", objDb->NPC->Wagon->Node[4].ActionID );
add_log(".\\Dragon.log", "Point[0]: %s\n", objDb->NPC->Wagon->Node[0].Point );
add_log(".\\Dragon.log", "Point[1]: %s\n", objDb->NPC->Wagon->Node[1].Point );
add_log(".\\Dragon.log", "Point[2]: %s\n", objDb->NPC->Wagon->Node[2].Point );
add_log(".\\Dragon.log", "Point[3]: %s\n", objDb->NPC->Wagon->Node[3].Point );
add_log(".\\Dragon.log", "Point[4]: %s\n", objDb->NPC->Wagon->Node[4].Point );
add_log(".\\Dragon.log", "_Mode[0]: %i\n", objDb->NPC->Wagon->Node[0]._Mode );
add_log(".\\Dragon.log", "_Mode[1]: %i\n", objDb->NPC->Wagon->Node[1]._Mode );
add_log(".\\Dragon.log", "_Mode[2]: %i\n", objDb->NPC->Wagon->Node[2]._Mode );
add_log(".\\Dragon.log", "_Mode[3]: %i\n", objDb->NPC->Wagon->Node[3]._Mode );
add_log(".\\Dragon.log", "_Mode[4]: %i\n", objDb->NPC->Wagon->Node[4]._Mode );
add_log(".\\Dragon.log", "==========================================================\n");
add_log(".\\Dragon.log", "\n");
int ModeTheDragon = reader.GetInteger("tools", "ModeTheDragon", 0);
if(ModeTheDragon == 1){
int DragonID = reader.GetInteger("tools", "DragonID", 11000007);
if(i == DragonID){
int newStarLv = reader.GetInteger("Dragon", "StarLv", 0);
if(newStarLv != 0)
objDb->NPC->StarLv = newStarLv;
int newExpRate = reader.GetInteger("Dragon", "ExpRate", 0);
if(newExpRate != 0)
objDb->NPC->ExpRate = newExpRate;
int newMoveSpeed = reader.GetInteger("Dragon", "MoveSpeed", 0);
if(newMoveSpeed != 0)
objDb->NPC->MoveSpeed = newMoveSpeed;
int newSkySpeed = reader.GetInteger("Dragon", "SkySpeed", 0);
if(newMoveSpeed != 0)
objDb->NPC->SkySpeed = newSkySpeed;
int newWaterSpeed = reader.GetInteger("Dragon", "WaterSpeed", 0);
if(newWaterSpeed != 0)
objDb->NPC->WaterSpeed = newWaterSpeed;
int newRunSpeedLimit = reader.GetInteger("Dragon", "RunSpeedLimit", 0);
if(newRunSpeedLimit != 0)
objDb->NPC->Dragon->RunSpeedLimit = newRunSpeedLimit;
int newRunSpeedInitialValue = reader.GetInteger("Dragon", "RunSpeedInitialValue", 0);
if(newRunSpeedInitialValue != 0)
objDb->NPC->Dragon->RunSpeedInitialValue = newRunSpeedInitialValue;
int newAcquiredPointDiscount = reader.GetInteger("Dragon", "AcquiredPointDiscount", 0);
if(newAcquiredPointDiscount != 0)
objDb->NPC->Dragon->AcquiredPointDiscount = newAcquiredPointDiscount;
int newExtraAcquiredPoint = reader.GetInteger("Dragon", "ExtraAcquiredPoint", 0);
if(newExtraAcquiredPoint != 0)
objDb->NPC->Dragon->ExtraAcquiredPoint = newExtraAcquiredPoint;
int newIntelligenceInitValSeed = reader.GetInteger("Dragon", "IntelligenceInitValSeed", 0);
if(newIntelligenceInitValSeed != 0)
objDb->NPC->Dragon->IntelligenceInitValSeed = newIntelligenceInitValSeed;
int newOrgTacit = reader.GetInteger("Dragon", "OrgTacit", 0);
if(newOrgTacit != 0)
objDb->NPC->Dragon->OrgTacit = newOrgTacit;
int newResistValue = reader.GetInteger("Dragon", "ResistValue", 0);
if(newResistValue != 0)
objDb->NPC->Dragon->ResistValue = newResistValue;
int newType = reader.GetInteger("Dragon", "Type", 0);
if(newType != 0)
objDb->NPC->Dragon->Type = newType;
int newClass = reader.GetInteger("Dragon", "Class", 0);
if(newClass != 0)
objDb->NPC->Dragon->Class = newClass;
int newBaseSkill = reader.GetInteger("Dragon", "BaseSkill", 0);
if(newBaseSkill != 0)
objDb->NPC->Dragon->BaseSkill = newBaseSkill;
int newMinSkillNum = reader.GetInteger("Dragon", "MinSkillNum", 0);
if(newMinSkillNum != 0)
objDb->NPC->Dragon->DSkillDrop.MinSkillNum = newMinSkillNum;
int newMaxSkillNum = reader.GetInteger("Dragon", "MaxSkillNum", 0);
if(newMaxSkillNum != 0)
objDb->NPC->Dragon->DSkillDrop.MaxSkillNum = newMaxSkillNum;
std::string newComponentName0 = reader.Get("Dragon", "ComponentName0", "0");
if(newComponentName0 != "0")
objDb->NPC->Paperdoll->Part[0].ComponentName = (char * __ptr64)newComponentName0.c_str();
std::string newComponentName1 = reader.Get("Dragon", "ComponentName1", "0");
if(newComponentName1 != "0")
objDb->NPC->Paperdoll->Part[1].ComponentName = (char * __ptr64)newComponentName1.c_str();
std::string newComponentName2 = reader.Get("Dragon", "ComponentName2", "0");
if(newComponentName2 != "0")
objDb->NPC->Paperdoll->Part[2].ComponentName = (char * __ptr64)newComponentName2.c_str();
std::string newComponentName3 = reader.Get("Dragon", "ComponentName3", "0");
if(newComponentName3 != "0")
objDb->NPC->Paperdoll->Part[3].ComponentName = (char * __ptr64)newComponentName3.c_str();
std::string newComponentName4 = reader.Get("Dragon", "ComponentName4", "0");
if(newComponentName4 != "0")
objDb->NPC->Paperdoll->Part[4].ComponentName = (char * __ptr64)newComponentName4.c_str();
std::string newComponentName5 = reader.Get("Dragon", "ComponentName5", "0");
if(newComponentName5 != "0")
objDb->NPC->Paperdoll->Part[5].ComponentName = (char * __ptr64)newComponentName5.c_str();
std::string newComponentName6 = reader.Get("Dragon", "ComponentName6", "0");
if(newComponentName6 != "0")
objDb->NPC->Paperdoll->Part[6].ComponentName = (char * __ptr64)newComponentName6.c_str();
std::string newComponentName7 = reader.Get("Dragon", "ComponentName7", "0");
if(newComponentName7 != "0")
objDb->NPC->Paperdoll->Part[7].ComponentName = (char * __ptr64)newComponentName7.c_str();
std::string newComponentName8 = reader.Get("Dragon", "ComponentName8", "0");
if(newComponentName8 != "0")
objDb->NPC->Paperdoll->Part[8].ComponentName = (char * __ptr64)newComponentName8.c_str();
std::string newComponentName9 = reader.Get("Dragon", "ComponentName9", "0");
if(newComponentName9 != "0")
objDb->NPC->Paperdoll->Part[9].ComponentName = (char * __ptr64)newComponentName9.c_str();
std::string newComponentName10 = reader.Get("Dragon", "ComponentName10", "0");
if(newComponentName10 != "0")
objDb->NPC->Paperdoll->Part[10].ComponentName = (char * __ptr64)newComponentName10.c_str();
std::string newComponentName11 = reader.Get("Dragon", "ComponentName11", "0");
if(newComponentName11 != "0")
objDb->NPC->Paperdoll->Part[11].ComponentName = (char * __ptr64)newComponentName11.c_str();
}
}
save.SaveObject( objDb );
}else{
if(i != end){
printf("i: %i\n", i);
GameObjDbStructEx *objDb2 = g_ObjectData->GetObj(11000007);
objDb2->ObjID = i;
save.SaveObject( objDb2 );
}
}
int addnew = reader.GetInteger("tools", "AddNewDragon", 0);
if(addnew == 1){
if(i == ead -1){
int OLDObj = reader.GetInteger("tools", "OLDDragonID", 11000007);
printf("added new ID:%i OLD ID:%i\n", i, OLDObj);
GameObjDbStructEx *objDb2 = g_ObjectData->GetObj(OLDObj);
objDb2->ObjID = i;
int newStarLv = reader.GetInteger("Dragon", "StarLv", 0);
if(newStarLv != 0)
objDb2->NPC->StarLv = newStarLv;
int newExpRate = reader.GetInteger("Dragon", "ExpRate", 0);
if(newExpRate != 0)
objDb2->NPC->ExpRate = newExpRate;
int newMoveSpeed = reader.GetInteger("Dragon", "MoveSpeed", 0);
if(newMoveSpeed != 0)
objDb2->NPC->MoveSpeed = newMoveSpeed;
int newSkySpeed = reader.GetInteger("Dragon", "SkySpeed", 0);
if(newMoveSpeed != 0)
objDb2->NPC->SkySpeed = newSkySpeed;
int newWaterSpeed = reader.GetInteger("Dragon", "WaterSpeed", 0);
if(newWaterSpeed != 0)
objDb2->NPC->WaterSpeed = newWaterSpeed;
int newRunSpeedLimit = reader.GetInteger("Dragon", "RunSpeedLimit", 0);
if(newRunSpeedLimit != 0)
objDb2->NPC->Dragon->RunSpeedLimit = newRunSpeedLimit;
int newRunSpeedInitialValue = reader.GetInteger("Dragon", "RunSpeedInitialValue", 0);
if(newRunSpeedInitialValue != 0)
objDb2->NPC->Dragon->RunSpeedInitialValue = newRunSpeedInitialValue;
int newAcquiredPointDiscount = reader.GetInteger("Dragon", "AcquiredPointDiscount", 0);
if(newAcquiredPointDiscount != 0)
objDb2->NPC->Dragon->AcquiredPointDiscount = newAcquiredPointDiscount;
int newExtraAcquiredPoint = reader.GetInteger("Dragon", "ExtraAcquiredPoint", 0);
if(newExtraAcquiredPoint != 0)
objDb2->NPC->Dragon->ExtraAcquiredPoint = newExtraAcquiredPoint;
int newIntelligenceInitValSeed = reader.GetInteger("Dragon", "IntelligenceInitValSeed", 0);
if(newIntelligenceInitValSeed != 0)
objDb2->NPC->Dragon->IntelligenceInitValSeed = newIntelligenceInitValSeed;
int newOrgTacit = reader.GetInteger("Dragon", "OrgTacit", 0);
if(newOrgTacit != 0)
objDb2->NPC->Dragon->OrgTacit = newOrgTacit;
int newResistValue = reader.GetInteger("Dragon", "ResistValue", 0);
if(newResistValue != 0)
objDb2->NPC->Dragon->ResistValue = newResistValue;
int newType = reader.GetInteger("Dragon", "Type", 0);
if(newType != 0)
objDb2->NPC->Dragon->Type = newType;
int newClass = reader.GetInteger("Dragon", "Class", 0);
if(newClass != 0)
objDb2->NPC->Dragon->Class = newClass;
int newBaseSkill = reader.GetInteger("Dragon", "BaseSkill", 0);
if(newBaseSkill != 0)
objDb2->NPC->Dragon->BaseSkill = newBaseSkill;
int newMinSkillNum = reader.GetInteger("Dragon", "MinSkillNum", 0);
if(newMinSkillNum != 0)
objDb2->NPC->Dragon->DSkillDrop.MinSkillNum = newMinSkillNum;
int newMaxSkillNum = reader.GetInteger("Dragon", "MaxSkillNum", 0);
if(newMaxSkillNum != 0)
objDb2->NPC->Dragon->DSkillDrop.MaxSkillNum = newMaxSkillNum;
std::string newComponentName0 = reader.Get("Dragon", "ComponentName0", "0");
if(newComponentName0 != "0")
objDb2->NPC->Paperdoll->Part[0].ComponentName = (char * __ptr64)newComponentName0.c_str();
std::string newComponentName1 = reader.Get("Dragon", "ComponentName1", "0");
if(newComponentName1 != "0")
objDb2->NPC->Paperdoll->Part[1].ComponentName = (char * __ptr64)newComponentName1.c_str();
std::string newComponentName2 = reader.Get("Dragon", "ComponentName2", "0");
if(newComponentName2 != "0")
objDb2->NPC->Paperdoll->Part[2].ComponentName = (char * __ptr64)newComponentName2.c_str();
std::string newComponentName3 = reader.Get("Dragon", "ComponentName3", "0");
if(newComponentName3 != "0")
objDb2->NPC->Paperdoll->Part[3].ComponentName = (char * __ptr64)newComponentName3.c_str();
std::string newComponentName4 = reader.Get("Dragon", "ComponentName4", "0");
if(newComponentName4 != "0")
objDb2->NPC->Paperdoll->Part[4].ComponentName = (char * __ptr64)newComponentName4.c_str();
std::string newComponentName5 = reader.Get("Dragon", "ComponentName5", "0");
if(newComponentName5 != "0")
objDb2->NPC->Paperdoll->Part[5].ComponentName = (char * __ptr64)newComponentName5.c_str();
std::string newComponentName6 = reader.Get("Dragon", "ComponentName6", "0");
if(newComponentName6 != "0")
objDb2->NPC->Paperdoll->Part[6].ComponentName = (char * __ptr64)newComponentName6.c_str();
std::string newComponentName7 = reader.Get("Dragon", "ComponentName7", "0");
if(newComponentName7 != "0")
objDb2->NPC->Paperdoll->Part[7].ComponentName = (char * __ptr64)newComponentName7.c_str();
std::string newComponentName8 = reader.Get("Dragon", "ComponentName8", "0");
if(newComponentName8 != "0")
objDb2->NPC->Paperdoll->Part[8].ComponentName = (char * __ptr64)newComponentName8.c_str();
std::string newComponentName9 = reader.Get("Dragon", "ComponentName9", "0");
if(newComponentName9 != "0")
objDb2->NPC->Paperdoll->Part[9].ComponentName = (char * __ptr64)newComponentName9.c_str();
std::string newComponentName10 = reader.Get("Dragon", "ComponentName10", "0");
if(newComponentName10 != "0")
objDb2->NPC->Paperdoll->Part[10].ComponentName = (char * __ptr64)newComponentName10.c_str();
std::string newComponentName11 = reader.Get("Dragon", "ComponentName11", "0");
if(newComponentName11 != "0")
objDb2->NPC->Paperdoll->Part[11].ComponentName = (char * __ptr64)newComponentName11.c_str();
add_log(".\\Dragon.log", "\n");
add_log(".\\Dragon.log", "==========================================================\n");
add_log(".\\Dragon.log", "New Dragon added (ID) %i\n", i);
add_log(".\\Dragon.log", "==========================================================\n");
add_log(".\\Dragon.log", "StarLv: %i\n", objDb2->NPC->StarLv );
add_log(".\\Dragon.log", "ExpRate: %i\n", objDb2->NPC->ExpRate );
add_log(".\\Dragon.log", "MoveSpeed: %i\n", objDb2->NPC->MoveSpeed );
add_log(".\\Dragon.log", "SkySpeed: %i\n", objDb2->NPC->SkySpeed );
add_log(".\\Dragon.log", "WaterSpeed: %i\n", objDb2->NPC->WaterSpeed );
add_log(".\\Dragon.log", "RunSpeedLimit: %i\n", objDb2->NPC->Dragon->RunSpeedLimit );
add_log(".\\Dragon.log", "RunSpeedInitialValue: %i\n", objDb2->NPC->Dragon->RunSpeedInitialValue );
add_log(".\\Dragon.log", "AcquiredPointDiscount: %i\n", objDb2->NPC->Dragon->AcquiredPointDiscount );
add_log(".\\Dragon.log", "ExtraAcquiredPoint: %i\n", objDb2->NPC->Dragon->ExtraAcquiredPoint );
add_log(".\\Dragon.log", "IntelligenceInitValSeed: %i\n", objDb2->NPC->Dragon->IntelligenceInitValSeed );
add_log(".\\Dragon.log", "OrgTacit: %i\n", objDb2->NPC->Dragon->OrgTacit );
add_log(".\\Dragon.log", "ResistValue: %i\n", objDb2->NPC->Dragon->ResistValue );
add_log(".\\Dragon.log", "Type: %i\n", objDb2->NPC->Dragon->Type );
add_log(".\\Dragon.log", "Class: %i\n", objDb2->NPC->Dragon->Class );
add_log(".\\Dragon.log", "BaseSkill: %i\n", objDb2->NPC->Dragon->BaseSkill );
add_log(".\\Dragon.log", "MinSkillNum: %i\n", objDb2->NPC->Dragon->DSkillDrop.MinSkillNum );
add_log(".\\Dragon.log", "MaxSkillNum: %i\n", objDb2->NPC->Dragon->DSkillDrop.MaxSkillNum );
add_log(".\\Dragon.log", "==========================================================\n");
add_log(".\\Dragon.log", "BeforeContractScript: %s\n", objDb2->NPC->Dragon->BeforeContractScript );
add_log(".\\Dragon.log", "AfterContractScript: %s\n", objDb2->NPC->Dragon->AfterContractScript );
add_log(".\\Dragon.log", "FailContractScript: %s\n", objDb2->NPC->Dragon->FailContractScript );
add_log(".\\Dragon.log", "CustomizeScript: %s\n", objDb2->NPC->Dragon->CustomizeScript );
add_log(".\\Dragon.log", "==========================================================\n");
add_log(".\\Dragon.log", "ImageID: %i\n", objDb2->ImageID );
add_log(".\\Dragon.log", "ACTField: %s\n", objDb2->ACTField );
add_log(".\\Dragon.log", "ACTWorld: %s\n", objDb2->ACTWorld );
add_log(".\\Dragon.log", "==========================================================\n");
add_log(".\\Dragon.log", "\n");
save.SaveObject( objDb2 );
}
}
}
save.SaveToFile();
save.CloseFile();
}