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