Jump to content
Sign in to follow this  
Macser_old

OFP:Calling animation from script

Recommended Posts

Greetings.

I've made a few animations for a motorcycle addon and have most of them configured and working.But I wanted to add a finishing touch.And I think the best way to go about it,is to use a script.

Unfortunately scripting isn't one of my strengths.

So,I'd really appreciate any help on this.

Basically,I'd like to call animations based on the vehicle's speed.

When the vehicle comes to a halt,I'd like the rider to put their

feet out,as if to stabilize it.Then pull their feet back in as it moves off again.

I've tried this bit of scripting without much sucess

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">_veh = _this select 0

_unit = (driver _veh)

#ChkSpeed

?!(alive _veh):exit

?speed _veh <5:_unit Switchmove "RcnBkrFootDwn"

?speed _veh >5:_unit Switchmove "RcnBkrFootUp"

~1

goto "ChkSpeed"

And here's the CfgMovesMc section of the .cpp

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class CfgMovesMC

{

class Default{};

class DefaultDie:Default{};

class States

{

class Driver:Default{};

class ReconBiker:Driver

{

file="\Armalyte\A\ReconBiker.rtm";

speed=10000000000.0;

looped=1;

interpolationSpeed=1;

connectTo[]={"ReconBikerDying",1};

interpolateTo[]={"ReconBikerDying",0.1};

};

class RcnBkrFootDwn:ReconBiker

{

file="\Armalyte\A\RcnBkrFootDwn.rtm";

speed=-0.5;

looped=0;

interpolationSpeed=1;

connectFrom[]={"ReconBiker",1};

connectTo[]={"RcnBkrFootUp",1};

interpolateTo[]={"ReconBikerDying",0.1};

};

class RcnBkrFootUp:ReconBiker

{

file="\Armalyte\A\RcnBkrFootUp.rtm";

speed=-0.5;

looped=0;

interpolationSpeed=1;

connectFrom[]={"RcnBkrFootDwn",1};

connectTo[]={"ReconBiker",1};

interpolateTo[]={"ReconBikerDying",0.1};

};

class ReconBikerDying:DefaultDie

{

actions="NoActions";

file="\Armalyte\A\ReconBiker_dead.rtm";

speed="-0.5";

looped=0;

soundEnabled=0;

connectFrom[]={"ReconBiker",1};

};

class ReconBikerDead:ReconBikerDying

{

actions="DeadActions";

file="\Armalyte\A\ReconBiker_dead_stat.rtm";

speed=10000000000.0;

terminal=1;

connectFrom[]={"ReconBikerDying",1};

connectTo[]={"DeadState",1};

};

};

};

That's it in a nutshell.So if somebody could possibly give me an

example of code that would work,or point out my mistakes,I'd be grateful.

Thanks for your time.

Oh yeah,here's what it looks like

reconbike1.jpg

reconbike3.jpg

Macser smile_o.gif

Share this post


Link to post
Share on other sites

Do you get any errors? Or is it just not working? How is the script launched and how is the scripts argument defined?

BTW, I would use >= 5 just to cover for if the speed somehow stays at five.

Share this post


Link to post
Share on other sites
Quote[/b] ]Do you get any errors? Or is it just not working? How is the script launched and how is the scripts argument defined?

BTW, I would use >= 5 just to cover for if the speed somehow stays at five.

Thanks for the reply Unicorn.I was resigned to defeat.

I haven't gotten any errors so far.Script seems to be running,but

the animations don't seem to be called.

I've been passing the vehicle itself through the script,by way

of a trigger,set to true,in the mission editor.

In the on activation field:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">[VehicleName] exec "check.sqs"

As my scripting skills are poor,I'm not too sure what you mean

about argument definition.

I don't believe the anims are the problem though.Those I can

run with switchmove in a waypoint.So at least they're available.

Do you think adding the "=" might have an effect?

How would you go about scripting something like this idea?

Anyway,Whether you can help or not,I appreciate the reponse.

Macser. wink_o.gif

Share this post


Link to post
Share on other sites
Quote[/b] ]Do you get any errors? Or is it just not working? How is the script launched and how is the scripts argument defined?

BTW, I would use >= 5 just to cover for if the speed somehow stays at five.

Thanks for the reply Unicorn.I was resigned to defeat.

I haven't gotten any errors so far.Script seems to be running,but

the animations don't seem to be called.

I've been passing the vehicle itself through the script,by way

of it's init field,in the mission editor.

As my scripting skills are poor,I'm not too sure what you mean

about argument definition.

I don't believe the anims are the problem though.Those I can

run with switchmove in a waypoint.So at least they're available.

Do you think adding the "=" might have an effect?

How would you go about scripting something like this idea?

Anyway,Whether you can help or not,I appreciate the reponse.

Macser. wink_o.gif

thats really cool, didnt know it was possible at all.

myDriver Switchmove "RcnBkrFootDwn"

so that works in a waypoint? Thought you couldnt override the animation played in a vehicle.

about the script it looks OK..

_unit = (driver _veh)

you dont need the ( ).

Other then that it looks like something I could have done.

Share this post


Link to post
Share on other sites
Quote[/b] ]thats really cool, didnt know it was possible at all.

myDriver Switchmove "RcnBkrFootDwn"

so that works in a waypoint? Thought you couldnt override the animation played in a vehicle.

Well,it works,but it runs the animation to the last frame,then halts.So you need to run switchmove again to change it to another.

This is of course assuming you don't have any transition(connecting) anims created and configured.

Which is the case with me.

Thanks fer the input GranQ.

Share this post


Link to post
Share on other sites

Well, I don't know much about addons - kinda figured the script was integrated in it. Since I saw you used _this select 0, I was wondering how you launched the script. As you put in the vehiclename it should be ok.

Did you say you launch it through a trigger set to true? Does that mean the script is launched before you get on the motorcycle?

Try putting _unit = driver _veh below the #chkspeed - as it is now the variable _unit is only updated when the script is launched....

Since you are asking what I would do: Try writing it in sqf format wink_o.gif

Share this post


Link to post
Share on other sites

Hello again Unicorn,

I did eventually want to integrate the script into the vehicle

Config.cpp,using an init eventhandler.But I thought it better to

just tackle the script manually at first,then move on from there.

If I was sucessful.

So I've just been using a trigger to test it out with an empty bike.Which I jump into myself.

Also I thought I might try another line in there to halt the script,

when the driver hops out.And resumes again when they hop back in.

Somethin' like:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">@(_unit in _veh)

But I may be misunderstanding how this works.

Quote[/b] ]Try putting _unit = driver _veh below the #chkspeed - as it is now the variable _unit is only updated when the script is launched....

I think I see what you mean here,I'll give that a shot.

Quote[/b] ]Since you are asking what I would do: Try writing it in sqf format

Sqf?So,as a function it would be more memory efficient?And I

suppose it's the kind of code that wouldn't necessarily need to be halted.That's a good suggestion.

Thanks Unicorn.

Good to see experienced members still browsing this end of the

forums. smile_o.gif

Share this post


Link to post
Share on other sites

Lol, I just registered after I got OFP, but didn't pay much attention to the multiplayer aspect or forums (had dialup)...

Anyway, I'm usually being encouraged to use sqf scripts whenever I ask for some help. I'll leave the reason-giving to the pro's wink_o.gif

Personally I would run the script only when someone got onto the bike - using eventhandlers. But I'm not sure if that would be ok when you make it as an addon.

I don't think @ (waitUntil?) fits well here. Unless you restructure the script it would just halt after changing drivers or something like that.

Share this post


Link to post
Share on other sites

Lol, I just registered after I got OFP, but didn't pay much attention to the multiplayer aspect or forums (had dialup)...

Anyway, I'm usually being encouraged to use sqf scripts whenever I ask for some help. I'll leave the reason-giving to the pro's wink_o.gif

Personally I would run the script only when someone got onto the bike - using eventhandlers. But I'm not sure if that would be ok when you make it as an addon.

I don't think @ (waitUntil?) fits well here. Unless you restructure the script it would just halt after changing drivers or something like that.

Share this post


Link to post
Share on other sites

Lol, I just registered after I got OFP, but didn't pay much attention to the multiplayer aspect or forums (had dialup)...

Anyway, I'm usually being encouraged to use sqf scripts whenever I ask for some help. I'll leave the reason-giving to the pro's wink_o.gif

Personally I would run the script only when someone got onto the bike - using eventhandlers. But I'm not sure if that would be ok when you make it as an addon.

I don't think @ (waitUntil?) fits well here. Unless you restructure the script it would just halt after changing drivers or something like that.

Share this post


Link to post
Share on other sites

Ah.I see.Was wonderin' why you hadn't made many posts.

I only recently got broadband meself.One of the first things I did

was register here.It's a great source of info.And even if OFP is an old game,it's still a good learnin' tool.

I'll tell ya what though.Yer last few posts have got me on track.

I tried the edit you suggested.Moved the "_unit" variable inside

the main loop.And it bloody worked!

Excellent!

Here's the script before:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">_veh = _this select 0

_unit = (driver _veh)

#ChkSpeed

?!(alive _veh):exit

?speed _veh <5:_unit Switchmove "RcnBkrFootDwn"

?speed _veh >5:_unit Switchmove "RcnBkrFootUp"

~1

goto "ChkSpeed"

And after the edit:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">_veh = _this select 0

#ChkSpeed

?!(alive _veh):exit

_unit = driver _veh

?speed _veh <=5:_unit Switchmove "ReconBikerStop"

?speed _veh >=5:_unit Switchmove "ReconBiker"

~1

goto "ChkSpeed"

I think people keep tellin us to use functions because they're

just more streamlined.Unlike a script they get activated as soon

as the mission starts,and stay there until the end.Problem is,even though an .sqf is faster and neater,it doesn't look as flexible as a script.At least,not to me.And once it gets goin' it can't be stopped.But,I'm

no expert.

As for the eventhandler.I know you can integrate it into yer

addon's .cpp,because that's how the dkm suspension script

works.That way you don't have to keep entering it into a unit's

init field.Just pop yer unit in the mission editor and the script will run automatically.

Would you be talkin about the "getin" variety?

Anyway,Many thanks Unicorn.You've been a great help.

Keep postin' smile_o.gif

Share this post


Link to post
Share on other sites

Good to hear!

I suppose you can regard my reg date as Jan07 wink_o.gif

I was talking about getin, yes. In your loop you can check for:

?(isNil (driver _veh)):exit

so script is started when you enter and stops when you get out..

I missed goto at first, but now I have to say that the for loop works just as well. You can stop sqf scripts though, by using terminate, I think.

Share this post


Link to post
Share on other sites

Hmm,just when ye think one problem is solved,

another one crops up.It seemed like such a simple concept.

And with some nudges in the right direction,from HulkingUnicorn and GranQ,I seemed to be getting somewhere.

This little script works just fine.

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">_veh = _this select 0

#ChkSpeed

?!(alive _veh):exit

_unit = driver _veh

?speed _veh <=5:_unit Switchmove "ReconBikerStop"

?speed _veh >=5:_unit Switchmove "ReconBiker"

~1

goto "ChkSpeed"

As long as you're using "static" anims.Which I have been for the purpose of testing.

Unfortunately,when you try using an animation Which has

movement,a simple script suddenly starts looking more

complex.I should've seen it before.Suppose I just got distracted

by getting it to work in the first place.

Let me explain.Substituting the "static" anims with moving ones,

will result in them "looping",until the speed changes again.

When the script reaches this line

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">?speed _veh <=5:_unit Switchmove "ReconBikerStop"

And the condition is returned "true",ie:the vehicle is coming to

a halt or stopped.It'll keep executing the "switchmove" command

until the vehicle speed goes above 5.Then moves on to the next

line,and proceeds to do the same with the other anim.

So,in effect,the driver looks like they're putting their foot up and down,over and over again.

What I need to do,is find some way of playing the anims once,each time their conditions are met.Preventing

switchmove from being repeatedly executed.Yet still maintaining

a main loop to activate animations when needed.

I don't know,maybe calling a couple of extra scripts within the

main loop,that run then exit?

Well, in the mean time,I'm gonna keep tryin.

But if anyone can help,please do. smile_o.gif

Share this post


Link to post
Share on other sites

playMove?

Anyway, your conditioncheck overlaps... You should remove 1 of the = signs...

Instead of:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

?speed _veh <=5:_unit Switchmove "ReconBikerStop"

?speed _veh >=5:_unit Switchmove "ReconBiker"

Do:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

?speed _veh <5:_unit Switchmove "ReconBikerStop"

?speed _veh >=5:_unit Switchmove "ReconBiker"

Also...

I'm haven't really used animations before but:

If the speed goes below 5, the biker will put his feet to the sides, yes? Then there is a little delay before the script checks again. If the speed never goes up again or the rider goes off, this code will be triggered again and again. So it seems something more complex might be needed.

I do have an idea though. Put a loop after you play the feet-to-the-sides animation that does nothing at all, but prevents the animation from playing again.

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

_veh = _this select 0

#ChkSpeed

?!(alive _veh):exit

_unit = driver _veh

?speed _veh <5:_unit Switchmove "ReconBikerStop"

#staticLoop

?speed _veh <5:goto "staticLoop"

?speed _veh >=5:_unit Switchmove "ReconBiker"

#staticLoop2

?speed _veh >=5:goto "staticLoop2"

~1

goto "ChkSpeed"

Good luck!

Share this post


Link to post
Share on other sites

I feel like such a pratt banghead.gif

That works a treat,and it's so simple.

No need to call in any unnecessary extra scripts.

With a few tweaks it's workin' the way I wanted it to.

It looks a hell of a lot more natural now.

Here's the amended animation script:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">_veh = _this select 0

#CHKSPEED

?!(alive _veh):exit

_unit = driver _veh

?speed _veh >=3:_unit Switchmove "ReconBikerFtUp"

#STATICLOOP

?speed _veh >=3:goto "staticLoop"

?speed _veh <10:_unit Switchmove "ReconBikerFtDwn"

#STATICLOOP2

?speed _veh <10:goto "staticLoop2"

~1

goto "CHKSPEED"

As you can see,I tweaked the speed to suit.

And also reversed the order of the loops.

The script doesn't have immediate effect so

I'm now using one static anim and two moving anims.

The static anim takes the place of the normal driver version.

In otherwords as soon as you "get in" your feet are out.

But because I'm using the "switchmove" command,that anim

won't be played again while the script runs.And is only mentioned in the Config.Cpp.

Here's the relevant sections of the .Cpp:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

class CfgNonAIVehicles

{

class ProxyCrew{};

class ProxyDriver:ProxyCrew{};

class ProxyReconBiker:ProxyDriver{};

};

class CfgVehicleActions

{

ReconBiker="ReconBiker";

};

class CfgMovesMC

{

class Default{};

class DefaultDie:Default{};

class States

{

class Driver:Default{};

class ReconBiker:Driver

{

file="\Armalyte\A\ReconBikerStop.rtm"; <<<(The static animation)

speed=10000000000.0;

looped=1;

interpolationSpeed=1;

};

class ReconBikerFtUp:Driver

{

file="\Armalyte\A\ReconBikerFtUp.rtm";

speed=1.5;

looped=0;

interpolationSpeed=1;

};

class ReconBikerFtDwn:Driver

{

file="\Armalyte\A\ReconBikerFtDwn.rtm";

speed=3.0;

looped=0;

interpolationSpeed=1;

};

};

};

Hopefully this has been of value to someone other than myself.

Anyway,thanks yet again Unicorn.

Without yer help,I'd probably still be goin' round in circles. biggrin_o.gif

Share this post


Link to post
Share on other sites

Ok,I've gotten my animations working,via the script and .Cpp

On the previous page.

So I decided,rightly or wrongly,to try incorporating that

script into the .Cpp,using an EventHandler.

Despite being a total idiot,and running into ".Scope" errors;

(it's nearly always something small you miss).I have managed to

successfully implement the EventHandler.

I tried the "engine" variety,seeing as the script relies on the vehicles movement.

Just in case there's any Cfg/Script newbies like myself reading this.

Let me explain why I got ".Scope" errors.

I was trying to define the EH as a subclass of the "parent"

class;CfgVehicles.When I should've defined it as part of the

"ReconBike"class.Which is my addon.I also didn't properly

close my addon's class,which is what gave me the errors.

Here's the .Cpp from CfgVehicles onwards:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

class cfgVehicles

{

class All {};

class AllVehicles: All {};

class Land: AllVehicles {};

class LandVehicle: Land {};

class Motorcycle: LandVehicle {};

class Jawa: Motorcycle {};

class ReconBike: Jawa

{

scope=public;

vehicleClass="Car";

displayName = "ReconBike";

unloadInCombat = true;

cost = 1000;

maxSpeed = 250;

crew = "SoldierWb";

side =1;

nameSound = "car";

accuracy = 0.500000;

model = "\Armalyte\v\ReconBike3.p3d";

picture = "";

Icon = "\Armalyte\v\Edicon.paa";

soundEngine[] = {"\Armalyte\snd\fav.wss",1,1.2};

fuelCapacity = 50;

armor = 50;

weapons[]={};

magazines[] = {};

driverAction = "ManActReconBiker";

cargoAction[] = {};

ejectDeadDriver = 1;

hideweaponsdriver= 1;

transportSoldier = 0;

transportAmmo = 0;

driverCanSee = "2+8+16";

gunnerCanSee = "2+8";

terrainCoef = 0.25000;

preferRoads =0;

unitInfoType = "UnitInfoAirplane";

hideUnitInfo = 1;

armorWheels = 1.12;

damperSize = 0.1;

damperForce = 30;

predictTurnSimul = 2.0;

predictTurnPlan = 2.0;

}; <<<<<<My mistake,needs to be removed

class EventHandlers

{

engine="[_this select 0] exec {\Armalyte\Animbiker.sqs}";

}; <<<<Also needs 1 more "};" to close CfgVehicles

};

Here it is, corrected:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

predictTurnSimul = 2.0;

predictTurnPlan = 2.0;

class EventHandlers

{

engine="[_this select 0] exec {\Armalyte\Animbiker.sqs}";

};

};

};

Solving this problem was made a lot easier by searching

the forums.So if like me,you're just getting started,then

definately use the search function.

And if you run into problems,and you solve them,do post

the results.

That way others can study them,and not have to repeatedly post in on the same subject. wink_o.gif

Btw,if I don't find out in the meantime.Would there be any

advantage to using "getin" EH,as HulkingUnicorn suggested?

Or would "Engine" EH work just as well?

I was only trying it out as an exercise.

Also,does anyone think I would have problems with the script,

or these EHs,in a multiplayer environment?

Macser smile_o.gif

Share this post


Link to post
Share on other sites

Good to see it's working mate - I better look into this addon stuff someday...

Try to test with two different riders. If that works, there is no need to change to getin wink_o.gif

Share this post


Link to post
Share on other sites

Hows it goin Unicorn?

Tried a few different units,ordering them in and out

of an empty bike.No problems.

I think I'll have to adjust the "speed" condition check,to

allow for speed in negative values as well though.

As in,when the vehicle moves in reverse.But that shouldn't

be to difficult.

Time for some experimentation now.

Hmm..Maybe a height check,when the bike gets

some air.Have the rider do a little lean animation.

Anyway.

Thanks man smile_o.gif

Share this post


Link to post
Share on other sites

Why does this run fine in a trigger:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">(getpos driver Bike select 2)>20:hint"Up we go"

But this won't work in a script:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

_veh=_this select 0

_unit= driver _veh

?(getpos _unit select 2)>20:hint "Up we go"

exit

They are essentially the same thing,expressed differently.Yes?

No errors occur,just no "hint" when the condition is true.

huh.gif

Share this post


Link to post
Share on other sites

Try:

?(getpos (driver _veh) select 2)>20:hint "Up we go"

Planck

Share this post


Link to post
Share on other sites

Thanks for the reply Planck wink_o.gif

But no deal.

Incorrect syntax would show up an error,wouldn't it?

I mean,I can't see any errors.

Maybe I'm way off,but if no error is being

reported,would that mean the conditon isn't being

resolved?

Would that happen,if for some reason the height of the "driver"

relative to the "vehicle" object was being returned,rather than

distance to the ground?If so,that wouldn't return a value,cause

the "driver" doesn't move.Yeah?

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">?(getpos (driver _veh) select 2)>20:hint "Up we go"

Seeing as I'm essentially a newbie with scripts.

Let me just verify I'm understanding how this line works.

"?" states what follows is a conditon.

getpos returns an array[x,y,z] relative to the

"driver" of the variable "_veh".

"select 2" is the "z" element of the array to be processed.

And if it's value is greater than 20,the condition is true.

So the "hint" command is executed.(Hint command used for testing only)

Am I wrong in this?

Am I missing something really obvious?

Macser huh.gif

Share this post


Link to post
Share on other sites

In essence.......when a unit enters a vehicle as driver they 'become' the vehicle, at least that is the way it was in OFP, however it might not hold true in ArmA.....I will try some experiments.

Planck

Share this post


Link to post
Share on other sites

Just so ye know,it's flashpoint I'm workin with.

But I'm sure the results of your experiments will be of

value anyway.Ofp and Arma have scripting commands in common.

Incidently I came across a link to this thread relating to "getpos" and Arma,

in the BIS wiki.Doubt it can help with my problem,but

you may find it useful.

http://www.flashpoint1985.com/cgi-bin....t=57918

Thanks again for the interest Planck. smile_o.gif

Share this post


Link to post
Share on other sites

Now,if I can't resolve the above "getpos" problem,I'll just have to

live without it.But in the meantime something else has cropped up.

The script as it stands:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

_veh = _this select 0

#CHKSPEED

_unit = driver _veh

~1

?!(alive _veh):exit

?(IsNull _unit):exit

?speed _veh >=3:_unit Switchmove "ReconBikerFtUp"

#STATICLOOP

?speed _veh >=3:goto "staticLoop"

?speed _veh <10:_unit Switchmove "ReconBikerFtDwn"

#STATICLOOP2

?speed _veh <10:goto "staticLoop2"

goto "CHKSPEED"

Problem is,even when the driver is dead,and has been

ejected out of the vehicle,he's still responding to the

script.In other words,he's lying there dead.

Then when the bike slows down and stops,

(with no-one on it)the "foot down"

animation plays.

I had assumed "?(IsNull _unit)"would take care

of that.I also used "Hint" in place of "exit" to verify the line.

It does indeed exit at that point.

Btw,this script is run using an "Engine" EH,within the vehicle's .Cpp.

I've tried using the "GetIn" EH,but that yields exactly the

same results.

Planck said the driver "becomes" the vehicle when he's in it.

Perhaps he's remaining in that state even after death?

If so,How do I go about "detaching" him?

Any clues?

Share this post


Link to post
Share on other sites

Hi again - didn't know you were flashpoint scripting wink_o.gif

Anyway... IsNull means it doesn't excist, but there is a body, yes? Try using !alive instead, and post your findings.

As for the height thing, try checking for the vehicles pos instead - does that work?

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×