Author Topic: Else if  (Read 1961 times)

How do you use Else if? like this?:

Code: [Select]
function blah(%client){
if(%client.isAdmin){
//blah de blah
} else if(%client.isSuperAdmin){
//blah de blah
}

Is that how you use else if's?

Code: [Select]
function klol(%yourmom)
{
  if(%yourmom == 1)
   {
     // omg codes lul
  }
  else
   {
 // bend over plz
  }
}

Nearly, you missed a } though:
Code: [Select]
function blah(%client){
 if(%client.isSuperAdmin)
 {
  //Super
 }
 else if(%client.isAdmin)
 {
  //Admin
 }
 else
 {
  //None
 }
}

Also, for certain uses the switch and switch$ statements exist:
Code: [Select]
function ChooseClass(%client)
{
 %classNum = getRandom(0,3);
 switch(%classNum)
 {
  case 0:
   return "Warrior";
  case 1:
   %client.player.tool[0] = bowItem;
   messageclient(%client,'msgItemPickup',"",0,nametoID("bowItem"));
   return "Archer";
  case 2:
   messageclient(%client,"","\c5You are now a White Mage! Go to the Rune Shop and buy magical Runes.");
   return "White Mage";
  default:
   echo("It's not any of the ones above, return the default:");
   return "Trader";
 }
}

switch$ functions in the same way, except it checks for strings:
Code: [Select]
function servercmdLoadType(%client,%filename)
{
 if(!%client.isSuperAdmin){return;}
 if(%filename $= ""){messageclient(%client,"","\c0ERROR: \c3No filename given.");return;}
 messageclient(%client,"","\c5Loading bot type from file \c3Add-Ons/Client/" @ %filename @ ".bottype\c5...");
 $BotSettings[%filename]=0;
 %file=new fileObject();
 %file.openForRead("Add-Ons/Client/" @ %filename @ ".bottype");
 while(!%file.isEOF())
 {
  %line=%file.readLine();
switch$(firstWord(%line))
{
case "DECAL":
$BotDecal[%filename] = restWords(%line);
case "FACE":
$BotFace[%filename] = restWords(%line);
case "DATA":
$BotData[%filename] = restWords(%line);
case "NAME":
$BotName[%filename] = restWords(%line);
default: //Setting appearance
$BotAppear[%filename,$BotSettings[%filename]++] = firstWord(%line);
$BotColor[%filename,$BotSettings[%filename]] = restWords(%line);
}
 }
 %file.close();
 %file.delete();
 messageclient(%client,"","\c5Finished loading. Bot type added: \c3" @ %filename);
}

Thanks!

Wtf's wrong with this? It just gives me this syntax:

Code: [Select]
datablock TriggerData(KillBTrigger)
{
   tickPeriodMS = 100;
};

function ##K##illBTrigger::onEnterTrigger(%this,%trigger,%obj){
   %obj.kill();
}
« Last Edit: June 04, 2007, 11:54:12 AM by MrPickel »

It may be something further up in the code which is causing the problem. Whole/more of the script, please?

Okay.

Code: [Select]
function serverCmdKillBrick(%client){
if(!%KillBrick){
%client.KillBrick = 1;
messageclient(%client,"","Wand now in Kill Brick Mode");
%client.ImpulseBrick = 0;

}
}

function serverCmdImpulseBrick(%client){
if(!%ImpulseBrick){
%client.ImpulseBrick = 1;
messageclient(%client,"","Wand now in Impulse Brick mode");
%client.KillBrick = 0;
}
}

datablock ProjectileData(BrickPropProjectile : WandProjectile){
   className = "ProjectileData";
};

datablock ItemData(BrickPropItem: WandItem){
   // Mission editor category
   category = "Tools";
   //gui stuff
   uiName = "BrickProp";
   // Dynamic properties defined by the scripts
   image = BrickPropImage;
   colorShiftColor = "1 0 0 1";
};

datablock ShapeBaseImageData(BrickPropImage : WandImage){
   // Projectile && Ammo.
   item = "BrickPropItem";
   projectile = "BrickPropProjectile";
   colorShiftColor = "1 0 0 1";
};

function BrickPropProjectile::onCollision(%this, %obj, %col, %fade, %pos, %normal){

if(%client.KillBrick){

%triggerX = %col.dataBlock.brickSizeX/2;
%triggerY = %col.dataBlock.brickSizeY/2;
%triggerZ = %col.dataBlock.brickSizeZ*0.2;
%triggerZ = %TriggerZ + 0.1;
%triggerY = %TriggerY + 0.1;
%triggerX = %TriggerX + 0.1;
if(%col.angleid == 2){
%newpos = getWord(%col.getTransform(),0) + %triggerX/2 SPC getWord(%col.getTransform(),1) - %triggerY/2 SPC getWord(%col.getTransform(),2);
%newrot = %col.rotation;
}
if(%col.angleid == 0){
%triggerXnew = %triggerX/2;
%triggerYnew = %triggerY/2;
%newpos = getWord(%col.getTransform(),0) - %triggerXnew SPC getWord(%col.getTransform(),1) + %triggerYnew SPC getWord(%col.getTransform(),2);
%newrot = %col.rotation;
}
if(%col.angleid == 1){
%triggerYsq = %triggerX/2;
%triggerYsq = %triggerYsq - %triggerYsq*2;
%triggerXsq = %triggerY/2;
%triggerXsq = %triggerXsq - %triggerXsq*2;
%newrot = %col.rotation;
%newpos = getWord(%col.getTransform(),0) - %TriggerXsq SPC getWord(%col.getTransform(),1) - %triggerYsq SPC getWord(%col.getTransform(),2);
}
if(%col.angleid == 3){
%triggerXsq = %triggerY/2;
%triggerYsq = %triggerX/2;
%newrot = %col.rotation;
%newpos = getWord(%col.getTransform(),0) - %TriggerXsq SPC getWord(%col.getTransform(),1) - %triggerYsq SPC getWord(%col.getTransform(),2);
}
%trigger = new Trigger() {
position = %newpos;
rotation = %newrot;
scale = "1 1 1.2";
dataBlock = KillBTrigger;
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
};
%trigger.setScale(%triggerX SPC %triggerY SPC %triggerZ);

} else if(%client.ImpulseBrick){

%triggerX = %col.dataBlock.brickSizeX/2;
%triggerY = %col.dataBlock.brickSizeY/2;
%triggerZ = %col.dataBlock.brickSizeZ*0.2;
%triggerZ = %TriggerZ + 0.1;
%triggerY = %TriggerY + 0.1;
%triggerX = %TriggerX + 0.1;
if(%col.angleid == 2){
%newpos = getWord(%col.getTransform(),0) + %triggerX/2 SPC getWord(%col.getTransform(),1) - %triggerY/2 SPC getWord(%col.getTransform(),2);
%newrot = %col.rotation;
}
if(%col.angleid == 0){
%triggerXnew = %triggerX/2;
%triggerYnew = %triggerY/2;
%newpos = getWord(%col.getTransform(),0) - %triggerXnew SPC getWord(%col.getTransform(),1) + %triggerYnew SPC getWord(%col.getTransform(),2);
%newrot = %col.rotation;
}
if(%col.angleid == 1){
%triggerYsq = %triggerX/2;
%triggerYsq = %triggerYsq - %triggerYsq*2;
%triggerXsq = %triggerY/2;
%triggerXsq = %triggerXsq - %triggerXsq*2;
%newrot = %col.rotation;
%newpos = getWord(%col.getTransform(),0) - %TriggerXsq SPC getWord(%col.getTransform(),1) - %triggerYsq SPC getWord(%col.getTransform(),2);
}
if(%col.angleid == 3){
%triggerXsq = %triggerY/2;
%triggerYsq = %triggerX/2;
%newrot = %col.rotation;
%newpos = getWord(%col.getTransform(),0) - %TriggerXsq SPC getWord(%col.getTransform(),1) - %triggerYsq SPC getWord(%col.getTransform(),2);
}
%trigger = new Trigger() {
position = %newpos;
rotation = %newrot;
scale = "1 1 1.2";
dataBlock = ImpulseBTrigger;
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
};
%trigger.setScale(%triggerX SPC %triggerY SPC %triggerZ);
}


datablock TriggerData(KillBTrigger)
{
   tickPeriodMS = 100;
};

function KillBTrigger::onEnterTrigger(%this,%trigger,%obj){
   %obj.kill();
}

datablock TriggerData(ImpulseBTrigger)
{
   tickPeriodMS = 100;
};

function ImpulseBTrigger::onEnterTrigger(%this,%trigger,%obj){
   %obj.impulse = 1000;
}

Code: [Select]
function klol(%yourmom)
{
  if(%yourmom == 1)
   {
     // omg codes lul
  }
  else
   {
 // bend over plz
  }
}
I can't help but lol at you. You're the guy who hacks aot and makes a DLL injector that speeds up game loading and fixes the server count when it goes weird, yet you don't know what an if statement is...
« Last Edit: June 04, 2007, 02:08:01 PM by Ephialtes »


Code: [Select]
function serverCmdkill(%client,%name) {
if(%client.isAdmin || %client.isSuperAdmin) {
  if(findclientbyname(%name) > -1 && !findclientbyname(%name).isSuperAdmin) {
     findclientbyname(%name).player.kill();
     chatmessageall(%client,'',"%1(Admin) has killed %2",%client,findclientbyname(%name).name);
  }
  else if(findclientbyname(%name) < 0)
    messageclient(%client,'',"Invaild Name.");
  else if(findclientbyname(%name).isSuperAdmin)
    messageclient(%client,'',"You cannot kill Super Admins.");
}
}
function findclientbyname(%findclient) {
  %fca = -1;
  for( %i = 0; %i < ClientGroup.getCount(); %i++) {
    %client = ClientGroup.getObject(%i);
    if (strlwr(%client.name) $= strlwr(%findclient))
%fca = %client;
    }
  return %fca;
}
Whatever, just giving example, made in post box just for example, probably not work...I used chatmessageall so the admin can't spam killing and findclientbyname(%name).name so that everything is capitalized correctly and everything...

Else IF not, just else and if.

Name: else if(%var)

Function Example:

Code: [Select]
function function(%a)
{
if(%a == 1)
{
echo(1);
}
else if(%a == 2)
{
echo(LOL);
}
else
{
echo(LUL);
}
}