Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Criss, if this somehow makes it into your hands: "Eat a dick and stop being a plagiarizing autistic cunt" - Foxmerc
- integer targetHandle;
- list floors = [ <16.00000, 35.00000, 48.50000>,//groundPos
- <29.00000, 35.00000, 37.50000>,//groundPos
- <29.00000, 35.00000, 26.50000>];//subTwoPos
- integer floorIndex = 0;
- integer floorListLength;
- integer moving;
- startTarget(vector pos)
- {
- llTriggerSound(NULL_KEY,1.0); //Initial Sound
- llTargetRemove(targetHandle);
- targetHandle = llTarget(pos, 0.5);
- llLoopSound(NULL_KEY,1.0); //While Moving Sound
- moving = 1;
- }
- elevatorEngine(string unParsedList)
- {
- if(moving)return;
- list derp = llParseString2List(unParsedList,[":"], []);
- string command = llList2String(derp,0);
- list queuedListing = [];//For queued way points, to be implimented later.
- if(command == "Down")
- {
- if(floorIndex < (floorListLength-1))floorIndex++;
- }
- else if(command == "Up")
- {
- if(floorIndex>0)floorIndex--;
- }
- else if(command == "GoTo")
- {
- integer tempFloor = llList2Integer(derp,1);
- if((tempFloor>=0)||(tempFloor<floorListLength))floorIndex=tempFloor;
- }
- else{return;}
- vector currPos = llGetPos();
- vector targetPos = currPos;
- targetPos = llList2Vector(floors, floorIndex);
- vector moveThisMuch = targetPos - currPos;
- float timeToReach = llVecDist(targetPos,currPos)*0.5;
- if(timeToReach<0.1)return;
- startTarget(targetPos);
- llSetKeyframedMotion(queuedListing+[moveThisMuch, timeToReach],[KFM_DATA, KFM_TRANSLATION, KFM_MODE, KFM_FORWARD]);
- }
- default
- {
- state_entry()
- {
- floorListLength = llGetListLength(floors);
- llSetStatus(0x400,1);
- llSetSoundQueueing(0);
- elevatorEngine("GoTo:0");
- }
- touch_start(integer total_number)
- {
- elevatorEngine(llGetLinkName(llDetectedLinkNumber(0)));
- }
- listen(integer c, string n, key i, string m)
- {
- if(llGetOwner()==llGetOwnerKey(i))elevatorEngine(m);
- }
- at_target(integer tnum, vector targetpos, vector ourpos)
- {
- llPlaySound(NULL_KEY,1.0);//Stop Sound
- llTargetRemove(targetHandle);
- moving = 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement