#define FILTERSCRIPT #include #include // http://zeex.pastebin.ca/1565607 #include #include #include #define COLOR_ERROR 0xFF2200FF #define COLOR_SYSTEM 0xFFFFFFFF Itter_Create(Vehicles, MAX_PLAYERS); #define strvalex(%1) \ (('0' <= %1[0] <= '9') ? ((strlen(%1) < 50) ? strval(%1) : -1) : -1) forward DestroyVehicleDelayed(vehicleid); public OnVehicleDeath(vehicleid, killerid) { if (Itter_Remove(Vehicles, vehicleid)) { DestroyVehicle(vehicleid); return 0; } return 1; } public OnPlayerExitVehicle(playerid, vehicleid) { if (Itter_Remove(Vehicles, vehicleid)) { DestroyVehicleDelayed(vehicleid); return 0; } return 1; } public OnVehicleStreamOut(vehicleid, forplayerid) { if (Itter_Remove(Vehicles, vehicleid)) { DestroyVehicle(vehicleid); return 0; } return 1; } public DestroyVehicleDelayed(vehicleid) { if (vehicleid >= 0) { SetTimerEx("DestroyVehicleDelayed", 20000, false, "i", -vehicleid); } else { DestroyVehicle(-vehicleid); } return 1; } zcmd(pos, byplayerid, params[]) { new Float:myX, Float:myY, Float:myZ, msg[50]; if (!sscanf(params, "fff", myX, myY, myZ)) { SetPlayerPos(byplayerid, myX, myY, myZ); format(msg, sizeof(msg), "Your position set to: %f %f %f", myX, myY, myZ); SendClientMessage(byplayerid, COLOR_SYSTEM, msg); } else { GetPlayerPos(byplayerid, myX, myY, myZ); format(msg, sizeof(msg), "Your position is: %f %f %f", myX, myY, myZ); SendClientMessage(byplayerid, COLOR_SYSTEM, msg); } return 1; } zcmd(skin, byplayerid, params[]) { new skin, msg[30]; if (!sscanf(params, "i", skin)) { if (0 <= skin <= 299) { SetPlayerSkin(byplayerid, skin); format(msg, sizeof(msg), "You set your skin to: %d", skin); SendClientMessage(byplayerid, COLOR_SYSTEM, msg); } else SendClientMessage(byplayerid, COLOR_ERROR, "Error: Incorrect skin ID"); } else { format(msg, sizeof(msg), "Your skin is: %d", GetPlayerSkin(byplayerid)); SendClientMessage(byplayerid, COLOR_SYSTEM, msg); } return 1; } zcmd(v, byplayerid, params[]) { static VehicleNames[][] = { "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic","Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "Blista Compact", "Police Maverick", "Boxvillde", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt", "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune", "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito", "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club", "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car", "Police Car", "Police Car", "Police Ranger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville", "Tiller", "Utility Trailer" }; new modelid; if (!isnull(params)) { if ((modelid = strvalex(params)) == -1) { new i, len = strlen(params); if (params[len-1] == ' ') { while (params[--len] <= ' ') params[len] = '\0'; len = cellmax; } while (i < 212) { if (!strcmp(VehicleNames[i], params, true, len)) { modelid = 400 + i; break; } i++; } } if (400 <= modelid <= 611) { if (!IsPlayerInAnyVehicle(byplayerid)) { new msg[50], vehicleid, Float:myX, Float:myY, Float:myZ, Float:myAngle; GetPlayerPos(byplayerid, myX, myY, myZ); GetPlayerFacingAngle(byplayerid, myAngle); vehicleid = CreateVehicle(modelid, myX, myY, myZ, myAngle, -1, -1, 0); LinkVehicleToInterior(vehicleid, GetPlayerInterior(byplayerid)); SetVehicleVirtualWorld(vehicleid, GetPlayerVirtualWorld(byplayerid)); PutPlayerInVehicle(byplayerid, vehicleid, 0); Itter_Add(Vehicles, vehicleid); format(msg, sizeof(msg), "You created vehicle: %s [%d]", VehicleNames[modelid-400], modelid); SendClientMessage(byplayerid, COLOR_SYSTEM, msg); } else SendClientMessage(byplayerid, COLOR_ERROR, "Error: Leave your current vehicle first"); } else SendClientMessage(byplayerid, COLOR_ERROR, "Error: Theres no such vehicle"); } else { if (IsPlayerInAnyVehicle(byplayerid)) { new msg[50]; modelid = GetVehicleModel(GetPlayerVehicleID(byplayerid)); format(msg, sizeof(msg), " Your vehicle is: %s [%d]", VehicleNames[modelid-400], modelid); SendClientMessage(byplayerid, COLOR_SYSTEM, msg); } else SendClientMessage(byplayerid, COLOR_ERROR, "Error: You are not in a vehicle"); } return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { static bitarray(playerRecording, MAX_PLAYERS); if (newkeys & KEY_SUBMISSION) { if (getbit(playerRecording, playerid)) { if (IsPlayerInAnyVehicle(playerid)) { StartRecordingPlayerData(playerid, PLAYER_RECORDING_TYPE_DRIVER, "tmp_vehicle"); SendClientMessage(playerid, COLOR_SYSTEM, "Record: started (vehicle)"); } else { StartRecordingPlayerData(playerid, PLAYER_RECORDING_TYPE_DRIVER, "tmp_onfoot"); SendClientMessage(playerid, COLOR_SYSTEM, "Record: started (onfoot)"); } falsebit(playerRecording, playerid); } else { StopRecordingPlayerData(playerid); SendClientMessage(playerid, COLOR_SYSTEM, "Record: stopped"); truebit(playerRecording, playerid); } } return 1; }