Jump to content
Sign in to follow this  
J. Schmidt

Innovation Studios WIP - Buildings

Recommended Posts

I've been working on a few buildings these last couple of weeks as well as an elevator in which I hope will be used without any problems in Bracer's Minihattan project. To start this thread off I would like to point the attention to the current issues and areas that I need help with for the Elevator I'm working on. I've been able to UV-Map and animate the elevator to move up and down via "addAction" commands, and haven't fallen through the floor when it's moving.

The first area that I would like to improve upon is the memory points, at the moment I have an "interact" memory point that is used for the "addAction" commands to work. At the present state that memory point doesn't move up/down with the elevator itself, and I thought I read somewhere that it is possible to have memory points follow the model. I have had to put the radius of the memory point to the height of the building that the elevator goes up, on top of that I would like to put a control panel inside the elevator that would be used to interact with, as well as a control panel on each floor of the building to call the elevator.

The second thing that I would like to get working is to put a set of doors on each floor that'll automatically close/open until the elevator is on that floor, and do the same to the elevator door itself. Also I would like to improve the open/close animation, right now it's instant and I'm unable to figure out how to get the door to totally slide/hide to the right of the elevator when open. Here's the video I recorded of what I have so far, that may help with my explanation about the door animations...

Elevator Video:

I would also like to include a few questions about texturing and how to create a light inside of a model that can be turned off/on; as I browsed threw the textures that the Community and BI has created I've noticed several texture files that look like the following picture. Correct me if I'm wrong, but it seems that the texture has the UV-Map of the model and then the actual textures the model uses over it, if that's true how can I do the same thing and then set that single texture file for the whole model?

http://i1138.photobucket.com/albums/n529/JSF_82nd_Reaper/Examples/housev_1i1_mlod_co_zps4296fdff.jpg (388 kB)

Share this post


Link to post
Share on other sites

Hmm. From looking at that video you'll need to create elevator doors out of a few rectangles instead of one full door otherwise it looks like it'll stick out of the side.

What you do is have the animation times slightly shorter with each piece so they appear to slide together as one but you'll have one piece stop inside that wall the other will keep sliding until the entire animation is finished.

Which is what I did here.

Let me know if that's what you want to do and I can gather the configs together for you

Share this post


Link to post
Share on other sites

@M1lkm8n Thanks for the reply, if you could gather an example sliding door animation, and if possible a config that includes a light fixture which can be interacted with to turn on and off. Also if possible could you include an automatic script to close the elevator doors when the elevator is moving.

Share this post


Link to post
Share on other sites

Here's another update on two of the houses I've been working on since yesterday... I'm currently working on the scaling for house 02, the height is perfect but both the length and the width need some work in order to have enough room for furnishings.

House 01:

http://i1138.photobucket.com/albums/n529/JSF_82nd_Reaper/Project%2002%20City%20Life/02-03-14%20WIP%20Update/pic02_zps9d400c1a.png?t=1391466306 (128 kB)

House 02:

http://i1138.photobucket.com/albums/n529/JSF_82nd_Reaper/Project%2002%20City%20Life/02-03-14%20WIP%20Update/pic04_zps52af6a62.png?t=1391466311 (192 kB)

Share this post


Link to post
Share on other sites

@UK_Spawn Thanks, too bad Oxygen 2 uses the Metric System, it makes it very difficult to scale everything since I'm use to the Imperial System.

I've updated the elevator, it's now a bit bigger and I'm working on the scripting aspect of it using a "case" statement approach for the elevator. Unfortunatly I'm having some trouble in getting the script which the "Event Handlers" calls, that adds all the actions to select different floors, which then calls to the "case" statement script. Here's what I have so far...

elevatorAct:

private ["_elevator"];
_elevator = _this select 0;
_unit = _this select 1;


_elevator addAction ["Floor 2", "c2_objects\scr\elevator01.sqf", "Floor02"];
_elevator addAction ["Floor 3", "c2_objects\scr\elevator01.sqf", "Floor03"];
_elevator addAction ["Floor 4", "c2_objects\scr\elevator01.sqf", "Floor04"];
_elevator addAction ["Floor 5", "c2_objects\scr\elevator01.sqf", "Floor05"];
_elevator addAction ["Floor 6", "c2_objects\scr\elevator01.sqf", "Floor06"];
_elevator addAction ["Floor 7", "c2_objects\scr\elevator01.sqf", "Floor07"];
_elevator addAction ["Floor 8", "c2_objects\scr\elevator01.sqf", "Floor08"];
_elevator addAction ["Floor 9", "c2_objects\scr\elevator01.sqf", "Floor09"];
_elevator addAction ["Floor 10", "c2_objects\scr\elevator01.sqf", "Floor10"];
_elevator addAction ["Floor 11", "c2_objects\scr\elevator01.sqf", "Floor11"];
_elevator addAction ["Floor 12", "c2_objects\scr\elevator01.sqf", "Floor12"];
_elevator addAction ["Floor 13", "c2_objects\scr\elevator01.sqf", "Floor13"];
_elevator addAction ["Floor 14", "c2_objects\scr\elevator01.sqf", "Floor14"];
_elevator addAction ["Floor 15", "c2_objects\scr\elevator01.sqf", "Floor15"];
_elevator addAction ["Floor 16", "c2_objects\scr\elevator01.sqf", "Floor16"];
_elevator addAction ["Floor 17", "c2_objects\scr\elevator01.sqf", "Floor17"];
_elevator addAction ["Floor 18", "c2_objects\scr\elevator01.sqf", "Floor18"];
_elevator addAction ["Floor 19", "c2_objects\scr\elevator01.sqf", "Floor19"];
_elevator addAction ["Floor 20", "c2_objects\scr\elevator01.sqf", "Floor20"];
_elevator addAction ["Floor 21", "c2_objects\scr\elevator01.sqf", "Floor21"];
_elevator addAction ["Floor 22", "c2_objects\scr\elevator01.sqf", "Floor22"];
_elevator addAction ["Floor 23", "c2_objects\scr\elevator01.sqf", "Floor23"];
_elevator addAction ["Floor 24", "c2_objects\scr\elevator01.sqf", "Floor24"];
_elevator addAction ["Floor 25", "c2_objects\scr\elevator01.sqf", "Floor25"];
_elevator addAction ["Floor 26", "c2_objects\scr\elevator01.sqf", "Floor26"];

elevator01.sqf:

private["_elevator", "_doorL", "_doorR", "_selectFloor"];
_elevator = _this select 0;
_doorL = _this select 1;
_doorR = _this select 2;
_selectFloor = _this select 3;

switch (_selectFloor) do {
case "Floor02": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 10.3];

	waitUntil {_elevator animationPhase _elevator == 10.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor03": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 13.3];

	waitUntil {_elevator animationPhase _elevator == 13.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor04": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 16.3];

	waitUntil {_elevator animationPhase _elevator == 16.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor05": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 19.3];

	waitUntil {_elevator animationPhase _elevator == 19.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor06": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 22.3];

	waitUntil {_elevator animationPhase _elevator == 22.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor07": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 25.3];

	waitUntil {_elevator animationPhase _elevator == 25.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor08": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 28.3];

	waitUntil {_elevator animationPhase _elevator == 28.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor09": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 31.3];

	waitUntil {_elevator animationPhase _elevator == 31.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor10": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 34.3];

	waitUntil {_elevator animationPhase _elevator == 34.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor11": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 37.3];

	waitUntil {_elevator animationPhase _elevator == 37.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor12": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 40.3];

	waitUntil {_elevator animationPhase _elevator == 40.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor13": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 43.3];

	waitUntil {_elevator animationPhase _elevator == 43.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor14": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 46.3];

	waitUntil {_elevator animationPhase _elevator == 46.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor15": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 49.3];

	waitUntil {_elevator animationPhase _elevator == 49.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor16": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 52.3];

	waitUntil {_elevator animationPhase _elevator == 52.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor17": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 55.3];

	waitUntil {_elevator animationPhase _elevator == 55.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor18": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 58.3];

	waitUntil {_elevator animationPhase _elevator == 58.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor19": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 61.3];

	waitUntil {_elevator animationPhase _elevator == 61.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor20": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 64.3];

	waitUntil {_elevator animationPhase _elevator == 64.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor21": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 67.3];

	waitUntil {_elevator animationPhase _elevator == 67.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor22": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 70.3];

	waitUntil {_elevator animationPhase _elevator == 70.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor23": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 76.3];

	waitUntil {_elevator animationPhase _elevator == 76.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor24": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 79.3];

	waitUntil {_elevator animationPhase _elevator == 79.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor25": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 82.3];

	waitUntil {_elevator animationPhase _elevator == 82.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
case "Floor26": {
	waitUntil {_elevator animationPhase _doorL == 0};
	_elevator animate [_elevator, 85.3];

	waitUntil {_elevator animationPhase _elevator == 85.3};
	_elevator animate [_doorL, -0.7];
	_elevator animate [_doorR, 0.7];
};
};

Share this post


Link to post
Share on other sites

are you seperating the buildings, like did you build modular floors that slot together?

just wondering how you overcame the limitations of building size in arma.

thanks

Share this post


Link to post
Share on other sites

not the poly limits, i understand that, i mean more like the size of buildings cant be more than 50meters without being able to walk through it etc.

Share this post


Link to post
Share on other sites

@UK_Spawn To which building are you referring to? If it's the 2nd house It's about 30 meters in length/width. For the elevator I'm working on, the buildings that the elevator will be used in are the skyscrapers that Bracer is working on for his Minihattan Island.

Edited by JSF 82nd Reaper

Share this post


Link to post
Share on other sites

At the moment I'm having troubles getting my config.cpp to run a SQF script which adds several "addActions" to the object. These "addActions" in return are suppose to initialize another SQF which consist of several "Case" commands which are suppose to lower/raise the object. I've gotten the object to raise/lower by using a different work around, which is just using the config.cpp "UserActions".

However I don't really want to use this due to having multiple copy and pasting of the same code for each of the different elevators that I'll have to create. (I have to create these different elevators because each family of skyscrapers Bracer has, have different floor elevations in which the elevator needs to be raised/lowered to.) If anyone can help, it'll be greatly appreciated.

Edited by JSF 82nd Reaper

Share this post


Link to post
Share on other sites

I've spent about 6 hours in the ArmA Model Makers Channel last night and didn't really get anywhere. The people that helped me gave me a different way to script this but needless to say I couldn't get it to work. I do like what they came up with, but the only way to get it to work as far as I know is doing the whole multiple copy and paste of the same code. I'll check everything through again to see if I did something wrong but it's not looking promising. (The script they came up with closes the doors automatically, then raises/lowers to the floor you chose, then opens the doors automatically when you reach the floor.)

However I'll paste what I had before I talked to them, and then what they came up with. The main problem that I'm having is getting a script to execute within the config.cpp which adds several "addAction" commands.

ElevatorActTest.sqf

private ["_elevator"];
_elevator = _this select 0;

_elevator addAction ["Floor 2", "c2_objects\scr\elevator01.sqf", "Floor02"];
_elevator addAction ["Floor 3", "c2_objects\scr\elevator01.sqf", "Floor03"];
_elevator addAction ["Floor 4", "c2_objects\scr\elevator01.sqf", "Floor04"];
_elevator addAction ["Floor 5", "c2_objects\scr\elevator01.sqf", "Floor05"];
_elevator addAction ["Floor 6", "c2_objects\scr\elevator01.sqf", "Floor06"];
_elevator addAction ["Floor 7", "c2_objects\scr\elevator01.sqf", "Floor07"];
_elevator addAction ["Floor 8", "c2_objects\scr\elevator01.sqf", "Floor08"];
_elevator addAction ["Floor 9", "c2_objects\scr\elevator01.sqf", "Floor09"];
_elevator addAction ["Floor 10", "c2_objects\scr\elevator01.sqf", "Floor10"];
_elevator addAction ["Floor 11", "c2_objects\scr\elevator01.sqf", "Floor11"];
_elevator addAction ["Floor 12", "c2_objects\scr\elevator01.sqf", "Floor12"];
_elevator addAction ["Floor 13", "c2_objects\scr\elevator01.sqf", "Floor13"];
_elevator addAction ["Floor 14", "c2_objects\scr\elevator01.sqf", "Floor14"];
_elevator addAction ["Floor 15", "c2_objects\scr\elevator01.sqf", "Floor15"];
_elevator addAction ["Floor 16", "c2_objects\scr\elevator01.sqf", "Floor16"];
_elevator addAction ["Floor 17", "c2_objects\scr\elevator01.sqf", "Floor17"];
_elevator addAction ["Floor 18", "c2_objects\scr\elevator01.sqf", "Floor18"];
_elevator addAction ["Floor 19", "c2_objects\scr\elevator01.sqf", "Floor19"];
_elevator addAction ["Floor 20", "c2_objects\scr\elevator01.sqf", "Floor20"];
_elevator addAction ["Floor 21", "c2_objects\scr\elevator01.sqf", "Floor21"];
_elevator addAction ["Floor 22", "c2_objects\scr\elevator01.sqf", "Floor22"];
_elevator addAction ["Floor 23", "c2_objects\scr\elevator01.sqf", "Floor23"];
_elevator addAction ["Floor 24", "c2_objects\scr\elevator01.sqf", "Floor24"];
_elevator addAction ["Floor 25", "c2_objects\scr\elevator01.sqf", "Floor25"];
_elevator addAction ["Floor 26", "c2_objects\scr\elevator01.sqf", "Floor26"];

Elevator01Test.sqf

private["_elevator", "_unit", "_selectFloor"];
_elevator = _this select 0;
_unit = _this select 1;
_selectFloor = _this select 3;

switch (_selectFloor) do {
   case "Floor02": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 10.3];

       waitUntil {_elevator animationPhase _elevator == 10.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor03": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 13.3];

       waitUntil {_elevator animationPhase _elevator == 13.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor04": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 16.3];

       waitUntil {_elevator animationPhase _elevator == 16.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor05": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 19.3];

       waitUntil {_elevator animationPhase _elevator == 19.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor06": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 22.3];

       waitUntil {_elevator animationPhase _elevator == 22.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor07": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 25.3];

       waitUntil {_elevator animationPhase _elevator == 25.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor08": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 28.3];

       waitUntil {_elevator animationPhase _elevator == 28.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor09": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 31.3];

       waitUntil {_elevator animationPhase _elevator == 31.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor10": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 34.3];

       waitUntil {_elevator animationPhase _elevator == 34.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor11": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 37.3];

       waitUntil {_elevator animationPhase _elevator == 37.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor12": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 40.3];

       waitUntil {_elevator animationPhase _elevator == 40.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor13": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 43.3];

       waitUntil {_elevator animationPhase _elevator == 43.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor14": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 46.3];

       waitUntil {_elevator animationPhase _elevator == 46.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor15": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 49.3];

       waitUntil {_elevator animationPhase _elevator == 49.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor16": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 52.3];

       waitUntil {_elevator animationPhase _elevator == 52.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor17": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 55.3];

       waitUntil {_elevator animationPhase _elevator == 55.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor18": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 58.3];

       waitUntil {_elevator animationPhase _elevator == 58.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor19": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 61.3];

       waitUntil {_elevator animationPhase _elevator == 61.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor20": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 64.3];

       waitUntil {_elevator animationPhase _elevator == 64.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor21": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 67.3];

       waitUntil {_elevator animationPhase _elevator == 67.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor22": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 70.3];

       waitUntil {_elevator animationPhase _elevator == 70.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor23": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 76.3];

       waitUntil {_elevator animationPhase _elevator == 76.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor24": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 79.3];

       waitUntil {_elevator animationPhase _elevator == 79.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor25": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 82.3];

       waitUntil {_elevator animationPhase _elevator == 82.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
   case "Floor26": {
       waitUntil {_elevator animationPhase _doorL == 0};
       _elevator animate [_elevator, 85.3];

       waitUntil {_elevator animationPhase _elevator == 85.3};
       _elevator animate [_doorL, -0.7];
       _elevator animate [_doorR, 0.7];
   };
};

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  

×