Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void AAI_Monster::loadMonsterListStrutData(){
- if (!ReloadMonsterList)return;
- //begin Build Databale String
- int32 result = 0;
- FString SQLQuery = "";
- FString TableString;
- TArray<FString> err;
- if (MobListSelection.Num() == 0)MobListSelection.Add(FDataTableRowHandle());
- TableString = FString(",MonsterID,MonsterName,ActorData,ClassData\n");
- if (MOB_LowLimit > MOB_HighLimit)MOB_HighLimit = MOB_LowLimit;
- if (MOB_HighLimit< MOB_HighLimit)MOB_HighLimit = MOB_LowLimit;
- ReloadMonsterList = false;
- if (RPG_DATABASE_CONTROLLER == nullptr)RPG_DATABASE_CONTROLLER = NewObject<URPG_Database>(this, URPG_Database::StaticClass());
- if (!OpenDatabase(SourceDataBase))return;
- SQLQuery = "Select MonsterID,Name,LEVEL,MonsterConfig,(select CLS_Config_BP from classes where classes.classid=Monsters.classid ) as ClassConfig from Monsters where LEVEL between "
- + FString::FromInt(MOB_LowLimit)
- +" and "
- + FString::FromInt(MOB_HighLimit)
- +";";
- result = RPG_DATABASE_CONTROLLER->BP_Query(SQLQuery);
- if (result == 0 || RPG_DATABASE_CONTROLLER->BP_EndOResult(result))
- {
- if (result)RPG_DATABASE_CONTROLLER->BP_ClearResult(result);
- RPG_DATABASE_CONTROLLER->BP_CloseDatabase();
- return;
- }
- else{
- while (!RPG_DATABASE_CONTROLLER->BP_EndOResult(result))
- {
- FString Label = FString(*RPG_DATABASE_CONTROLLER->BP_GetColumn(result, "LEVEL")) + "_" + FString(*RPG_DATABASE_CONTROLLER->BP_GetColumn(result, "Name"));
- FString MonsterID = (*RPG_DATABASE_CONTROLLER->BP_GetColumn(result, "MonsterID"));
- FString MonsterName = (*RPG_DATABASE_CONTROLLER->BP_GetColumn(result, "Name"));
- FString Mesh = (*RPG_DATABASE_CONTROLLER->BP_GetColumn(result, "MonsterConfig"));
- FString Animation = (*RPG_DATABASE_CONTROLLER->BP_GetColumn(result, "ClassConfig"));
- TableString += FString(Label + "," + MonsterID + "," + MonsterName + "," + Mesh + "," + Animation + "\n");
- RPG_DATABASE_CONTROLLER->BP_NextRow(result);
- }
- }
- if (result)RPG_DATABASE_CONTROLLER->BP_ClearResult(result);
- RPG_DATABASE_CONTROLLER->BP_CloseDatabase();
- if (mobDatatable == nullptr)mobDatatable = NewObject<UDataTable>(this, "mobDatatable");
- mobDatatable->RowStruct = FMonsterListDataTableTmp().StaticStruct();
- #if WITH_EDITORONLY_DATA
- err = mobDatatable->CreateTableFromCSVString(TableString);
- #endif
- if (err.Num() > 0)
- {
- for (FString tmp : err)UE_LOG(LogTemp, Error, TEXT("%s"), *tmp);
- }
- else{
- MobListSelection[0].DataTable = mobDatatable;
- }
- //mobDatatable = nullptr;
- }
- //Load presentation data for the launcher
- bool AAI_Monster::LoadLauncherTableData(){
- if (!LoadSelectedData)return false;
- if (MobListSelection.Num()==0)return false;
- if (MobListSelection[0].DataTable == nullptr)return false;
- static const FString ContextString(TEXT("GENERAL"));
- FMonsterListDataTableTmp* monsterStr = MobListSelection[0].DataTable->FindRow<FMonsterListDataTableTmp>(MobListSelection[0].RowName, ContextString);
- if (monsterStr == nullptr)return false;
- Name = monsterStr->MonsterName;
- LoadedMobData.ActorData = monsterStr->ActorData;
- LoadedMobData.ClassData = monsterStr->ClassData;
- LoadedMobData.MonsterID = monsterStr->MonsterID;
- LoadedMobData.MonsterName = monsterStr->MonsterName;
- LoadSelectedData = false;
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement