Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Mr. Wheehaw

Pages: [1] 2
1
Modification Help / Client Sided--- Item in hand function
« on: August 17, 2011, 04:37:30 AM »
Is there a function or whatever to check what item is in a client's hand?  And if so, can it also be used in a client-side mod?

2
Help / Mac can't host w/out porting?
« on: April 23, 2011, 05:09:55 PM »
Hola amigos :3

I have a macbook, and my caretakers have a mac tower.  Ive tried hosting on both of them, and it just wont work.  Then I looked a little deeper, and found that you had to port forward (this was like a year or so ago, before you [quoting the changelog] didnt have to port forward any more).  Well, we got a new router (Apple Airport Express) and I cant figure out how to port forward any more, so now I cant host.

Has anyone else had this problem?

3
Modification Help / Save function name
« on: January 30, 2011, 11:58:43 AM »
Hey, what is the function triggered in the server when someone saves the bricks, (for better understanding, I think it is onSaveBricks_Save() because of the QuickSave mod, but its probably wrong).  Thx

4
Suggestions & Requests / Spawn disabler
« on: January 26, 2011, 10:25:29 PM »
It would be an event that makes a spawn inactive when you give it a trigger (onPlayerEnterZone to screw spawncamping, in a COD like manner, moving spawns to unpopulated areas, for example).  This would really help me with a Black Ops build I'm making.

5
General Discussion / Blockland iPhone app
« on: January 25, 2011, 10:50:43 PM »
Sup, I hope I'm not the only person who has thought about this, but wouldn't it be cool to be able to check your PMs, post on threads, and look at the server list, while on a smartphone?  Just wondering if I could get a little support on this idea.  Reply your thoughts...

6
Modification Help / Override help
« on: May 16, 2010, 05:25:57 PM »
What do you do in torque to make something not happen?  Like in Rotondo's L4B ammo where it stops the weapon from firing.  Srry if it sounds noobish.

7
Clan Discussion / Camera Clan
« on: May 10, 2010, 08:31:16 PM »
CAMERA Clan

A simple clan that takes pictures of builds just for the hell of it.  If you want to app, just PM me with an assortment of 5 or less pics of a single build.

Clan tag looks like this [O*]  its supposed to be a camera, but it looks like stuff in the forum font.  It looks epic in the clan tag font though...

--People--
Administrators
Mr.Wheehaw - 9130
Members
None so far, so get those apps in!


Heres an example of a project at Dr_PainZ's server.  This build is made by Agereon (ID 1955):


One of the four exactly similar segments of the area.


The build's author, who insisted I take a pic with him in his "best" outfit.


The exterior of the area.


A view from one of the fountains toward the door to the outside.


A view from the door toward one of the fountains.  That math or whatever it is on the ceiling has no meaning as far as I know.

8
Help / Eventing: The Missing Manual
« on: May 01, 2010, 11:36:16 AM »
Eventing 101
Hey there ppls of Earth, Mars, and wherever the hell else, if you're a new player and have pretty much just finished the tutorial, then this is for you.  Remember that little button labeled "Events" in the bottom of the wrench screen that isn't mentioned in the Tutorial, well that is the answer to life.  Not really, but it is the force that makes doors open, makes bricks disappear, and makes spam way spammier than before.  This will show you every part of the event screen, and every event included with Blockland (not add-ons).

BTW: If you want info about a certain event, press ctrl f, then enter the event you want :D
BTW2:I do not know some events.  If you know what any of these do, plz reply.
radiusImpulse-(The whole event)
Redirect-(The checkbox)

Enable
That little column way on the left of the events menu is a way to make events change, without having to change the events (that sounds very wierd, I know).  It can stop events from happening if unchecked, or can let events happen if checked.  More uses will be included later in the manual.

Delay
This column (the second from the left) is what delays the event after it is supposed to happen.  The counting is in milliseconds, meaning every 1000 you put in = one second.  The limit is 30,000, or 30 seconds of delay.

Input Event
This is where it starts getting meaty.  These are what causes the event to happen.

onActivate-When a player clicks that brick, the events are triggered

onBlownUp-When the brick is "blown up" or blasted, the event is triggered.  You can tell a brick is blasted when it is no longer in the place you built it, and it can be kicked around when you touch it.

onBotTouch-When a zombie from Rotondo's Left 4 Block mod, a Bot from Amade's Bot Mod touches the brick (not by clicking it, but by coming into contact with it), or a vehicle touches it, the event is triggered

onPlayerTouch-Same thing as onBotTouch, but when a player touches it.

onPrintCountOverflow-Print Bricks ONLY-When a print brick has numbers on it, that is called its print count.  If that number goes above 9 using other events, the event will be triggered.

onPrintCountUnderflow-Print Bricks ONLY-If the brick's print count goes below 0, the event is triggered.

onProjectileHit-When a bullet, rocket, sword attack, etc. hits it, the event is triggered.

onRelay-When a relay occurs using the "fireRelay, fireRelayUp, Down, North, South, East, and West" events, the event is triggered.

onRespawn-When the brick comes back after being "Blown Up", the event is triggered.

Target
This is what will be affected by the event.  Some events are not available under all inputs, so I will add side notes for these.

Self-The event will affect the brick its events are in.

Player-The event will affect the player that triggered the events (for example, using onActivate, the player clicks it will be affected).-Not available for onBotTouch, onPrintCountOverflow or Underflow, onRelay, or onRespawn.

Client-The body that the player is controlling will not be affected, but the person playing the game will (for example, CenterPrint does not show anyone else looking at you any effects, but you would see the message)-Not available for onPrintCountOverflow or Underflow, onRelay, or onRespawn.

Minigame-The brick owner's minigame will be affected by the events (meaning that the minigame's creator has to have placed the brick for the events to affect the minigame).

<NAMED BRICK>-You can have other bricks besides the host brick have events by naming the brick you want affected, and then selecting its name in the drop-down menu under the named brick choice.

Bot-The zombie/bot/vehicle that touched the brick will be affected.-Only available for onBotTouch

Driver-The driver of the vehicle that touched the brick will be affected.-Only available for onBotTouch

Projectile-The projectile/sword slice/etc. will be affected.-Only available for onProjectileHit

Output Event and Output Parameters
The part where you pick what you want to be done to the target. BTW some targets share events with others, so I will be grouping them together.

Self/<NAMED BRICK>

cancelEvents-Cancels any delays or relays.  Anything that was supposed to happen after being canceled will not happen.

decrementPrintCount-Print Bricks ONLY-Makes a print count go down by a number.
--Box 1--The number you want the print count to go down by.  Only 1-9.

disappear-Makes a brick disappear, turning off rendering, collision, and ray casting.
--Box 1--How many seconds you want the brick to stay invisible.  You can also put -1 in the box to make it disappear forever, or put 0 in the box to make it reappear instantly.

fakeKillBrick-Simulates the brick being "Blown Up".
--Box 1-- How far north/south you want the brick to fly in Bricks Per Second.  Enter a positive number to make it fly north, or enter a negative number to make it fly south (for the winter xD).
--Box 2--How far east/west you want the brick to fly in BPS.  Enter a positive number to make it fly east, or enter a negative number to make it fly west.
--Box 3--How far up/down you want the brick to fly in BPS.  Enter a positive number to make it fly up, or enter a negative number to make it fly down.
--Box 4--How long you want the brick to stay "Blown Up" in seconds.  Unlike disappear, you cannot enter -1.

fireRelay-fires a relay to the chosen brick.  For use with onRelay.

fireRelayUp, Down, East, West, North, and South-Fires a relay to a brick in that cardinal direction from the target brick.

incrementPrintCount-Print Bricks ONLY-Makes a print count go up by a number.
--Box 1--The number you want the print count to go up by.  Only 1-9.

playSound-Plays the sound chosen in the drop-down from the target brick.
--Drop 1--The sound you want played from the target.

radiusImpulse-???

recoverVehicle-Vehicle Spawns ONLY-If no one is in the vehicle, then the vehicle will respawn.  If there is someone in the vehicle, then the vehicle will NOT respawn.

respawn-The brick will go back to its original place after being fakeKillBricked or "Blown Up".

respawnVehicle-Vehicle Spawns ONLY-The vehicle will respawn, no matter if anyone is in it or not.

setColliding-Its an event version of the collision box in the wrench menu.
--Check 1--Uncheck to turn colliding off, or check it to turn colliding on.

setColor-Simply sets the color of the target brick.
--ColorBox 1--Use to pick the color you want set.

setColorFX-Simply sets the paint effects of the target brick.
--Drop 1--Select the paint effect you want to set.

setEmitter-Simply sets the target brick's emitter like in the wrench menu.
--Drop 1--Select the emitter you want the brick to have.

setEmitterDirection-Simply sets the target brick's emitter direction like in the wrench menu.
--Drop 1--Select the cardinal direction you want the brick's emitter to be in

setEventEnabled-Set the target brick's events enabled or not.
--Box 1--Enter the event numbers separating them with spaces (ex. 1 2 4 7).
--Check 1--Check to set the enable the event, uncheck to disable.

setItem-Simply set the target brick's spawned item.
--Drop 1--Select the item you want the brick to have.

setItemDirection-Simply set the item's direction like in the wrench menu.
--Drop 1--Set the direction you want the item to be in.

setItemPosition-Simply set the item's position on the brick like in the wrench menu.
--Drop 1-- Set the position you want the item to be at.

setLight-Simply sets the target brick's light.
--Drop 1--Select the light you want the brick to have.

setMusic-Music Bricks ONLY-Set the target brick's music.
--Drop 1--Select the music you want set.

setPrintCount-Print Bricks ONLY-Set the target brick's print count.
--Box 1--Enter the number you want the print count to be.  Only 0-9.

setRayCasting-Simply set the brick's rayCasting like in the wrench menu.
--Check 1--Check to turn rayCasting on, uncheck to turn off.

setRendering-Simply set if you can see the brick or not like in the wrench menu.
--Check 1--Check to turn rendering on, uncheck to turn off.

setShapeFX-Set what movement effect you want.
--Drop 1--Select the effect you want.  Either none, undulo, or water.

setVehicle-Vehicle Spawns ONLY-Sets the target brick's vehicle.
--Drop 1--Select the vehicle you want the brick to spawn.

spawnExplosion-Spawns the explosion of vehicles, projectiles, etc.
--Drop 1--Select the explosion.
--Slide 1--Set the scale of the explosion. 1 is normal size, 2 is double, .500 is half, etc.

spawnItem-Spawns an item as if a player just dropped it.
--Box 1--How far north/south you want the item to fly in Bricks Per Second.  Enter a positive number to make it fly north, or enter a negative number to make it fly south.
--Box 2--How far east/west you want the item to fly in BPS.  Enter a positive number to make it fly east, or enter a negative number to make it fly west.
--Box 3--How far up/down you want the item to fly in BPS.  Enter a positive number to make it fly up, or enter a negative number to make it fly down.
--Drop 1--Select the item you want to be spawned.

spawnProjectile
--Box 1--How far north/south you want the projectile to be able to go off a straight line.  Enter a positive number to make it deflect north, or enter a negative number to make it deflect south.
--Box 2--How far east/west you want the projectile to be able to go off a straight line.  Enter a positive number to make it deflect east, or enter a negative number to make it deflect west.
--Box 3--How far up/down you want the projectile to be able to go off a straight line.  Enter a positive number to make it deflect up, or enter a negative number to make it deflect down.
--Drop 1--Select the projectile you want to be spawned.
--Box 4--How far north/south you want the projectile to go in.  Enter a positive number to make it go north, or enter a negative number to make it go south.
--Box 5--How far east/west you want the projectile to go in.  Enter a positive number to make it go east, or enter a negative number to make it go west.
--Box 6--How far up/down you want the projectile to go in.  Enter a positive number to make it go up, or enter a negative number to make it go down.

toggleEventEnabledMakes the "enable" part of the chosen events change to its opposite.
--Box 1--Enter the events you want to affect with spaces between the numbers (ex. 1 3 7 10).

Player/Driver/Bot

AddHealth-Add health to the target player/bot.
--Box 1--Enter the amount of health you want added (note, most players have 100 health).  Also, you can enter a negative amount to make them lose health

AddVelocity-Make the player fly in a direction
--Box 1-- How far north/south you want the player to fly in Bricks Per Second.  Enter a positive number to make it fly north, or enter a negative number to make it fly south.
--Box 2--How far east/west you want the player to fly in BPS.  Enter a positive number to make it fly east, or enter a negative number to make it fly west.
--Box 3--How far up/down you want the player to fly in BPS.  Enter a positive number to make it fly up, or enter a negative number to make it fly down.

BurnPlayer-Burn the player like they are on fire.
--Box 1--Enter the number of seconds you want them to stay burned.  Only from 1-9.

ChangeDataBlock-Set the target's playertype.
--Drop 1--Select the playertype you want set.

ClearBurn-Removes the player's burn if burnt.

ClearTools-Clears the player's items.

Dismount-Driver ONLY-Makes the player leave the vehicle as if they right-clicked.

InstantRespawn-Makes the player respawn as if they died, but without any score losses or gains.

Kill-Kills the player, thats it :D

SetHealth-Sets the player's health at a point.
--Box 1--Enter a number to set the player's health at.

SetPlayerScale-Set the player's size.
--Slide 1--Sets the player's size.  1 is normal, .500 is half size, 2 is double size, etc.

SetVelocity-Sets how fast a player moves in a direction, no matter what the beginning speed was.
--Box 1-- How far north/south you want the player to fly in Bricks Per Second.  Enter a positive number to make it fly north, or enter a negative number to make it fly south.
--Box 2--How far east/west you want the player to fly in BPS.  Enter a positive number to make it fly east, or enter a negative number to make it fly west.
--Box 3--How far up/down you want the player to fly in BPS.  Enter a positive number to make it fly up, or enter a negative number to make it fly down.

SpawnExplosion-Makes the player spawn an explosion.
--Drop 1--Select the explosion.
--Slide 1--Set the scale of the explosion. 1 is normal size, 2 is double, .500 is half, etc.

SpawnProjectile-Makes the player spawn a projectile at where they are looking if box 1, 2, and 3 are 0's.
--Box 1--Sets how fast the projectile is fired.
--Drop 1--Sets the projectile fired
--Box 2--How far north/south you want the projectile to go in.  Enter a positive number to make it go north, or enter a negative number to make it go south.
--Box 3--How far east/west you want the projectile to go in.  Enter a positive number to make it go east, or enter a negative number to make it go west.
--Box 4--How far up/down you want the projectile to go in.  Enter a positive number to make it go up, or enter a negative number to make it go down.

Client

BottomPrint-Gives the player a message at the bottom of their screen.
--Box 1--Enter the message here.
--Box 2--How long the message will stay there before disappearing in seconds.

CenterPrint-Gives the player a message in the middle of their screen.
--Box 1--Enter the message here.
--Box 2--How long the message will stay there before disappearing in seconds.

ChatMessage-Gives the player a message in their chat area.
--Box 1--Enter the message here.

IncScore-Increases the player's score by a number.
--Box 1--The number their score changes by.  Enter a positive to add points, and a negative to subtract points.

Minigame

BottomPrintAll-Gives all players in the minigame a message on the bottom of their screen.
--Box 1--Enter the message here.
--Box 2--How long the message will stay there before disappearing in seconds.

CenterPrintAll-Gives all players in the minigame a message in the middle of their screen.
--Box 1--Enter the message here.
--Box 2--How long the message will stay there before disappearing in seconds.

ChatMessageAll-Gives all players in the minigame a message in their chat area.
--Box 1--Enter the message here.

Reset-Resets the minigame.

RespawnAll-Respawns all players in the minigame.

Projectile

Bounce-Makes the projectile bounce off the brick and keep going.  Rockets will still explode on contact though.

Delete-Deletes the projectile on contact.  Rockets will still explode.

Explode-Makes the projectile explode on contact.

Redirect-Makes the projectile fly off in another direction.
--Box 1--How far north/south you want the projectile to go in.  Enter a positive number to make it go north, or enter a negative number to make it go south.
--Box 2--How far east/west you want the projectile to go in.  Enter a positive number to make it go east, or enter a negative number to make it go west.
--Box 3--How far up/down you want the projectile to go in.  Enter a positive number to make it go up, or enter a negative number to make it go down.
--Check 1--???


And there you have it.  A full explanation of every event that comes with Blockland.  I have 2 parts that I am not sure about, so if you know, plz reply with it.  Also rate x/10.
:{D

9
Drama / Ban xXSepioXx
« on: March 12, 2010, 04:00:11 PM »
WANTED
xXSepioXx
He steals builds.
Ban him from every server.
Get him banned from Blockland for all I care.
Beware of him.  He's an ubernoob.
His ID is 20162

10
Help / AutoRoad Fix: Help Wanted
« on: March 07, 2010, 09:53:58 PM »
Hi, im trying to get the good old autoroad fixed, because when you place two of em next to each other, they make the straight road brick, but dont rotate to meet the ends of the roads.  How could I fix that?

Heres the whole thing minus the RTB prefs.
Quote
//Main Script
package ExclamationPoint_AutoRoad
{
   //Default Script Overwrite
   function FXDtsBrick::OnAdd(%this)
   {
      parent::OnAdd(%this);
      %this.schedule(1,AutoRoad_Eval);
   }
   function FXDtsBrick::onDeath(%this)
   {
      InitContainerBoxSearch(%this.getPosition(),"16 1 0.1",$TypeMasks::FXBrickObjectType);
      while(isObject(%brick = containerSearchNext()))
      {
         if(!%brick.isDead() && %brick.isAutoRoad && %brick.isPlanted() && getSubStr(%brick.getDatablock().getName(),0,15) $= "Brick32x32FRoad")
         {
            %x1 = mFloatLength(getWord(%this.getPosition(),0),1);
            %y1 = mFloatLength(getWord(%this.getPosition(),1),1);
            %z1 = mFloatLength(getWord(%this.getPosition(),2),1);
            %x2 = mFloatLength(getWord(%brick.getPosition(),0),1);
            %y2 = mFloatLength(getWord(%brick.getPosition(),1),1);
            %z2 = mFloatLength(getWord(%brick.getPosition(),2),1);
            if(%z1 == %z2 && %y1 == %y2 && %x1 != %x2)
               %brick.schedule(1,AutoRoad_Check);
         }
      }
      InitContainerBoxSearch(%this.getPosition(),"1 16 0.1",$TypeMasks::FXBrickObjectType);
      while(isObject(%brick = containerSearchNext()))
      {
         if(!%brick.isDead() && %brick.isAutoRoad &&%brick.isPlanted() && getSubStr(%brick.getDatablock().getName(),0,15) $= "Brick32x32FRoad")
         {
            %x1 = mFloatLength(getWord(%this.getPosition(),0),1);
            %y1 = mFloatLength(getWord(%this.getPosition(),1),1);
            %z1 = mFloatLength(getWord(%this.getPosition(),2),1);
            %x2 = mFloatLength(getWord(%brick.getPosition(),0),1);
            %y2 = mFloatLength(getWord(%brick.getPosition(),1),1);
            %z2 = mFloatLength(getWord(%brick.getPosition(),2),1);
            if(%z1 == %z2 && %x1 == %x2 && %y1 != %y2)
               %brick.schedule(1,AutoRoad_Check);
         }
      }
      parent::onDeath(%this);
   }
   
   //Script Base
   function AutoRoad_ChangeRoad(%this,%type,%dir,%ctrlz)
   {
      if(!isObject(%this))
         return;
      if(%this.numEvents > 0)
         for(%i = 0; %i < %this.numEvents; %i++)
         {
            %EventEnabled[%i] = %this.eventEnabled[%i];
            %EventInputIDx[%i] = %this.eventInputIDx[%i];
            %EventInput[%i] = %this.eventInput[%i];
            %EventDelay[%i] = %this.eventDelay[%i];
            %EventTargetIDx[%i] = %this.eventTargetIDx[%i];
            %EventTarget[%i] = %this.eventTarget[%i];
            %EventNT[%i] = %this.eventNT[%i];
            %EventOutputIDx[%i] = %this.eventOutputIDx[%i];
            %EventOutput[%i] = %this.eventOutput[%i];
            %EventOutputAppendClient[%i] = %this.eventOutputAppendClient[%i];
            %EventOutputParameter[%i,1] = %this.eventOutputParameter[%i,1];
            %EventOutputParameter[%i,2] = %this.eventOutputParameter[%i,2];
            %EventOutputParameter[%i,3] = %this.eventOutputParameter[%i,3];
            %EventOutputParameter[%i,4] = %this.eventOutputParameter[%i,4];
            %EventOutputParameter[%i,5] = %this.eventOutputParameter[%i,5];
            %EventOutputParameter[%i,6] = %this.eventOutputParameter[%i,6];
         }
      if(%this.Item > 0)
      {
         %Item =  %this.Item.getDatablock();
         %ItemPosition = %this.ItemPosition;
         %ItemDirection = %this.ItemDirection;
         %ItemRespawnTime = %this.ItemRespawnTime;
      }
      if(getSubStr(%this.getName(),"_",1)$="_")
         %NTObjectName = %this.getName();
      if(%this.Light > 0)
         %Light = %this.light.getDatablock();
      if(%this.Emitter > 0)
      {
         %EmitterDatablock = %this.Emitter.getEmitterDatablock();
         %EmitterDirection = %this.EmitterDirection;
      }
      %AngleID = %dir;
      %Position = %this.getPosition();
      %Rotation = IDtoRot(%AngleID);
      %ColorID = %this.getColorID();
      %ColorFXID = %this.getColorFXID();
      %ShapeFXID = %this.getShapeFXID();
      %Raycasting = %this.isRayCasting();
      %Colliding = %this.isColliding();
      %Rendering = %this.isRendering();
      if(!%RayCasting && !%Colliding && !%Rendering)
         return;
      %datablock = "Brick32x32FRoadAuto" @ %type @ "Data";
      %brick = new fxDtsBrick()
      {
         datablock = %dataBlock.getID();
         isPlanted = 1;
         isBaseplate = 0;
      };
      %brick.setRayCasting(%Raycasting);
      %brick.setColliding(%Colliding);
      %brick.setRendering(%Rendering);
      %brick.setColor(%ColorID);
      %brick.setColorFX(%ColorFXID);
      %brick.setPrint(%PrintID);
      %brick.setShapeFX(%ShapeFXID);
      %client = %this.getGroup().client;
      %this.getGroup().add(%brick);
      %brick.stackBL_ID = %this.getGroup().bl_ID;
      %brick.setNTOBjectName("");
      %null = %this.getID();
      %brick.setTrusted(1);
      %this.explode();
      %brick.setTransform(%Position SPC %Rotation);
      if(%i > 0)
         for(%j = 0; %j < %i; %j++)
         {
            %brick.EventInputIDx[%j] = %EventInputIDx[%j];
            %brick.EventInput[%j] = %EventInput[%j];
            %brick.EventDelay[%j] = %EventDelay[%j];
            %brick.EventTargetIDx[%j] = %EventTargetIDx[%j];
            %brick.EventTarget[%j] = %EventTarget[%j];
            %brick.EventNT[%j] = %EventNT[%j];
            %brick.EventOutputIDx[%j] = %EventOutputIDx[%j];
            %brick.EventOutput[%j] = %EventOutput[%j];
            %brick.EventOutputAppendClient[%j] = %EventOutputAppendClient[%j];
            %brick.EventOutputParameter[%j,1] = %EventOutputParameter[%j,1];
            %brick.EventOutputParameter[%j,2] = %EventOutputParameter[%j,2];
            %brick.EventOutputParameter[%j,3] = %EventOutputParameter[%j,3];
            %brick.EventOutputParameter[%j,4] = %EventOutputParameter[%j,4];
            %brick.EventOutputParameter[%j,5] = %EventOutputParameter[%j,5];
            %brick.EventOutputParameter[%j,6] = %EventOutputParameter[%j,6];
            %brick.numEvents++;
            %brick.setEventEnabled(%j,%EventEnabled[%j]);
         }
      if(%Item)
      {
         %brick.setItem(%Item);
         %brick.setItemPosition(%ItemPosition);
         %brick.setItemDirection(%ItemDirection);
         %brick.setItemRespawnTime(%ItemRespawnTime);
      }
      if(strLen(%NTObjectName))
         %brick.setNTObjecTName(%NTObjectName);
      if(%Light)
         %brick.setLight(%Light);
      if(%EmitterDatablock)
      {
         %brick.setEmitter(%EmitterDatablock);
         %brick.setEmitterDirection(%EmitterDirection);
      }
      if(%NTObjectName)
         %brick.setNTObjecTName(%NTObjectName);
      %brick.plant();
      if(isObject(%client))
         if(%ctrlz)
         {   %client.undoStack.head--;
            %client.undoStack.val[%client.undoStack.head] = %brick TAB "PLANT";
            %client.undoStack.head++;
         }
         else
         {
            for(%j = 0; %j < %client.undoStack.size; %j++)
               if(getField(%client.undoStack.val[%j],0) $= %null)
                  %client.undoStack.val[%j] = %brick TAB "PLANT";
         }
      %brick.schedule(3,AutoRoad_Set,1);
   }
   function AutoRoad_UpdateAll()
   {
      centerPrintAll("\c3!\c2AutoRoad\c6: Updating AutoRoads...",5,2);
      for(%i = 0; %i < MainBrickGroup.getCount(); %i++)
      {
         %subBrickGroup = MainBrickGroup.getObject(%i);
         for(%j = 0; %j < %subBrickGroup.getCount(); %j++)
            if(getSubStr(%subBrickGroup.getObject(%j).getDatablock().getName(),0,19) $= "Brick32x32FRoadAuto")
               if($ExclamationPoint::AutoRoad::AdminOnly)
               {
                  if(%subBrickGroup.client.isAdmin || %subBrickGroup.client.isSuperAdmin)
                     %subBrickGroup.getObject(%j).AutoRoad_Check();
               }
               else
                  %subBrickGroup.getObject(%j).AutoRoad_Check();
      }
   }
   function FXDtsBrick::AutoRoad_Check(%this,%lvl)
   {
      if(getSubStr(%this.getDatablock().getName(),0,15) $= "Brick32x32FRoad")
      {
         if(%this.isPlanted() && !%this.beingDuped)
         {
            InitContainerBoxSearch(%this.getPosition(),"1 16 0.1",$TypeMasks::FXBrickObjectType);
            while(isObject(%brick = containerSearchNext()))
            {
               if(!%brick.isDead() && %brick != %this && %brick.isPlanted() && getTrustLevel(%brick,%this) >= $ExclamationPoint::AutoRoad::TrustRequirement && getSubStr(%brick.getDatablock().getName(),0,15) $= "Brick32x32FRoad")
               {
                  %x1 = mFloatLength(getWord(%this.getPosition(),0),1);
                  %y1 = mFloatLength(getWord(%this.getPosition(),1),1);
                  %z1 = mFloatLength(getWord(%this.getPosition(),2),1);
                  %x2 = mFloatLength(getWord(%brick.getPosition(),0),1);
                  %y2 = mFloatLength(getWord(%brick.getPosition(),1),1);
                  %z2 = mFloatLength(getWord(%brick.getPosition(),2),1);
                  if(%z1 == %z2 && %x1 == %x2 && %y1 != %y2)
                  {
                     if(%y1 < %y2)
                        %brick0 = %brick;
                     else if(%y1 > %y2)
                        %brick2 = %brick;
                  }
               }
            }
            %pos = "";
            InitContainerBoxSearch(%this.getPosition(),"16 1 0.1",$TypeMasks::FXBrickObjectType);
            while(isObject(%brick = containerSearchNext()))
            {
               if(!%brick.isDead() && %brick != %this && %brick.isPlanted() && getTrustLevel(%brick,%this) >= $ExclamationPoint::AutoRoad::TrustRequirement && getSubStr(%brick.getDatablock().getName(),0,15) $= "Brick32x32FRoad")
               {
                  %x1 = mFloatLength(getWord(%this.getPosition(),0),1);
                  %y1 = mFloatLength(getWord(%this.getPosition(),1),1);
                  %z1 = mFloatLength(getWord(%this.getPosition(),2),1);
                  %x2 = mFloatLength(getWord(%brick.getPosition(),0),1);
                  %y2 = mFloatLength(getWord(%brick.getPosition(),1),1);
                  %z2 = mFloatLength(getWord(%brick.getPosition(),2),1);
                  if(%z1 == %z2 && %x1 != %x2 && %y1 == %y2)
                  {   
                     if(%x1 < %x2)
                        %brick1 = %brick;
                     else if(%x1 > %x2)
                        %brick3 = %brick;
                  }
               }
            }
            for(%i = 0; %i <= 3;%i++)
            {
               %k++;
               %k[%i] = 0;
               if(isObject(%brick[%i]))
               {
                  if(getSubStr(%brick[%i].getDatablock().getName(),0,19) $= "Brick32x32FRoadAuto" && %lvl)
                     %brick[%i].schedule(3,AutoRoad_Check);
                  switch$(%brick[%i].getDatablock().getName())
                  {
                     case "Brick32x32FRoadTData":
                        if(%i != %brick[%i].getAngleID() + 1 && %i != %brick[%i].getAngleID() - 3)
                        {
                           %k--;
                           %k[%i] = 1;
                        }
                     case "Brick32x32FRoadCData":
                        if(%i != %brick[%i].getAngleID() + 1 && %i != %brick[%i].getAngleID() + 2 && %i != %brick[%i].getAngleID() - 2 && %i != %brick[%i].getAngleID() - 3)
                        {
                           %k--;
                           %k[%i] = 1;
                        }
                     case "Brick32x32FRoadSData":
                        if(%i != %brick[%i].getAngleID() + 1 && %i != %brick[%i].getAngleID() - 1 && %i != %brick[%i].getAngleID() + 3 && %i != %brick[%i].getAngleID() - 3)
                        {
                           %k--;
                           %k[%i] = 1;
                        }
                     default:
                        %k--;
                        %k[%i] = 1;
                  }
               }
            }
            switch(%k)
            {
               case 1:
                  %Type = "T";
                  for(%i = 0; %i <= 3;%i++)
                     if(!%k[%i])
                        break;
                  %Dir = %i + 1;
                  if(%Dir == 4)
                     %Dir = 0;
               case 2:
                  for(%i = 0; %i <= 3;%i++)
                     if(!%k[%i])
                        %a[%b++] = %i;
                  if(%a1 + 2 == %a2 || %a1 - 2 == %a2 || %a1 == %a2)
                  {
                     %Type = "S";
                     %Dir = %a1 + 1;
                     if(%Dir == 4)
                        %Dir = 0;
                  }
                  else
                  {
                     %Type = "C";
                     %Dir = %a1 + 1;
                     if(%a1 == 0 && %a2 == 3)
                        %Dir = 0;
                  }
               case 3:
                  if($ExclamationPoint::AutoRoad::EndPoints)
                     %Type = "";
                  else
                     %Type = "S";
                  for(%i = 0; %i <= 3;%i++)
                     if(%k[%i])
                        break;
                  %Dir = %i;
               case 4:
                  %Type = "";
                  %Dir = 0;
               default:
                  %Type = "X";
                  %Dir = 0;
            }
            if(%lvl)
               %CtrlZ = 1;
            if(getSubStr(%this.getDatablock().getName(),0,19) $= "Brick32x32FRoadAuto")
               AutoRoad_ChangeRoad(%this,%Type,%Dir,%CtrlZ);
         }
         if(%this.beingDuped)
            %this.schedule(100,AutoRoad_Check,0);
      }
   }
   function FXDtsBrick::AutoRoad_Eval(%this)
   {
      if(!%this.getGroup().client.isAdmin && !%this.getGroup().client.isSuperAdmin && $ExclamationPoint::AutoRoad::AdminOnly)
         return;
      if(getSubStr(%this.getDatablock().getName(),0,19) $= "Brick32x32FRoadAuto")
         %this.isAutoRoad = 1;
      if(isObject(%this.client))
         %this.schedule(1,AutoRoad_Check,1);
   }
   function FXDtsBrick::AutoRoad_Set(%this,%val)
   {
      %this.isAutoRoad = %val;
   }
};
ActivatePackage(ExclamationPoint_AutoRoad);

//AutoRoad Bricks
datablock fxDTSBrickData(Brick32x32FRoadAutoData : Brick32x32FData)
{
   subCategory = "Road";
   uiName = "32x32 Road Auto";
};
datablock fxDTSBrickData(Brick32x32FRoadAutoSData : Brick32x32FRoadSData)
{
   Category = "";
   subCategory = "";
   uiName = "32x32F Road Auto S";
};
datablock fxDTSBrickData(Brick32x32FRoadAutoCData : Brick32x32FRoadCData)
{
   Category = "";
   subCategory = "";
   uiName = "32x32F Road Auto C";
};
datablock fxDTSBrickData(Brick32x32FRoadAutoXData : Brick32x32FRoadXData)
{
   Category = "";
   subCategory = "";
   uiName = "32x32F Road Auto X";
};
datablock fxDTSBrickData(Brick32x32FRoadAutoTData : Brick32x32FRoadTData)
{
   Category = "";
   subCategory = "";
   uiName = "32x32F Road Auto T";
};

Anyone's help would be appreciated.
Please include the area that needs to be changed, and what to change it to.
 :cookieMonster:

11
Suggestions & Requests / Please port ifiteminhand!!!
« on: February 25, 2010, 10:48:19 PM »
Hey, the topic explains it all.  Plz post!

12
Add-Ons / BackGround Music Player
« on: January 09, 2010, 04:49:28 PM »
Delete this
Its a fail

13
Modification Help / Camera/ Projectile Help!
« on: January 08, 2010, 01:41:17 AM »
Hi,

Im making an addon (my first and probably most crappy) that requires me to set the player's camera to a specified joint, and when the projectile (thrown like spear) hits a wall, the floor, or the ceiling, it has to stick there in the opposite direction of whichever it hits.  Plz help!!!

14
Help / Add-on making help
« on: January 04, 2010, 06:51:25 PM »
Hi,

I have tried for a while, and can't figure out how to install any of the add-on making softwares.  I have a Macbook Pro with Snow Leopard.  Please help.

15
Gallery / Wheehaw's Pixel Art Gallery!!!
« on: May 27, 2009, 05:39:02 PM »
I have made my gallery website!  Click here to visit the site.

http://wheehawgallery.wordpress.com/

Pages: [1] 2