Announcement

Collapse
No announcement yet.

Any way to change the health on vehicles in Kismet?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    You are on your right track but embedded scripts are not fully supported (like it was in UT2004). The way I got embedded scripts working bugged demoplayback (and I think there was also a problem with connecting to a server running that map).

    Here is one example of a fully embedded custom script featuring a modified version of the JumpPads for LevelDesigner to set specific condition when the jumppad is allowed to be used for a single player (like disabling BootJump, disabling JumpPad for only Flag carriers, only allow blue team, ...): RSJumpPad Showcase

    You can see the problem by recording a demo file and trying to star the playback of that demo. It asks for the script package. No sucess with "obj load" which doesn't exist anymore for UE3 AFAIK.



    I do not recommend to use any full embedded mutator. Also half-embedded mutators (aka referenced mutators) shouldn't be used as well. General maps should be made for the stock game. Do not add default mutators to a map. However, if a map needs custom scripting (like multiple point gravtiy), such scripts should be just referenced by a map and packaged along the map file (for published and unpublished files).



    This is the thread NickG is talking about where I also provided a nice easy basic example.

    Leave a comment:


  • replied
    Thanks alot for your reply NickG

    i have way too much happening at the moment but i have compiled some information on the topic. This is exactly what i need to remake the Pressure volume for UT99

    If it helps here is what i found but i have not had chance to read it:
     
    Spoiler

     
    Spoiler


    Ini (for separate mutator, not needed for embed)
     
    Spoiler

    Instructions once written: (Embedding a Mutator in a Map)
     
    Spoiler


    Credits:
    http://wiki.beyondunreal.com/Legacy:...bedded_Mutator

    hopefully im on the right track and not spamming random info lol, Should we make a new thread ?

    Leave a comment:


  • replied
    I tried a *.u file embed using the UT2004 command, and it does not seem to work that way in UT3 editor. I also tried using savepackage commands, which just seemed to rename it to save.tmp, then back to the it's original *.u filename. When trying the above, I also tried the Actor add commands and specified the map package as the base path to the original package, then to the end class a few ways, and this also did not help. ' Doesn't seem likely that we can do this anymore.

    BTW, Yes, TKBS, you can call a mutator from a placeable object and there is thread with a working solution for that already. (Don't be confused, this does require a separate .u file distributed with the map)

    Originally posted by RattleSN4K3 View Post
    If think such UnrealScript could be serversided only and included into map.

    Edit: HealthMax is not replicated. It wouldn't work well for clients.
    --In this case, one may create an alike class with greater health set via defaultproperties, rather than a subclass which sets health via a some non-replicated function, or whatever; it is technically a new vehicle at this point.

    Leave a comment:


  • replied
    This topic is very interesting. Anybody tested it out yet? Look's like it might take a whole day or more to try this

    What would be the impact for PS3 ? Would this allow mutators to be part of the map?

    - Mutators can be placeable objects ? - That's incredible, this topic needs a thread to itself, Rumple can you enlighten us with you UT2004 example?
    - maybe try it with you super huge skeleton titan krall thing?

    Leave a comment:


  • replied
    No I haven't but I still have the line of code to embed the files into maps in '04.

    This is what I used to embed my Spider tanks into maps for Ut2004: obj load file=SpiderTankII.u package=myLevel

    If it works for UT3 then all you should have to do is change the myLevel to your map name I assume. So if you had a ModdedGoliath.u to embed into a map called WAR-RobotFactory-AS you would type obj load file=ModdedGoliath.u package=WAR-RobotFactory-AS

    Leave a comment:


  • replied
    The last time I embedded a script file (not serversided only), it asked for the file on connection and demo load. Have you tried adding scripts to maps recently in UT3?

    Leave a comment:


  • replied
    You could do that in '04. I embedded many vehicles & weapons into maps & had no external packages.

    Leave a comment:


  • replied
    If think such UnrealScript could be serversided only and included into map.

    Edit: HealthMax is not replicated. It wouldn't work well for clients.

    Leave a comment:


  • replied
    yes, this is a legitimate problem with gameplay significant woe if max health is less than max damage of a singular attack (such as redeemer's 2250 dmg, or collective instantaneous attacks, etc) and if the intent is to keep the vehicle in play upon such great attacks, otherwise results yielded from kismet are ok other than cosmetically. Really script is best way to yield correct result.

    Leave a comment:


  • replied
    The problem is he wants to have a higher HP than the HealthMax which any new HP is clamped to.

    PS: Deleted Post #2 from frankit. -.- Now my posts looks stupid.

    Leave a comment:


  • replied
    you can copy/paste this working example to your kismet editor to see how to set it up.
    Code:
    Begin Object Class=UTSeqEvent_VehicleFactory Name=UTSeqEvent_VehicleFactory_1 Archetype=UTSeqEvent_VehicleFactory'UTGame.Default__UTSeqEvent_VehicleFactory'
       Originator=UTVehicleFactory_Goliath'UTVehicleFactory_Goliath_1'
       MaxWidth=346
       OutputLinks(0)=(Links=((LinkedOp=SeqAct_GetProperty'SeqAct_GetProperty_1'),(LinkedOp=SeqAct_Gate'SeqAct_Gate_1',InputLinkIdx=1)),DrawY=715)
       OutputLinks(1)=(DrawY=737)
       OutputLinks(2)=(DrawY=759)
       OutputLinks(3)=(DrawY=781)
       OutputLinks(4)=(DrawY=803)
       VariableLinks(0)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_15'),DrawX=5060)
       ObjInstanceVersion=1
       ParentSequence=Sequence'Main_Sequence'
       ObjPosX=4887
       ObjPosY=645
       ObjName="UTVehicleFactory_Goliath_1 Vehicle Factory Event"
       DrawWidth=230
       DrawHeight=240
       Name="UTSeqEvent_VehicleFactory_1"
       ObjectArchetype=UTSeqEvent_VehicleFactory'UTGame.Default__UTSeqEvent_VehicleFactory'
    End Object
    Begin Object Class=UTSeqAct_HealDamage Name=UTSeqAct_HealDamage_2 Archetype=UTSeqAct_HealDamage'UTGame.Default__UTSeqAct_HealDamage'
       bSuperHeal=True
       HealAmount=300
       InputLinks(0)=(DrawY=707)
       OutputLinks(0)=(DrawY=707)
       VariableLinks(0)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_15'),DrawX=6054)
       VariableLinks(1)=(bHidden=True,DrawX=3281)
       VariableLinks(2)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_16'),DrawX=6124)
       ObjInstanceVersion=1
       ParentSequence=Sequence'Main_Sequence'
       ObjPosX=6016
       ObjPosY=673
       DrawWidth=156
       DrawHeight=61
       Name="UTSeqAct_HealDamage_2"
       ObjectArchetype=UTSeqAct_HealDamage'UTGame.Default__UTSeqAct_HealDamage'
    End Object
    Begin Object Class=SeqAct_GetProperty Name=SeqAct_GetProperty_1 Archetype=SeqAct_GetProperty'Engine.Default__SeqAct_GetProperty'
       PropertyName="Health"
       InputLinks(0)=(DrawY=812)
       OutputLinks(0)=(Links=((LinkedOp=SeqCond_CompareInt'SeqCond_CompareInt_1')),DrawY=812)
       VariableLinks(0)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_15'),DrawX=5331)
       VariableLinks(1)=(DrawX=5391)
       VariableLinks(2)=(LinkedVariables=(SeqVar_Int'SeqVar_Int_6'),DrawX=5438)
       VariableLinks(3)=(DrawX=5480)
       VariableLinks(4)=(DrawX=5532)
       VariableLinks(5)=(DrawX=5581)
       ObjInstanceVersion=1
       ParentSequence=Sequence'Main_Sequence'
       ObjPosX=5293
       ObjPosY=778
       DrawWidth=318
       DrawHeight=61
       Name="SeqAct_GetProperty_1"
       ObjectArchetype=SeqAct_GetProperty'Engine.Default__SeqAct_GetProperty'
    End Object
    Begin Object Class=SeqCond_CompareInt Name=SeqCond_CompareInt_1 Archetype=SeqCond_CompareInt'Engine.Default__SeqCond_CompareInt'
       ValueB=600
       InputLinks(0)=(DrawY=650)
       OutputLinks(0)=(DrawY=606)
       OutputLinks(1)=(DrawY=628)
       OutputLinks(2)=(DrawY=650)
       OutputLinks(3)=(Links=((LinkedOp=SeqAct_Gate'SeqAct_Gate_1')),DrawY=672)
       OutputLinks(4)=(DrawY=694)
       VariableLinks(0)=(LinkedVariables=(SeqVar_Int'SeqVar_Int_6'),DrawX=5780)
       VariableLinks(1)=(DrawX=5805)
       ObjInstanceVersion=1
       ParentSequence=Sequence'Main_Sequence'
       ObjPosX=5747
       ObjPosY=568
       DrawWidth=91
       DrawHeight=157
       Name="SeqCond_CompareInt_1"
       ObjectArchetype=SeqCond_CompareInt'Engine.Default__SeqCond_CompareInt'
    End Object
    Begin Object Class=SeqVar_Object Name=SeqVar_Object_15 Archetype=SeqVar_Object'Engine.Default__SeqVar_Object'
       ObjInstanceVersion=1
       ParentSequence=Sequence'Main_Sequence'
       ObjPosX=5357
       ObjPosY=1168
       DrawWidth=32
       DrawHeight=32
       Name="SeqVar_Object_15"
       ObjectArchetype=SeqVar_Object'Engine.Default__SeqVar_Object'
    End Object
    Begin Object Class=SeqVar_Int Name=SeqVar_Int_6 Archetype=SeqVar_Int'Engine.Default__SeqVar_Int'
       IntValue=900
       ObjInstanceVersion=1
       ParentSequence=Sequence'Main_Sequence'
       ObjPosX=5534
       ObjPosY=1023
       DrawWidth=32
       DrawHeight=32
       Name="SeqVar_Int_6"
       ObjectArchetype=SeqVar_Int'Engine.Default__SeqVar_Int'
    End Object
    Begin Object Class=SeqEvent_PlayerSpawned Name=SeqEvent_PlayerSpawned_1 Archetype=SeqEvent_PlayerSpawned'Engine.Default__SeqEvent_PlayerSpawned'
       MaxWidth=156
       OutputLinks(0)=(DrawY=-164,bHidden=True)
       VariableLinks(0)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_16'),DrawX=5968)
       VariableLinks(1)=(DrawX=6038)
       ObjInstanceVersion=1
       ParentSequence=Sequence'Main_Sequence'
       ObjPosX=5920
       ObjPosY=962
       DrawWidth=86
       DrawHeight=128
       Name="SeqEvent_PlayerSpawned_1"
       ObjectArchetype=SeqEvent_PlayerSpawned'Engine.Default__SeqEvent_PlayerSpawned'
    End Object
    Begin Object Class=SeqVar_Object Name=SeqVar_Object_16 Archetype=SeqVar_Object'Engine.Default__SeqVar_Object'
       ObjInstanceVersion=1
       ParentSequence=Sequence'Main_Sequence'
       ObjPosX=6244
       ObjPosY=1138
       DrawWidth=32
       DrawHeight=32
       Name="SeqVar_Object_16"
       ObjectArchetype=SeqVar_Object'Engine.Default__SeqVar_Object'
    End Object
    Begin Object Class=SeqAct_Gate Name=SeqAct_Gate_1 Archetype=SeqAct_Gate'Engine.Default__SeqAct_Gate'
       AutoCloseCount=1
       InputLinks(0)=(DrawY=675)
       InputLinks(1)=(DrawY=697)
       InputLinks(2)=(DrawY=719)
       InputLinks(3)=(DrawY=741)
       OutputLinks(0)=(Links=((LinkedOp=UTSeqAct_HealDamage'UTSeqAct_HealDamage_2')),DrawY=708)
       ObjInstanceVersion=1
       ParentSequence=Sequence'Main_Sequence'
       ObjPosX=5876
       ObjPosY=638
       DrawWidth=82
       DrawHeight=117
       Name="SeqAct_Gate_1"
       ObjectArchetype=SeqAct_Gate'Engine.Default__SeqAct_Gate'
    End Object

    Leave a comment:


  • replied
    Most likely, the only way to accomplish what you wish without unrealscript is to use all the HealDamage (UT) action to heal the vehicle a set number of times once its health has fallen below a certain threshold (keep it topped up or heal it once, etc.) To do this you need to use a GetObjectProperty action with the spawned vehicle as target object, get the "Health" property, run a comparison, loop, gate your healdamage action with gate,bool,additional comparison, etc. You must set an instigator in order to heal vehicles using the Kismet action or it will fail.

    Leave a comment:


  • replied
    Ok... I'm still quite confused. Could you please let me know where the modify health and modify property options are in Kismet? I searched through every category: action, condition, variable, event and I could not seem to find it. Also, could you reference Henrik's tutorial?

    Thanks.

    EDIT: Well, that makes sense. I haven't heard of these options, because I've never used UDK. Anyway, after reading RattleSN4K3's post, is there any other way of doing this?

    Leave a comment:


  • replied
    This is UT3 not UDK. All these nodes do not exist. Modify property is the important one which does not exists. Even causing damage of "-100" for instance wouldn't help.

    Leave a comment:


  • Any way to change the health on vehicles in Kismet?

    Hey everyone. I'm currently making an assault type map for UT3, and was wondering if there was a way to change the health of the tank or other vehicles in Kismet, (the tank has 900 HP, and maybe I want to change it to 1200) similar to how in AS-RobotFactory in UT2K4 had the Tank at 1600 HP.

    I can't use Unreal Script (I wish I could) so any suggestions are welcome.

    Thanks!
Working...
X