Could you post a fix here? I’m currently stuck on .
Kris
(Kris)
September 3, 2015, 12:54am
1147
IsValidIndex fix:
DECLARE_FUNCTION(execArray_IsValidIndex)
{
Stack.MostRecentProperty = nullptr;
Stack.StepCompiledIn<UArrayProperty>(NULL);
void* ArrayAddr = Stack.MostRecentPropertyAddress;
UArrayProperty* ArrayProperty = Cast<UArrayProperty>(Stack.MostRecentProperty);
if (!ArrayProperty)
{
Stack.bArrayContextFailed = true;
return;
}
P_GET_PROPERTY(UIntProperty, Index);
P_FINISH;
bool WasValid = GenericArray_IsValidIndex(ArrayAddr, ArrayProperty, Index);
*(bool*)RESULT_PARAM = WasValid;
}
bool UVictoryBPFunctionLibrary::GenericArray_IsValidIndex(void* TargetArray, const UArrayProperty* ArrayProp, int32 Index)
{
bool bResult = false;
if (TargetArray)
{
FScriptArrayHelper ArrayHelper(ArrayProp, TargetArray);
bResult = ArrayHelper.IsValidIndex(Index);
}
return bResult;
}
IsValidIndex fix:
DECLARE_FUNCTION(execArray_IsValidIndex)
{
Stack.MostRecentProperty = nullptr;
Stack.StepCompiledIn<UArrayProperty>(NULL);
void* ArrayAddr = Stack.MostRecentPropertyAddress;
UArrayProperty* ArrayProperty = Cast<UArrayProperty>(Stack.MostRecentProperty);
if (!ArrayProperty)
{
Stack.bArrayContextFailed = true;
return;
}
P_GET_PROPERTY(UIntProperty, Index);
P_FINISH;
bool WasValid = GenericArray_IsValidIndex(ArrayAddr, ArrayProperty, Index);
*(bool*)RESULT_PARAM = WasValid;
}
bool UVictoryBPFunctionLibrary::GenericArray_IsValidIndex(void* TargetArray, const UArrayProperty* ArrayProp, int32 Index)
{
bool bResult = false;
if (TargetArray)
{
FScriptArrayHelper ArrayHelper(ArrayProp, TargetArray);
bResult = ArrayHelper.IsValidIndex(Index);
}
return bResult;
}
I’m still getting crashes.
Mosel3y
(Mosel3y)
September 3, 2015, 9:22am
1149
Hey , your LoadTexture2D_FromFileByExtension node isn’t working correctly for me any more in 4.9, I’m getting a sort of hue shifted effect:
How the colours should look:
edit:
Changing
Texture = UTexture2D::CreateTransient(ImageWrapper->GetWidth(), ImageWrapper->GetHeight(), PF_B8G8R8A8);
to
Texture = UTexture2D::CreateTransient(ImageWrapper->GetWidth(), ImageWrapper->GetHeight(), PF_R8G8B8A8;
fixes it
Parvan
(Parvan)
September 3, 2015, 9:44pm
1150
Error 1 error : declaration shadows a local variable -Werror,-Wshadow] U:\Files\user\Documents\Unreal Projects\Random Mercurial Commit\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp 2748 13 Random
Error 2 error : Failed to produce item: U:\Files\user\Documents\Unreal Projects\Random Mercurial Commit\Plugins\VictoryPlugin\Binaries\Linux\libRandom-VictoryBPLibrary.a U:\Files\user\Documents\Unreal Projects\Random Mercurial Commit\Intermediate\ProjectFiles\ERROR Random
Error 3 error MSB3073: The command “V:\UnrealEngine-4.8.3-release\Engine\Build\BatchFiles\Build.bat Random Linux Development “U:\Files\user\Documents\Unreal Projects\Random Mercurial Commit\Random.uproject”” exited with code -1. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.MakeFile.Targets 38 5 Random
MainFrameActions: Packaging (Linux): UnrealBuildTool: U:\Files\user\Documents\Unreal Projects\Random Mercurial Commit\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(2748,13) : error: declaration shadows a local variable -Werror,-Wshadow]
MainFrameActions: Packaging (Linux): UnrealBuildTool: for (int32 Itr = 0; Itr < SocketNames.Num(); Itr++ )
MainFrameActions: Packaging (Linux): UnrealBuildTool: ^
MainFrameActions: Packaging (Linux): UnrealBuildTool: U:\Files\user\Documents\Unreal Projects\Random Mercurial Commit\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(2680,37) : note: previous declaration is here
MainFrameActions: Packaging (Linux): UnrealBuildTool: TObjectIterator<APlayerController> Itr;
MainFrameActions: Packaging (Linux): UnrealBuildTool: ^
MainFrameActions: Packaging (Linux): UnrealBuildTool: 1 error generated.
MainFrameActions: Packaging (Linux): UnrealBuildTool: -------- End Detailed Actions Stats -----------------------------------------------------------
MainFrameActions: Packaging (Linux): UnrealBuildTool: ERROR: UBT ERROR: Failed to produce item: U:\Files\user\Documents\Unreal Projects\Random Mercurial Commit\Plugins\VictoryPlugin\Binaries\Linux\libRandom-VictoryBPLibrary.a
MainFrameActions: Packaging (Linux): UnrealBuildTool: Total build: 112.39 seconds
MainFrameActions: Packaging (Linux): CommandUtils.Run: Run: Took 112.626s to run UnrealBuildTool.exe, ExitCode=5
MainFrameActions: Packaging (Linux): ErrorReporter.Error: ERROR: AutomationTool error: Command failed (Result:5): V:\UnrealEngine-4.8.3-release\Engine\Binaries\DotNET\UnrealBuildTool.exe Random Linux Development "U:\Files\user\Documents\Unreal Projects\Random Mercurial Commit\Random.uproject
MainFrameActions: Packaging (Linux): " -noxge -NoHotReloadFromIDE -ignorejunk. See logfile for details: ‘UnrealBuildTool.txt’
MainFrameActions: Packaging (Linux): BuildCommand.Execute: ERROR: BUILD FAILED
I have a problem with a linux build. I tried a version of the plugin from June and also a version from 08-26-15. The both had error. Any ideas?
Thanks for your awesome plugin!
Edit: Fixed, see below
Kris
(Kris)
September 4, 2015, 3:57am
1151
Hey , your LoadTexture2D_FromFileByExtension node isn’t working correctly for me any more in 4.9, I’m getting a sort of hue shifted effect:
Changing
Texture = UTexture2D::CreateTransient(ImageWrapper->GetWidth(), ImageWrapper->GetHeight(), PF_B8G8R8A8);
to
Texture = UTexture2D::CreateTransient(ImageWrapper->GetWidth(), ImageWrapper->GetHeight(), PF_R8G8B8A8;
fixes it
Funny, that’s what my version already has.
I must have updated it a while back without sending it to .
My bad
Parvan
(Parvan)
September 4, 2015, 5:10am
1152
Hi @,
Thanks for the plugin!
I had to make a fix to get it building under Linux - the diff follows.
Have you considered putting your code on Github so people can send you pull requests for fixes/additions that you can easily decide to accept or not? If you are wlling, I offer to help set it up for you.
diff --git a/GameProject/Plugins/VictoryPlugin/Source/VictoryBPLibrary/Private/VictoryBPFunctionLibrary.cpp b/GameProject/Plugins/VictoryPlugin/Source/VictoryBPLibrary/Private/VictoryBPFunctionLibrary.cpp
index 014cab1..6fe8e0e 100644
--- a/GameProject/Plugins/VictoryPlugin/Source/VictoryBPLibrary/Private/VictoryBPFunctionLibrary.cpp
+++ b/GameProject/Plugins/VictoryPlugin/Source/VictoryBPLibrary/Private/VictoryBPFunctionLibrary.cpp
@@ -2711,13 +2711,13 @@ AActor* UVictoryBPFunctionLibrary::Traces__CharacterMeshTrace___ClosestSocket(
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//Check Bones Locations
- for (int32 Itr = 0; Itr < SocketNames.Num(); Itr++ )
+ for (int32 SItr = 0; SItr < SocketNames.Num(); SItr++ )
{
//Is a Bone not a socket?
- if(SocketNames[Itr].Type == EComponentSocketType::Bone) continue;
+ if(SocketNames[SItr].Type == EComponentSocketType::Bone) continue;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CurLoc = AsCharacter->Mesh->GetSocketLocation(SocketNames[Itr].Name);
+ CurLoc = AsCharacter->Mesh->GetSocketLocation(SocketNames[SItr].Name);
//Dist
CurDist = FVector::Dist(OutImpactPoint, CurLoc);
@@ -2725,7 +2725,7 @@ AActor* UVictoryBPFunctionLibrary::Traces__CharacterMeshTrace___ClosestSocket(
//Min
if (ClosestDistance < 0 || ClosestDistance >= CurDist)
{
- ClosestVibe = Itr;
+ ClosestVibe = SItr;
ClosestDistance = CurDist;
}
}
Now I need to see how to deal with the Dedicated Server build failing because VictoryBPLibrary depends on UElibPNG - the build error:
Building DescentServer...
Using clang version '3.5.0' (string), 3 (major), 5 (minor), 0 (patch)
Linux dedicated server is made to depend on UElibPNG. We want to avoid , please correct module dependencies.
ERROR: Exception thrown while processing dependent modules of VictoryBPLibrary
Exception thrown while processing dependent modules of ImageWrapper
ERROR: Unable to instantiate instance of 'UElibPNG' type from compiled assembly 'DescentServerModuleRules'. Unreal Build Tool creates an instance of your module's 'Rules' in order to find out about your module's requirements. The CLR exception details may provide more information: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> ERROR: Linux dedicated server is made to depend on UElibPNG. We want to avoid , please correct module dependencies.
Edit: I had to remove ImageWrapper as a dependency and ifdef out code using it in the plugin to get DedicatedServer to build.
fixed my problem as well. Thanks Stormwind!
Shrooblord
(Shrooblord)
September 4, 2015, 2:15pm
1153
I’m getting an error saying “VictoryPlugin could not be loaded because the module VictoryBPLibrary could not be found.” I’ve looked in the plugin’s Source folder and… well… it’s right there. Not sure what the plugin is not seeing that I can.
Rama
(Rama)
September 4, 2015, 3:15pm
1154
Changing
Texture = UTexture2D::CreateTransient(ImageWrapper->GetWidth(), ImageWrapper->GetHeight(), PF_B8G8R8A8);
to
Texture = UTexture2D::CreateTransient(ImageWrapper->GetWidth(), ImageWrapper->GetHeight(), PF_R8G8B8A8;
fixes it
Dear ,
I just checked and the current version of the function has source code, which includes your fix, nice to hear from you!
is the most recent Victory Plugin on mediafire and the wiki
UTexture2D* UVictoryBPFunctionLibrary::LoadTexture2D_FromFileByExtension(const FString& ImagePath, bool& IsValid, int32& OutWidth, int32& OutHeight)
{
UTexture2D* Texture = nullptr;
IsValid = false;
// To avoid log spam, make sure it exists before doing anything else.
if (!FPlatformFileManager::Get().GetPlatformFile().FileExists(*ImagePath))
{
return nullptr;
}
TArray<uint8> CompressedData;
if (!FFileHelper::LoadFileToArray(CompressedData, *ImagePath))
{
return nullptr;
}
IImageWrapperPtr ImageWrapper = GetImageWrapperByExtention(ImagePath);
if (ImageWrapper.IsValid() && ImageWrapper->SetCompressed(CompressedData.GetData(), CompressedData.Num()))
{
const TArray<uint8>* UncompressedRGBA = nullptr;
if (ImageWrapper->GetRaw(ERGBFormat::RGBA, 8, UncompressedRGBA))
{
Texture = UTexture2D::CreateTransient(ImageWrapper->GetWidth(), ImageWrapper->GetHeight(), PF_R8G8B8A8);
if (Texture != nullptr)
{
IsValid = true;
OutWidth = ImageWrapper->GetWidth();
OutHeight = ImageWrapper->GetHeight();
void* TextureData = Texture->PlatformData->Mips[0].BulkData.Lock(LOCK_READ_WRITE);
FMemory::Memcpy(TextureData, UncompressedRGBA->GetData(), UncompressedRGBA->Num());
Texture->PlatformData->Mips[0].BulkData.Unlock();
Texture->UpdateResource();
}
}
}
return Texture;
}
Rama
(Rama)
September 4, 2015, 3:17pm
1155
You’re welcome, and I am glad Stormwind’s Linux packaging fix worked for you!
Mosel3y
(Mosel3y)
September 4, 2015, 3:24pm
1156
Yes, sorry about that guys, I’ve just realized I’d coppied in an older version that I had broken myself, not the latest :eek:
Rama
(Rama)
September 4, 2015, 3:35pm
1158
In regard to IsValidIndex
I can confirm I was still getting crashes too, I looked into the code and fixed it, here is the correct .h file for 4.9.0
/*
*See if index is a valid index for array
*
*@param TargetArray The array to perform the operation on
*@param Index The index to check.
*@return Bool if integer is valid index for array
*/
UFUNCTION(Category="VictoryBPLibrary|Utilities|Array", BlueprintPure, CustomThunk, meta=(DisplayName = "Valid Index", CompactNodeTitle = "VALID INDEX", ArrayParm = "TargetArray"))
static bool Array_IsValidIndex(const TArray<int32>& TargetArray, int32 Index);
static bool GenericArray_IsValidIndex(void* TargetArray, const UArrayProperty* ArrayProp, int32 Index);
DECLARE_FUNCTION(execArray_IsValidIndex)
{
Stack.MostRecentProperty = nullptr;
Stack.StepCompiledIn<UArrayProperty>(NULL);
void* ArrayAddr = Stack.MostRecentPropertyAddress;
UArrayProperty* ArrayProperty = Cast<UArrayProperty>(Stack.MostRecentProperty);
if (!ArrayProperty)
{
Stack.bArrayContextFailed = true;
return;
}
P_GET_PROPERTY(UIntProperty, Index);
P_FINISH;
bool WasValid = GenericArray_IsValidIndex(ArrayAddr, ArrayProperty, Index);
*(bool*)RESULT_PARAM = WasValid;
}
Uploading new plugin version shortly.
Rama
(Rama)
September 4, 2015, 3:40pm
1159
My plugin is now on 4.9.0, please use prior versions if you are using a prior engine version
Unfortunately I have no easy way to notate on the wiki which version corresponds to which date.
Rama
(Rama)
September 4, 2015, 3:43pm
1160
New Plugin Version, IsValidIndex crashfix
Dear Community,
I’ve posted a new version of my Victory BP Library where IsValidIndex no longer crashes.
Again please note the plugin is now on UE4 version 4.9.0**
**
**Latest plugin download on the UE4 Wiki: (15.22 mb) **
https://wiki.unrealengine.com/File:VictoryPlugin.zip
Victory Plugin on Media Fire
If your browser is not updating the Wiki download page to the most recent version, you can use my alternative Media Fire download link!
Please note clicking link will not start a download instantly, it will just take you to the Media Fire file description.
MediaFire is a simple to use free service that lets you put all your photos, documents, music, and video in a single place so you can access them anywhere and share them everywhere.
**Note on Packaging Victory Plugin**
https://forums.unrealengine.com/showthread.php?3851-(39)--s-Extra-Blueprint-Nodes-for-You-as-a-Plugin-No-C-Required!&p=368790&viewfull=1#post368790
Enjoy!
:)
Shrooblord
(Shrooblord)
September 4, 2015, 6:15pm
1161
Thing is, I was using Unreal 4.9.0 already.
I just downloaded your newest version, the one from today, and now I get the following error message:
Rebuilding them as the engine suggests does not work. It crashes on build/cannot be built.
Perhaps it’s important I mention I’m on Mac OSX. Are these Mac OSX compatible?
I’ve been using the BP library for a while and recently tried your engine plugin since I noticed it was updated for 4.9. Been playing around with the instanced mesh creation to test the limits and so far it is working great =D; Wish I had it installed sooner!
Kris
(Kris)
September 6, 2015, 2:26am
1163
In regard to IsValidIndex
I can confirm I was still getting crashes too, I looked into the code and fixed it, here is the correct .h file for 4.9.0
In the original instances I was using the node, everything was fine with the first fix.
Further usage caused crash
Found the and fixed it, but before I get the to send it to, he’s already sorted it and contacted me!
http://i0.kym-cdn.com/photos/images/original/000/168/578/3ONqv.gif
Parvan
(Parvan)
September 6, 2015, 3:59am
1164
1>EXEC : error : Exception thrown while processing dependent modules of VictoryBPLibrary
Have you seen ? I’m trying to build Linux dedicated server. Hmmm…
Wow, we keep you too busy on here! Sorry about that. Not quite sure if is a general problem with the engine or the plugin. I searched for a while and found no information.
I commented out
“UnrealEngine-4.7.2-release\Engine\Source\ThirdParty\libPNG\UElibPNG.Build.cs”
lines 61-66 to avoid
“if (Target.Type == TargetRules.TargetType.Server)”
Will see if that works…
Thanks!
I guess I also fixed once before for Linux dedicated server build and I completely forgot. Too much on the mind. I’m posting in case it is useful for someone else.
Rama
(Rama)
September 7, 2015, 11:56pm
1165
I’d appreciate it if someone who has Mac OS can build the plugin from source code, and post it to me by PM. I can’t help folks with Mac OS otherwise
@Parvan
Thank you for sharing your Linux research / confirmation of Stormwind's fixes!
In the original instances I was using the node, everything was fine with the first fix.
Further usage caused crash
Found the and fixed it, but before I get the to send it to, he’s already sorted it and contacted me!
Thank you again for your contributions !
[QUOTE=Aesais;372221]
I've been using the BP library for a while and recently tried your engine plugin since I noticed it was updated for 4.9. Been playing around with the instanced mesh creation to test the limits and so far it is working great =D; Wish I had it installed sooner!
[/QUOTE]
Very nice to hear from you Aesais!
**Welcome to the UE4 Forums!**
:)