Page 1 of 2

Disintegrating Skaarj

Posted: 23 Oct 2017, 00:53
by Lightning Hunter
Can any of you coding experts here whip me up a disintegrating/disappearing SkaarjWarrior effect? Basically, I just need a SkaarjWarrior to disappear in a somewhat fancy way when it dies without any carcass or gibs. At the very least, I need a basic ParticuleBurst effect when the Skaarj dies, which I imagine should be really easy to code. Of course, I wouldn't complain if someone made a fancier effect. :P

This effect would be for my upcoming "Redeem Your Space" overhaul project, and is for a type of "ghost" Skaarj (I won't give any spoilers beyond that).

Re: Disintegrating Skaarj

Posted: 23 Oct 2017, 11:15
by AlCapowned
My attempt: http://www.mediafire.com/file/27viwdc2ae2ltiv/DisIntSkaarj_10_23_17.zip

This is based on an spawn effect I was already using, but I think it works nicely as a ghost's death effect. The summon is DisIntSkaarj.DisIntSkaarjWarrior

Re: Disintegrating Skaarj

Posted: 23 Oct 2017, 14:53
by gopostal
If you don't get what you want email me and tell me exactly what you want to see and I'll make it. The way you are describing it is just too broad, it's better to explain specifically what you are wanting to see.

Re: Disintegrating Skaarj

Posted: 23 Oct 2017, 19:16
by Lightning Hunter
AlCapowned wrote:My attempt: http://www.mediafire.com/file/27viwdc2ae2ltiv/DisIntSkaarj_10_23_17.zip

This is based on an spawn effect I was already using, but I think it works nicely as a ghost's death effect. The summon is DisIntSkaarj.DisIntSkaarjWarrior


Unfortunately the Skaarj would not summon (I'm using UT99). The class loaded in UnrealEd2, but the editor said it needed to be recompiled. When I recompiled it, the error was in line 42: 'TriggerEvent' bad command or expression. TriggerEvent is not defined I think.

gopostal wrote:If you don't get what you want email me and tell me exactly what you want to see and I'll make it. The way you are describing it is just too broad, it's better to explain specifically what you are wanting to see.


Honestly, I am curious what people come up with, and I am pretty flexible. I can always slightly adjust effects myself to get the desired effect, but the coding aspect of it was a bit too complex in this case. I have been coding new projectiles, sound effects, etc, but this is kind of beyond my scope of knowledge. If someone gets me a working base effect, I can take it from there.

Re: Disintegrating Skaarj

Posted: 23 Oct 2017, 19:29
by AlCapowned
This one should work, but I only have Unreal 227 on this PC so I can't test its compatibility: https://www.mediafire.com/file/lnwu3651ppbib9n/DisIntSkaarj_10_23_17_2.zip

Re: Disintegrating Skaarj

Posted: 23 Oct 2017, 19:34
by Lightning Hunter
The Skaarj summons now, but when I kill it the game crashes. The log spouts out unrecognizable errors:

Code: Select all

Critical: appError called:
Critical: Assertion failed: Owner->Texture [File:C:\UTDev\Render\Src\UnMeshRnLOD.h] [Line: 395]
Critical: Windows GetLastError: The operation completed successfully. (0)
Exit: Executing UObject::StaticShutdownAfterError
Exit: Executing UWindowsClient::ShutdownAfterError
Exit: UGalaxyAudioSubsystem::ShutdownAfterError
Log: DirectDraw End Mode
Exit: UOpenGLRenderDevice::ShutdownAfterError
Critical: URender::DrawLodMesh
Critical: (LodMesh UnrealShare.Skaarjw)
Critical: DrawMesh
Critical: URender::DrawActorSprite
Critical: URender::DrawFrame
Log: URender::DrawWorld anomaly
DevAudio: Galaxy SetViewport: NULL
Critical: UGalaxyAudioSubsystem::SetViewport
Critical: UViewport::Destroy
Critical: (WindowsViewport Transient.WindowsClient0.WindowsViewport0)
Critical: UWindowsViewport::Destroy
Critical: UObject::ConditionalDestroy
Critical: (WindowsViewport Transient.WindowsClient0.WindowsViewport0)
Critical: UWindowsClient::Tick
Critical: ClientTick
Critical: UGameEngine::Tick
Critical: UpdateWorld
Critical: MainLoop
Exit: Exiting.
Uninitialized: Name subsystem shut down
Uninitialized: Log file closed, 10/23/17 11:32:33


There must be some effect dependent upon U227 I'm guessing.

Re: Disintegrating Skaarj

Posted: 23 Oct 2017, 19:36
by AlCapowned
Darn it. I based it off of the UT's weapon respawn effect, but 227 must handle it differently.

Re: Disintegrating Skaarj

Posted: 23 Oct 2017, 19:53
by Lightning Hunter
Well, if you have any ideas with a simpler effect or something that will work, let me know. :)

This is another reason I create everything for UT99. As long as you stay away from botpack, everything is compatible with Unreal Gold with and without 227. I also still prefer the UT99 engine.

Re: Disintegrating Skaarj

Posted: 23 Oct 2017, 23:42
by AlCapowned
I got UT and figured out the problem. What I thought were regular Unreal textures were actually 227 exclusive, so using a different texture stopped the crashing. :B

Third time's the charm, I hope:
https://www.mediafire.com/file/5vmmcc3cmg7fmc5/DisIntSkaarj_10_23_17_3.zip

I used UnrealShare.SmokeGray.sp2_a00 for the effect's skin, but UnrealShare.SmokeColm.sc_a00 is okay too. There are probably others that would look better. Too bad the textures I used before aren't from the vanilla game, they looked pretty good.

Re: Disintegrating Skaarj

Posted: 24 Oct 2017, 01:02
by Lightning Hunter
That works great, and it's exactly what I need! I will mess with the smoke effect myself to see if anything else looks better in UT. I'll likely change the sound effect too. Thanks AlCapowned! Once again, you will end up being in my list of credits in the readme. ;)

The only thing I noticed is some script warnings in the log:

Code: Select all

ScriptLog: Fabricate DisIntSkaarj.DisIntSkaarjWarrior
ScriptLog: Fabricate DisIntSkaarj.DisIntSkaarjWarrior
ScriptLog: Fabricate DisIntSkaarj.DisIntSkaarjWarrior
ScriptLog: Fabricate DisIntSkaarj.DisIntSkaarjWarrior
ScriptLog: Fabricate DisIntSkaarj.DisIntSkaarjWarrior
ScriptLog: Fabricate DisIntSkaarj.DisIntSkaarjWarrior


This probably won't crash the game, but if you can figure out what causes this warning, it would be nice if it could be fixed.

Edit: Believe it or not, I chose UnrealShare.BloodyPuff.Bp6_a00 as the effect texture. This looks perfect, because the SkaarjWarrior in question has a red skin. I won't give away more than that, but it looks amazing. Great job on this, AlCapowned!

Edit#2: There is actually a problem with this effect. When you kill a Skaarj, it does not technically "die". It disappears instead, which means they are not counted by counters in-game. I have one level that uses a creaturefactory to spawn multiple Skaarj, and a counter makes sure that you kill them all before you can proceed. However, the counter does not work since these Skaarj are not technically dead. The Skaarj also will not count toward the players killcount in OldSkool either. I'm sure there is a way to fix this, right?

Re: Disintegrating Skaarj

Posted: 24 Oct 2017, 02:42
by AlCapowned
I don't know if that message pops up when you use special events or creature factories to spawn creatures, but I know for sure that it displays whenever you use the summon command. I'll check my logs, but I think it should be fine.

I'm glad it fits! \o/

Edit: Yeah, I should be able to take care of that kill counter stuff.

Edit 2: You'll want to add a new line that says:
level.game.Killed(Killer, self, damageType);

before the "GotoState('TeleportingDeath');" line. At least it works for the player's score.

Re: Disintegrating Skaarj

Posted: 24 Oct 2017, 07:17
by Lightning Hunter
The scriptlog happens simply from spawning the new class and killing it. I don't know if it is a warning, or if the code purposely calls for a scriptlog message.

That line does in fact fix the player score, but it still doesn't work with counters. There must be another line missing somewhere.

Re: Disintegrating Skaarj

Posted: 24 Oct 2017, 14:53
by AlCapowned
I think I've got it. Try adding this before GotoState('TeleportingDeath'):

Code: Select all

   
      if( Event != '' )
         foreach AllActors( class 'Actor', A, Event )
            A.Trigger( Self, Killer );
      for ( OtherPawn=Level.PawnList; OtherPawn!=None; OtherPawn=OtherPawn.nextPawn )
         OtherPawn.Killed(Killer, self, damageType);

Re: Disintegrating Skaarj

Posted: 24 Oct 2017, 19:41
by Lightning Hunter
I think that did it. :tup:

I noticed the scriptlog messages are gone, too. Dunno if that is a coincidence or not, but I will keep an eye on it. I appreciate all your work, Al. 8)

Edit: Actually, I do have another request! Would it be very difficult for you to take this code and apply it to the Brute? I don't know if it is a matter of copy/paste or not...

Re: Disintegrating Skaarj

Posted: 25 Oct 2017, 00:12
by AlCapowned