Skip to content

Commit 14a9122

Browse files
Updated UE5 Plugin for 5.4.
1 parent 4aca515 commit 14a9122

18 files changed

+256
-447
lines changed
Binary file not shown.

plugins/OWSPluginUE5/OWSPlugin.uplugin

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"FileVersion": 3,
33
"Version": 5,
4-
"VersionName": "5.3",
4+
"VersionName": "5.4",
55
"FriendlyName": "OWSPlugin",
66
"Description": "Open World Server",
77
"Category": "Other",
@@ -10,7 +10,7 @@
1010
"DocsURL": "https://www.openworldserver.com",
1111
"MarketplaceURL": "",
1212
"SupportURL": "",
13-
"EngineVersion": "5.3.0",
13+
"EngineVersion": "5.4.0",
1414
"CanContainContent": true,
1515
"IsBetaVersion": false,
1616
"Installed": true,

plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSAPISubsystem.cpp

-4
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ void UOWSAPISubsystem::Initialize(FSubsystemCollectionBase& Collection)
4040
OWS2GlobalDataAPIPath,
4141
GGameIni
4242
);
43-
44-
OWS2APIRequestTimeout = 30.f;
4543
}
4644

4745
void UOWSAPISubsystem::Deinitialize()
@@ -76,7 +74,6 @@ void UOWSAPISubsystem::GetJsonObjectFromResponse(FHttpRequestPtr Request, FHttpR
7674
void UOWSAPISubsystem::ProcessOWS2POSTRequest(FString ApiModuleToCall, FString ApiToCall, FString PostParameters, void (UOWSAPISubsystem::* InMethodPtr)(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful))
7775
{
7876
Http = &FHttpModule::Get();
79-
Http->SetHttpTimeout(OWS2APIRequestTimeout); //Set timeout
8077
TSharedRef<IHttpRequest, ESPMode::ThreadSafe> Request = Http->CreateRequest();
8178
Request->OnProcessRequestComplete().BindUObject(this, InMethodPtr);
8279

@@ -115,7 +112,6 @@ void UOWSAPISubsystem::ProcessOWS2POSTRequest(FString ApiModuleToCall, FString A
115112
void UOWSAPISubsystem::ProcessOWS2GETRequest(FString ApiModuleToCall, FString ApiToCall, void (UOWSAPISubsystem::* InMethodPtr)(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful))
116113
{
117114
Http = &FHttpModule::Get();
118-
Http->SetHttpTimeout(OWS2APIRequestTimeout); //Set timeout
119115
TSharedRef<IHttpRequest, ESPMode::ThreadSafe> Request = Http->CreateRequest();
120116
Request->OnProcessRequestComplete().BindUObject(this, InMethodPtr);
121117

plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSAdvancedProjectile.cpp

+7-6
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include "Runtime/Engine/Classes/Components/AudioComponent.h"
1111
#include "Runtime/Engine/Public/Audio.h"
1212
#include "Runtime/Engine/Classes/Sound/SoundBase.h"
13+
#include "Runtime/Engine/Classes/Engine/OverlapResult.h"
1314
#include "Abilities/GameplayAbilityTargetTypes.h"
1415
#include "AbilitySystemBlueprintLibrary.h"
1516

@@ -358,7 +359,7 @@ void AOWSAdvancedProjectile::BeginFakeProjectileSynch(AOWSAdvancedProjectile* In
358359
}
359360
else
360361
{
361-
UE_LOG(OWS, Verbose, TEXT("%S: BeginFakeProjectileSynch: Move Replicated To Fake Pos: %s"), *ServerOrClient, *GetNameSafe(this));
362+
UE_LOG(OWS, Verbose, TEXT("%s: BeginFakeProjectileSynch: Move Replicated To Fake Pos: %s"), *ServerOrClient, *GetNameSafe(this));
362363

363364
FRepMovement RepMovement;
364365
RepMovement.Location = MyFakeProjectile->GetActorLocation();
@@ -938,10 +939,10 @@ void AOWSAdvancedProjectile::DamageImpactedActor_Implementation(AActor* OtherAct
938939

939940

940941
//We use the InstigatorCharacter because if we use the Hit Character we won't have an owning connecto RPC up the prediction key.
941-
AOWSCharacterWithAbilities* InstigatorCharacter = CastChecked<AOWSCharacterWithAbilities>(GetInstigator());
942+
//AOWSCharacterWithAbilities* InstigatorCharacter = CastChecked<AOWSCharacterWithAbilities>(GetInstigator());
942943

943-
if (!IsValid(InstigatorCharacter))
944-
{
944+
//if (!IsValid(InstigatorCharacter))
945+
//{
945946
// InstigatorCharacter->HandleProjectileEffectApplicationPrediction(this, OtherActor);
946947

947948
/*IAbilitySystemInterface* AbilitySystemInterface = Cast<IAbilitySystemInterface>(CharacterWhoWasHit);
@@ -966,11 +967,11 @@ void AOWSAdvancedProjectile::DamageImpactedActor_Implementation(AActor* OtherAct
966967
UE_LOG(OWS, Error, TEXT("Send GameplayEvent.AdvancedProjectile.DirectDamageEvent"));
967968
}
968969
}*/
969-
}
970+
/* }
970971
else //Hit something other than an AOWSCharacterWithAbilities
971972
{
972973
973-
}
974+
}*/
974975

975976

976977
/*

plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSCharacter.cpp

+134-136
Large diffs are not rendered by default.

plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSCharacterWithAbilities.cpp

+65-65
Original file line numberDiff line numberDiff line change
@@ -471,71 +471,71 @@ void AOWSCharacterWithAbilities::OnGetCharacterStatsResponseReceived(FHttpReques
471471

472472
void AOWSCharacterWithAbilities::LoadAttributesFromJSON(TSharedPtr<FJsonObject> JsonObject)
473473
{
474-
OWSAttributes->SetThirst(JsonObject->GetNumberField("Thirst"));
475-
OWSAttributes->SetHunger(JsonObject->GetNumberField("Hunger"));
476-
477-
OWSAttributes->SetMaxHealth(JsonObject->GetNumberField("MaxHealth"));
478-
OWSAttributes->SetHealth(JsonObject->GetNumberField("Health"));
479-
OWSAttributes->SetHealthRegenRate(JsonObject->GetNumberField("HealthRegenRate"));
480-
481-
OWSAttributes->SetMaxMana(JsonObject->GetNumberField("MaxMana"));
482-
OWSAttributes->SetMana(JsonObject->GetNumberField("Mana"));
483-
OWSAttributes->SetManaRegenRate(JsonObject->GetNumberField("ManaRegenRate"));
484-
485-
OWSAttributes->SetMaxEnergy(JsonObject->GetNumberField("MaxEnergy"));
486-
OWSAttributes->SetEnergy(JsonObject->GetNumberField("Energy"));
487-
OWSAttributes->SetEnergyRegenRate(JsonObject->GetNumberField("EnergyRegenRate"));
488-
489-
OWSAttributes->SetMaxFatigue(JsonObject->GetNumberField("MaxFatigue"));
490-
OWSAttributes->SetFatigue(JsonObject->GetNumberField("Fatigue"));
491-
OWSAttributes->SetFatigueRegenRate(JsonObject->GetNumberField("FatigueRegenRate"));
492-
493-
OWSAttributes->SetMaxStamina(JsonObject->GetNumberField("MaxStamina"));
494-
OWSAttributes->SetStamina(JsonObject->GetNumberField("Stamina"));
495-
OWSAttributes->SetStaminaRegenRate(JsonObject->GetNumberField("StaminaRegenRate"));
496-
497-
OWSAttributes->SetMaxEndurance(JsonObject->GetNumberField("MaxEndurance"));
498-
OWSAttributes->SetEndurance(JsonObject->GetNumberField("Endurance"));
499-
OWSAttributes->SetEnduranceRegenRate(JsonObject->GetNumberField("EnduranceRegenRate"));
500-
501-
OWSAttributes->SetStrength(JsonObject->GetNumberField("Strength"));
502-
OWSAttributes->SetDexterity(JsonObject->GetNumberField("Dexterity"));
503-
OWSAttributes->SetConstitution(JsonObject->GetNumberField("Constitution"));
504-
OWSAttributes->SetIntellect(JsonObject->GetNumberField("Intellect"));
505-
OWSAttributes->SetWisdom(JsonObject->GetNumberField("Wisdom"));
506-
OWSAttributes->SetCharisma(JsonObject->GetNumberField("Charisma"));
507-
OWSAttributes->SetAgility(JsonObject->GetNumberField("Agility"));
508-
OWSAttributes->SetSpirit(JsonObject->GetNumberField("Spirit"));
509-
OWSAttributes->SetMagic(JsonObject->GetNumberField("Magic"));
510-
OWSAttributes->SetFortitude(JsonObject->GetNumberField("Fortitude"));
511-
OWSAttributes->SetReflex(JsonObject->GetNumberField("Reflex"));
512-
OWSAttributes->SetWillpower(JsonObject->GetNumberField("Willpower"));
513-
514-
OWSAttributes->SetBaseAttack(JsonObject->GetNumberField("BaseAttack"));
515-
OWSAttributes->SetBaseAttackBonus(JsonObject->GetNumberField("BaseAttackBonus"));
516-
OWSAttributes->SetAttackPower(JsonObject->GetNumberField("AttackPower"));
517-
OWSAttributes->SetAttackSpeed(JsonObject->GetNumberField("AttackSpeed"));
518-
OWSAttributes->SetCritChance(JsonObject->GetNumberField("CritChance"));
519-
OWSAttributes->SetCritMultiplier(JsonObject->GetNumberField("CritMultiplier"));
520-
OWSAttributes->SetHaste(JsonObject->GetNumberField("Haste"));
521-
OWSAttributes->SetSpellPower(JsonObject->GetNumberField("SpellPower"));
522-
OWSAttributes->SetSpellPenetration(JsonObject->GetNumberField("SpellPenetration"));
523-
OWSAttributes->SetDefense(JsonObject->GetNumberField("Defense"));
524-
OWSAttributes->SetDodge(JsonObject->GetNumberField("Dodge"));
525-
OWSAttributes->SetParry(JsonObject->GetNumberField("Parry"));
526-
OWSAttributes->SetAvoidance(JsonObject->GetNumberField("Avoidance"));
527-
OWSAttributes->SetVersatility(JsonObject->GetNumberField("Versatility"));
528-
OWSAttributes->SetMultishot(JsonObject->GetNumberField("Multishot"));
529-
OWSAttributes->SetInitiative(JsonObject->GetNumberField("Initiative"));
530-
OWSAttributes->SetNaturalArmor(JsonObject->GetNumberField("NaturalArmor"));
531-
OWSAttributes->SetPhysicalArmor(JsonObject->GetNumberField("PhysicalArmor"));
532-
OWSAttributes->SetBonusArmor(JsonObject->GetNumberField("BonusArmor"));
533-
OWSAttributes->SetForceArmor(JsonObject->GetNumberField("ForceArmor"));
534-
OWSAttributes->SetMagicArmor(JsonObject->GetNumberField("MagicArmor"));
535-
OWSAttributes->SetResistance(JsonObject->GetNumberField("Resistance"));
536-
OWSAttributes->SetReloadSpeed(JsonObject->GetNumberField("ReloadSpeed"));
537-
OWSAttributes->SetRange(JsonObject->GetNumberField("Range"));
538-
OWSAttributes->SetSpeed(JsonObject->GetNumberField("Speed"));
474+
OWSAttributes->SetThirst(JsonObject->GetNumberField(TEXT("Thirst")));
475+
OWSAttributes->SetHunger(JsonObject->GetNumberField(TEXT("Hunger")));
476+
477+
OWSAttributes->SetMaxHealth(JsonObject->GetNumberField(TEXT("MaxHealth")));
478+
OWSAttributes->SetHealth(JsonObject->GetNumberField(TEXT("Health")));
479+
OWSAttributes->SetHealthRegenRate(JsonObject->GetNumberField(TEXT("HealthRegenRate")));
480+
481+
OWSAttributes->SetMaxMana(JsonObject->GetNumberField(TEXT("MaxMana")));
482+
OWSAttributes->SetMana(JsonObject->GetNumberField(TEXT("Mana")));
483+
OWSAttributes->SetManaRegenRate(JsonObject->GetNumberField(TEXT("ManaRegenRate")));
484+
485+
OWSAttributes->SetMaxEnergy(JsonObject->GetNumberField(TEXT("MaxEnergy")));
486+
OWSAttributes->SetEnergy(JsonObject->GetNumberField(TEXT("Energy")));
487+
OWSAttributes->SetEnergyRegenRate(JsonObject->GetNumberField(TEXT("EnergyRegenRate")));
488+
489+
OWSAttributes->SetMaxFatigue(JsonObject->GetNumberField(TEXT("MaxFatigue")));
490+
OWSAttributes->SetFatigue(JsonObject->GetNumberField(TEXT("Fatigue")));
491+
OWSAttributes->SetFatigueRegenRate(JsonObject->GetNumberField(TEXT("FatigueRegenRate")));
492+
493+
OWSAttributes->SetMaxStamina(JsonObject->GetNumberField(TEXT("MaxStamina")));
494+
OWSAttributes->SetStamina(JsonObject->GetNumberField(TEXT("Stamina")));
495+
OWSAttributes->SetStaminaRegenRate(JsonObject->GetNumberField(TEXT("StaminaRegenRate")));
496+
497+
OWSAttributes->SetMaxEndurance(JsonObject->GetNumberField(TEXT("MaxEndurance")));
498+
OWSAttributes->SetEndurance(JsonObject->GetNumberField(TEXT("Endurance")));
499+
OWSAttributes->SetEnduranceRegenRate(JsonObject->GetNumberField(TEXT("EnduranceRegenRate")));
500+
501+
OWSAttributes->SetStrength(JsonObject->GetNumberField(TEXT("Strength")));
502+
OWSAttributes->SetDexterity(JsonObject->GetNumberField(TEXT("Dexterity")));
503+
OWSAttributes->SetConstitution(JsonObject->GetNumberField(TEXT("Constitution")));
504+
OWSAttributes->SetIntellect(JsonObject->GetNumberField(TEXT("Intellect")));
505+
OWSAttributes->SetWisdom(JsonObject->GetNumberField(TEXT("Wisdom")));
506+
OWSAttributes->SetCharisma(JsonObject->GetNumberField(TEXT("Charisma")));
507+
OWSAttributes->SetAgility(JsonObject->GetNumberField(TEXT("Agility")));
508+
OWSAttributes->SetSpirit(JsonObject->GetNumberField(TEXT("Spirit")));
509+
OWSAttributes->SetMagic(JsonObject->GetNumberField(TEXT("Magic")));
510+
OWSAttributes->SetFortitude(JsonObject->GetNumberField(TEXT("Fortitude")));
511+
OWSAttributes->SetReflex(JsonObject->GetNumberField(TEXT("Reflex")));
512+
OWSAttributes->SetWillpower(JsonObject->GetNumberField(TEXT("Willpower")));
513+
514+
OWSAttributes->SetBaseAttack(JsonObject->GetNumberField(TEXT("BaseAttack")));
515+
OWSAttributes->SetBaseAttackBonus(JsonObject->GetNumberField(TEXT("BaseAttackBonus")));
516+
OWSAttributes->SetAttackPower(JsonObject->GetNumberField(TEXT("AttackPower")));
517+
OWSAttributes->SetAttackSpeed(JsonObject->GetNumberField(TEXT("AttackSpeed")));
518+
OWSAttributes->SetCritChance(JsonObject->GetNumberField(TEXT("CritChance")));
519+
OWSAttributes->SetCritMultiplier(JsonObject->GetNumberField(TEXT("CritMultiplier")));
520+
OWSAttributes->SetHaste(JsonObject->GetNumberField(TEXT("Haste")));
521+
OWSAttributes->SetSpellPower(JsonObject->GetNumberField(TEXT("SpellPower")));
522+
OWSAttributes->SetSpellPenetration(JsonObject->GetNumberField(TEXT("SpellPenetration")));
523+
OWSAttributes->SetDefense(JsonObject->GetNumberField(TEXT("Defense")));
524+
OWSAttributes->SetDodge(JsonObject->GetNumberField(TEXT("Dodge")));
525+
OWSAttributes->SetParry(JsonObject->GetNumberField(TEXT("Parry")));
526+
OWSAttributes->SetAvoidance(JsonObject->GetNumberField(TEXT("Avoidance")));
527+
OWSAttributes->SetVersatility(JsonObject->GetNumberField(TEXT("Versatility")));
528+
OWSAttributes->SetMultishot(JsonObject->GetNumberField(TEXT("Multishot")));
529+
OWSAttributes->SetInitiative(JsonObject->GetNumberField(TEXT("Initiative")));
530+
OWSAttributes->SetNaturalArmor(JsonObject->GetNumberField(TEXT("NaturalArmor")));
531+
OWSAttributes->SetPhysicalArmor(JsonObject->GetNumberField(TEXT("PhysicalArmor")));
532+
OWSAttributes->SetBonusArmor(JsonObject->GetNumberField(TEXT("BonusArmor")));
533+
OWSAttributes->SetForceArmor(JsonObject->GetNumberField(TEXT("ForceArmor")));
534+
OWSAttributes->SetMagicArmor(JsonObject->GetNumberField(TEXT("MagicArmor")));
535+
OWSAttributes->SetResistance(JsonObject->GetNumberField(TEXT("Resistance")));
536+
OWSAttributes->SetReloadSpeed(JsonObject->GetNumberField(TEXT("ReloadSpeed")));
537+
OWSAttributes->SetRange(JsonObject->GetNumberField(TEXT("Range")));
538+
OWSAttributes->SetSpeed(JsonObject->GetNumberField(TEXT("Speed")));
539539
}
540540

541541

plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSGameInstance.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ FString UOWSGameInstance::EncryptWithAES(FString StringToEncrypt, FString Key)
141141

142142
if (StringToBytes(StringToEncrypt, ByteString, Size)) {
143143

144-
FAES::EncryptData(ByteString, Size, TCHAR_TO_ANSI(KeyTChar));
144+
FAES::EncryptData(ByteString, Size, StringCast<ANSICHAR>((KeyTChar)).Get());
145145
StringToEncrypt = FString::FromHexBlob(ByteString, Size);
146146

147147
delete[] ByteString;
@@ -169,7 +169,7 @@ FString UOWSGameInstance::DecryptWithAES(FString StringToDecrypt, FString Key)
169169

170170
if (FString::ToHexBlob(StringToDecrypt, ByteString, Size)) {
171171

172-
FAES::DecryptData(ByteString, Size, TCHAR_TO_ANSI(KeyTChar));
172+
FAES::DecryptData(ByteString, Size, StringCast<ANSICHAR>((KeyTChar)).Get());
173173
StringToDecrypt = BytesToString(ByteString, Size);
174174

175175
FString LeftPart;

plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSGameMode.cpp

+9-4
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ void AOWSGameMode::AddOrUpdateGlobalDataItemError(const FString& ErrorMsg)
9191
void AOWSGameMode::ProcessOWS2POSTRequest(FString ApiModuleToCall, FString ApiToCall, FString PostParameters, void (AOWSGameMode::* InMethodPtr)(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful))
9292
{
9393
Http = &FHttpModule::Get();
94-
Http->SetHttpTimeout(30); //Set timeout
9594
TSharedRef<IHttpRequest, ESPMode::ThreadSafe> Request = Http->CreateRequest();
9695
Request->OnProcessRequestComplete().BindUObject(this, InMethodPtr);
9796

@@ -230,6 +229,12 @@ FString AOWSGameMode::InitNewPlayer(APlayerController* NewPlayerController, cons
230229
TArray<FString> SplitArray;
231230
DecodedIDData.ParseIntoArray(SplitArray, TEXT("|"), false);
232231

232+
if (SplitArray.Num() < 8)
233+
{
234+
UE_LOG(OWS, Error, TEXT("OWSGameMode::InitNewPlayer - Not enough parameters in IDData! - %s"), *DecodedIDData);
235+
return retString;
236+
}
237+
233238
PLX = SplitArray[0];
234239
PLY = SplitArray[1];
235240
PLZ = SplitArray[2];
@@ -239,8 +244,8 @@ FString AOWSGameMode::InitNewPlayer(APlayerController* NewPlayerController, cons
239244
PlayerName1 = SplitArray[6];
240245
UserSessionGUID = SplitArray[7];
241246

242-
UE_LOG(OWS, Warning, TEXT("PlayerName: %s"), *PlayerName1);
243-
UE_LOG(OWS, Warning, TEXT("UserSessionGUID: %s"), *UserSessionGUID);
247+
UE_LOG(OWS, Verbose, TEXT("PlayerName: %s"), *PlayerName1);
248+
UE_LOG(OWS, Verbose, TEXT("UserSessionGUID: %s"), *UserSessionGUID);
244249

245250
//FString OWSDefaultPawnClass = UGameplayStatics::ParseOption(DecodedOptions, TEXT("DPC"));
246251
}
@@ -757,7 +762,7 @@ void AOWSGameMode::OnGetCurrentWorldTimeResponseReceived(FHttpRequestPtr Request
757762
{
758763
float fCurrentWorldTime;
759764

760-
fCurrentWorldTime = JsonObject->GetNumberField("CurrentWorldTime");
765+
fCurrentWorldTime = JsonObject->GetNumberField(TEXT("CurrentWorldTime"));
761766

762767
NotifyGetCurrentWorldTime(fCurrentWorldTime);
763768
}

plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSGameplayAbilityTargetAct_Cone.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
#include "GameFramework/Pawn.h"
55
#include "WorldCollision.h"
66
#include "Abilities/GameplayAbility.h"
7+
#include "Runtime/Engine/Classes/Engine/OverlapResult.h"
8+
79

810
AOWSGameplayAbilityTargetAct_Cone::AOWSGameplayAbilityTargetAct_Cone(const FObjectInitializer& ObjectInitializer)
911
: Super(ObjectInitializer)

plugins/OWSPluginUE5/Source/OWSPlugin/Private/OWSLoginWidget.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ UOWSLoginWidget::UOWSLoginWidget(const class FObjectInitializer& ObjectInitializ
2727
void UOWSLoginWidget::ProcessOWS2POSTRequest(FString ApiToCall, FString PostParameters, void (UOWSLoginWidget::* InMethodPtr)(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful))
2828
{
2929
Http = &FHttpModule::Get();
30-
Http->SetHttpTimeout(LoginTimeout); //Set timeout
3130
TSharedRef<IHttpRequest, ESPMode::ThreadSafe> Request = Http->CreateRequest();
3231
Request->OnProcessRequestComplete().BindUObject(this, InMethodPtr);
3332

0 commit comments

Comments
 (0)