#include #define COLOR_RED 0xCC0000AA #define COLOR_YELLOW 0xFFFF00AA #define COLOR_GREEN 0x33FF00AA #define COLOR_CYAN 0x33FFFFAA #define COLOR_BLUE 0x0000FFAA #define COLOR_ORANGE 0xFFCC00AA #define COLOR_PINK 0xFF66FFAA #define COLOR_WHITE 0xFFFFFFAA #define COLOR_BLACK 0x000000AA #define COLOR_GREY 0xCCCCCCAA new engineOn[MAX_VEHICLES]; new vehicleEntered[MAX_PLAYERS][MAX_VEHICLES]; forward Startup(playerid, vehicleid); #define FILTERSCRIPT #if defined FILTERSCRIPT public OnFilterScriptInit() { print("\n--------------------------------------"); print(" Engine On/Off FS by LarzI"); print("--------------------------------------\n"); return true; } public OnFilterScriptExit() { return true; } #else main() { print("\n----------------------------------"); print(" Blank Gamemode by your name here"); print("----------------------------------\n"); } #endif public OnGameModeInit() { return true; } public OnGameModeExit() { return true; } public OnPlayerRequestClass(playerid, classid) { return true; } public OnPlayerRequestSpawn(playerid) { return true; } public OnPlayerConnect(playerid) { return true; } public OnPlayerDisconnect(playerid, reason) { return true; } public OnPlayerSpawn(playerid) { return true; } public OnPlayerDeath(playerid, killerid, reason) { return true; } public OnPlayerStateChange(playerid, newstate, oldstate) { new pveh = GetVehicleModel(GetPlayerVehicleID(playerid)); new vehicle = GetPlayerVehicleID(playerid); if(newstate == PLAYER_STATE_DRIVER && (pveh == 522 || pveh == 581 || pveh == 462 || pveh == 521 || pveh == 463 || pveh == 461 || pveh == 448 || pveh == 471 || pveh == 468 || pveh == 586) && (pveh != 509 && pveh != 481 && pveh != 510)) { SetTimerEx("Startup", 1, false, "ii", playerid, vehicle); } else if(newstate == PLAYER_STATE_DRIVER) { SetTimerEx("Startup", 1, false, "ii", playerid, vehicle); } return true; } public OnPlayerCommandText(playerid, cmdtext[]) { new cmd[256], idx; cmd = strtok(cmdtext, idx); if(!strcmp(cmd, "/accendi", true)) { if(engineOn[GetPlayerVehicleID(playerid)]) return SendClientMessage(playerid, COLOR_RED, "Ora puoi partire!"); if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "Do you think that you can start an engine which you don't have?"); if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER) return SendClientMessage(playerid, COLOR_RED, "Only the driver can do this!"); engineOn[GetPlayerVehicleID(playerid)] = true; TogglePlayerControllable(playerid, true); new playerveh = GetPlayerVehicleID(playerid); PutPlayerInVehicle(playerid, playerveh, 0); SendClientMessage(playerid, COLOR_GREEN, "ora puoi partire!"); return true; } if(!strcmp(cmd, "/spegni", true)) { if(!engineOn[GetPlayerVehicleID(playerid)]) return SendClientMessage(playerid, COLOR_RED, "Macchina spenta e stoppata"); if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "Do you think that you can start an engine which you don't have?"); if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER) return SendClientMessage(playerid, COLOR_RED, "Only the driver can do this!"); engineOn[GetPlayerVehicleID(playerid)] = false; RemovePlayerFromVehicle(playerid); SendClientMessage(playerid, COLOR_GREEN, "Macchina spenta e stoppata"); return true; } return false; } public Startup(playerid, vehicleid) { if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER || engineOn[vehicleid]) { //I do nothing! } else if(!engineOn[vehicleid] && !vehicleEntered[playerid][vehicleid] && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { SendClientMessage(playerid, COLOR_YELLOW, "Fai /accendi per accendere il tuo veicolo!"); TogglePlayerControllable(playerid, false); vehicleEntered[playerid][vehicleid] = true; } else if(!engineOn[vehicleid] && vehicleEntered[playerid][vehicleid] && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { SendClientMessage(playerid, COLOR_YELLOW, "Fai /accendi per accendere il tuo veicolo!"); TogglePlayerControllable(playerid, false); } } strtok(const string[], &index, const seperator[] = " ") { new index2, result[30]; index2 = strfind(string, seperator, false, index); if(index2 == -1) { if(strlen(string) > index) { strmid(result, string, index, strlen(string), 30); index = strlen(string); } return result; // This string is empty, probably, if index came to an end } if(index2 > (index + 29)) { index2 = index + 29; strmid(result, string, index, index2, 30); index = index2; return result; } strmid(result, string, index, index2, 30); index = index2 + 1; return result; }