From 14a9122929088a4106fe3ff8be0d87b8ac8835db Mon Sep 17 00:00:00 2001 From: SabreDartStudios <108193207+SabreDartStudios@users.noreply.github.com> Date: Sun, 28 Apr 2024 15:48:57 -0400 Subject: [PATCH] Updated UE5 Plugin for 5.4. --- .../Content/OWSTravelToMapBP.uasset | Bin 394652 -> 416283 bytes plugins/OWSPluginUE5/OWSPlugin.uplugin | 4 +- .../OWSPlugin/Private/OWSAPISubsystem.cpp | 4 - .../Private/OWSAdvancedProjectile.cpp | 13 +- .../Source/OWSPlugin/Private/OWSCharacter.cpp | 270 +++++++++--------- .../Private/OWSCharacterWithAbilities.cpp | 130 ++++----- .../OWSPlugin/Private/OWSGameInstance.cpp | 4 +- .../Source/OWSPlugin/Private/OWSGameMode.cpp | 13 +- .../OWSGameplayAbilityTargetAct_Cone.cpp | 2 + .../OWSPlugin/Private/OWSLoginWidget.cpp | 1 - .../OWSPlugin/Private/OWSLoginWidget.cpp.bak | 178 ------------ .../OWSPlugin/Private/OWSPlayerController.cpp | 9 +- .../Private/OWSPlayerControllerComponent.cpp | 57 ++-- .../Source/OWSPlugin/Public/OWS2API.h | 3 +- .../Source/OWSPlugin/Public/OWSAPISubsystem.h | 4 +- .../Source/OWSPlugin/Public/OWSAttributeSet.i | 5 - .../OWSPlugin/Public/OWSPlayerController.h | 3 - .../Public/OWSPlayerControllerComponent.h | 3 - 18 files changed, 256 insertions(+), 447 deletions(-) delete mode 100644 plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSLoginWidget.cpp.bak delete mode 100644 plugins/OWSPluginUE5/Source/OWSPlugin/Public/OWSAttributeSet.i diff --git a/plugins/OWSPluginUE5/Content/OWSTravelToMapBP.uasset b/plugins/OWSPluginUE5/Content/OWSTravelToMapBP.uasset index f9058cd0b497245139a86e7e04baa1a602a74f13..cf632e290d5caa25676818c1a10052bf42681e53 100644 GIT binary patch literal 416283 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 E04hDM{r~^~ literal 394652 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 zJ)SetHttpTimeout(OWS2APIRequestTimeout); //Set timeout TSharedRef Request = Http->CreateRequest(); Request->OnProcessRequestComplete().BindUObject(this, InMethodPtr); @@ -115,7 +112,6 @@ void UOWSAPISubsystem::ProcessOWS2POSTRequest(FString ApiModuleToCall, FString A void UOWSAPISubsystem::ProcessOWS2GETRequest(FString ApiModuleToCall, FString ApiToCall, void (UOWSAPISubsystem::* InMethodPtr)(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful)) { Http = &FHttpModule::Get(); - Http->SetHttpTimeout(OWS2APIRequestTimeout); //Set timeout TSharedRef Request = Http->CreateRequest(); Request->OnProcessRequestComplete().BindUObject(this, InMethodPtr); diff --git a/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSAdvancedProjectile.cpp b/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSAdvancedProjectile.cpp index 73d386b58..ee579e1a6 100644 --- a/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSAdvancedProjectile.cpp +++ b/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSAdvancedProjectile.cpp @@ -10,6 +10,7 @@ #include "Runtime/Engine/Classes/Components/AudioComponent.h" #include "Runtime/Engine/Public/Audio.h" #include "Runtime/Engine/Classes/Sound/SoundBase.h" +#include "Runtime/Engine/Classes/Engine/OverlapResult.h" #include "Abilities/GameplayAbilityTargetTypes.h" #include "AbilitySystemBlueprintLibrary.h" @@ -358,7 +359,7 @@ void AOWSAdvancedProjectile::BeginFakeProjectileSynch(AOWSAdvancedProjectile* In } else { - UE_LOG(OWS, Verbose, TEXT("%S: BeginFakeProjectileSynch: Move Replicated To Fake Pos: %s"), *ServerOrClient, *GetNameSafe(this)); + UE_LOG(OWS, Verbose, TEXT("%s: BeginFakeProjectileSynch: Move Replicated To Fake Pos: %s"), *ServerOrClient, *GetNameSafe(this)); FRepMovement RepMovement; RepMovement.Location = MyFakeProjectile->GetActorLocation(); @@ -938,10 +939,10 @@ void AOWSAdvancedProjectile::DamageImpactedActor_Implementation(AActor* OtherAct //We use the InstigatorCharacter because if we use the Hit Character we won't have an owning connecto RPC up the prediction key. - AOWSCharacterWithAbilities* InstigatorCharacter = CastChecked(GetInstigator()); + //AOWSCharacterWithAbilities* InstigatorCharacter = CastChecked(GetInstigator()); - if (!IsValid(InstigatorCharacter)) - { + //if (!IsValid(InstigatorCharacter)) + //{ // InstigatorCharacter->HandleProjectileEffectApplicationPrediction(this, OtherActor); /*IAbilitySystemInterface* AbilitySystemInterface = Cast(CharacterWhoWasHit); @@ -966,11 +967,11 @@ void AOWSAdvancedProjectile::DamageImpactedActor_Implementation(AActor* OtherAct UE_LOG(OWS, Error, TEXT("Send GameplayEvent.AdvancedProjectile.DirectDamageEvent")); } }*/ - } + /* } else //Hit something other than an AOWSCharacterWithAbilities { - } + }*/ /* diff --git a/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSCharacter.cpp b/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSCharacter.cpp index 5bc81854f..b2c4e600c 100644 --- a/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSCharacter.cpp +++ b/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSCharacter.cpp @@ -157,99 +157,99 @@ void AOWSCharacter::LoadCharacterStatsFromJSON(TSharedPtrJsonObject { UE_LOG(OWS, Verbose, TEXT("AOWSCharacter: Started LoadCharacterStatsFromJSON")); - CharacterName = JsonObject->GetStringField("CharacterName"); - - IsAdmin = JsonObject->GetBoolField("IsAdmin"); - IsModerator = JsonObject->GetBoolField("IsModerator"); - - ClassName = JsonObject->GetStringField("ClassName"); - Gender = JsonObject->GetNumberField("Gender"); - CharacterLevel = JsonObject->GetNumberField("CharacterLevel"); - XP = JsonObject->GetNumberField("XP"); - HitDice = JsonObject->GetNumberField("HitDie"); - MaxHP = JsonObject->GetNumberField("MaxHealth"); - Wounds = JsonObject->GetNumberField("Wounds"); - Strength = JsonObject->GetNumberField("Strength"); - Dexterity = JsonObject->GetNumberField("Dexterity"); - Constitution = JsonObject->GetNumberField("Constitution"); - Intellect = JsonObject->GetNumberField("Intellect"); - Wisdom = JsonObject->GetNumberField("Wisdom"); - Charisma = JsonObject->GetNumberField("Charisma"); - Spirit = JsonObject->GetNumberField("Spirit"); - Magic = JsonObject->GetNumberField("Magic"); - Fortitude = JsonObject->GetNumberField("Fortitude"); - Reflex = JsonObject->GetNumberField("Reflex"); - Willpower = JsonObject->GetNumberField("Willpower"); - BaseAttackBonus = JsonObject->GetNumberField("BaseAttackBonus"); - Speed = JsonObject->GetNumberField("Speed"); - Initiative = JsonObject->GetNumberField("Initiative"); - NaturalArmor = JsonObject->GetNumberField("NaturalArmor"); - Resistance = JsonObject->GetNumberField("Resistance"); - TeamNumber = JsonObject->GetNumberField("TeamNumber"); + CharacterName = JsonObject->GetStringField(TEXT("CharacterName")); + + IsAdmin = JsonObject->GetBoolField(TEXT("IsAdmin")); + IsModerator = JsonObject->GetBoolField(TEXT("IsModerator")); + + ClassName = JsonObject->GetStringField(TEXT("ClassName")); + Gender = JsonObject->GetNumberField(TEXT("Gender")); + CharacterLevel = JsonObject->GetNumberField(TEXT("CharacterLevel")); + XP = JsonObject->GetNumberField(TEXT("XP")); + HitDice = JsonObject->GetNumberField(TEXT("HitDie")); + MaxHP = JsonObject->GetNumberField(TEXT("MaxHealth")); + Wounds = JsonObject->GetNumberField(TEXT("Wounds")); + Strength = JsonObject->GetNumberField(TEXT("Strength")); + Dexterity = JsonObject->GetNumberField(TEXT("Dexterity")); + Constitution = JsonObject->GetNumberField(TEXT("Constitution")); + Intellect = JsonObject->GetNumberField(TEXT("Intellect")); + Wisdom = JsonObject->GetNumberField(TEXT("Wisdom")); + Charisma = JsonObject->GetNumberField(TEXT("Charisma")); + Spirit = JsonObject->GetNumberField(TEXT("Spirit")); + Magic = JsonObject->GetNumberField(TEXT("Magic")); + Fortitude = JsonObject->GetNumberField(TEXT("Fortitude")); + Reflex = JsonObject->GetNumberField(TEXT("Reflex")); + Willpower = JsonObject->GetNumberField(TEXT("Willpower")); + BaseAttackBonus = JsonObject->GetNumberField(TEXT("BaseAttackBonus")); + Speed = JsonObject->GetNumberField(TEXT("Speed")); + Initiative = JsonObject->GetNumberField(TEXT("Initiative")); + NaturalArmor = JsonObject->GetNumberField(TEXT("NaturalArmor")); + Resistance = JsonObject->GetNumberField(TEXT("Resistance")); + TeamNumber = JsonObject->GetNumberField(TEXT("TeamNumber")); //Change TeamId for AI Perception TeamId = FGenericTeamId(TeamNumber); - Thirst = JsonObject->GetNumberField("Thirst"); - Hunger = JsonObject->GetNumberField("Hunger"); - Score = JsonObject->GetNumberField("Score"); - MaxHealth = JsonObject->GetNumberField("MaxHealth"); - Health = JsonObject->GetNumberField("Health"); - HealthRegenRate = JsonObject->GetNumberField("HealthRegenRate"); - MaxMana = JsonObject->GetNumberField("MaxMana"); - Mana = JsonObject->GetNumberField("Mana"); - ManaRegenRate = JsonObject->GetNumberField("ManaRegenRate"); - MaxEnergy = JsonObject->GetNumberField("MaxEnergy"); - Energy = JsonObject->GetNumberField("Energy"); - EnergyRegenRate = JsonObject->GetNumberField("EnergyRegenRate"); - MaxFatigue = JsonObject->GetNumberField("MaxFatigue"); - Fatigue = JsonObject->GetNumberField("Fatigue"); - FatigueRegenRate = JsonObject->GetNumberField("FatigueRegenRate"); - MaxStamina = JsonObject->GetNumberField("MaxStamina"); - Stamina = JsonObject->GetNumberField("Stamina"); - StaminaRegenRate = JsonObject->GetNumberField("StaminaRegenRate"); - MaxEndurance = JsonObject->GetNumberField("MaxEndurance"); - Endurance = JsonObject->GetNumberField("Endurance"); - EnduranceRegenRate = JsonObject->GetNumberField("EnduranceRegenRate"); - Agility = JsonObject->GetNumberField("Agility"); - BaseAttack = JsonObject->GetNumberField("BaseAttack"); - BaseAttackBonus = JsonObject->GetNumberField("BaseAttackBonus"); - AttackPower = JsonObject->GetNumberField("AttackPower"); - AttackSpeed = JsonObject->GetNumberField("AttackSpeed"); - CritChance = JsonObject->GetNumberField("CritChance"); - CritMultiplier = JsonObject->GetNumberField("CritMultiplier"); - Haste = JsonObject->GetNumberField("Haste"); - SpellPower = JsonObject->GetNumberField("SpellPower"); - SpellPenetration = JsonObject->GetNumberField("SpellPenetration"); - Defense = JsonObject->GetNumberField("Defense"); - Dodge = JsonObject->GetNumberField("Dodge"); - Parry = JsonObject->GetNumberField("Parry"); - Avoidance = JsonObject->GetNumberField("Avoidance"); - Versatility = JsonObject->GetNumberField("Versatility"); - Multishot = JsonObject->GetNumberField("Multishot"); - Initiative = JsonObject->GetNumberField("Initiative"); - NaturalArmor = JsonObject->GetNumberField("NaturalArmor"); - PhysicalArmor = JsonObject->GetNumberField("PhysicalArmor"); - BonusArmor = JsonObject->GetNumberField("BonusArmor"); - ForceArmor = JsonObject->GetNumberField("ForceArmor"); - MagicArmor = JsonObject->GetNumberField("MagicArmor"); - Resistance = JsonObject->GetNumberField("Resistance"); - ReloadSpeed = JsonObject->GetNumberField("ReloadSpeed"); - Range = JsonObject->GetNumberField("Range"); - Speed = JsonObject->GetNumberField("Speed"); - - Gold = JsonObject->GetNumberField("Gold"); - Silver = JsonObject->GetNumberField("Silver"); - Copper = JsonObject->GetNumberField("Copper"); - FreeCurrency = JsonObject->GetNumberField("FreeCurrency"); - PremiumCurrency = JsonObject->GetNumberField("PremiumCurrency"); - - Perception = JsonObject->GetNumberField("Perception"); - Acrobatics = JsonObject->GetNumberField("Acrobatics"); - Climb = JsonObject->GetNumberField("Climb"); - Stealth = JsonObject->GetNumberField("Stealth"); - - Score = JsonObject->GetNumberField("Score"); + Thirst = JsonObject->GetNumberField(TEXT("Thirst")); + Hunger = JsonObject->GetNumberField(TEXT("Hunger")); + Score = JsonObject->GetNumberField(TEXT("Score")); + MaxHealth = JsonObject->GetNumberField(TEXT("MaxHealth")); + Health = JsonObject->GetNumberField(TEXT("Health")); + HealthRegenRate = JsonObject->GetNumberField(TEXT("HealthRegenRate")); + MaxMana = JsonObject->GetNumberField(TEXT("MaxMana")); + Mana = JsonObject->GetNumberField(TEXT("Mana")); + ManaRegenRate = JsonObject->GetNumberField(TEXT("ManaRegenRate")); + MaxEnergy = JsonObject->GetNumberField(TEXT("MaxEnergy")); + Energy = JsonObject->GetNumberField(TEXT("Energy")); + EnergyRegenRate = JsonObject->GetNumberField(TEXT("EnergyRegenRate")); + MaxFatigue = JsonObject->GetNumberField(TEXT("MaxFatigue")); + Fatigue = JsonObject->GetNumberField(TEXT("Fatigue")); + FatigueRegenRate = JsonObject->GetNumberField(TEXT("FatigueRegenRate")); + MaxStamina = JsonObject->GetNumberField(TEXT("MaxStamina")); + Stamina = JsonObject->GetNumberField(TEXT("Stamina")); + StaminaRegenRate = JsonObject->GetNumberField(TEXT("StaminaRegenRate")); + MaxEndurance = JsonObject->GetNumberField(TEXT("MaxEndurance")); + Endurance = JsonObject->GetNumberField(TEXT("Endurance")); + EnduranceRegenRate = JsonObject->GetNumberField(TEXT("EnduranceRegenRate")); + Agility = JsonObject->GetNumberField(TEXT("Agility")); + BaseAttack = JsonObject->GetNumberField(TEXT("BaseAttack")); + BaseAttackBonus = JsonObject->GetNumberField(TEXT("BaseAttackBonus")); + AttackPower = JsonObject->GetNumberField(TEXT("AttackPower")); + AttackSpeed = JsonObject->GetNumberField(TEXT("AttackSpeed")); + CritChance = JsonObject->GetNumberField(TEXT("CritChance")); + CritMultiplier = JsonObject->GetNumberField(TEXT("CritMultiplier")); + Haste = JsonObject->GetNumberField(TEXT("Haste")); + SpellPower = JsonObject->GetNumberField(TEXT("SpellPower")); + SpellPenetration = JsonObject->GetNumberField(TEXT("SpellPenetration")); + Defense = JsonObject->GetNumberField(TEXT("Defense")); + Dodge = JsonObject->GetNumberField(TEXT("Dodge")); + Parry = JsonObject->GetNumberField(TEXT("Parry")); + Avoidance = JsonObject->GetNumberField(TEXT("Avoidance")); + Versatility = JsonObject->GetNumberField(TEXT("Versatility")); + Multishot = JsonObject->GetNumberField(TEXT("Multishot")); + Initiative = JsonObject->GetNumberField(TEXT("Initiative")); + NaturalArmor = JsonObject->GetNumberField(TEXT("NaturalArmor")); + PhysicalArmor = JsonObject->GetNumberField(TEXT("PhysicalArmor")); + BonusArmor = JsonObject->GetNumberField(TEXT("BonusArmor")); + ForceArmor = JsonObject->GetNumberField(TEXT("ForceArmor")); + MagicArmor = JsonObject->GetNumberField(TEXT("MagicArmor")); + Resistance = JsonObject->GetNumberField(TEXT("Resistance")); + ReloadSpeed = JsonObject->GetNumberField(TEXT("ReloadSpeed")); + Range = JsonObject->GetNumberField(TEXT("Range")); + Speed = JsonObject->GetNumberField(TEXT("Speed")); + + Gold = JsonObject->GetNumberField(TEXT("Gold")); + Silver = JsonObject->GetNumberField(TEXT("Silver")); + Copper = JsonObject->GetNumberField(TEXT("Copper")); + FreeCurrency = JsonObject->GetNumberField(TEXT("FreeCurrency")); + PremiumCurrency = JsonObject->GetNumberField(TEXT("PremiumCurrency")); + + Perception = JsonObject->GetNumberField(TEXT("Perception")); + Acrobatics = JsonObject->GetNumberField(TEXT("Acrobatics")); + Climb = JsonObject->GetNumberField(TEXT("Climb")); + Stealth = JsonObject->GetNumberField(TEXT("Stealth")); + + Score = JsonObject->GetNumberField(TEXT("Score")); LoadCustomCharacterStats(); UpdateCharacterStatsAfterLoading(); @@ -605,15 +605,15 @@ void AOWSCharacter::ProcessCustomCharacterData(TSharedPtr JsonObjec { TArray CustomCharacterData; - if (JsonObject->HasField("rows")) + if (JsonObject->HasField(TEXT("rows"))) { - TArray> Rows = JsonObject->GetArrayField("rows"); + TArray> Rows = JsonObject->GetArrayField(TEXT("rows")); for (int RowNum = 0; RowNum != Rows.Num(); RowNum++) { FCustomCharacterDataStruct tempCustomData; TSharedPtr tempRow = Rows[RowNum]->AsObject(); - tempCustomData.CustomFieldName = tempRow->GetStringField("CustomFieldName"); - tempCustomData.FieldValue = tempRow->GetStringField("FieldValue"); + tempCustomData.CustomFieldName = tempRow->GetStringField(TEXT("CustomFieldName")); + tempCustomData.FieldValue = tempRow->GetStringField(TEXT("FieldValue")); CustomCharacterData.Add(tempCustomData); } @@ -802,58 +802,56 @@ void AOWSCharacter::ReadInventoryItems(const TArray> Rows for (int RowNum = 0; RowNum != Rows.Num(); RowNum++) { FInventoryItemStruct tempInventoryItem; TSharedPtr tempRow = Rows[RowNum]->AsObject(); - tempInventoryItem.ItemName = tempRow->GetStringField("ItemName"); - tempInventoryItem.InventoryName = tempRow->GetStringField("InventoryName"); + tempInventoryItem.ItemName = tempRow->GetStringField(TEXT("ItemName")); + tempInventoryItem.InventoryName = tempRow->GetStringField(TEXT("InventoryName")); InventoryName = FName(*tempInventoryItem.InventoryName); - InventorySize = tempRow->GetIntegerField("InventorySize"); + InventorySize = tempRow->GetIntegerField(TEXT("InventorySize")); //Default row when an inventory is empty just to get the inventory name if (tempInventoryItem.ItemName == "EmptyInventory") continue; - tempInventoryItem.ItemDescription = tempRow->GetStringField("ItemDescription"); - FString tempUniqueItemGUIDString = tempRow->GetStringField("CharInventoryItemGUID"); + tempInventoryItem.ItemDescription = tempRow->GetStringField(TEXT("ItemDescription")); + FString tempUniqueItemGUIDString = tempRow->GetStringField(TEXT("CharInventoryItemGUID")); FGuid::Parse(tempUniqueItemGUIDString, tempInventoryItem.UniqueItemGUID); - tempInventoryItem.InSlotNumber = tempRow->GetIntegerField("InSlotNumber"); - tempInventoryItem.Quantity = tempRow->GetIntegerField("Quantity"); - tempInventoryItem.ItemCanStack = tempRow->GetBoolField("ItemCanStack"); - tempInventoryItem.ItemStackSize = tempRow->GetIntegerField("ItemStackSize"); - tempInventoryItem.IsUsable = tempRow->GetBoolField("ItemIsUsable"); - tempInventoryItem.IsConsumedOnUse = tempRow->GetBoolField("ItemIsConsumedOnUse"); - tempInventoryItem.NumberOfUsesLeft = tempRow->GetIntegerField("NumberOfUsesLeft"); - tempInventoryItem.ItemWeight = (float)tempRow->GetNumberField("ItemWeight"); - tempInventoryItem.ItemTypeID = tempRow->GetIntegerField("ItemTypeID"); - tempInventoryItem.ItemTypeDescription = tempRow->GetStringField("ItemTypeDesc"); - tempInventoryItem.ItemTypeQuality = tempRow->GetIntegerField("ItemTypeQuality"); - - tempInventoryItem.UserItemType = tempRow->GetIntegerField("UserItemType"); - tempInventoryItem.EquipmentType = tempRow->GetIntegerField("EquipmentType"); - tempInventoryItem.EquipmentSlotType = tempRow->GetIntegerField("EquipmentSlotType"); - tempInventoryItem.ItemTier = tempRow->GetIntegerField("ItemTier"); - tempInventoryItem.ItemQuality = tempRow->GetIntegerField("ItemQuality"); - tempInventoryItem.ItemDuration = tempRow->GetIntegerField("ItemDuration"); - tempInventoryItem.CanBeDropped = tempRow->GetBoolField("CanBeDropped"); - tempInventoryItem.CanBeDestroyed = tempRow->GetBoolField("CanBeDestroyed"); - - tempInventoryItem.CustomData = tempRow->GetStringField("CustomData"); - tempInventoryItem.PerInstanceCustomData = tempRow->GetStringField("PerInstanceCustomData"); - tempInventoryItem.Condition = tempRow->GetIntegerField("Condition"); - //tempInventoryItem.ItemMesh = tempRow->GetStringField("ItemMesh"); - //tempInventoryItem.MeshToUseForPickup = tempRow->GetStringField("MeshToUseForPickup"); - tempInventoryItem.PremiumCurrencyPrice = tempRow->GetIntegerField("PremiumCurrencyPrice"); - tempInventoryItem.FreeCurrencyPrice = tempRow->GetIntegerField("FreeCurrencyPrice"); - - tempInventoryItem.ItemMeshID = tempRow->GetIntegerField("ItemMeshID"); - tempInventoryItem.WeaponActorClassPath = tempRow->GetStringField("WeaponActorClass"); - tempInventoryItem.StaticMeshPath = tempRow->GetStringField("StaticMesh"); - tempInventoryItem.SkeletalMeshPath = tempRow->GetStringField("SkeletalMesh"); + tempInventoryItem.InSlotNumber = tempRow->GetIntegerField(TEXT("InSlotNumber")); + tempInventoryItem.Quantity = tempRow->GetIntegerField(TEXT("Quantity")); + tempInventoryItem.ItemCanStack = tempRow->GetBoolField(TEXT("ItemCanStack")); + tempInventoryItem.ItemStackSize = tempRow->GetIntegerField(TEXT("ItemStackSize")); + tempInventoryItem.IsUsable = tempRow->GetBoolField(TEXT("ItemIsUsable")); + tempInventoryItem.IsConsumedOnUse = tempRow->GetBoolField(TEXT("ItemIsConsumedOnUse")); + tempInventoryItem.NumberOfUsesLeft = tempRow->GetIntegerField(TEXT("NumberOfUsesLeft")); + tempInventoryItem.ItemWeight = (float)tempRow->GetNumberField(TEXT("ItemWeight")); + tempInventoryItem.ItemTypeID = tempRow->GetIntegerField(TEXT("ItemTypeID")); + tempInventoryItem.ItemTypeDescription = tempRow->GetStringField(TEXT("ItemTypeDesc")); + tempInventoryItem.ItemTypeQuality = tempRow->GetIntegerField(TEXT("ItemTypeQuality")); + + tempInventoryItem.UserItemType = tempRow->GetIntegerField(TEXT("UserItemType")); + tempInventoryItem.EquipmentType = tempRow->GetIntegerField(TEXT("EquipmentType")); + tempInventoryItem.EquipmentSlotType = tempRow->GetIntegerField(TEXT("EquipmentSlotType")); + tempInventoryItem.ItemTier = tempRow->GetIntegerField(TEXT("ItemTier")); + tempInventoryItem.ItemQuality = tempRow->GetIntegerField(TEXT("ItemQuality")); + tempInventoryItem.ItemDuration = tempRow->GetIntegerField(TEXT("ItemDuration")); + tempInventoryItem.CanBeDropped = tempRow->GetBoolField(TEXT("CanBeDropped")); + tempInventoryItem.CanBeDestroyed = tempRow->GetBoolField(TEXT("CanBeDestroyed")); + + tempInventoryItem.CustomData = tempRow->GetStringField(TEXT("CustomData")); + tempInventoryItem.PerInstanceCustomData = tempRow->GetStringField(TEXT("PerInstanceCustomData")); + tempInventoryItem.Condition = tempRow->GetIntegerField(TEXT("Condition")); + tempInventoryItem.PremiumCurrencyPrice = tempRow->GetIntegerField(TEXT("PremiumCurrencyPrice")); + tempInventoryItem.FreeCurrencyPrice = tempRow->GetIntegerField(TEXT("FreeCurrencyPrice")); + + tempInventoryItem.ItemMeshID = tempRow->GetIntegerField(TEXT("ItemMeshID")); + tempInventoryItem.WeaponActorClassPath = tempRow->GetStringField(TEXT("WeaponActorClass")); + tempInventoryItem.StaticMeshPath = tempRow->GetStringField(TEXT("StaticMesh")); + tempInventoryItem.SkeletalMeshPath = tempRow->GetStringField(TEXT("SkeletalMesh")); //TextureIcon - tempInventoryItem.TextureToUseForIcon = tempRow->GetStringField("TextureToUseForIcon"); + tempInventoryItem.TextureToUseForIcon = tempRow->GetStringField(TEXT("TextureToUseForIcon")); tempInventoryItem.TextureIcon = nullptr; - if (!tempRow->GetStringField("TextureToUseForIcon").IsEmpty()) + if (!tempInventoryItem.TextureToUseForIcon.IsEmpty()) { - tempInventoryItem.TextureIcon = LoadObject(NULL, *tempRow->GetStringField("TextureToUseForIcon"), NULL, LOAD_None, NULL); + tempInventoryItem.TextureIcon = LoadObject(NULL, *tempInventoryItem.TextureToUseForIcon, NULL, LOAD_None, NULL); if (!tempInventoryItem.TextureIcon) { @@ -861,8 +859,8 @@ void AOWSCharacter::ReadInventoryItems(const TArray> Rows } } - tempInventoryItem.IconSlotWidth = tempRow->GetIntegerField("IconSlotWidth"); - tempInventoryItem.IconSlotHeight = tempRow->GetIntegerField("IconSlotHeight"); + tempInventoryItem.IconSlotWidth = tempRow->GetIntegerField(TEXT("IconSlotWidth")); + tempInventoryItem.IconSlotHeight = tempRow->GetIntegerField(TEXT("IconSlotHeight")); if (tempInventoryItem.IconSlotWidth < 1) tempInventoryItem.IconSlotWidth = 1; diff --git a/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSCharacterWithAbilities.cpp b/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSCharacterWithAbilities.cpp index c99480d75..8fe714645 100644 --- a/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSCharacterWithAbilities.cpp +++ b/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSCharacterWithAbilities.cpp @@ -471,71 +471,71 @@ void AOWSCharacterWithAbilities::OnGetCharacterStatsResponseReceived(FHttpReques void AOWSCharacterWithAbilities::LoadAttributesFromJSON(TSharedPtr JsonObject) { - OWSAttributes->SetThirst(JsonObject->GetNumberField("Thirst")); - OWSAttributes->SetHunger(JsonObject->GetNumberField("Hunger")); - - OWSAttributes->SetMaxHealth(JsonObject->GetNumberField("MaxHealth")); - OWSAttributes->SetHealth(JsonObject->GetNumberField("Health")); - OWSAttributes->SetHealthRegenRate(JsonObject->GetNumberField("HealthRegenRate")); - - OWSAttributes->SetMaxMana(JsonObject->GetNumberField("MaxMana")); - OWSAttributes->SetMana(JsonObject->GetNumberField("Mana")); - OWSAttributes->SetManaRegenRate(JsonObject->GetNumberField("ManaRegenRate")); - - OWSAttributes->SetMaxEnergy(JsonObject->GetNumberField("MaxEnergy")); - OWSAttributes->SetEnergy(JsonObject->GetNumberField("Energy")); - OWSAttributes->SetEnergyRegenRate(JsonObject->GetNumberField("EnergyRegenRate")); - - OWSAttributes->SetMaxFatigue(JsonObject->GetNumberField("MaxFatigue")); - OWSAttributes->SetFatigue(JsonObject->GetNumberField("Fatigue")); - OWSAttributes->SetFatigueRegenRate(JsonObject->GetNumberField("FatigueRegenRate")); - - OWSAttributes->SetMaxStamina(JsonObject->GetNumberField("MaxStamina")); - OWSAttributes->SetStamina(JsonObject->GetNumberField("Stamina")); - OWSAttributes->SetStaminaRegenRate(JsonObject->GetNumberField("StaminaRegenRate")); - - OWSAttributes->SetMaxEndurance(JsonObject->GetNumberField("MaxEndurance")); - OWSAttributes->SetEndurance(JsonObject->GetNumberField("Endurance")); - OWSAttributes->SetEnduranceRegenRate(JsonObject->GetNumberField("EnduranceRegenRate")); - - OWSAttributes->SetStrength(JsonObject->GetNumberField("Strength")); - OWSAttributes->SetDexterity(JsonObject->GetNumberField("Dexterity")); - OWSAttributes->SetConstitution(JsonObject->GetNumberField("Constitution")); - OWSAttributes->SetIntellect(JsonObject->GetNumberField("Intellect")); - OWSAttributes->SetWisdom(JsonObject->GetNumberField("Wisdom")); - OWSAttributes->SetCharisma(JsonObject->GetNumberField("Charisma")); - OWSAttributes->SetAgility(JsonObject->GetNumberField("Agility")); - OWSAttributes->SetSpirit(JsonObject->GetNumberField("Spirit")); - OWSAttributes->SetMagic(JsonObject->GetNumberField("Magic")); - OWSAttributes->SetFortitude(JsonObject->GetNumberField("Fortitude")); - OWSAttributes->SetReflex(JsonObject->GetNumberField("Reflex")); - OWSAttributes->SetWillpower(JsonObject->GetNumberField("Willpower")); - - OWSAttributes->SetBaseAttack(JsonObject->GetNumberField("BaseAttack")); - OWSAttributes->SetBaseAttackBonus(JsonObject->GetNumberField("BaseAttackBonus")); - OWSAttributes->SetAttackPower(JsonObject->GetNumberField("AttackPower")); - OWSAttributes->SetAttackSpeed(JsonObject->GetNumberField("AttackSpeed")); - OWSAttributes->SetCritChance(JsonObject->GetNumberField("CritChance")); - OWSAttributes->SetCritMultiplier(JsonObject->GetNumberField("CritMultiplier")); - OWSAttributes->SetHaste(JsonObject->GetNumberField("Haste")); - OWSAttributes->SetSpellPower(JsonObject->GetNumberField("SpellPower")); - OWSAttributes->SetSpellPenetration(JsonObject->GetNumberField("SpellPenetration")); - OWSAttributes->SetDefense(JsonObject->GetNumberField("Defense")); - OWSAttributes->SetDodge(JsonObject->GetNumberField("Dodge")); - OWSAttributes->SetParry(JsonObject->GetNumberField("Parry")); - OWSAttributes->SetAvoidance(JsonObject->GetNumberField("Avoidance")); - OWSAttributes->SetVersatility(JsonObject->GetNumberField("Versatility")); - OWSAttributes->SetMultishot(JsonObject->GetNumberField("Multishot")); - OWSAttributes->SetInitiative(JsonObject->GetNumberField("Initiative")); - OWSAttributes->SetNaturalArmor(JsonObject->GetNumberField("NaturalArmor")); - OWSAttributes->SetPhysicalArmor(JsonObject->GetNumberField("PhysicalArmor")); - OWSAttributes->SetBonusArmor(JsonObject->GetNumberField("BonusArmor")); - OWSAttributes->SetForceArmor(JsonObject->GetNumberField("ForceArmor")); - OWSAttributes->SetMagicArmor(JsonObject->GetNumberField("MagicArmor")); - OWSAttributes->SetResistance(JsonObject->GetNumberField("Resistance")); - OWSAttributes->SetReloadSpeed(JsonObject->GetNumberField("ReloadSpeed")); - OWSAttributes->SetRange(JsonObject->GetNumberField("Range")); - OWSAttributes->SetSpeed(JsonObject->GetNumberField("Speed")); + OWSAttributes->SetThirst(JsonObject->GetNumberField(TEXT("Thirst"))); + OWSAttributes->SetHunger(JsonObject->GetNumberField(TEXT("Hunger"))); + + OWSAttributes->SetMaxHealth(JsonObject->GetNumberField(TEXT("MaxHealth"))); + OWSAttributes->SetHealth(JsonObject->GetNumberField(TEXT("Health"))); + OWSAttributes->SetHealthRegenRate(JsonObject->GetNumberField(TEXT("HealthRegenRate"))); + + OWSAttributes->SetMaxMana(JsonObject->GetNumberField(TEXT("MaxMana"))); + OWSAttributes->SetMana(JsonObject->GetNumberField(TEXT("Mana"))); + OWSAttributes->SetManaRegenRate(JsonObject->GetNumberField(TEXT("ManaRegenRate"))); + + OWSAttributes->SetMaxEnergy(JsonObject->GetNumberField(TEXT("MaxEnergy"))); + OWSAttributes->SetEnergy(JsonObject->GetNumberField(TEXT("Energy"))); + OWSAttributes->SetEnergyRegenRate(JsonObject->GetNumberField(TEXT("EnergyRegenRate"))); + + OWSAttributes->SetMaxFatigue(JsonObject->GetNumberField(TEXT("MaxFatigue"))); + OWSAttributes->SetFatigue(JsonObject->GetNumberField(TEXT("Fatigue"))); + OWSAttributes->SetFatigueRegenRate(JsonObject->GetNumberField(TEXT("FatigueRegenRate"))); + + OWSAttributes->SetMaxStamina(JsonObject->GetNumberField(TEXT("MaxStamina"))); + OWSAttributes->SetStamina(JsonObject->GetNumberField(TEXT("Stamina"))); + OWSAttributes->SetStaminaRegenRate(JsonObject->GetNumberField(TEXT("StaminaRegenRate"))); + + OWSAttributes->SetMaxEndurance(JsonObject->GetNumberField(TEXT("MaxEndurance"))); + OWSAttributes->SetEndurance(JsonObject->GetNumberField(TEXT("Endurance"))); + OWSAttributes->SetEnduranceRegenRate(JsonObject->GetNumberField(TEXT("EnduranceRegenRate"))); + + OWSAttributes->SetStrength(JsonObject->GetNumberField(TEXT("Strength"))); + OWSAttributes->SetDexterity(JsonObject->GetNumberField(TEXT("Dexterity"))); + OWSAttributes->SetConstitution(JsonObject->GetNumberField(TEXT("Constitution"))); + OWSAttributes->SetIntellect(JsonObject->GetNumberField(TEXT("Intellect"))); + OWSAttributes->SetWisdom(JsonObject->GetNumberField(TEXT("Wisdom"))); + OWSAttributes->SetCharisma(JsonObject->GetNumberField(TEXT("Charisma"))); + OWSAttributes->SetAgility(JsonObject->GetNumberField(TEXT("Agility"))); + OWSAttributes->SetSpirit(JsonObject->GetNumberField(TEXT("Spirit"))); + OWSAttributes->SetMagic(JsonObject->GetNumberField(TEXT("Magic"))); + OWSAttributes->SetFortitude(JsonObject->GetNumberField(TEXT("Fortitude"))); + OWSAttributes->SetReflex(JsonObject->GetNumberField(TEXT("Reflex"))); + OWSAttributes->SetWillpower(JsonObject->GetNumberField(TEXT("Willpower"))); + + OWSAttributes->SetBaseAttack(JsonObject->GetNumberField(TEXT("BaseAttack"))); + OWSAttributes->SetBaseAttackBonus(JsonObject->GetNumberField(TEXT("BaseAttackBonus"))); + OWSAttributes->SetAttackPower(JsonObject->GetNumberField(TEXT("AttackPower"))); + OWSAttributes->SetAttackSpeed(JsonObject->GetNumberField(TEXT("AttackSpeed"))); + OWSAttributes->SetCritChance(JsonObject->GetNumberField(TEXT("CritChance"))); + OWSAttributes->SetCritMultiplier(JsonObject->GetNumberField(TEXT("CritMultiplier"))); + OWSAttributes->SetHaste(JsonObject->GetNumberField(TEXT("Haste"))); + OWSAttributes->SetSpellPower(JsonObject->GetNumberField(TEXT("SpellPower"))); + OWSAttributes->SetSpellPenetration(JsonObject->GetNumberField(TEXT("SpellPenetration"))); + OWSAttributes->SetDefense(JsonObject->GetNumberField(TEXT("Defense"))); + OWSAttributes->SetDodge(JsonObject->GetNumberField(TEXT("Dodge"))); + OWSAttributes->SetParry(JsonObject->GetNumberField(TEXT("Parry"))); + OWSAttributes->SetAvoidance(JsonObject->GetNumberField(TEXT("Avoidance"))); + OWSAttributes->SetVersatility(JsonObject->GetNumberField(TEXT("Versatility"))); + OWSAttributes->SetMultishot(JsonObject->GetNumberField(TEXT("Multishot"))); + OWSAttributes->SetInitiative(JsonObject->GetNumberField(TEXT("Initiative"))); + OWSAttributes->SetNaturalArmor(JsonObject->GetNumberField(TEXT("NaturalArmor"))); + OWSAttributes->SetPhysicalArmor(JsonObject->GetNumberField(TEXT("PhysicalArmor"))); + OWSAttributes->SetBonusArmor(JsonObject->GetNumberField(TEXT("BonusArmor"))); + OWSAttributes->SetForceArmor(JsonObject->GetNumberField(TEXT("ForceArmor"))); + OWSAttributes->SetMagicArmor(JsonObject->GetNumberField(TEXT("MagicArmor"))); + OWSAttributes->SetResistance(JsonObject->GetNumberField(TEXT("Resistance"))); + OWSAttributes->SetReloadSpeed(JsonObject->GetNumberField(TEXT("ReloadSpeed"))); + OWSAttributes->SetRange(JsonObject->GetNumberField(TEXT("Range"))); + OWSAttributes->SetSpeed(JsonObject->GetNumberField(TEXT("Speed"))); } diff --git a/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSGameInstance.cpp b/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSGameInstance.cpp index fe1fbb448..d511bcde1 100644 --- a/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSGameInstance.cpp +++ b/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSGameInstance.cpp @@ -141,7 +141,7 @@ FString UOWSGameInstance::EncryptWithAES(FString StringToEncrypt, FString Key) if (StringToBytes(StringToEncrypt, ByteString, Size)) { - FAES::EncryptData(ByteString, Size, TCHAR_TO_ANSI(KeyTChar)); + FAES::EncryptData(ByteString, Size, StringCast((KeyTChar)).Get()); StringToEncrypt = FString::FromHexBlob(ByteString, Size); delete[] ByteString; @@ -169,7 +169,7 @@ FString UOWSGameInstance::DecryptWithAES(FString StringToDecrypt, FString Key) if (FString::ToHexBlob(StringToDecrypt, ByteString, Size)) { - FAES::DecryptData(ByteString, Size, TCHAR_TO_ANSI(KeyTChar)); + FAES::DecryptData(ByteString, Size, StringCast((KeyTChar)).Get()); StringToDecrypt = BytesToString(ByteString, Size); FString LeftPart; diff --git a/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSGameMode.cpp b/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSGameMode.cpp index 435489435..26141555e 100644 --- a/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSGameMode.cpp +++ b/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSGameMode.cpp @@ -91,7 +91,6 @@ void AOWSGameMode::AddOrUpdateGlobalDataItemError(const FString& ErrorMsg) void AOWSGameMode::ProcessOWS2POSTRequest(FString ApiModuleToCall, FString ApiToCall, FString PostParameters, void (AOWSGameMode::* InMethodPtr)(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful)) { Http = &FHttpModule::Get(); - Http->SetHttpTimeout(30); //Set timeout TSharedRef Request = Http->CreateRequest(); Request->OnProcessRequestComplete().BindUObject(this, InMethodPtr); @@ -230,6 +229,12 @@ FString AOWSGameMode::InitNewPlayer(APlayerController* NewPlayerController, cons TArray SplitArray; DecodedIDData.ParseIntoArray(SplitArray, TEXT("|"), false); + if (SplitArray.Num() < 8) + { + UE_LOG(OWS, Error, TEXT("OWSGameMode::InitNewPlayer - Not enough parameters in IDData! - %s"), *DecodedIDData); + return retString; + } + PLX = SplitArray[0]; PLY = SplitArray[1]; PLZ = SplitArray[2]; @@ -239,8 +244,8 @@ FString AOWSGameMode::InitNewPlayer(APlayerController* NewPlayerController, cons PlayerName1 = SplitArray[6]; UserSessionGUID = SplitArray[7]; - UE_LOG(OWS, Warning, TEXT("PlayerName: %s"), *PlayerName1); - UE_LOG(OWS, Warning, TEXT("UserSessionGUID: %s"), *UserSessionGUID); + UE_LOG(OWS, Verbose, TEXT("PlayerName: %s"), *PlayerName1); + UE_LOG(OWS, Verbose, TEXT("UserSessionGUID: %s"), *UserSessionGUID); //FString OWSDefaultPawnClass = UGameplayStatics::ParseOption(DecodedOptions, TEXT("DPC")); } @@ -757,7 +762,7 @@ void AOWSGameMode::OnGetCurrentWorldTimeResponseReceived(FHttpRequestPtr Request { float fCurrentWorldTime; - fCurrentWorldTime = JsonObject->GetNumberField("CurrentWorldTime"); + fCurrentWorldTime = JsonObject->GetNumberField(TEXT("CurrentWorldTime")); NotifyGetCurrentWorldTime(fCurrentWorldTime); } diff --git a/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSGameplayAbilityTargetAct_Cone.cpp b/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSGameplayAbilityTargetAct_Cone.cpp index 1ccf293eb..9ea030136 100644 --- a/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSGameplayAbilityTargetAct_Cone.cpp +++ b/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSGameplayAbilityTargetAct_Cone.cpp @@ -4,6 +4,8 @@ #include "GameFramework/Pawn.h" #include "WorldCollision.h" #include "Abilities/GameplayAbility.h" +#include "Runtime/Engine/Classes/Engine/OverlapResult.h" + AOWSGameplayAbilityTargetAct_Cone::AOWSGameplayAbilityTargetAct_Cone(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) diff --git a/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSLoginWidget.cpp b/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSLoginWidget.cpp index fb0f0aea3..c18c10e9f 100644 --- a/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSLoginWidget.cpp +++ b/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSLoginWidget.cpp @@ -27,7 +27,6 @@ UOWSLoginWidget::UOWSLoginWidget(const class FObjectInitializer& ObjectInitializ void UOWSLoginWidget::ProcessOWS2POSTRequest(FString ApiToCall, FString PostParameters, void (UOWSLoginWidget::* InMethodPtr)(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful)) { Http = &FHttpModule::Get(); - Http->SetHttpTimeout(LoginTimeout); //Set timeout TSharedRef Request = Http->CreateRequest(); Request->OnProcessRequestComplete().BindUObject(this, InMethodPtr); diff --git a/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSLoginWidget.cpp.bak b/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSLoginWidget.cpp.bak deleted file mode 100644 index 30e602ee0..000000000 --- a/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSLoginWidget.cpp.bak +++ /dev/null @@ -1,178 +0,0 @@ -// Fill out your copyright notice in the Description page of Project Settings. - -#include "OWSLoginWidget.h" -#include "OWSPlugin.h" -#include "Runtime/Online/HTTP/Public/Http.h" -#include "OWSPlayerController.h" -#include "Runtime/Core/Public/Misc/ConfigCacheIni.h" - -UOWSLoginWidget::UOWSLoginWidget(const class FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) -{ - GConfig->GetString( - TEXT("/Script/EngineSettings.GeneralProjectSettings"), - TEXT("OWSAPICustomerKey"), - OWSAPICustomerKey, - GGameIni - ); - - GConfig->GetString( - TEXT("/Script/EngineSettings.GeneralProjectSettings"), - TEXT("OWS2APIPath"), - OWS2APIPath, - GGameIni - ); -} - -//This method only calls the Public API -void UOWSLoginWidget::ProcessOWS2POSTRequest(FString ApiToCall, FString PostParameters, void (UOWSLoginWidget::* InMethodPtr)(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful)) -{ - Http = &FHttpModule::Get(); - Http->SetHttpTimeout(LoginTimeout); //Set timeout - TSharedRef Request = Http->CreateRequest(); - Request->OnProcessRequestComplete().BindUObject(this, InMethodPtr); - - FString OWS2APIPathToUse = OWS2APIPath; - - Request->SetURL(FString(OWS2APIPathToUse + ApiToCall)); - Request->SetVerb("POST"); - Request->SetHeader(TEXT("User-Agent"), "X-UnrealEngine-Agent"); - Request->SetHeader("Content-Type", TEXT("application/json")); - Request->SetHeader(TEXT("X-CustomerGUID"), OWSAPICustomerKey); - Request->SetContentAsString(PostParameters); - Request->ProcessRequest(); -} - -void UOWSLoginWidget::GetJsonObjectFromResponse(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful, FString CallingMethodName, FString& ErrorMsg, TSharedPtr& JsonObject) -{ - if (bWasSuccessful && Response.IsValid()) - { - TSharedRef> Reader = TJsonReaderFactory<>::Create(Response->GetContentAsString()); - - if (FJsonSerializer::Deserialize(Reader, JsonObject)) - { - ErrorMsg = ""; - return; - } - else - { - UE_LOG(OWS, Error, TEXT("%s - Error Deserializing JsonObject!"), *CallingMethodName); - ErrorMsg = CallingMethodName + " - Error Deserializing JsonObject!"; - } - } - else - { - UE_LOG(OWS, Error, TEXT("%s - Response was unsuccessful or invalid!"), *CallingMethodName); - ErrorMsg = CallingMethodName + " - Response was unsuccessful or invalid!"; - } -} - -void UOWSLoginWidget::LoginAndCreateSession(FString Email, FString Password) -{ - FLoginAndCreateSessionJSONPost LoginAndCreateSessionJSONPost(Email, Password); - FString PostParameters = ""; - if (FJsonObjectConverter::UStructToJsonObjectString(LoginAndCreateSessionJSONPost, PostParameters)) - { - ProcessOWS2POSTRequest("api/Users/LoginAndCreateSession", PostParameters, &UOWSLoginWidget::OnLoginAndCreateSessionResponseReceived); - } - else - { - UE_LOG(OWS, Error, TEXT("LoginAndCreateSession Error serializing FLoginAndCreateSessionJSONPost!")); - } -} - -void UOWSLoginWidget::OnLoginAndCreateSessionResponseReceived(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful) -{ - FString ErrorMsg; - TSharedPtr JsonObject; - GetJsonObjectFromResponse(Request, Response, bWasSuccessful, "OnLoginAndCreateSessionResponseReceived", ErrorMsg, JsonObject); - if (!ErrorMsg.IsEmpty()) - { - ErrorLoginAndCreateSession(ErrorMsg); - return; - } - - TSharedPtr LoginAndCreateSession = GetStructFromJsonObject(JsonObject); - - if (!LoginAndCreateSession->ErrorMessage.IsEmpty()) - { - ErrorLoginAndCreateSession(*LoginAndCreateSession->ErrorMessage); - return; - } - - NotifyLoginAndCreateSession(LoginAndCreateSession->UserSessionGUID); -} - - -void UOWSLoginWidget::ExternalLoginAndCreateSession(FString Email, FString Password) -{ - FLoginAndCreateSessionJSONPost LoginAndCreateSessionJSONPost(Email, Password); - FString PostParameters = ""; - if (FJsonObjectConverter::UStructToJsonObjectString(LoginAndCreateSessionJSONPost, PostParameters)) - { - ProcessOWS2POSTRequest("api/Users/ExternalLoginAndCreateSession", PostParameters, &UOWSLoginWidget::OnExternalLoginAndCreateSessionResponseReceived); - } - else - { - UE_LOG(OWS, Error, TEXT("ExternalLoginAndCreateSession Error serializing FLoginAndCreateSessionJSONPost!")); - } -} - -void UOWSLoginWidget::OnExternalLoginAndCreateSessionResponseReceived(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful) -{ - FString ErrorMsg; - TSharedPtr JsonObject; - GetJsonObjectFromResponse(Request, Response, bWasSuccessful, "OnExternalLoginAndCreateSessionResponseReceived", ErrorMsg, JsonObject); - if (!ErrorMsg.IsEmpty()) - { - ErrorExternalLoginAndCreateSession(ErrorMsg); - return; - } - - TSharedPtr LoginAndCreateSession = GetStructFromJsonObject(JsonObject); - - if (!LoginAndCreateSession->ErrorMessage.IsEmpty()) - { - ErrorExternalLoginAndCreateSession(*LoginAndCreateSession->ErrorMessage); - return; - } - - NotifyExternalLoginAndCreateSession(LoginAndCreateSession->UserSessionGUID); -} - - - -void UOWSLoginWidget::Register(FString Email, FString Password, FString FirstName, FString LastName) -{ - FRegisterJSONPost RegisterJSONPost(Email, Password, FirstName, LastName); - FString PostParameters = ""; - if (FJsonObjectConverter::UStructToJsonObjectString(RegisterJSONPost, PostParameters)) - { - ProcessOWS2POSTRequest("api/Users/RegisterUser", PostParameters, &UOWSLoginWidget::OnRegisterResponseReceived); - } - else - { - UE_LOG(OWS, Error, TEXT("Register Error serializing FRegisterJSONPost!")); - } -} - -void UOWSLoginWidget::OnRegisterResponseReceived(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful) -{ - FString ErrorMsg; - TSharedPtr JsonObject; - GetJsonObjectFromResponse(Request, Response, bWasSuccessful, "OnRegisterResponseReceived", ErrorMsg, JsonObject); - if (!ErrorMsg.IsEmpty()) - { - ErrorRegister(ErrorMsg); - return; - } - - TSharedPtr RegisterAndCreateSession = GetStructFromJsonObject(JsonObject); - - if (!RegisterAndCreateSession->ErrorMessage.IsEmpty()) - { - ErrorRegister(*RegisterAndCreateSession->ErrorMessage); - return; - } - - NotifyRegister(RegisterAndCreateSession->UserSessionGUID); -} diff --git a/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSPlayerController.cpp b/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSPlayerController.cpp index 80d35641a..db358dd82 100644 --- a/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSPlayerController.cpp +++ b/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSPlayerController.cpp @@ -39,7 +39,6 @@ AOWSPlayerController::AOWSPlayerController() GGameIni ); - TravelTimeout = 60.f; MaxPredictionPing = 120.f; bEnableClickEvents = true; @@ -167,15 +166,15 @@ void AOWSPlayerController::NotifyGetCharacterDataAndCustomData2(TSharedPtr CustomData; - if (JsonObject->HasField("CustomCharacterDataRows")) + if (JsonObject->HasField(TEXT("CustomCharacterDataRows"))) { - TArray> Rows = JsonObject->GetArrayField("CustomCharacterDataRows"); + TArray> Rows = JsonObject->GetArrayField(TEXT("CustomCharacterDataRows")); for (int RowNum = 0; RowNum != Rows.Num(); RowNum++) { FCustomCharacterDataStruct tempCustomData; TSharedPtr tempRow = Rows[RowNum]->AsObject(); - tempCustomData.CustomFieldName = tempRow->GetStringField("CustomFieldName"); - tempCustomData.FieldValue = tempRow->GetStringField("FieldValue"); + tempCustomData.CustomFieldName = tempRow->GetStringField(TEXT("CustomFieldName")); + tempCustomData.FieldValue = tempRow->GetStringField(TEXT("FieldValue")); CustomData.Add(tempCustomData); } diff --git a/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSPlayerControllerComponent.cpp b/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSPlayerControllerComponent.cpp index 133d43ac9..899bf9083 100644 --- a/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSPlayerControllerComponent.cpp +++ b/plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSPlayerControllerComponent.cpp @@ -203,7 +203,6 @@ Valid values for ApiModuleToCall: void UOWSPlayerControllerComponent::ProcessOWS2POSTRequest(FString ApiModuleToCall, FString ApiToCall, FString PostParameters, void (UOWSPlayerControllerComponent::* InMethodPtr)(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful)) { Http = &FHttpModule::Get(); - Http->SetHttpTimeout(TravelTimeout); //Set timeout TSharedRef Request = Http->CreateRequest(); Request->OnProcessRequestComplete().BindUObject(this, InMethodPtr); @@ -266,14 +265,14 @@ void UOWSPlayerControllerComponent::OnSetSelectedCharacterAndConnectToLastZoneRe if (FJsonSerializer::Deserialize(Reader, JsonObject)) { - ServerTravelUserSessionGUID = JsonObject->GetStringField("UserSessionGUID"); - ServerTravelCharacterName = JsonObject->GetStringField("CharName"); - ServerTravelX = JsonObject->GetNumberField("X"); - ServerTravelY = JsonObject->GetNumberField("Y"); - ServerTravelZ = JsonObject->GetNumberField("Z"); - ServerTravelRX = JsonObject->GetNumberField("RX"); - ServerTravelRY = JsonObject->GetNumberField("RY"); - ServerTravelRZ = JsonObject->GetNumberField("RZ"); + ServerTravelUserSessionGUID = JsonObject->GetStringField(TEXT("UserSessionGUID")); + ServerTravelCharacterName = JsonObject->GetStringField(TEXT("CharName")); + ServerTravelX = JsonObject->GetNumberField(TEXT("X")); + ServerTravelY = JsonObject->GetNumberField(TEXT("Y")); + ServerTravelZ = JsonObject->GetNumberField(TEXT("Z")); + ServerTravelRX = JsonObject->GetNumberField(TEXT("RX")); + ServerTravelRY = JsonObject->GetNumberField(TEXT("RY")); + ServerTravelRZ = JsonObject->GetNumberField(TEXT("RZ")); UE_LOG(OWS, Log, TEXT("OnSetSelectedCharacterAndConnectToLastZone location is %f, %f, %f"), ServerTravelX, ServerTravelY, ServerTravelZ); @@ -338,8 +337,8 @@ void UOWSPlayerControllerComponent::OnTravelToLastZoneServerResponseReceived(FHt if (FJsonSerializer::Deserialize(Reader, JsonObject)) { - FString ServerIP = JsonObject->GetStringField("serverip"); - FString Port = JsonObject->GetStringField("port"); + FString ServerIP = JsonObject->GetStringField(TEXT("serverip")); + FString Port = JsonObject->GetStringField(TEXT("port")); if (ServerIP.IsEmpty() || Port.IsEmpty()) { @@ -407,8 +406,8 @@ void UOWSPlayerControllerComponent::OnGetZoneServerToTravelToResponseReceived(FH if (FJsonSerializer::Deserialize(Reader, JsonObject)) { - FString ServerIP = JsonObject->GetStringField("serverip"); - FString Port = JsonObject->GetStringField("port"); + FString ServerIP = JsonObject->GetStringField(TEXT("serverip")); + FString Port = JsonObject->GetStringField(TEXT("port")); if (ServerIP.IsEmpty() || Port.IsEmpty()) { @@ -688,17 +687,17 @@ void UOWSPlayerControllerComponent::OnGetChatGroupsForPlayerResponseReceived(FHt if (FJsonSerializer::Deserialize(Reader, JsonObject)) { - if (JsonObject->GetStringField("success") == "true") + if (JsonObject->GetStringField(TEXT("success")) == "true") { - TArray> Rows = JsonObject->GetArrayField("rows"); + TArray> Rows = JsonObject->GetArrayField(TEXT("rows")); TArray ChatGroups; for (int RowNum = 0; RowNum != Rows.Num(); RowNum++) { FChatGroup tempChatGroup; TSharedPtr tempRow = Rows[RowNum]->AsObject(); - tempChatGroup.ChatGroupID = tempRow->GetIntegerField("ChatGroupID"); - tempChatGroup.ChatGroupName = tempRow->GetStringField("ChatGroupName"); + tempChatGroup.ChatGroupID = tempRow->GetIntegerField(TEXT("ChatGroupID")); + tempChatGroup.ChatGroupName = tempRow->GetStringField(TEXT("ChatGroupName")); ChatGroups.Add(tempChatGroup); } @@ -1110,26 +1109,26 @@ void UOWSPlayerControllerComponent::OnGetPlayerGroupsCharacterIsInResponseReceiv if (FJsonSerializer::Deserialize(Reader, JsonObject)) { - FString Success = JsonObject->GetStringField("success"); + FString Success = JsonObject->GetStringField(TEXT("success")); if (Success == "true") { - if (JsonObject->HasField("rows")) + if (JsonObject->HasField(TEXT("rows"))) { - TArray> Rows = JsonObject->GetArrayField("rows"); + TArray> Rows = JsonObject->GetArrayField(TEXT("rows")); TArray tempPlayerGroups; for (int RowNum = 0; RowNum != Rows.Num(); RowNum++) { FPlayerGroup tempPlayerGroup; TSharedPtr tempRow = Rows[RowNum]->AsObject(); - tempPlayerGroup.PlayerGroupID = tempRow->GetNumberField("PlayerGroupID"); - tempPlayerGroup.PlayerGroupName = tempRow->GetStringField("PlayerGroupName"); - tempPlayerGroup.PlayerGroupTypeID = tempRow->GetNumberField("PlayerGroupTypeID"); - tempPlayerGroup.ReadyState = tempRow->GetNumberField("ReadyState"); - tempPlayerGroup.TeamNumber = tempRow->GetNumberField("TeamNumber"); + tempPlayerGroup.PlayerGroupID = tempRow->GetNumberField(TEXT("PlayerGroupID")); + tempPlayerGroup.PlayerGroupName = tempRow->GetStringField(TEXT("PlayerGroupName")); + tempPlayerGroup.PlayerGroupTypeID = tempRow->GetNumberField(TEXT("PlayerGroupTypeID")); + tempPlayerGroup.ReadyState = tempRow->GetNumberField(TEXT("ReadyState")); + tempPlayerGroup.TeamNumber = tempRow->GetNumberField(TEXT("TeamNumber")); FDateTime OutDateTime; - FDateTime::Parse(tempRow->GetStringField("DateAdded"), OutDateTime); + FDateTime::Parse(tempRow->GetStringField(TEXT("DateAdded")), OutDateTime); tempPlayerGroup.DateAdded = OutDateTime; tempPlayerGroups.Add(tempPlayerGroup); @@ -1141,7 +1140,7 @@ void UOWSPlayerControllerComponent::OnGetPlayerGroupsCharacterIsInResponseReceiv } else { - FString ErrorMessage = JsonObject->GetStringField("errmsg"); + FString ErrorMessage = JsonObject->GetStringField(TEXT("errmsg")); OnErrorGetPlayerGroupsCharacterIsInDelegate.ExecuteIfBound(ErrorMessage); } } @@ -1187,8 +1186,8 @@ void UOWSPlayerControllerComponent::OnLaunchZoneInstanceResponseReceived(FHttpRe if (FJsonSerializer::Deserialize(Reader, JsonObject)) { - FString ServerIP = JsonObject->GetStringField("serverip"); - FString Port = JsonObject->GetStringField("port"); + FString ServerIP = JsonObject->GetStringField(TEXT("serverip")); + FString Port = JsonObject->GetStringField(TEXT("port")); ServerAndPort = ServerIP + FString(TEXT(":")) + Port; diff --git a/plugins/OWSPluginUE5/Source/OWSPlugin/Public/OWS2API.h b/plugins/OWSPluginUE5/Source/OWSPlugin/Public/OWS2API.h index 7dbf644f6..2fefae860 100644 --- a/plugins/OWSPluginUE5/Source/OWSPlugin/Public/OWS2API.h +++ b/plugins/OWSPluginUE5/Source/OWSPlugin/Public/OWS2API.h @@ -1,4 +1,5 @@ -// Copyright 2022 Sabre Dart Studios +// Copyright 2024 Open World Server +// https://github.com/Dartanlla/OWS #pragma once diff --git a/plugins/OWSPluginUE5/Source/OWSPlugin/Public/OWSAPISubsystem.h b/plugins/OWSPluginUE5/Source/OWSPlugin/Public/OWSAPISubsystem.h index c13a600f8..1a3328f06 100644 --- a/plugins/OWSPluginUE5/Source/OWSPlugin/Public/OWSAPISubsystem.h +++ b/plugins/OWSPluginUE5/Source/OWSPlugin/Public/OWSAPISubsystem.h @@ -7,6 +7,7 @@ #include "OWS2API.h" #include "Subsystems/GameInstanceSubsystem.h" #include "Runtime/Online/HTTP/Public/Http.h" +#include "JsonObjectConverter.h" #include "OWSAPISubsystem.generated.h" //Get Global Data Item @@ -54,9 +55,6 @@ class OWSPLUGIN_API UOWSAPISubsystem : public UGameInstanceSubsystem UPROPERTY(BlueprintReadWrite, Category = "Config") FString OWSEncryptionKey = ""; - UPROPERTY(BlueprintReadWrite, Category = "Config") - float OWS2APIRequestTimeout; - protected: FHttpModule* Http; diff --git a/plugins/OWSPluginUE5/Source/OWSPlugin/Public/OWSAttributeSet.i b/plugins/OWSPluginUE5/Source/OWSPlugin/Public/OWSAttributeSet.i deleted file mode 100644 index 19d217b4e..000000000 --- a/plugins/OWSPluginUE5/Source/OWSPlugin/Public/OWSAttributeSet.i +++ /dev/null @@ -1,5 +0,0 @@ -#line 1 "OWSAttributeSet.h" -// Fill out your copyright notice in the Description page of Project Settings. - -#pragma once - diff --git a/plugins/OWSPluginUE5/Source/OWSPlugin/Public/OWSPlayerController.h b/plugins/OWSPluginUE5/Source/OWSPlugin/Public/OWSPlayerController.h index 4a44f220f..10aecfa76 100644 --- a/plugins/OWSPluginUE5/Source/OWSPlugin/Public/OWSPlayerController.h +++ b/plugins/OWSPluginUE5/Source/OWSPlugin/Public/OWSPlayerController.h @@ -85,9 +85,6 @@ class OWSPLUGIN_API AOWSPlayerController : public APlayerController void TravelToMap2(const FString& ServerAndPort, const float X, const float Y, const float Z, const float RX, const float RY, const float RZ, const FString& PlayerName, const bool SeamlessTravel); - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Connection") - float TravelTimeout; - virtual void GetLifetimeReplicatedProps(TArray< FLifetimeProperty > & OutLifetimeProps) const override; //Predicted projectiles diff --git a/plugins/OWSPluginUE5/Source/OWSPlugin/Public/OWSPlayerControllerComponent.h b/plugins/OWSPluginUE5/Source/OWSPlugin/Public/OWSPlayerControllerComponent.h index 212e9f681..f704ea556 100644 --- a/plugins/OWSPluginUE5/Source/OWSPlugin/Public/OWSPlayerControllerComponent.h +++ b/plugins/OWSPluginUE5/Source/OWSPlugin/Public/OWSPlayerControllerComponent.h @@ -358,9 +358,6 @@ class OWSPLUGIN_API UOWSPlayerControllerComponent : public UActorComponent UPROPERTY(BlueprintReadWrite, Category = "Config") FString OWSEncryptionKey = ""; - UPROPERTY(BlueprintReadWrite) - float TravelTimeout = 60.f; - FString ServerTravelUserSessionGUID; FString ServerTravelCharacterName; float ServerTravelX;