// This file holds all functions for the toll-system forward Toll(); public Toll() { // Loop through all players for(new playerid; playerid < MAX_PLAYERS; playerid++) { // If the player isn't connected, skip to the next player if(APlayerData[playerid][LoggedIn] == false) continue; // Check if the player is the driver of a vehicle if (GetPlayerVehicleSeat(playerid) == 0) { // Loop through all toll-gates for (new TollGate; TollGate < MAX_TOLLGATES; TollGate++) { // Check if this toll-gate exists if (ATollGates[TollGate][GateID] != 0) { // Check if the player is in range of the tollgate if(IsPlayerInRangeOfPoint(playerid, 7.5, ATollGates[TollGate][CloseX], ATollGates[TollGate][CloseY], ATollGates[TollGate][CloseZ])) { // Check if the toll-gate is closed if(ATollGates[TollGate][GateStatus] == 0) { // Open the gate MoveObject(ATollGates[TollGate][GateID], ATollGates[TollGate][OpenX], ATollGates[TollGate][OpenY], ATollGates[TollGate][OpenZ], 3.0); // Set status to OPEN ATollGates[TollGate][GateStatus] = 1; // Let the player pay the toll RewardPlayer(playerid, -ATollGates[TollGate][TollPrice], 0); new string[50]; format(string, sizeof(string), TXT_PlayerPaysToll, ATollGates[TollGate][TollPrice]); GameTextForPlayer(playerid, string, 3000, 4); // Start a timer that closes the gate after 5 seconds SetTimerEx("CloseGate", 5000, false, "i", TollGate); } } } } } } } forward CloseGate(TollGate); public CloseGate(TollGate) { // Close the gate MoveObject(ATollGates[TollGate][GateID], ATollGates[TollGate][CloseX], ATollGates[TollGate][CloseY], ATollGates[TollGate][CloseZ], 3.0); // Set status to CLOSED ATollGates[TollGate][GateStatus] = 0; }