CMD:checkme(playerid, params[]) { if(!IsPlayerInRangeOfPoint(playerid, 5.0, 1960.4540,-2188.0190,13.5469)) { SendClientMessage(playerid, COLOR_RED, "You are not near the airport!"); } else { SendClientMessage(playerid, COLOR_GREEN, "Please wait while the airport security checks your vehicle and registration."); if(PlayerInfo[playerid][pCarLic] != 1) { if(PlayerInfo[playerid][pSex] == 1) { SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Sir, you do not have a drivers license, the police have been informed and are on their way."); } else { SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Ma'am, you do not have a drivers license, the police have been informed and are on their way."); } } else if(PlayerInfo[playerid][pFlyLic] != 1) { if(PlayerInfo[playerid][pSex] == 1) { SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Sir, you do not have a flying license, the police have been informed and are on their way to question you."); } else { SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Ma'am, you do not have a flying license, the police have been informed and are on their way to question you."); } } else { SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Ok, you are free to enter the airport, have a wonderful day!(Gate will close in 6 seconds.)"); SetTimeer("AirportGate", 6000, false); } } return 1; }
public AirportGate() { MoveDynamicObject(1095, 0.0, 0.0, 0.0, 1, 90.0, 0.0, 0.0); }
public AirportGate() { if(!GateOpened) { MoveDynamicObject(1095, 0.0, 0.0, 0.0, 1, 90.0, 0.0, 0.0); //opened location SetTimer("AirportGate", 6000, false); GateOpened = true; } else { MoveDynamicObject(1095, 0.0, 0.0, 0.0, 1, 90.0, 0.0, 0.0); //closed location GateOpened = false; } }
Check out this wiki page https://sampwiki.blast.hk/wiki/SetTimer if you haven't already.
From what I see, your code will open the gate but not close it. To close it, add another timer after MoveDynamicObject and lead it to another public method moving it back to it's original location, or use a global boolean to check if it is open or closed and toggle that. Note that you will need to add another timer in to close it, something like this could work: Код:
public AirportGate() { if(!GateOpened) { MoveDynamicObject(1095, 0.0, 0.0, 0.0, 1, 90.0, 0.0, 0.0); //opened location SetTimer("AirportGate", 6000, false); GateOpened = true; } else { MoveDynamicObject(1095, 0.0, 0.0, 0.0, 1, 90.0, 0.0, 0.0); //closed location GateOpened = false; } } |
/* Wherever the object is created */ new GateObject = CreateDynamicObject(1095, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 200.0); public AirportGate() { if(!GateOpened) { MoveDynamicObject(GateObject, 0.0, 0.0, 0.0, 1, 90.0, 0.0, 0.0); //opened location SetTimer("AirportGate", 6000, false); GateOpened = true; } else { MoveDynamicObject(GateObject, 0.0, 0.0, 0.0, 1, 90.0, 0.0, 0.0); //closed location GateOpened = false; } }
Код:
/* Wherever the object is created */ new GateObject = CreateDynamicObject(1095, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 200.0); public AirportGate() { if(!GateOpened) { MoveDynamicObject(GateObject, 0.0, 0.0, 0.0, 1, 90.0, 0.0, 0.0); //opened location SetTimer("AirportGate", 6000, false); GateOpened = true; } else { MoveDynamicObject(GateObject, 0.0, 0.0, 0.0, 1, 90.0, 0.0, 0.0); //closed location GateOpened = false; } } |
CMD:checkme(playerid, params[]) { if(!IsPlayerInRangeOfPoint(playerid, 10.0, 1960.4540,-2188.0190,13.5469)) { SendClientMessage(playerid, COLOR_RED, "You are not near the airport!"); } else { SendClientMessage(playerid, COLOR_GREEN, "Please wait while the airport security checks your vehicle and registration."); if(PlayerInfo[playerid][pCarLic] != 1) { if(PlayerInfo[playerid][pSex] == 1) { SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Sir, you do not have a drivers license, the police have been informed and are on their way."); } else { SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Ma'am, you do not have a drivers license, the police have been informed and are on their way."); } } else if(PlayerInfo[playerid][pFlyLic] != 1) { if(PlayerInfo[playerid][pSex] == 1) { SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Sir, you do not have a flying license, the police have been informed and are on their way to question you."); } else { SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Ma'am, you do not have a flying license, the police have been informed and are on their way to question you."); } } else { SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Ok, you are free to enter the airport, have a wonderful day!(Gate will close in 6 seconds.)"); SetTimer("AirportGate", 200, 0); MoveDynamicObject(GateObject, 1956.54541, -2189.80908, 13.32070, 0.00000, 0.00000, 0.00000); } } return 1; } public AirportGate(playerid) { MoveDynamicObject(GateObject, 1956.54541, -2189.80908, 13.32070, 0.00000, 90.00000, 0.00000); }
Ok, i altered what you did and got this
Код:
CMD:checkme(playerid, params[]) { if(!IsPlayerInRangeOfPoint(playerid, 10.0, 1960.4540,-2188.0190,13.5469)) { SendClientMessage(playerid, COLOR_RED, "You are not near the airport!"); } else { SendClientMessage(playerid, COLOR_GREEN, "Please wait while the airport security checks your vehicle and registration."); if(PlayerInfo[playerid][pCarLic] != 1) { if(PlayerInfo[playerid][pSex] == 1) { SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Sir, you do not have a drivers license, the police have been informed and are on their way."); } else { SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Ma'am, you do not have a drivers license, the police have been informed and are on their way."); } } else if(PlayerInfo[playerid][pFlyLic] != 1) { if(PlayerInfo[playerid][pSex] == 1) { SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Sir, you do not have a flying license, the police have been informed and are on their way to question you."); } else { SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Ma'am, you do not have a flying license, the police have been informed and are on their way to question you."); } } else { SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Ok, you are free to enter the airport, have a wonderful day!(Gate will close in 6 seconds.)"); SetTimer("AirportGate", 200, 0); MoveDynamicObject(GateObject, 1956.54541, -2189.80908, 13.32070, 0.00000, 0.00000, 0.00000); } } return 1; } public AirportGate(playerid) { MoveDynamicObject(GateObject, 1956.54541, -2189.80908, 13.32070, 0.00000, 90.00000, 0.00000); } |
CMD:checkme(playerid, params[]) { if(!IsPlayerInRangeOfPoint(playerid, 10.0, 1960.4540,-2188.0190,13.5469)) { SendClientMessage(playerid, COLOR_RED, "You are not near the airport!"); } else { SendClientMessage(playerid, COLOR_GREEN, "Please wait while the airport security checks your vehicle and registration."); if(PlayerInfo[playerid][pCarLic] != 1) { switch(PlayerInfo[playerid][pSex]) { case 1: SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Sir, you do not have a drivers license, the police have been informed and are on their way."); case 2: SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Ma'am, you do not have a drivers license, the police have been informed and are on their way."); } } else if(PlayerInfo[playerid][pFlyLic] != 1) { switch(PlayerInfo[playerid][pSex]) { case 1: SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Sir, you do not have a flying license, the police have been informed and are on their way."); case 2: SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Ma'am, you do not have a flying license, the police have been informed and are on their way."); } } else { SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Ok, you are free to enter the airport, have a wonderful day!(Gate will close in 6 seconds.)"); SetTimer("AirportGate", 200, 0); MoveDynamicObject(GateObject, 1956.54541, -2189.80908, 13.32070, 3.0, 0.00000, 0.00000, 0.00000); /* * MoveDynamicObject(objectid, Float:x, Float:y, Float:z, Float:speed, Float:rx = -1000.0, Float:ry = -1000.0, Float:rz = -1000.0); * I noticed you forgot the speed, so it assumed the speed of 0.00000 (which I assume you meant for x rotation) * check out https://sampforum.blast.hk/showthread.php?tid=102865 for more info. */ } } return 1; } public AirportGate() { MoveDynamicObject(GateObject, 1956.54541, -2189.80908, 13.32070, 3.0, 0.00000, 90.00000, 0.00000); //The gate will not close as this is the same position. Change these coords. }
Try this:
Код:
CMD:checkme(playerid, params[]) { if(!IsPlayerInRangeOfPoint(playerid, 10.0, 1960.4540,-2188.0190,13.5469)) { SendClientMessage(playerid, COLOR_RED, "You are not near the airport!"); } else { SendClientMessage(playerid, COLOR_GREEN, "Please wait while the airport security checks your vehicle and registration."); if(PlayerInfo[playerid][pCarLic] != 1) { switch(PlayerInfo[playerid][pSex]) { case 1: SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Sir, you do not have a drivers license, the police have been informed and are on their way."); case 2: SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Ma'am, you do not have a drivers license, the police have been informed and are on their way."); } } else if(PlayerInfo[playerid][pFlyLic] != 1) { switch(PlayerInfo[playerid][pSex]) { case 1: SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Sir, you do not have a flying license, the police have been informed and are on their way."); case 2: SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Ma'am, you do not have a flying license, the police have been informed and are on their way."); } } else { SendClientMessage(playerid, COLOR_WHITE, "Secruity Guard: Ok, you are free to enter the airport, have a wonderful day!(Gate will close in 6 seconds.)"); SetTimer("AirportGate", 200, 0); MoveDynamicObject(GateObject, 1956.54541, -2189.80908, 13.32070, 3.0, 0.00000, 0.00000, 0.00000); /* * MoveDynamicObject(objectid, Float:x, Float:y, Float:z, Float:speed, Float:rx = -1000.0, Float:ry = -1000.0, Float:rz = -1000.0); * I noticed you forgot the speed, so it assumed the speed of 0.00000 (which I assume you meant for x rotation) * check out https://sampforum.blast.hk/showthread.php?tid=102865 for more info. */ } } return 1; } public AirportGate() { MoveDynamicObject(GateObject, 1956.54541, -2189.80908, 13.32070, 3.0, 0.00000, 90.00000, 0.00000); //The gate will not close as this is the same position. Change these coords. } |