Switches and Cases Skill Level = Intermediate 2nd Tutorial By Postal v1 I remember when a multi-mode gun was something special. Now there a dime a dozen. I have noticed many people are going the way of making a variable called int(i.e. var int mode) then using if and else if questions (i.e. if (mode == 1) etc then else if (mode == 2) and so forth) which is perfectly good, but Switch is so much better. Switch allows you to select one of a set of options, then use that. Well I shall get to the code so you can see how it works, instead my having my babble on incoherently.

//

Var() Enum EMode {M_1,M_2,M_3,M_4} Mode;

ok this goes up in with the variables

var[use () if you want to be able to select which mode it starts off in, with default props]

Enum E[mode series name, I use mode, but you can use what ever you want ]

{

M_[a mode name]

,

M_[another mode name]

}

[mode series name]

;

So you may have something like this for weapon :

Var() Enum EMode {M_1,M_2,M_3,M_4} Mode;

or something like this for a bot

Var Enum EMood {M_Happy,M_Sad,M_Angry,M_Berserk} Mood;

but for this tutorial, I shall use:

Var() Enum EMode {M_MachineGun,M_RocketLauncher,M_FlameThrower} Mode;

copied straight from a multi mode grenade launcher

//

Now the switch code, the code is basically like what you will be using. This is set up using the same names in my example.

switch (Mode)

{

case M_MachineGun:

break;

case M_RocketLauncher:

break;

case M_FlameThrower:

break;

}

Each case is a option, and the break is where it ends

now for something practical, here is sort of like what you may use in a weapon.

function Fire( float Value )

{

switch (Mode)

{

case M_MachineGun:

Spawn(class'bullet');

break;

case M_RocketLauncher:

Spawn(class'rocket');

break;

case M_FlameThrower:

Spawn(class'flameburst');

break;

}

}

I hope you get the idea.

//

Now you probably are wondering how to switch between cases, well all you need is:

Mode= M_RocketLauncher;

[Mode series name] = M_[The new Mode name];

so if for example you want to have altfire switch modes you could have code like:

function AltFire( float Value )

{

ChooseMode();

}

Function ChooseMode()

{

switch (Mode)

{

case M_1:

Mode= M_RocketLauncher;

PlayerPawn(Owner).ClientMessage("Mode 2",'Event',true);

break;

case M_2:

Mode= M_FlameThrower;

PlayerPawn(Owner).ClientMessage("Mode 3",'Event',true);

break;

case M_3:

Mode= M_MachineGun;

PlayerPawn(Owner).ClientMessage("Mode 1",'Event',true);

break;

}

GoToState('AltFiring');//A place to play animation/sounds and to kill time

}

Well that is all, now should have everything you need to use switches, and if you still do not understand, mess around with the code in a weapon, you should be able to get the hang of it quickly.

//

Thanks:

Kobain for making me do this

Kangus for help with spelling/ suggestions/ and having me change a good bit of it

Visitors Since December 26, 2000