rendered paste body#include <a_samp>
#include <Y_Objects>
#include <core>
#include <float>
#include <file>
#include <dutils>
#include <lethaldudb>
// Configuration
#define READ_PMS 1
#define MAX_ADMIN_LEVEL 4
#define MAX_PING 900
#define columnwidth 275
//SKINS
#define AdminSkin1 217
#define AdminSkin2 211
// Spec
#define ADMIN_SPEC_TYPE_NONE 0
#define ADMIN_SPEC_TYPE_PLAYER 1
#define ADMIN_SPEC_TYPE_VEHICLE 2
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
#define MAX_RACECHECKPOINTS 64 // Change if you want more room for checkpoints than this
#define MAX_BUILDERS 4 // Change if you want more builderslots than this
#define RACEFILE_VERSION 2 // !!! DO NOT CHANGE !!!
#define MENUSYSTEM // Enable menus, comment to disable, this script uses 11 menus so it might conflict with your stuff
// if you are using a lot of menus yourself (global limit for SA-MP: 128)
// Do note, however, that I plan on retiring most of the commands that can as of now (v0.4) reached
// by menus to make the script more "user friendly" (this is depending on feedback I get on the topic)
//########################################################//
// VARIABLES YOU MIGHT WANT TO MODIFY TO SUIT YOUR TASTES //
// THESE CAN BE CHANGED VIA MENUS INGAME, BUT SETTINGS //
// ARE NOT SAVED (YET), SO YOU MIGHT WANT TO SET DEFAULT //
// VALUES FROM HERE. < THIS SPACE IS LEFT BLANK > //
//########################################################//
new MajorityDelay = 120; // Default delay to wait for other racers once half are ready (can be changed ingame via Admin menu)
new RRotation = -1; // Is automatic Race Rotation enabled by defaul? (can be changed ingame via Admin menu) (-1 = disabled, 0+ = enabled)
new RRotationDelay = 300000; // How often will we poll for new race start if RRotation is enabled? (Default: 5 minutes, can't be changed IG)
new BuildAdmin = 1; //Require admin privileges for building races? 1) yes, 0) no. (Can be changed ingame in Admin menu)
new RaceAdmin = 1; //Require admin privileges for starting races? 1) yes, 0) no. (Can be changed ingame in Admin menu)
new PrizeMode=0; //Mode for winnings: 0 - Fixed, 1 - Dynamic, 2 - Entry fee, 3 - EF+F, 4 EF+D [Admin menu ingame]
new Prize=30000; //Fixed prize sum (15,000$ for winner, 12,5000$ for 2nd and 10,000$ for 3rd) [Admin menu ingame]
new DynaMP=1; //Dynamic prize multiplier. (Default: 1$/m) [Admin menu ingame]
new JoinFee=1000; //Amount of $ it costs to /join a race [Admin menu ingame]
//################################################//
// CHANGE THINGS PAST THIS POINT ON YOUR OWN RISK //
//################################################//
#if defined MENUSYSTEM
forward RefreshMenuHeader(playerid,Menu:menu,text[]);
new Menu:MAdmin, Menu:MPMode, Menu:MPrize, Menu:MDyna, Menu:MBuild, Menu:MLaps;
new Menu:MRace, Menu:MRacemode, Menu:MFee, Menu:MCPsize, Menu:MDelay;
#endif
//Color Defines
#define COLOR_RED 0xAA3333AA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_BLUE 0x0000BBAA
#define COLOR_DARKRED 0x660000AA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_BLACK 0x000000AA
#define COLOR_PINK 0xFF66FFAA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_GREEN1 0x33AA33AA
#define COLOR_PURPLE 0x800080AA
#define COLOR_BROWN 0xA52A2AAA
//Team Defines
#define TEAM_1 0
#define TEAM_2 1
#define TEAM_REF 2
#define MAX_STRING 255
forward RaceRotation();
forward LockRacers();
forward UnlockRacers();
forward SaveScores(); // After race, if new best times have been made, saves them.
forward GetRaceTick(playerid); // Gets amount of ticks the player was racing
forward GetLapTick(playerid); // Gets amount of ticks the player spend on the lap
forward ReadyRefresh(); // Check the /ready status of players and start the race when ready
forward RaceSound(playerid,sound); // Plays <sound> for <playerid>
forward BActiveCP(playerid,sele); // Gives the player selected checkpoint
forward endrace(); // Ends the race, whether it ended normally or by /endrace. Cleans the variables.
forward countdown(); // Handles the countdown
forward mscountdown(); //Majority Start countdown handler
forward strtok(const string[],&index);
forward SetNextCheckpoint(playerid); // Gives the next checkpoint for the player during race
forward CheckBestLap(playerid, laptime); // Check if <laptime> is better than any of the ones in highscore list, and update.
forward CheckBestRace(playerid,racetime); // Check if <racetime> is better than any of the ones in highscore list, and update.
forward ChangeLap(playerid); // Change player's lap, print out time and stuff.
forward SetRaceCheckpoint(playerid,target,next); // Race-mode checkpoint setter
forward SetBRaceCheckpoint(playerid,target,next); // Builder-mode checkpoint setter
forward LoadTimes(playerid,timemode,tmp[]); // bestlap and bestrace-parameter race loader
forward IsNotAdmin(playerid); // Is the player admin, if no, return 1 with an error message.
forward GetBuilderSlot(playerid); // Get next free builderslot, return 0 if none available
forward b(playerid); // Quick and dirty fix for the BuilderSlots
forward Float:Distance(Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2);
forward clearrace(playerid);
forward startrace();
forward LoadRace(tmp[]);
forward CreateRaceMenus();
// General variables
new RotationTimer;
new ystring[128]; // ystring
new CBuilder[MAX_STRING], CFile[64], CRaceName[128]; //Creator of the race and the filename, for score changing purposes.
// Racing-related variables
new Pot=0; //Join fees go here
new Ranking; //Finishing order for prizes
new PrizeMP; //Prize multiplier
new Countdown; //Countdown timer
new cd; //Countdown time
new MajStart=0; //Status of the Majority Start timer
new MajStartTimer; //Majority Start timer
new mscd; //Majority Start time
new RaceActive; //Is a race active?
new RaceStart; //Has race started?
new Float:RaceCheckpoints[MAX_RACECHECKPOINTS][3]; //Current race CP array
new LCurrentCheckpoint; //Current race array pointer
new CurrentCheckpoint[MAX_PLAYERS]; //Current race array pointer array :V
new CurrentLap[MAX_PLAYERS]; //Current lap array
new RaceParticipant[MAX_PLAYERS]; //Has the player /joined the race
// \_values: 0 - not in race, 1 - joined, 2 - arrived to start CP, 3 - /ready, 4 - racing, 5 - Last CP
new Participants; //Amount of participants
new PlayerVehicles[MAX_PLAYERS]; //For slapping the player back in their vehicle.
new ORacelaps, ORacemode; //Saves the laps/mode from file in case they aren't changed
new OAirrace, Float:OCPsize;
new Racelaps, Racemode; //If mode/laps has been changed, the new scores won't be saved.
new ScoreChange; //Flag for new best times, so they are saved.
new RaceTick; //Startime of the race
new LastLapTick[MAX_PLAYERS]; //Array that stores the times when players started the lap
new TopRacers[6][MAX_STRING]; // Stores 5 top scores, 6th isn't
new TopRacerTimes[6]; // saved to file, used to simplify
new TopLappers[6][MAX_STRING];// for() loops on CheckBestLap and
new TopLapTimes[6]; // CheckBestRace.
new Float:CPsize; // Checkpoint size for the race
new Airrace; // Is the race airrace?
new Float:RLenght, Float:LLenght; //Lap lenght and race lenght
// Building-related variables
new BCurrentCheckpoints[MAX_BUILDERS]; //Buildrace array pointers
new BSelectedCheckpoint[MAX_BUILDERS]; //Selected checkpoint during building
new RaceBuilders[MAX_PLAYERS]; //Who is building a race?
new BuilderSlots[MAX_BUILDERS]; //Stores the racebuilder pids
new Float:BRaceCheckpoints[MAX_BUILDERS][MAX_RACECHECKPOINTS][3]; //Buildrace CP array
new Bracemode[MAX_BUILDERS];
new Blaps[MAX_BUILDERS];
new Float:BCPsize[MAX_BUILDERS];
new BAirrace[MAX_BUILDERS];
new gTeam[MAX_PLAYERS];
new gPlayerClass[MAX_PLAYERS];
new tkscore[MAX_PLAYERS];
new TEAM1[256], TEAM2[256], MAXKILLS;
new wpn1, wpn2, wpn3;
new ammogm1, ammogm2, ammogm3;
new DeathCount[MAX_PLAYERS];
new sCount1, sCount2;
new winner[256];
//new astring[256];
new aAutoS;
new Menu:Stunt;
// Variables
new LoggedIn[MAX_PLAYERS];
new MyKills[MAX_PLAYERS];
new MyDeaths[MAX_PLAYERS];
new IsPlayerInJail[MAX_PLAYERS];
new IsPlayerFrozen[MAX_PLAYERS];
new IsPlayerMuted[MAX_PLAYERS];
new mutedwarning[MAX_PLAYERS];
new Spawned[MAX_PLAYERS];
new TimesSpawned[MAX_PLAYERS];
new PlayerNewName[MAX_PLAYERS];
new LAdmin[MAX_PLAYERS];
new God[MAX_PLAYERS];
new jailnoob[MAX_PLAYERS];
new freezenoob[MAX_PLAYERS];
new Warnings[MAX_PLAYERS];
new DoorsLocked[MAX_PLAYERS];
new Invis[MAX_PLAYERS];
new Float:Pos[MAX_PLAYERS][4];
// Spec
new gSpectateID[MAX_PLAYERS];
new gSpectateType[MAX_PLAYERS];
//Textdraws
new Text:SpecText;
//Timers
new InvisTimer;
new PingTimer;
new GodTimer;
//Duel
new cdt=-1; new timer;
new InDuel[MAX_PLAYERS];
// Menus
new Menu:XMainMenu;
new Menu:XVehicles, Menu:twodoor, Menu:fourdoor, Menu:fastcar, Menu:Othercars, Menu:bikes, Menu:boats, Menu:planes, Menu:helicopters ;
new Menu:XWeapons, Menu:XWeaponsBig, Menu:XWeaponsSmall, Menu:XWeaponsMore, Menu:LWeather, Menu:LTuneMenu, Menu:LTime, Menu:LCars;
new Menu:XTele, Menu:LasVenturasMenu, Menu:LosSantosMenu, Menu:SanFierroMenu, Menu:DesertMenu, Menu:FlintMenu, Menu:MountChiliadMenu, Menu:InteriorsMenu/*, Menu:SavedTeleMenu */ ;
// Time
new shifthour;
new ghour = 0;
new gminute = 0;
new gsecond = 0;
new timeshift = 0;
// rcon
new max_playerid = 0;
//------------------------------------------------------------------------------
main()
{
print("\n----------------------------------");
print(" ClanBattle: v1.0 ");
print("----------------------------------\n");
print("Loading Config......\n");
printf(" | %s VS %s | ",TEAM1, TEAM2);
printf(" |First Clan to %d Kills",MAXKILLS);
// if(aAutoS > 0){ print(" |Auto-Clan-Detection [Activated]\n"); }else{ print(" |Auto-Clan-Detection [Disabled]\n");}
}
//------------------------------------------------------------------------------
public OnGameModeInit()
{
Object_Object();
RaceActive=0;
Ranking=1;
LCurrentCheckpoint=0;
Participants=0;
for(new i;i<MAX_BUILDERS;i++)
{
BuilderSlots[i]=MAX_PLAYERS+1;
}
if(RRotation != -1) SetTimer("RaceRotation",RRotationDelay,1);
#if defined MENUSYSTEM
CreateRaceMenus();
#endif
SetGameModeText("HC4L Gang Server");
SetTeamCount(6);
ShowNameTags(1);
ShowPlayerMarkers(1);
SetWorldTime(12);
rConfig();
UsePlayerPedAnims();
max_playerid = GetMaxPlayers() - 1;
gettime(ghour, gminute, gsecond);
FixHour(ghour);
ghour = shifthour;
XMainMenu = CreateMenu("Main Menu", 2, 55.0, 200.0, 100.0, 80.0);
SetMenuColumnHeader(XMainMenu, 0, "Choose an option below");
AddMenuItem(XMainMenu, 0, "Teleports");//0
AddMenuItem(XMainMenu, 0, "All Vehicles");
AddMenuItem(XMainMenu, 0, "Choose Weapon");
AddMenuItem(XMainMenu, 0, "Restore Health");
AddMenuItem(XMainMenu, 0, "Restore Armour");
AddMenuItem(XMainMenu, 0, "Admin Cars");
AddMenuItem(XMainMenu, 0, "Fix car");
AddMenuItem(XMainMenu, 0, "Tuning Menu");
AddMenuItem(XMainMenu, 0, "Server Weather");
AddMenuItem(XMainMenu, 0, "Server Time");
AddMenuItem(XMainMenu, 0, "Exit Menu");//
LWeather = CreateMenu("~b~Weather ~g~ Menu",2,125,150,columnwidth,columnwidth);
SetMenuColumnHeader(LWeather, 0, "Set Weather");
AddMenuItem(LWeather, 0, "Clear Blue Sky");
AddMenuItem(LWeather, 0, "Sand Storm");
AddMenuItem(LWeather, 0, "Thunderstorm");
AddMenuItem(LWeather, 0, "Foggy");
AddMenuItem(LWeather, 0, "Cloudy");
AddMenuItem(LWeather, 0, "High Tide");
AddMenuItem(LWeather, 0, "Purple Sky");
AddMenuItem(LWeather, 0, "Black/White Sky");
AddMenuItem(LWeather, 0, "Dark, Green Sky");
AddMenuItem(LWeather, 0, "Heatwave");
AddMenuItem(LWeather,0,"Return");
LTime = CreateMenu("~b~Time ~g~ Menu", 2, 55.0, 200.0, 100.0, 80.0);
SetMenuColumnHeader(LTime, 0, "Set Time");
AddMenuItem(LTime, 0, "Morning");//0
AddMenuItem(LTime, 0, "Mid day");
AddMenuItem(LTime, 0, "Afternoon");
AddMenuItem(LTime, 0, "Evening");
AddMenuItem(LTime, 0, "Midnight");
AddMenuItem(LTime, 0, "Return");
LCars = CreateMenu("~b~ ~g~Cars", 2, 55.0, 150.0, 100.0, 80.0); //200
SetMenuColumnHeader(LCars, 0, "Choose a car");
AddMenuItem(LCars, 0, "Turismo");//0
AddMenuItem(LCars, 0, "Bandio");
AddMenuItem(LCars, 0, "Vortex");
AddMenuItem(LCars, 0, "NRG");
AddMenuItem(LCars, 0, "Dumper");
AddMenuItem(LCars, 0, "S.W.A.T");
AddMenuItem(LCars, 0, "Hunter");
AddMenuItem(LCars, 0, "Jetmax (boat)");
AddMenuItem(LCars, 0, "Rhino");
AddMenuItem(LCars, 0, "Monster Truck");
AddMenuItem(LCars, 0, "Sea Sparrow");
AddMenuItem(LCars, 0, "Return");
LTuneMenu = CreateMenu("~b~Tuning ~g~ Menu",2,125,150,columnwidth,columnwidth);
SetMenuColumnHeader(LTuneMenu, 0, "Add to car");
AddMenuItem(LTuneMenu,0,"NOS");
AddMenuItem(LTuneMenu,0,"Hydraulics");
AddMenuItem(LTuneMenu,0,"Wire Wheels");
AddMenuItem(LTuneMenu,0,"Twist Wheels");
AddMenuItem(LTuneMenu,0,"Access Wheels");
AddMenuItem(LTuneMenu,0,"Mega Wheels");
AddMenuItem(LTuneMenu,0,"Import Wheels");
AddMenuItem(LTuneMenu,0,"Atomic Wheels");
AddMenuItem(LTuneMenu,0,"Offroad Wheels");
AddMenuItem(LTuneMenu,0,"Classic Wheels");
AddMenuItem(LTuneMenu,0,"Return");
// vehicles
XVehicles = CreateMenu("~b~Vehicles ~g~ Menu",2,125,150,columnwidth,columnwidth);
SetMenuColumnHeader(XVehicles, 0, "Choose a car");
AddMenuItem(XVehicles,0,"2-door Cars");
AddMenuItem(XVehicles,0,"4-door Cars");
AddMenuItem(XVehicles,0,"Fast Cars");
AddMenuItem(XVehicles,0,"Other Vehicles");
AddMenuItem(XVehicles,0,"Bikes");
AddMenuItem(XVehicles,0,"Boats");
AddMenuItem(XVehicles,0,"Planes");
AddMenuItem(XVehicles,0,"Helicopters");
AddMenuItem(XVehicles,0,"Return");
twodoor = CreateMenu("~b~2-door Cars",2,125,150,columnwidth,columnwidth);
SetMenuColumnHeader(twodoor, 0, "Choose a car");
AddMenuItem(twodoor,0,"Feltzer");//533
AddMenuItem(twodoor,0,"Stallion");//139
AddMenuItem(twodoor,0,"Windsor");//555
AddMenuItem(twodoor,0,"Bobcat");//422
AddMenuItem(twodoor,0,"Yosemite");//554
AddMenuItem(twodoor,0,"Broadway");//575
AddMenuItem(twodoor,0,"Blade");//536
AddMenuItem(twodoor,0,"Slamvan");//535
AddMenuItem(twodoor,0,"Tornado");//576
AddMenuItem(twodoor,0,"Bravura");//401
AddMenuItem(twodoor,0,"Fortune");//526
AddMenuItem(twodoor,0,"Return");
fourdoor = CreateMenu("~b~4-door Cars",2,145,150,columnwidth,columnwidth);
SetMenuColumnHeader(fourdoor, 0, "Choose a car");
AddMenuItem(fourdoor,0,"Perenniel");//404
AddMenuItem(fourdoor,0,"Tahoma");//566
AddMenuItem(fourdoor,0,"Voodoo");//414
AddMenuItem(fourdoor,0,"Admiral");//445
AddMenuItem(fourdoor,0,"Elegant");//507
AddMenuItem(fourdoor,0,"Glendale");//466
AddMenuItem(fourdoor,0,"Intruder");//546
AddMenuItem(fourdoor,0,"Merit");//551
AddMenuItem(fourdoor,0,"Oceanic");//467
AddMenuItem(fourdoor,0,"Premier");//426
AddMenuItem(fourdoor,0,"Sentinel");//405
AddMenuItem(fourdoor,0,"Return");
fastcar = CreateMenu("~b~Fast Cars",2,125,150,columnwidth,columnwidth);
SetMenuColumnHeader(fastcar, 0, "Choose a car");
AddMenuItem(fastcar,0,"Comet");//480
AddMenuItem(fastcar,0,"Buffalo");//402
AddMenuItem(fastcar,0,"Cheetah");//415
AddMenuItem(fastcar,0,"Euros");//587
AddMenuItem(fastcar,0,"Hotring Racer");//494
AddMenuItem(fastcar,0,"Infernus");//411
AddMenuItem(fastcar,0,"Phoenix");//603
AddMenuItem(fastcar,0,"Super GT");//506
AddMenuItem(fastcar,0,"Turismo");//451
AddMenuItem(fastcar,0,"ZR-350");//477
AddMenuItem(fastcar,0,"Bullet");//541
AddMenuItem(fastcar,0,"Return");
Othercars = CreateMenu("~b~Other Vehicles",2,125,150,columnwidth,columnwidth);
SetMenuColumnHeader(Othercars, 0, "Choose a car?");
AddMenuItem(Othercars,0,"Monster Truck");//556
AddMenuItem(Othercars,0,"Trashmaster");//408
AddMenuItem(Othercars,0,"Bus");//431
AddMenuItem(Othercars,0,"Coach");//437
AddMenuItem(Othercars,0,"Enforcer");//427
AddMenuItem(Othercars,0,"Rhino (Tank)");//432
AddMenuItem(Othercars,0,"S.W.A.T. Tank");//601
AddMenuItem(Othercars,0,"Cement Truck");//524
AddMenuItem(Othercars,0,"Flatbed");//455
AddMenuItem(Othercars,0,"BF Injection");//424
AddMenuItem(Othercars,0,"Dune");//573
AddMenuItem(Othercars,0,"Return");
bikes = CreateMenu("~b~Bikes",2,125,150,columnwidth,columnwidth);
SetMenuColumnHeader(bikes, 0, "Choose a bike");
AddMenuItem(bikes,0,"BF-400");
AddMenuItem(bikes,0,"BMX");
AddMenuItem(bikes,0,"Faggio");
AddMenuItem(bikes,0,"FCR-900");
AddMenuItem(bikes,0,"Freeway");
AddMenuItem(bikes,0,"NRG-500");
AddMenuItem(bikes,0,"PCJ-600");
AddMenuItem(bikes,0,"Pizzaboy");
AddMenuItem(bikes,0,"Quad");
AddMenuItem(bikes,0,"Sanchez");
AddMenuItem(bikes,0,"Wayfarer");
AddMenuItem(bikes,0,"Return");
boats = CreateMenu("~b~Boats",2,125,150,columnwidth,columnwidth);
SetMenuColumnHeader(boats, 0, "Choose a boat");
AddMenuItem(boats,0,"Coastguard");//472
AddMenuItem(boats,0,"Dingy");//473
AddMenuItem(boats,0,"Jetmax");//493
AddMenuItem(boats,0,"Launch");//595
AddMenuItem(boats,0,"Marquis");//484
AddMenuItem(boats,0,"Predator");//430
AddMenuItem(boats,0,"Reefer");//453
AddMenuItem(boats,0,"Speeder");//452
AddMenuItem(boats,0,"Squallo");//446
AddMenuItem(boats,0,"Tropic");//454
AddMenuItem(boats,0,"Return");
planes = CreateMenu("~b~Planes",2,125,150,columnwidth,columnwidth);
SetMenuColumnHeader(planes, 0, "Choose a plane");
AddMenuItem(planes,0,"Andromada");//592
AddMenuItem(planes,0,"AT400");//577
AddMenuItem(planes,0,"Beagle");//511
AddMenuItem(planes,0,"Cropduster");//512
AddMenuItem(planes,0,"Dodo");//593
AddMenuItem(planes,0,"Hydra");//520
AddMenuItem(planes,0,"Nevada");//553
AddMenuItem(planes,0,"Rustler");//476
AddMenuItem(planes,0,"Shamal");//519
AddMenuItem(planes,0,"Skimmer");//460
AddMenuItem(planes,0,"Stuntplane");//513
AddMenuItem(planes,0,"Return");
helicopters = CreateMenu("~b~Helicopters",2,125,150,columnwidth,columnwidth);
SetMenuColumnHeader(helicopters, 0, "Choose a helicopter");
AddMenuItem(helicopters,0,"Cargobob");//
AddMenuItem(helicopters,0,"Hunter");//
AddMenuItem(helicopters,0,"Leviathan");//
AddMenuItem(helicopters,0,"Maverick");//
AddMenuItem(helicopters,0,"News Chopper");//
AddMenuItem(helicopters,0,"Police Maverick");//
AddMenuItem(helicopters,0,"Raindance");//
AddMenuItem(helicopters,0,"Seasparrow");//
AddMenuItem(helicopters,0,"Sparrow");//
AddMenuItem(helicopters,0,"Return");
XWeapons = CreateMenu("~b~Weapons ~g~Main Menu",2,125,150,columnwidth,columnwidth);
SetMenuColumnHeader(XWeapons, 0, "Choose a weapon");
AddMenuItem(XWeapons,0,"Desert Eagle");//0
AddMenuItem(XWeapons,0,"M4");
AddMenuItem(XWeapons,0,"Sawnoff Shotgun");
AddMenuItem(XWeapons,0,"Combat Shotgun");
AddMenuItem(XWeapons,0,"UZI");
AddMenuItem(XWeapons,0,"Rocket Launcher");
AddMenuItem(XWeapons,0,"Minigun");//6
AddMenuItem(XWeapons,0,"Sniper Rifle");
AddMenuItem(XWeapons,0,"Big Weapons");
AddMenuItem(XWeapons,0,"Small Weapons");//9
AddMenuItem(XWeapons,0,"More");
AddMenuItem(XWeapons,0,"Return");//11
XWeaponsBig = CreateMenu("~b~Weapons ~g~Big Weapons",2,125,150,columnwidth,columnwidth);
SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
AddMenuItem(XWeaponsBig,0,"Shotgun");
AddMenuItem(XWeaponsBig,0,"AK-47");
AddMenuItem(XWeaponsBig,0,"Country Rifle");
AddMenuItem(XWeaponsBig,0,"HS Rocket Launcher");
AddMenuItem(XWeaponsBig,0,"Flamethrower");
AddMenuItem(XWeaponsBig,0,"SMG");
AddMenuItem(XWeaponsBig,0,"TEC9");
AddMenuItem(XWeaponsBig,0,"Return");
XWeaponsSmall = CreateMenu("~b~Weapons ~g~Small Weapons",2,125,150,columnwidth,columnwidth);
SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
AddMenuItem(XWeaponsSmall,0,"9mm");
AddMenuItem(XWeaponsSmall,0,"Silenced 9mm");
AddMenuItem(XWeaponsSmall,0,"Molotov Cocktail");
AddMenuItem(XWeaponsSmall,0,"Fire Extinguisher");
AddMenuItem(XWeaponsSmall,0,"Spraycan");
AddMenuItem(XWeaponsSmall,0,"Frag Grenades");
AddMenuItem(XWeaponsSmall,0,"Katana");
AddMenuItem(XWeaponsSmall,0,"Chainsaw");
AddMenuItem(XWeaponsSmall,0,"Return");//8
XWeaponsMore = CreateMenu("~b~Weapons ~g~More Weapons",2,125,150,columnwidth,columnwidth);
SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
AddMenuItem(XWeaponsMore,0,"Jetpack");
AddMenuItem(XWeaponsMore,0,"Knife");
AddMenuItem(XWeaponsMore,0,"Flowers");
AddMenuItem(XWeaponsMore,0,"Camera");
AddMenuItem(XWeaponsMore,0,"Pool Cue");
AddMenuItem(XWeaponsMore,0,"Baseball Bat");
AddMenuItem(XWeaponsMore,0,"Golf Club");
AddMenuItem(XWeaponsMore,0,"MAX AMMO");
AddMenuItem(XWeaponsMore,0,"Return");//8
// teleports
XTele = CreateMenu("Teleports", 2, 55.0, 200.0, 100.0, 80.0);
SetMenuColumnHeader(XTele, 0, "Teleport to where?");
AddMenuItem(XTele, 0, "Las Venturas");//0
AddMenuItem(XTele, 0, "Los Santos");//1
AddMenuItem(XTele, 0, "San Fierro");//2
AddMenuItem(XTele, 0, "The Desert");//3
AddMenuItem(XTele, 0, "Flint Country");//4
AddMenuItem(XTele, 0, "Mount Chiliad");//5
AddMenuItem(XTele, 0, "Interiors");//6
AddMenuItem(XTele, 0, "Return");//8
LasVenturasMenu = CreateMenu("Las Venturas", 2, 55.0, 200.0, 100.0, 80.0);
SetMenuColumnHeader(LasVenturasMenu, 0, "Teleport to where?");
AddMenuItem(LasVenturasMenu, 0, "The Strip");//0
AddMenuItem(LasVenturasMenu, 0, "Come-A-Lot");//1
AddMenuItem(LasVenturasMenu, 0, "LV Airport");//2
AddMenuItem(LasVenturasMenu, 0, "KACC Military Fuels");//3
AddMenuItem(LasVenturasMenu, 0, "Yellow Bell Golf Club");//4
AddMenuItem(LasVenturasMenu, 0, "Baseball Pitch");//5
AddMenuItem(LasVenturasMenu, 0, "Return");//6
LosSantosMenu = CreateMenu("Los Santos", 2, 55.0, 200.0, 100.0, 80.0);
SetMenuColumnHeader(LosSantosMenu, 0, "Teleport to where?");
AddMenuItem(LosSantosMenu, 0, "Ganton");//0
AddMenuItem(LosSantosMenu, 0, "LS Airport");//1
AddMenuItem(LosSantosMenu, 0, "Ocean Docks");//2
AddMenuItem(LosSantosMenu, 0, "Pershing Square");//3
AddMenuItem(LosSantosMenu, 0, "Verdant Bluffs");//4
AddMenuItem(LosSantosMenu, 0, "Santa Maria Beach");//5
AddMenuItem(LosSantosMenu, 0, "Mulholland");//6
AddMenuItem(LosSantosMenu, 0, "Richman");//7
AddMenuItem(LosSantosMenu, 0, "Return");//8
SanFierroMenu = CreateMenu("San Fierro", 2, 55.0, 200.0, 100.0, 80.0);
SetMenuColumnHeader(SanFierroMenu, 0, "Teleport to where?");
AddMenuItem(SanFierroMenu, 0, "SF Station");//0
AddMenuItem(SanFierroMenu, 0, "SF Airport");//1
AddMenuItem(SanFierroMenu, 0, "Ocean Flats");//2
AddMenuItem(SanFierroMenu, 0, "Avispa Country Club");//3
AddMenuItem(SanFierroMenu, 0, "Easter Basin (docks)");//4
AddMenuItem(SanFierroMenu, 0, "Esplanade North");//5
AddMenuItem(SanFierroMenu, 0, "Battery Point");//6
AddMenuItem(SanFierroMenu, 0, "Return");//7
DesertMenu = CreateMenu("The Desert", 2, 55.0, 200.0, 100.0, 80.0);
SetMenuColumnHeader(DesertMenu, 0, "Teleport to where?");
AddMenuItem(DesertMenu, 0, "Aircraft Graveyard");//0
AddMenuItem(DesertMenu, 0, "Area 51");//1
AddMenuItem(DesertMenu, 0, "The Big Ear");//2
AddMenuItem(DesertMenu, 0, "The Sherman Dam");//3
AddMenuItem(DesertMenu, 0, "Las Barrancas");//4
AddMenuItem(DesertMenu, 0, "El Quebrados");//5
AddMenuItem(DesertMenu, 0, "Octane Springs");//6
AddMenuItem(DesertMenu, 0, "Return");//7
FlintMenu = CreateMenu("Flint Country", 2, 55.0, 200.0, 100.0, 80.0);
SetMenuColumnHeader(FlintMenu, 0, "Teleport to where?");
AddMenuItem(FlintMenu, 0, "The Lake");//0
AddMenuItem(FlintMenu, 0, "Leafy Hollow");//1
AddMenuItem(FlintMenu, 0, "The Farm");//2
AddMenuItem(FlintMenu, 0, "Shady Cabin");//3
AddMenuItem(FlintMenu, 0, "Flint Range");//4
AddMenuItem(FlintMenu, 0, "Becon Hill");//5
AddMenuItem(FlintMenu, 0, "Fallen Tree");//6
AddMenuItem(FlintMenu, 0, "Return");//7
MountChiliadMenu = CreateMenu("Mount Chiliad", 2, 55.0, 200.0, 100.0, 80.0);
SetMenuColumnHeader(MountChiliadMenu, 0, "Teleport to where?");
AddMenuItem(MountChiliadMenu, 0, "Chiliad Jump");//0
AddMenuItem(MountChiliadMenu, 0, "Bottom Of Chiliad");//1
AddMenuItem(MountChiliadMenu, 0, "Highest Point");//2
AddMenuItem(MountChiliadMenu, 0, "Chiliad Path");//3
AddMenuItem(MountChiliadMenu, 0, "Return");//7
InteriorsMenu = CreateMenu("Interiors", 2, 55.0, 200.0, 100.0, 80.0);
SetMenuColumnHeader(InteriorsMenu, 0, "Teleport to where?");
AddMenuItem(InteriorsMenu, 0, "Planning Department");//0
AddMenuItem(InteriorsMenu, 0, "LV PD");//1
AddMenuItem(InteriorsMenu, 0, "Pizza Stack");//2
AddMenuItem(InteriorsMenu, 0, "RC Battlefield");//3
AddMenuItem(InteriorsMenu, 0, "Caligula's Casino");//4
AddMenuItem(InteriorsMenu, 0, "Big Smoke's Crack Palace");//5
AddMenuItem(InteriorsMenu, 0, "Madd Dogg's Mansion");//6
AddMenuItem(InteriorsMenu, 0, "Dirtbike Stadium");//7
AddMenuItem(InteriorsMenu, 0, "Vice Stadium (duel)");//8
AddMenuItem(InteriorsMenu, 0, "Ammu-nation");//9
AddMenuItem(InteriorsMenu, 0, "Atrium");//7
AddMenuItem(InteriorsMenu, 0, "Return");//8
for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) OnPlayerConnect(i);
PingTimer = SetTimer("PingKick",10000,1);
GodTimer = SetTimer("GodUpdate",10000,1);
InvisTimer = SetTimer("HideNameTag",1000,1);
AddPlayerClass(85,1410.8242,2102.9089,12.0156,352.7742,wpn1,ammogm1,wpn2,ammogm2,wpn3,ammogm3); // Team1 spawn
AddPlayerClass(161,1410.8242,2102.9089,12.0156,352.7742,wpn1,ammogm1,wpn2,ammogm2,wpn3,ammogm3); // Team1 spawn
AddPlayerClass(162,1410.8242,2102.9089,12.0156,352.7742,wpn1,ammogm1,wpn2,ammogm2,wpn3,ammogm3); // Team1 spawn
if(aAutoS == 0){
AddPlayerClass(206,1306.5330,2211.8743,12.0156,270.3902,wpn1,ammogm1,wpn2,ammogm2,wpn3,ammogm3); // Team2 spawn
AddPlayerClass(154,1306.5330,2211.8743,12.0156,270.3902,wpn1,ammogm1,wpn2,ammogm2,wpn3,ammogm3); // Team2 spawn
AddPlayerClass(29,1306.5330,2211.8743,12.0156,270.3902,wpn1,ammogm1,wpn2,ammogm2,wpn3,ammogm3); // Team2 spawn
AddPlayerClass(201,1368.5774,2196.8315,9.7578,176.8027,43,500,0,0,0,0); //Ref spawn
AddStaticVehicle(481,-1649.9448,-92.1460,37.5102,6.2672,39,39); //
AddStaticVehicle(481,-1642.7786,-91.7281,37.5127,2.7632,39,39); //
AddStaticVehicle(481,-1634.2982,-91.1786,37.5053,359.9003,39,39); //
AddStaticVehicle(481,-1626.6525,-91.3181,37.5058,5.9759,39,39); //
AddStaticVehicle(481,-1620.8448,-91.3222,37.5061,359.7626,39,39); //
AddStaticVehicle(481,-1615.5537,-93.0928,37.4812,357.2204,39,39); //
AddStaticVehicle(522,-1609.5023,-45.4868,37.4224,89.4565,0,1); //
AddStaticVehicle(522,-1610.2457,-53.9566,37.5900,91.3982,0,1); //
AddStaticVehicle(522,-1609.6157,-62.8500,37.4255,88.8547,0,1); //
AddStaticVehicle(522,-1608.7144,-72.8470,37.4259,93.0790,0,1); //
AddStaticVehicle(522,-1608.9572,-83.0813,37.4669,97.8294,0,1); //
AddStaticVehicle(522,-1626.8253,123.2108,37.4335,177.6410,0,1); //
AddStaticVehicle(522,-1627.2292,115.9341,37.4274,175.8456,0,1); //
AddStaticVehicle(522,-1627.8545,107.3249,37.5483,175.8444,0,1); //
AddStaticVehicle(522,-1628.9008,92.9161,37.4121,175.8445,0,1); //
AddStaticVehicle(522,-1622.6770,120.2043,37.4191,354.0764,0,1); //
AddStaticVehicle(522,-1623.4337,112.9080,37.5966,354.0763,0,1); //
AddStaticVehicle(522,-1623.4955,105.6214,37.4988,359.2211,0,1); //
AddStaticVehicle(522,-1623.6136,96.8732,37.4149,359.2213,0,1); //
AddStaticVehicle(522,-1624.0718,86.8879,37.5800,355.9452,0,1); //
AddStaticVehicle(522,-1704.4041,104.2230,37.4088,91.5239,0,1); //
AddStaticVehicle(522,-1713.7544,103.9742,37.3956,91.5238,0,1); //
AddStaticVehicle(522,-1725.7816,104.3655,37.4034,87.6309,0,1); //
AddStaticVehicle(522,-1738.4615,104.8901,37.4036,87.6308,0,1); //
AddStaticVehicle(522,-1754.1567,105.5395,37.4039,87.6308,0,1); //
AddStaticVehicle(522,-1740.9899,-96.0913,37.4534,273.2650,0,1); //
AddStaticVehicle(522,-1726.2412,-95.7798,37.4650,268.8230,0,1); //
AddStaticVehicle(522,-1710.0853,-96.1117,37.4396,268.8230,0,1); //
AddStaticVehicle(522,-1690.7932,-95.7704,37.4535,270.8209,0,1); //
AddStaticVehicle(522,-1660.8601,-254.5956,13.7187,1.9927,0,1); //
AddStaticVehicle(522,-1678.1626,-252.7200,13.7202,346.2105,0,1); //
AddStaticVehicle(522,-1624.2158,-170.0735,14.1116,132.1488,0,1); //
AddStaticVehicle(522,-1626.7196,-168.2083,14.1144,133.2674,0,1); //
AddStaticVehicle(522,-1683.0768,-160.2556,14.0591,222.8418,0,1); //
AddStaticVehicle(522,-1679.9928,-157.2367,14.0572,226.5825,0,1); //
AddStaticVehicle(522,-1675.7986,-153.7077,14.0190,225.3400,0,1); //
AddStaticVehicle(468,-1614.1957,-40.2481,37.5154,95.4050,6,101); //
AddStaticVehicle(468,-1623.8351,-39.6389,37.5114,87.3320,6,101); //
AddStaticVehicle(468,-1626.8661,-32.6021,37.5814,5.6737,6,101); //
AddStaticVehicle(468,-1632.5492,-25.8806,37.5300,89.6088,6,101); //
AddStaticVehicle(468,-1617.6410,9.8276,37.5176,166.2070,6,101); //
AddStaticVehicle(468,-1615.5165,3.5158,37.5174,185.9072,6,101); //
AddStaticVehicle(468,-1614.8235,-3.1687,37.5920,185.9096,6,101); //
AddStaticVehicle(468,-1629.0563,2.9612,37.5175,66.5134,6,101); //
AddStaticVehicle(468,-1640.9414,6.8178,37.5183,74.4839,6,101); //
//================[Vehicles]=============================================================================================
AddStaticVehicle(522,2104.7639,-2580.1467,13.1221,268.2100,3,3); // bike1
AddStaticVehicle(522,2104.8569,-2576.8528,13.1213,271.5352,3,3); // bike2
AddStaticVehicle(522,2105.0952,-2573.8479,13.1238,270.3297,3,3); // bike3
AddStaticVehicle(522,2105.1077,-2570.6697,13.1224,268.7588,3,3); // bike4
AddStaticVehicle(522,2105.1982,-2567.4341,13.1225,268.5932,3,3); // bike5
AddStaticVehicle(522,2104.9307,-2564.1589,13.1225,270.2980,3,3); // bike6
AddStaticVehicle(522,2105.0308,-2560.8535,13.1152,269.5416,3,3); // bike7
AddStaticVehicle(522,2105.2122,-2557.8047,13.1226,268.9983,3,3); // bike8
AddStaticVehicle(522,2104.8298,-2554.5857,13.1225,268.6398,3,3); // bike9
AddStaticVehicle(522,2104.9524,-2551.5171,13.1166,268.5184,3,3); // bike10
AddStaticVehicle(411,2094.0696,-2545.0752,13.2790,89.4762,3,3); // car1
AddStaticVehicle(411,2094.4246,-2551.5166,13.3064,89.8517,3,3); // car2
AddStaticVehicle(411,2094.1362,-2557.8447,13.2787,91.1417,3,3); // car3
AddStaticVehicle(411,2094.4946,-2564.1511,13.2926,88.5476,3,3); // car4
AddStaticVehicle(411,2094.4580,-2570.7627,13.2788,90.5472,3,3); // car5
AddStaticVehicle(411,2094.4482,-2577.0569,13.2791,91.9080,3,3); // car6
//================[Vehicles] van stunt park2==============================================================================
AddStaticVehicle(411,-2082.2407,-276.2535,35.0473,179.5881,0,0);
AddStaticVehicle(451,-2077.9363,-276.2973,35.0284,180.0988,123,123);
AddStaticVehicle(429,-2073.8857,-276.2755,34.9999,181.0099,3,1);
AddStaticVehicle(522,-2073.7415,-266.5278,34.8927,217.2764,8,82);
AddStaticVehicle(522,-2067.8000,-274.3333,34.8868,217.2762,8,82);
AddStaticVehicle(522,-2093.6592,-238.7684,34.8910,268.8545,36,105);
AddStaticVehicle(468,-2093.5190,-235.9875,34.9892,265.5127,46,46);
AddStaticVehicle(444,-2043.1442,-152.6287,39.2713,288.4476,32,42);
AddStaticVehicle(504,-2084.0488,-108.8488,35.1126,358.6101,65,9);
AddStaticVehicle(504,-2080.3799,-108.7750,35.1125,359.3471,14,1);
AddStaticVehicle(522,-2023.6782,-122.6857,34.7585,5.6476,39,106);
AddStaticVehicle(522,-2019.4063,-122.7911,34.7770,357.5882,51,118);
AddStaticVehicle(522,-2021.8099,-122.7494,34.7680,0.7533,3,3);
AddStaticVehicle(477,-2043.9205,-177.0054,35.0801,180.7196,0,1);
AddStaticVehicle(477,-2044.0931,-193.2543,35.0760,358.0864,0,1);
AddStaticVehicle(522,-2035.2681,-278.0305,34.8860,182.2931,3,8);
AddStaticVehicle(451,-2043.1597,-277.1660,35.0299,178.2078,125,125);
AddStaticVehicle(451,-2046.9794,-277.0523,35.0314,180.0980,36,36);
AddStaticVehicle(411,-2063.8237,-245.2278,35.0473,359.8873,116,1);
AddStaticVehicle(411,-2063.7954,-230.8184,35.0512,359.9517,116,1);
AddStaticVehicle(429,-2086.3411,-189.1079,34.9999,358.3580,10,10);
AddStaticVehicle(429,-2086.1006,-180.6557,34.9999,358.3728,10,10);
AddStaticVehicle(560,-2088.3621,-143.7436,35.0253,359.9523,37,0);
AddStaticVehicle(560,-2088.5134,-138.0053,35.0258,1.1943,41,29);
AddStaticVehicle(562,-2075.0696,-108.9343,34.9828,0.7072,11,1);
AddStaticVehicle(468,-2094.1638,-149.8703,34.9895,266.7468,53,53);
AddStaticVehicle(468,-2093.8865,-144.1561,34.9777,91.8026,3,3);
AddStaticVehicle(522,-2056.2927,-168.1383,34.8896,243.8430,6,25);
AddStaticVehicle(522,-2019.3164,-219.0912,34.8928,82.0377,6,25);
AddStaticVehicle(468,-2019.1146,-221.6978,34.9892,267.5063,6,6);
AddStaticVehicle(468,-2019.2758,-216.8506,34.9892,270.0094,6,6);
AddStaticVehicle(468,-2024.2158,-278.6094,34.9889,91.2338,6,6);
AddStaticVehicle(463,-2029.8383,-269.1547,34.8602,92.1952,11,11);
AddStaticVehicle(522,-2012.8832,-269.3011,34.8950,359.9014,7,79);
AddStaticVehicle(468,-2016.6353,-258.1417,45.5522,171.3577,46,46);
AddStaticVehicle(522,-2051.8887,-206.2548,56.1679,168.3855,7,79);
AddStaticVehicle(468,-2047.1726,-204.0825,71.9399,156.7968,53,53);
AddStaticVehicle(522,-2037.3829,-171.0797,57.3106,78.6981,7,79);
AddStaticVehicle(522,-2048.4644,-247.8668,104.6692,273.8113,8,82);
AddStaticVehicle(522,-2048.5732,-244.9206,104.6677,86.4598,8,82);
AddStaticVehicle(468,-2075.0078,-216.8356,34.9888,63.1467,3,3);
AddStaticVehicle(468,-2075.8591,-209.0480,34.9919,129.7876,3,3);
//STUNT LV AIRPORT
AddStaticVehicle(476,1451.9950,1295.0398,10.8203,3.8893,3,3);
AddStaticVehicle(476,1438.1582,1294.9824,10.8203,0.4426,3,3);
AddStaticVehicle(476,1425.9156,1293.3722,10.8203,8.5893,3,3);
AddStaticVehicle(476,1412.2642,1310.0707,10.8203,3.5759,3,3);
AddStaticVehicle(476,1421.3707,1310.1958,10.8203,356.6825,3,3);
AddStaticVehicle(476,1438.3256,1310.1167,10.8203,0.7559,3,3);
AddStaticVehicle(476,1451.8146,1315.0363,10.8203,6.0827,3,3);
CreateDynamicObject(978,-1040.364746,484.653411,14.513484,0.000000,0.000000,136.881851);
CreateDynamicObject(978,-1033.963378,478.717956,14.479036,0.000000,0.000000,138.135116);
CreateDynamicObject(978,-1027.704223,472.795166,14.447924,0.000000,0.000000,134.447570);
CreateDynamicObject(978,-1021.518249,466.407714,14.458445,0.000000,0.000000,134.520065);
CreateDynamicObject(978,-1016.035766,460.684509,14.488340,0.000000,0.000000,134.279251);
CreateDynamicObject(978,-1010.023376,454.445709,14.509010,0.000000,0.000000,134.978393);
CreateDynamicObject(1655,-1670.328857,-253.121444,14.148437,0.000000,0.000000,173.008560);
CreateDynamicObject(1655,-1671.044555,-257.905792,17.194814,16.000000,0.000000,172.767761);
CreateDynamicObject(1655,-1671.735839,-261.825469,22.102491,36.000000,0.000000,173.281463);
CreateDynamicObject(1655,-1672.063110,-263.688812,28.949913,63.000000,0.000000,173.837905);
CreateDynamicObject(1655,-1671.740478,-262.216308,36.363113,91.000000,0.000000,173.931503);
CreateDynamicObject(1655,-1671.133544,-257.334045,42.573940,119.000000,0.000000,172.686767);
CreateDynamicObject(5500,-1672.348144,-168.768798,37.152725,0.000000,0.000000,88.000000);
CreateDynamicObject(5500,-1668.953979,-87.485389,36.975746,0.000000,0.000000,0.000000);
CreateDynamicObject(5500,-1668.861206,-64.213890,36.934757,0.000000,0.000000,0.000000);
CreateDynamicObject(5500,-1669.342407,-40.178050,36.924484,0.000000,0.000000,0.000000);
CreateDynamicObject(5500,-1679.578491,-16.896022,36.939273,0.000000,0.000000,0.000000);
CreateDynamicObject(5500,-1682.060546,6.269431,36.927349,0.000000,0.000000,0.000000);
CreateDynamicObject(5500,-1684.978271,29.481634,36.913993,0.000000,0.000000,0.000000);
CreateDynamicObject(5500,-1685.118896,53.724411,36.936515,0.000000,0.000000,0.000000);
CreateDynamicObject(5500,-1684.747070,77.284820,36.914951,0.000000,0.000000,0.000000);
CreateDynamicObject(5500,-1683.261962,100.352111,36.923503,0.000000,0.000000,0.000000);
CreateDynamicObject(5500,-1683.036743,124.551887,36.940254,0.000000,0.000000,0.000000);
CreateDynamicObject(13648,-1625.734741,105.717460,36.738964,0.000000,0.000000,356.119384);
CreateDynamicObject(13666,-1661.118530,-91.855659,41.937419,0.000000,0.000000,8.774361);
CreateDynamicObject(13666,-1674.209228,-91.671531,42.025959,0.000000,0.000000,10.000000);
CreateDynamicObject(18367,-1696.831054,-36.731914,36.491909,-40.000000,0.000000,0.000000);
CreateDynamicObject(1632,-1696.942016,-60.077293,61.759880,35.000000,0.000000,180.310287);
CreateDynamicObject(1632,-1696.911254,-63.071113,67.620811,45.000000,0.000000,179.374359);
CreateDynamicObject(1632,-1696.826416,-63.698753,74.457015,75.000000,-2.000000,182.533569);
CreateDynamicObject(1632,-1696.964843,-37.250892,37.838546,8.000000,0.000000,180.029998);
CreateDynamicObject(1632,-1696.945190,-61.258407,79.269004,106.000000,0.000000,181.027801);
CreateDynamicObject(3279,-1751.720825,-93.890914,36.733486,0.000000,0.000000,361.684783);
CreateDynamicObject(3279,-1768.483642,132.279174,36.697929,0.000000,0.000000,5.535367);
CreateDynamicObject(3279,-1617.545532,132.231613,36.879005,0.000000,0.000000,270.622955);
CreateDynamicObject(3279,-1603.609252,-99.720794,36.936511,0.000000,0.000000,179.880371);
CreateDynamicObject(1632,-1617.768920,70.917976,37.836826,0.000000,0.000000,275.899383);
CreateDynamicObject(1632,-1773.188232,55.488563,38.723381,22.000000,0.000000,88.388557);
CreateDynamicObject(13592,-1717.545288,117.718566,46.606224,0.000000,0.000000,275.180358);
CreateDynamicObject(13592,-1724.606079,118.228424,46.509651,0.000000,0.000000,272.716857);
CreateDynamicObject(13592,-1731.376586,118.954017,46.489486,0.000000,0.000000,271.724334);
CreateDynamicObject(13592,-1738.832641,119.839103,46.387519,0.000000,0.000000,272.145874);
CreateDynamicObject(13592,-1746.293090,120.561096,46.504570,0.000000,0.000000,272.276336);
CreateDynamicObject(13592,-1710.138671,117.427108,46.575756,0.000000,0.000000,94.841224);
CreateDynamicObject(13592,-1702.853759,117.060646,46.579879,0.000000,0.000000,96.540878);
CreateDynamicObject(1655,-1749.749633,127.248893,37.884929,0.000000,0.000000,355.269317);
CreateDynamicObject(1655,-1749.367919,131.482208,40.984817,24.000000,0.000000,355.414215);
CreateDynamicObject(1655,-1749.347900,133.330047,45.999942,55.000000,0.000000,356.354217);
CreateDynamicObject(1655,-1749.651611,133.591018,53.710922,77.000000,0.000000,0.000000);
CreateDynamicObject(13590,-1754.924316,26.488542,37.828056,0.000000,0.000000,196.509078);
CreateDynamicObject(13604,-1662.814086,95.585403,37.850376,0.000000,0.000000,2.600707);
CreateDynamicObject(13636,-1623.885131,-27.656970,38.914577,0.000000,0.000000,189.662475);
CreateDynamicObject(12956,-1643.761230,9.534469,37.857017,0.000000,0.000000,250.473251);
CreateDynamicObject(13641,-1670.273803,33.754009,37.831161,0.000000,0.000000,288.459350);
CreateDynamicObject(13638,-1724.255737,-59.217052,38.012882,0.000000,0.000000,182.160812);
CreateDynamicObject(13638,-1729.403808,-60.601196,46.380729,0.000000,0.000000,2.000000);
CreateDynamicObject(1655,-1733.493774,-5.636405,38.005474,-16.000000,-29.000000,131.783798);
CreateDynamicObject(1655,-1727.498168,-0.947145,37.450485,-17.000000,-29.000000,106.090217);
CreateDynamicObject(1655,-1722.080688,0.716551,37.691326,-26.000000,-28.000000,85.166862);
CreateDynamicObject(1655,-1715.727783,-1.526445,39.105354,-40.000000,-47.000000,33.803112);
CreateDynamicObject(1655,-1709.353515,-7.496567,43.448673,13.000000,35.000000,238.989303);
CreateDynamicObject(5500,-1684.312622,136.258331,40.317234,50.000000,360.000000,0.000000);
CreateDynamicObject(13592, 1897.8182, -2433.5710, 22.5098, 0.0, 0.0, 0.0);
CreateDynamicObject(13592, 1896.7965, -2440.8845, 22.5097, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13592, 1898.8053, -2426.2280, 22.4847, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13592, 1899.8500, -2418.9204, 22.5329, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13592, 1900.8741, -2412.1902, 22.5156, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13592, 1901.9164, -2404.8066, 22.5097, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13592, 1903.0034, -2397.4102, 22.5097, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13592, 1904.1133, -2390.0610, 22.5024, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13592, 1905.1808, -2382.9067, 22.4990, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13592, 1906.2250, -2375.9580, 22.5000, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13592, 1907.2742, -2368.9126, 22.4925, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13592, 1908.3317, -2361.7639, 22.4850, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13592, 1909.4431, -2354.4390, 22.4965, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13592, 1910.5336, -2347.0840, 22.4839, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13592, 1911.6005, -2339.8948, 22.4717, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13592, 1912.6567, -2332.8264, 22.4647, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13592, 1913.7457, -2325.4932, 22.4529, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13592, 1914.8424, -2318.3108, 22.4387, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13592, 1915.9572, -2310.9404, 22.4404, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1633, 1926.2206, -2310.0686, 13.5972, 0.0000, 0.0000, 263.7430);
CreateDynamicObject(1633, 1926.7015, -2305.9480, 13.5972, 0.0000, 0.0000, 263.7430);
CreateDynamicObject(971, 1944.2140, -2309.3572, 18.3418, 289.5262, 1.7189, 265.4620);
CreateDynamicObject(971, 1950.1670, -2310.0176, 20.4668, 289.5262, 1.7189, 265.4620);
CreateDynamicObject(971, 1956.7354, -2310.7217, 22.8366, 289.5262, 1.7189, 265.4620);
CreateDynamicObject(971, 1963.6230, -2311.4866, 24.0771, 271.4780, 0.8594, 264.6025);
CreateDynamicObject(971, 1970.4226, -2312.1829, 25.3031, 289.5262, 1.7189, 265.4620);
CreateDynamicObject(3997, 2053.9277, -2316.8267, 26.5086, 0.0000, 0.0000, 353.9839);
CreateDynamicObject(3279, 1965.3022, -2330.8801, 29.4717, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1465, 1968.3535, -2334.3503, 28.6115, 0.0000, 0.0000, 269.7591);
CreateDynamicObject(969, 1962.3265, -2332.6516, 46.3417, 91.1003, 4.2972, 176.9399);
CreateDynamicObject (969, 1953.5040, -2332.8560, 46.3667, 91.1003, 4.2972, 176.9399);
CreateDynamicObject(1633, 1942.0563, -2331.4775, 46.7251, 352.2651, 1.7189, 92.7152);
CreateDynamicObject(1633, 1934.0547, -2331.8418, 46.0141, 329.9197, 0.8594, 92.7152);
CreateDynamicObject(971, 1927.6216, -2332.1152, 44.7489, 282.6507, 87.3514, 271.1651);
CreateDynamicObject(971, 1919.3566, -2332.6931, 42.8603, 282.6507, 87.3514, 271.1651);
CreateDynamicObject(971, 1911.6375, -2333.4136, 41.6732, 265.4620, 87.3514, 170.6107);
CreateDynamicObject(971, 1910.6332, -2342.0190, 40.1421, 254.2893, 87.3514, 170.6107);
CreateDynamicObject(971, 1909.6877, -2350.1594, 37.1573, 244.8355, 87.3514, 170.6107);
CreateDynamicObject(971, 1908.8835, -2357.1523, 34.9197, 257.7270, 87.3514, 170.6107);
CreateDynamicObject(971, 1973.2617, -2334.1721, 28.3035, 286.9479, 87.3514, 87.2444);
CreateDynamicObject(1634, 1897.6360, -2437.7571, 34.8717, 0.0000, 0.0000, 170.9239);
CreateDynamicObject(1634, 1896.6036, -2443.3538, 38.5989, 16.3293, 1.7189, 169.2049);
CreateDynamicObject(16071, 1893.0171, -2351.7639, 36.8587, 350.5462, 352.2651, 45.4463);
CreateDynamicObject(1683, 2051.7727, -2303.7031, 32.8112, 0.0000, 0.8594, 215.6146);
CreateDynamicObject(16302, 2102.0808, -2355.7937, 32.8432, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(18367, 1925.7238, -2335.5627, 43.8907, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(18367, 1925.7201, -2366.3230, 47.3113, 359.1406, 0.0000, 0.0000);
CreateDynamicObject(18367, 1925.6399, -2394.6812, 50.9064, 359.1406, 0.0000, 0.0000);
CreateDynamicObject(18367, 1924.8998, -2424.5137, 54.2307, 359.1406, 0.0000, 93.5746);
CreateDynamicObject(18367, 1952.4341, -2422.8840, 57.6669, 359.1406, 0.0000, 93.5746);
CreateDynamicObject(1633, 1987.3795, -2420.5957, 63.8268, 11.1727, 0.0000, 275.6719);
CreateDynamicObject(13641, 1989.7424, -2420.4219, 65.5389, 0.0000, 351.4056, 4.2972);
CreateDynamicObject (13592, 2098.7864, -2301.3689, 36.4541, 0.0000, 0.0000, 256.8676);
CreateDynamicObject(13643, 2026.4196, -2334.3298, 27.8046, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13647, 2021.9780, -2350.7815, 26.5045, 0.0000, 0.0000, 353.9839);
CreateDynamicObject(13647, 2060.3721, -2354.3931, 26.5045, 0.0000, 0.0000, 175.2211);
CreateDynamicObject(18569, 2089.9187, -2327.9399, 27.8346, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1697, 2031.3932, -2297.0747, 27.7354, 0.0000, 0.0000, 47.2690);
CreateDynamicObject(1697, 2034.2371, -2299.6821, 30.1443, 0.0000, 0.0000, 47.2690);
CreateDynamicObject(3743, 2036.4727, -2378.0413, 30.4176, 0.0000, 0.0000, 355.7028);
CreateDynamicObject(13638, 2029.7020, -2389.5654, 35.6687, 0.0000, 0.0000, 85.8398);
CreateDynamicObject(13638, 2029.8702, -2382.4480, 43.7496, 0.0000, 0.0000, 267.0774);
CreateDynamicObject(13638, 2029.5970, -2389.3267, 51.8361, 0.0000, 0.0000, 86.5961);
CreateDynamicObject(13638, 2029.4900, -2382.3496, 59.8839, 0.0000, 0.0000, 268.6931);
CreateDynamicObject(4007, 1556.7688, -2542.1260, 42.1261, 0.0000, 0.0000, 12.8916);
CreateDynamicObject(18367, 1590.8649, -2565.2488, 6.4933, 342.8113, 0.0000, 251.7110);
CreateDynamicObject(18367, 1555.8951, -2556.5078, 18.8201, 342.8113, 0.0000, 292.0009);
CreateDynamicObject(18367, 1529.3217, -2568.6726, 31.0444, 358.2811, 359.1406, 200.9009);
CreateDynamicObject(18367, 1516.9598, -2540.3396, 35.3451, 358.2811, 359.1406, 132.1466);
CreateDynamicObject(18367, 1539.5216, -2519.8008, 39.6802, 358.2811, 359.1406, 132.1466);
CreateDynamicObject(18367, 1561.6139, -2498.7104, 43.8284, 358.2811, 359.1406, 41.9060);
CreateDynamicObject(18367, 1581.7650, -2519.0686, 47.7423, 358.2811, 359.1406, 354.6371);
CreateDynamicObject(18367, 1579.3627, -2547.8008, 51.6451, 358.2811, 359.1406, 298.7738);
CreateDynamicObject(18367, 1553.2212, -2562.1306, 55.8735, 358.2811, 359.1406, 268.6937);
CreateDynamicObject(18367, 1522.7363, -2562.3430, 59.9381, 358.2811, 359.1406, 165.5615);
CreateDynamicObject(18367, 1529.9294, -2534.2656, 64.0353, 358.2811, 359.1406, 152.6703);
CreateDynamicObject(18367, 1542.7040, -2508.7483, 67.9012, 358.2811, 359.1406, 96.8064);
CreateDynamicObject(18367, 1573.1494, -2503.7163, 71.9316, 358.2811, 359.1406, 7.4244);
CreateDynamicObject(18367, 1577.1191, -2532.2781, 76.0076, 358.2811, 359.1406, 351.9546);
CreateDynamicObject(18367, 1573.6512, -2561.5747, 80.0185, 358.2811, 359.1406, 274.6045);
CreateDynamicObject(18367, 1542.9602, -2565.4143, 84.2364, 358.2811, 359.1406, 197.2544);
CreateDynamicObject(18367, 1533.9576, -2537.1646, 88.4790, 358.2811, 359.1406, 162.8766);
CreateDynamicObject(18367, 1541.5863, -2508.1682, 92.6726, 358.2811, 359.1406, 94.1209);
CreateDynamicObject(18367, 1571.2469, -2504.5408, 96.5320, 358.2811, 359.1406, 8.1764);
CreateDynamicObject(18367, 1575.3285, -2534.3848, 100.8060, 358.2811, 359.1406, 355.2847);
CreateDynamicObject(18367, 1573.1521, -2563.7478, 104.9507, 358.2811, 359.1406, 269.3402);
CreateDynamicObject(18367, 1544.4730, -2564.3503, 108.9064, 358.2811, 359.1406, 217.7739);
CreateDynamicObject(18367, 1525.6320, -2541.8169, 112.9825, 358.2811, 359.1406, 144.7210);
CreateDynamicObject(18367, 1541.9326, -2518.2720, 117.0135, 358.2811, 359.1406, 114.6405);
CreateDynamicObject(18367, 1568.6726, -2505.1038, 120.9658, 358.2811, 359.1406, 11.5070);
CreateDynamicObject(18367, 1575.5369, -2533.5679, 125.0195, 11.1727, 359.1406, 298.4541);
CreateDynamicObject(3996, 1493.7701, -2561.0479, 109.0439, 0.0000, 342.8113, 13.7510);
CreateDynamicObject(3996, 1398.8179, -2584.2695, 78.7797, 0.0000, 342.8113, 13.7510);
CreateDynamicObject(3996, 1303.5618, -2607.5720, 48.4273, 0.0000, 342.8113, 13.7510);
CreateDynamicObject(3996, 1206.0140, -2631.4473, 31.6450, 0.0000, 358.2811, 13.7510);
CreateDynamicObject(3996, 1136.7521, -2605.1145, 29.8918, 0.0000, 0.0000, 283.5101);
CreateDynamicObject(3996, 1163.2472, -2536.9592, 29.7693, 0.0000, 0.0000, 193.2692);
CreateDynamicObject(3996, 1261.7574, -2513.7222, 29.7718, 0.0000, 0.0000, 193.2692);
CreateDynamicObject(3996, 1362.0685, -2490.0601, 29.7743, 0.0000, 0.0000, 193.2692);
CreateDynamicObject(13592, 1409.0919, -2475.0354, 39.4462, 0.0000, 0.0000, 19.7670);
CreateDynamicObject(13592, 1455.6934, -2569.7771, 107.3470, 358.2811, 14.6104, 196.7070);
CreateDynamicObject(1633, 1419.4629, -2469.5364, 31.6597, 13.7510, 0.0000, 285.2290);
CreateDynamicObject(1633, 1418.5259, -2465.9915, 31.6519, 13.7510, 0.0000, 285.2290);
CreateDynamicObject(969, 1139.3518, -2657.2078, 30.1446, 0.0000, 0.0000, 12.8916);
CreateDynamicObject(969, 1147.9048, -2655.2471, 30.1555, 0.0000, 0.0000, 12.8916);
CreateDynamicObject(969, 1156.2504, -2653.3198, 30.1696, 0.0000, 0.0000, 12.8916);
CreateDynamicObject(969, 1137.3132, -2648.7317, 30.1446, 0.0000, 0.0000, 282.6507);
CreateDynamicObject(969, 1135.3945, -2640.1606, 30.1446, 0.0000, 0.0000, 282.6507);
CreateDynamicObject(969, 1133.4728, -2631.5229, 30.1446, 0.0000, 0.0000, 282.6507);
CreateDynamicObject(969, 1162.4334, -2631.8181, 30.4155, 0.0000, 0.0000, 194.9881);
CreateDynamicObject(969, 1153.9568, -2633.9448, 30.1433, 0.0000, 0.0000, 104.7473);
CreateDynamicObject(1632, 1881.4158, -2543.1692, 18.0948, 17.1887, 0.0000, 269.7591);
CreateDynamicObject(1632, 1885.2377, -2543.2114, 21.8529, 26.6425, 0.0000, 269.7591);
CreateDynamicObject(16111, 1893.0697, -2635.8401, 15.1310, 359.1406, 0.0000, 304.1366);
CreateDynamicObject(16111, 1901.9874, -2641.2473, 15.5761, 359.1406, 0.0000, 304.1366);
CreateDynamicObject(16111, 1925.7902, -2649.9004, 20.9351, 359.1406, 0.0000, 274.9158);
CreateDynamicObject(16111, 1853.0209, -2631.8394, 16.7851, 359.1406, 0.0000, 317.8876);
CreateDynamicObject(16111, 1822.1106, -2636.3999, 17.7851, 359.1406, 0.0000, 315.3093);
CreateDynamicObject(16111, 1789.1711, -2634.6377, 17.1851, 359.1406, 0.0000, 341.0924);
CreateDynamicObject(7073, 1851.5056, -2625.7087, 30.8136, 0.0000, 0.0000, 274.0564);
CreateDynamicObject(7392, 1819.4919, -2626.8633, 22.7669, 0.0000, 0.0000, 265.4620);
CreateDynamicObject(16480, 1837.0343, -2626.4407, 18.5601, 0.0000, 0.0000, 140.8435);
CreateDynamicObject(17565, 1791.3636, -2489.1072, 15.0634, 0.0000, 0.0000, 269.7591);
CreateDynamicObject(18451, 1909.4324, -2493.7080, 13.0515, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13641, 1969.4808, -2587.1865, 14.2661, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13639, 1773.1559, -2552.5862, 12.5652, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13639, 1773.1584, -2568.3096, 12.5401, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13604, 1602.0161, -2600.4763, 14.2549, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13636, 1486.4277, -2582.7788, 14.8273, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13590, 1524.9982, -2485.0862, 13.7805, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(12956, 1671.5946, -2506.4924, 15.8829, 0.0000, 0.0000, 269.7591);
CreateDynamicObject(6052, 1720.4082, -2426.5120, 15.3023, 0.0000, 0.0000, 0.0000);
CreateDynamicObject (8040, 2100.0337, -2563.0029, 13.3173, 0.0000, 0.0000, 90.2409);
CreateDynamicObject(8841, 2099.3787, -2562.1497, 15.8779, 0.0000, 0.0000, 270.6186);
CreateDynamicObject(4641, 2108.2886, -2524.7239, 14.2482, 0.0000, 0.0000, 267.0773);
CreateDynamicObject(4641, 2091.8601, -2524.8167, 14.2559, 0.0000, 0.0000, 86.5960);
CreateDynamicObject(1633, 2057.4597, -2560.2500, 13.8472, 0.0000, 0.0000, 269.7591);
CreateDynamicObject(1633, 2064.3909, -2560.3274, 17.6990, 22.3454, 0.0000, 269.7591);
CreateDynamicObject(971,-2029.763062,-124.249550,37.757751,0.0,0.0,0.0);
CreateDynamicObject(971,-2034.172485,-119.812218,37.760315,0.0,0.0,269.7591);
CreateDynamicObject(971,-2025.529541,-119.856903,37.748856,0.0,0.0,272.3375);
CreateDynamicObject(969,-2034.059082,-120.240891,37.994469,0.0,0.0,0.0);
CreateDynamicObject(969,-2034.200195,-123.931404,41.288780,269.7592,0.0,359.1406);
CreateDynamicObject(13648,-2091.278564,-124.417061,34.266281,0.0,0.0,0.0);
CreateDynamicObject(13648,-2090.648193,-124.404160,34.266281,0.0,0.0,0.0);
CreateDynamicObject(13647,-2091.029541,-171.607254,34.316284,0.0,0.0,269.7591);
CreateDynamicObject(13641,-2017.510498,-140.976227,35.459076,0.0,0.0,267.1808);
CreateDynamicObject(13641,-2017.711914,-166.224121,35.339516,0.0,0.0,87.5587);
CreateDynamicObject (13638,-2027.937134,-271.354767,36.417580,0.0,0.0,0.0);
CreateDynamicObject(969,-2034.719727,-280.712860,40.729832,0.0,0.0,0.0);
CreateDynamicObject(971,-2033.512817,-275.963165,37.890167,0.0,0.0,268.8997);
CreateDynamicObject(971,-2033.345337,-267.078613,37.890167,0.0,0.0,268.8997);
CreateDynamicObject(13666,-2017.970581,-257.768890,39.150566,0.0,0.0,6.0161);
CreateDynamicObject(13666,-2021.652832,-257.602570,39.150566,0.0,0.0,6.0161);
CreateDynamicObject(13666,-2025.379028,-257.444092,39.149769,0.0,0.0,6.0161);
CreateDynamicObject(13666,-2029.010864,-257.287903,39.140961,0.0,0.0,6.0161);
CreateDynamicObject(13592,-2048.899902,-207.144394,44.065914,0.0,0.0,94.4342);
CreateDynamicObject(1503,-2030.108276,-264.293335,42.100739,0.0,0.0,0.0);
CreateDynamicObject(969,-2018.697144,-245.763580,43.856308,269.7591,0.0,267.1808);
CreateDynamicObject(969,-2011.873779,-252.873688,40.754837,0.0,0.0,269.7591);
CreateDynamicObject(969,-2011.930908,-261.741760,40.779839,0.0,0.0,269.7591);
CreateDynamicObject(1245,-2012.014526,-255.663452,35.807884,0.0,0.0,274.0563);
CreateDynamicObject(969,-2011.853149,-252.607895,40.729836,0.0,0.0,90.2408);
CreateDynamicObject(971,-2020.831543,-243.861923,43.847054,90.2409,0.0,300.6988);
CreateDynamicObject(971,-2025.311768,-236.276016,43.844215,90.2409,0.0,300.6988);
CreateDynamicObject(1632,-2027.354370,-233.358002,45.331715,9.4538,0.0,30.0803);
CreateDynamicObject(971,-2035.179932,-220.646255,51.655159,270.6186,359.1406,304.1366);
CreateDynamicObject(971,-2039.637939,-214.375885,53.344780,118.6022,2.5783,32.6586);
CreateDynamicObject(969,-2043.155273,-213.700226,55.292805,91.1003,0.8594,124.6184);
CreateDynamicObject(3279,-2045.254150,-205.034012,55.192551,0.0,0.0,339.3735);
CreateDynamicObject(1633,-2047.360840,-212.829315,71.570908,341.0924,0.0,160.6106);
CreateDynamicObject(1633,-2049.487305,-218.707428,71.234428,341.0924,0.0,160.6106);
CreateDynamicObject(1634,-2051.833252,-225.535767,72.295769,0.0,0.0,159.7512);
CreateDynamicObject(18262,-2042.169312,-220.294876,72.434242,358.2811,5.1566,81.6464);
CreateDynamicObject(18367,-2038.766357,-219.659607,71.949776,0.0,0.0,0.0);
CreateDynamicObject(18367,-2039.419922,-249.538071,75.039330,359.1406,0.0,268.0403);
CreateDynamicObject(18367,-2069.020020,-248.742126,78.449776,0.0,0.0,181.2369);
CreateDynamicObject(18367,-2069.920898,-218.865128,81.433090,0.0,359.1406,88.418);
CreateDynamicObject(18367,-2040.428467,-220.067886,84.449341,0.0,0.0,0.0);
CreateDynamicObject(18262,-2046.262573,-249.699524,88.739952,0.0,0.0,83.3653);
CreateDynamicObject(3279,-2048.043701,-246.104614,88.021889,0.0,0.0,0.0);
CreateDynamicObject(1218,-2048.145508,-246.172028,104.591705,0.0,0.0,0.0);
CreateDynamicObject(969,-2042.782227,-202.841507,72.112595,270.6186,0.0,69.6144);
CreateDynamicObject(18367,-2041.389160,-194.902969,72.127640,37.8152,5.1566,159.8555);
CreateDynamicObject(18262,-2036.823853,-171.200912,56.720722,0.0,0.0,75.6304);
CreateDynamicObject(3270,-2033.162964,-159.527084,33.662197,0.0,0.0,0.0);
CreateDynamicObject(3269,-2056.233154,-160.401627,33.193459,0.0,0.0,304.9961);
CreateDynamicObject(3363,-2048.090576,-142.612473,34.155655,0.0,0.0,0.0);
CreateDynamicObject(3364,-2057.784424,-107.956017,34.476334,0.0,0.0,0.0);
CreateDynamicObject(12956,-2058.442383,-246.159454,35.873535,0.0,0.0,0.0);
CreateDynamicObject(13590,-2020.764038,-230.338760,34.946125,0.0,0.0,0.0);
CreateDynamicObject(13604,-2079.216553,-219.619797,35.778316,0.0,0.0,0.0);
CreateDynamicObject(13636,-2068.714600,-191.194214,36.150677,0.0,0.0,0.0);
CreateDynamicObject(3279,-2049.909668,-106.821388,34.091446,0.0,0.0,0.0);
CreateDynamicObject(3279,-2091.546875,-275.471954,34.120911,0.0,0.0,0.0);
CreateDynamicObject(971,-2095.781738,-216.648987,44.307823,0.0,0.0,90.2409);
CreateDynamicObject (971,-2011.837402,-239.783264,44.057869,0.0,0.0,270.6186);
CreateDynamicObject(971,-2015.887329,-257.513550,46.054466,0.0,0.0,258.5865);
CreateDynamicObject(971,-2091.330078,-280.941498,44.232819,0.0,0.0,0.0);
CreateDynamicObject(971,-2091.324707,-280.938171,51.393135,0.0,0.0,0.0);
CreateDynamicObject(971,-2095.792480,-276.559265,44.207863,0.0,0.0,270.6186);
CreateDynamicObject(971,-2095.785400,-276.518860,51.358208,0.0,0.0,270.6186);
CreateDynamicObject(971,-2095.842529,-267.747314,44.307823,0.0,0.0,269.7591);
CreateDynamicObject(971,-2082.695557,-280.883087,44.312592,0.0,0.0,0.0);
CreateDynamicObject(971,-2095.829590,-174.308350,44.328720,0.0,0.0,271.478);
CreateDynamicObject(971,-2096.033203,-165.487137,44.332825,0.0,0.0,271.478);
CreateDynamicObject(971,-2096.304443,-156.670258,44.332886,0.0,0.0,271.478);
CreateDynamicObject (971,-2095.623779,-137.767456,44.307899,0.0,0.0,269.7591);
CreateDynamicObject(971,-2095.562012,-128.925003,44.332855,0.0,0.0,269.7591);
CreateDynamicObject(971,-2095.552979,-120.086128,44.357857,0.0,0.0,269.7591);
CreateDynamicObject(971,-2095.778076,-111.679253,44.307884,0.0,0.0,270.6186);
CreateDynamicObject(971,-2095.861328,-102.843391,44.307854,0.0,0.0,270.6186);
CreateDynamicObject(971,-2091.427979,-103.389999,44.316978,0.0,0.0,179.5181);
CreateDynamicObject(971,-2082.551025,-103.364998,44.251526,0.0,0.0,179.5181);
CreateDynamicObject(971,-2073.788086,-103.431046,44.280823,0.0,0.0,0.0);
CreateDynamicObject(971,-2065.115967,-103.389908,44.358833,0.0,0.0,0.0);
CreateDynamicObject(971,-2052.744141,-102.656273,41.456863,0.0,0.0,0.0);
CreateDynamicObject(971,-2052.687744,-102.647896,48.660263,0.0,0.0,0.0);
CreateDynamicObject(971,-2045.562500,-102.590111,41.476204,0.0,0.0,0.8594);
CreateDynamicObject(971,-2059.413330,-103.415001,44.337914,0.0,0.0,0.0);
CreateDynamicObject(971,-2045.552368,-102.562973,48.579254,0.0,0.0,0.8594);
CreateDynamicObject(971,-2011.691772,-147.416718,44.332825,0.0,0.0,270.6186);
CreateDynamicObject(971,-2011.752686,-159.865814,44.307831,0.0,0.0,89.3814);
CreateDynamicObject(616,-2053.137207,-114.562286,34.284336,0.0,0.0,0.0);
CreateDynamicObject(618,-2048.662354,-115.591202,34.585541,0.0,0.0,0.0);
CreateDynamicObject(617,-2086.480957,-275.459412,34.314148,0.0,0.0,0.0);
CreateDynamicObject(616,-2090.233887,-269.792480,34.314148,0.0,0.0,0.0);
//CASTLE http://forum.sa-mp.com/index.php?topic=34198.0
CreateDynamicObject(8500,1666.138550,-2767.152588,5.701475,359.1406,359.1406,297.2611);
CreateDynamicObject(8881,1694.141113,-2837.312256,32.334969,0.0,0.0,117.7429);
CreateDynamicObject(8882,1703.853394,-2885.523682,32.395432,0.0,0.0,117.7428);
CreateDynamicObject(9078,1651.510010,-2924.151367,29.328777,7.7349,15.4699,83.3654);
CreateDynamicObject(9078,1669.489014,-2964.544189,45.725800,22.3454,14.6104,165.8713);
CreateDynamicObject(9078,1717.401245,-2950.165527,42.945137,13.751,337.6546,254.2893);
CreateDynamicObject(8881,1747.313843,-2851.688477,28.072512,0.0,0.0,32.6586);
CreateDynamicObject(969,1630.374023,-2941.736572,33.103256,0.0,16.3293,57.5822);
CreateDynamicObject(969,1638.991577,-2953.422119,34.263676,14.6104,0.0,146.9636);
CreateDynamicObject(969,1684.444702,-2986.376953,53.638187,14.6104,23.2048,138.3691);
CreateDynamicObject(969,1691.235840,-2985.494629,54.441494,341.9518,13.751,53.2849);
CreateDynamicObject(969,1737.188477,-2928.063232,30.231504,352.2651,337.6546,312.731);
CreateDynamicObject(969,1742.163452,-2939.927002,36.454067,17.1887,347.1084,225.0684);
CreateDynamicObject(1245,1694.498413,-2746.201904,6.892519,0.0,0.0,86.8031);
CreateDynamicObject(1632,1685.070068,-2788.052734,7.894250,20.6265,0.0,181.3412);
CreateDynamicObject(1634,1683.333984,-2835.807129,17.962843,8.5944,0.0,180.4818);
CreateDynamicObject(1633,1683.129639,-2841.760498,23.845125,29.2208,2.5783,177.0441);
CreateDynamicObject(1633,1682.806763,-2846.122314,29.611897,42.9718,2.5783,177.0441);
CreateDynamicObject(1633,1682.546509,-2849.273438,36.506714,55.0039,2.5783,177.0441);
CreateDynamicObject(1634,1688.755005,-2836.134033,17.837845,3.4377,0.0,183.0601);
CreateDynamicObject(1633,1679.938721,-2868.975830,22.966045,16.3293,0.0,270.6185);
CreateDynamicObject(1633,1685.300781,-2868.910889,26.805128,23.2048,0.0,270.6185);
CreateDynamicObject(13666,1711.910400,-2868.020020,33.894493,23.2048,357.4217,277.4941);
CreateDynamicObject(1633,1709.405396,-2870.110840,28.289490,353.1245,0.0,270.6185);
CreateDynamicObject(13592,1721.513916,-2869.596924,29.430567,359.1406,348.8273,278.3535);
CreateDynamicObject(1634,1713.814087,-2895.446045,18.601534,21.4859,0.0,90.2409);
CreateDynamicObject(1245,1684.090088,-2814.326416,15.077228,0.0,3.4377,85.9437);
CreateDynamicObject(13592,1714.621338,-2815.113281,32.757137,292.1045,21.4859,257.7271);
CreateDynamicObject(1633,1702.678833,-2820.186523,23.797922,5.1566,42.9718,0.0);
CreateDynamicObject(1633,1701.276489,-2827.448975,21.661747,5.1566,36.9558,0.0);
CreateDynamicObject(1633,1700.199463,-2834.947021,19.833044,357.4217,32.6586,0.0);
CreateDynamicObject(1633,1701.967529,-2818.213867,25.926388,5.1566,67.0361,339.3735);
CreateDynamicObject(1633,1699.978882,-2837.394043,19.882034,343.6707,32.6586,0.0);
CreateDynamicObject(1633,1699.210815,-2843.160645,20.210768,343.6707,30.0803,0.0);
CreateDynamicObject(13592,1712.525757,-2813.615479,39.752396,292.1045,21.4859,257.7271);
CreateDynamicObject(13592,1710.421875,-2812.223145,46.561020,292.1045,21.4859,257.7271);
CreateDynamicObject(8620,1718.120972,-2784.669678,49.539291,315.3093,357.4217,316.1687);
CreateDynamicObject(9078,1685.957275,-2780.481445,44.426659,0.0,0.0,0.0);
CreateDynamicObject(1634,1654.711182,-2765.123779,40.970161,0.0,0.0,61.8794);
CreateDynamicObject(1634,1725.894775,-2902.229248,21.430077,3.4377,81.6465,105.7107);
CreateDynamicObject(13666,1704.961670,-2958.099121,47.785187,345.3896,339.3735,318.747);
CreateDynamicObject(13647,1724.448975,-2930.157471,25.510275,0.0,0.0,320.4659);
CreateDynamicObject(13641,1732.361572,-2855.458740,21.009214,0.0,0.0,0.0);
CreateDynamicObject(18367,1769.311401,-2847.216797,1.235021,328.2008,0.0,269.7591);
CreateDynamicObject(18451,1747.547974,-2884.987061,14.086502,20.6265,0.0,97.9758);
CreateDynamicObject(13638,1765.619507,-2858.942627,14.671503,0.8594,0.0,184.6748);
CreateDynamicObject(13638,1762.110229,-2862.743408,19.025969,2.5783,1.7189,94.4341);
CreateDynamicObject(13638,1758.688843,-2860.442627,22.771498,0.0,0.0,2.5783);
CreateDynamicObject(13593,1755.591553,-2850.659668,29.078421,0.0,0.0,0.0);
CreateDynamicObject(13590,1643.945313,-2866.503662,21.741594,0.0,0.0,87.5586);
CreateDynamicObject(13593,1625.087646,-2867.178955,24.285576,347.1084,357.4217,168.4497);
CreateDynamicObject(13593,1624.466431,-2871.009521,23.849463,359.1406,2.5783,348.8273);
CreateDynamicObject(1633,1645.542236,-2874.865479,22.632210,0.0,0.0,268.8997);
CreateDynamicObject(1633,1650.532227,-2921.100098,28.413399,48.1285,0.0,146.0002);
Stunt = CreateMenu("Teleport Places", 1, 50.0, 180.0, 200.0, 200.0);
AddMenuItem(Stunt, 0, "Los Santos Airport");
AddMenuItem(Stunt, 0, "San Fierro School Yard");
AddMenuItem(Stunt, 0, "Stunt Castle");
AddMenuItem(Stunt, 0, "Stunt Park");
AddMenuItem(Stunt, 0, "LV Airfight Airport");
}
return 1;
}
public OnGameModeExit()
{
KillTimer(PingTimer);
KillTimer(InvisTimer);
KillTimer(GodTimer);
#if defined MENUSYSTEM
DestroyMenu(MAdmin);
DestroyMenu(MPMode);
DestroyMenu(MPrize);
DestroyMenu(MDyna);
DestroyMenu(MBuild);
DestroyMenu(MLaps);
DestroyMenu(MRace);
DestroyMenu(MRacemode);
DestroyMenu(MFee);
DestroyMenu(MCPsize);
DestroyMenu(MDelay);
#endif
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerConnect(playerid)
{
MyDeaths[playerid] = 0;
MyKills[playerid] = 0;
IsPlayerInJail[playerid] = 0;
LAdmin[playerid] = 0;
LoggedIn[playerid] = 0;
God[playerid] = 0;
TimesSpawned[playerid] = 0;
IsPlayerMuted[playerid] = 0;
Invis[playerid] = 0;
DoorsLocked[playerid] = 0;
//---------------------------------
new PlayerName[30], string[256], ip[200]; GetPlayerName(playerid, PlayerName, 30);
format(string,256,"*** %s has joined the server.",PlayerName);
for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && playerid != i) SendClientMessage(i,COLOR_GREY,string);
//---------------------------------
GetPlayerIp(playerid,ip,sizeof(ip));
format(string,sizeof(string),"Name: %s id: %d ip: %s ping: %d",PlayerName,playerid,ip,GetPlayerPing(playerid));
SaveToFile("ConnectLog",string);
//---------------------------------
// format(str, sizeof(str), "users/%s.sav", PlayerName);
if (!udb_Exists(PlayerName2(playerid)))
{
SendClientMessage(playerid,COLOR_BLUE, "ACCOUNT: Type /register [password] to create an account");
return 1;
}
else
{
new file[256],name[24]; GetPlayerName(playerid,name,24); format(file,256,"/users/%s.sav",udb_encode(name));
new tmp[MAX_STRING],tmp2[256]; GetPlayerIp(playerid,tmp,50); tmp2 = dini_Get(file,"ip");
if(!strcmp(tmp,tmp2,true)) {
SendClientMessage(playerid, COLOR_GREEN, "ACCOUNT: You have been automatically logged in");
GivePlayerMoney(playerid,dUserINT(PlayerName2(playerid)).("money")-GetPlayerMoney(playerid));
MyDeaths[playerid] = (dUserINT(PlayerName2(playerid)).("deaths"));
MyKills[playerid] = (dUserINT(PlayerName2(playerid)).("kills"));
LAdmin[playerid] = (dUserINT(PlayerName2(playerid)).("level"));
dUserSetINT(PlayerName2(playerid)).("LoggedIn",1);
LoggedIn[playerid] = 1;
return 1;
} else {
SendClientMessage(playerid, COLOR_GREEN, "ACCOUNT: This nickname is registed! You can now login by typing /login <password>");
return 1; }
}
}
//=========================[PlayerName2]========================================
stock PlayerName2(playerid) {
new name[255];
GetPlayerName(playerid, name, 255);
return name;
}
//====================== [REGISTER & LOGIN] ==================================
dcmd_register(playerid,params[]) {
if (LoggedIn[playerid] == 1) return SendClientMessage(playerid,COLOR_RED,"ACCOUNT: You are already registered and logged in.");
if (udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,COLOR_RED,"ACCOUNT: This account already exists, please use '/login password'.");
if (strlen(params)==0) return SendClientMessage(playerid,COLOR_RED,"ACCOUNT: Correct usage: '/register password'");
if (udb_Create(PlayerName2(playerid),params)) {
new file[256],name[24]; GetPlayerName(playerid,name,24); format(file,256,"/users/%s.sav",udb_encode(name));
new tmp3[100]; GetPlayerIp(playerid,tmp3,100); dini_Set(file,"ip",tmp3);
dini_Set(file,"password",params);
dUserSetINT(PlayerName2(playerid)).("registered",1);
new strdate[20], year,month,day; getdate(year, month, day);
format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
dini_Set(file,"RegisteredDate",strdate);
dUserSetINT(PlayerName2(playerid)).("LoggedIn",1);
dUserSetINT(PlayerName2(playerid)).("level",0);
dUserSetINT(PlayerName2(playerid)).("LastOn",0);
LoggedIn[playerid] = 1;
SendClientMessage(playerid, COLOR_GREEN, "ACCOUNT: You have been automaticaly logged in"); PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
if(Spawned[playerid] == 1) { TogglePlayerControllable(playerid,true); }
return 1; }
return true;
}
//==============================================================================
dcmd_login(playerid,params[]) {
if (LoggedIn[playerid] == 1) return SendClientMessage(playerid,COLOR_RED,"ACCOUNT: You are already logged in.");
if (!udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,COLOR_RED,"ACCOUNT: Account doesn't exist, please use '/register password'.");
if (strlen(params)==0) return SendClientMessage(playerid,COLOR_RED,"ACCOUNT: Correct usage: '/login password'");
if (udb_CheckLogin(PlayerName2(playerid),params)) { // Login was correct
GivePlayerMoney(playerid,dUserINT(PlayerName2(playerid)).("money")-GetPlayerMoney(playerid));
MyDeaths[playerid] = (dUserINT(PlayerName2(playerid)).("deaths"));
MyKills[playerid] = (dUserINT(PlayerName2(playerid)).("kills"));
LAdmin[playerid] = (dUserINT(PlayerName2(playerid)).("level"));
new file[256],name[24]; GetPlayerName(playerid,name,24); format(file,256,"/users/%s.sav",udb_encode(name)); // users
new tmp3[100]; GetPlayerIp(playerid,tmp3,100); dini_Set(file,"ip",tmp3);
if(Spawned[playerid] == 1) { TogglePlayerControllable(playerid,true); }
LoggedIn[playerid] = 1; PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
dUserSetINT(PlayerName2(playerid)).("LoggedIn",1);
return SendClientMessage(playerid,COLOR_GREEN,"ACCOUNT: Successfully Logged In");
}
return SendClientMessage(playerid,COLOR_RED,"ACCOUNT: Login failed! Incorrect Password");
}
//==============================================================================
dcmd_logout(playerid,params[]) {
#pragma unused params
if (LoggedIn[playerid] == 0) return SendClientMessage(playerid,COLOR_RED,"You are not logged in.");
//if (LoggedIn[playerid] == 1 && LAdmin[playerid] >= 1) {
//LoggedIn[playerid] = 0; LAdmin[playerid] = 0; }
return SendClientMessage(playerid,COLOR_GREEN,"This command does nothing");
}
public OnPlayerPrivmsg(playerid, recieverid, text[])
{
if(READ_PMS == 1 && LAdmin[playerid] != MAX_ADMIN_LEVEL) {
new string[64],playername[MAX_PLAYER_NAME],recievername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername)); GetPlayerName(recieverid, recievername, sizeof(recievername));
format(string, sizeof(string), "[PM: %s To %s] %s", playername,recievername, text);
for (new a = 0; a < MAX_PLAYERS; a++)
if (IsPlayerConnected(a) && (LAdmin[a] >= 1) && a != playerid)
SendClientMessage(a, COLOR_GREY, string); }
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256], string[256], idx;
new adminname[MAX_PLAYER_NAME], playername[MAX_PLAYER_NAME];
cmd = strtok(cmdtext, idx);
dcmd(racehelp,8,cmdtext); // Racehelp - there's a lot of commands!
dcmd(buildhelp,9,cmdtext); // Buildhelp - there's a lot of commands!
dcmd(buildrace,9,cmdtext); // Buildrace - Start building a new race (suprising!)
dcmd(cp,2,cmdtext); // cp - Add a checkpoint
dcmd(scp,3,cmdtext); // scp - Select a checkpoint
dcmd(rcp,3,cmdtext); // rcp - Replace the current checkpoint with a new one
dcmd(mcp,3,cmdtext); // mcp - Move the selected checkpoint
dcmd(dcp,3,cmdtext); // dcp - Delete the selected waypoint
dcmd(clearrace,9,cmdtext); // clearrace - Clear the current (new) race.
dcmd(editrace,8,cmdtext); // editrace - Load an existing race into the builder
dcmd(saverace,8,cmdtext); // saverace - Save the current checkpoints to a file
dcmd(setlaps,7,cmdtext); // setlaps - Set amount of laps to drive
dcmd(racemode,8,cmdtext); // racemode - Set the current racemode
dcmd(loadrace,8,cmdtext); // loadrace - Load a race from file and start it
dcmd(startrace,9,cmdtext); // starts the loaded race
dcmd(join,4,cmdtext); // join - Join the announced race.
dcmd(leave,5,cmdtext); // leave - leave the current race.
dcmd(endrace,7,cmdtext); // endrace - Complete the current race, clear tables & variables, stop the timer.
dcmd(ready,5,cmdtext); // ready - Player is ready to start, lock the controls, prepare for CD.
dcmd(bestlap,7,cmdtext); // bestlap - Display the best lap times for the current race
dcmd(bestrace,8,cmdtext); // bestrace - Display the best race times for the current race
dcmd(deleterace,10,cmdtext);// deleterace - Remove the race from disk
dcmd(airrace,7,cmdtext); // airrace - Changes the checkpoints to air CPs and back
dcmd(cpsize,6,cmdtext); // cpsize - changes the checkpoint size
dcmd(prizemode,9,cmdtext);
dcmd(setprize,8,cmdtext);
#if defined MENUSYSTEM
dcmd(raceadmin,9,cmdtext);
dcmd(buildmenu,9,cmdtext);
#endif
dcmd(scores,6,cmdtext);
dcmd(reset,5,cmdtext);
dcmd(help,4,cmdtext);
dcmd(kill,4,cmdtext);
dcmd(me,2,cmdtext);
dcmd(stunt,5,cmdtext);
dcmd(stunthelp,9,cmdtext);
dcmd(login,5,cmdtext);
dcmd(logout,6,cmdtext);
dcmd(register,8,cmdtext);
dcmd(setgravity,10,cmdtext);
dcmd(adminarea,9,cmdtext);
dcmd(ladmincredits,13,cmdtext);
dcmd(serverinfo,10,cmdtext);
dcmd(lmenu,5,cmdtext);
dcmd(ltele,5,cmdtext);
dcmd(lvehicle,8,cmdtext);
dcmd(lweapons,8,cmdtext);
dcmd(lweather,8,cmdtext);
dcmd(ltmenu,6,cmdtext);
dcmd(ltime,5,cmdtext);
dcmd(announce,8,cmdtext);
dcmd(cm,2,cmdtext);
if(strcmp(cmd, "/kill", true) == 0) {
SetPlayerHealth(playerid,0.0); return 1; }
if(strcmp(cmd, "/lhelp", true) == 0) {
if(LoggedIn[playerid] && LAdmin[playerid] >= 1) {
SendClientMessage(playerid,COLOR_BLUE,"For admin commands type /lcommands");
SendClientMessage(playerid,COLOR_BLUE,"There are 4 levels. Level 1 = Member||Level 2 = New Admin||Level 3 = Full Admin||Level 4 = Sever Owner");
SendClientMessage(playerid,COLOR_BLUE,"Remember the highest level admins are immune from commands");
} else {
SendClientMessage(playerid,COLOR_GREEN, "Your commands are: report, stats, time"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/lcommands", true) == 0) {
if(LoggedIn[playerid] && LAdmin[playerid] == 1) {
SendClientMessage(playerid,COLOR_BLUE,"Your Member Commands");
SendClientMessage(playerid,COLOR_GREEN,"(1)WRITE, FLIP, FIX, LP, CARCOLOUR, LTUNE, SETMYTIME, LINKCAR"); }
if(LAdmin[playerid] > 1) {
SendClientMessage(playerid,COLOR_BLUE,"Your Admin Commands");
SendClientMessage(playerid,COLOR_GREEN,"(1)WRITE, FLIP, FIX, LP, CARCOLOUR, LTUNE, SETMYTIME, LINKCAR");
SendClientMessage(playerid,COLOR_GREEN,"(2) ANNOUNCE, (UN) LOCKCAR, DISARM, GOTO, ADMINAREA, LCAR, LBIKE, LTC, CM (giveme)");
SendClientMessage(playerid,COLOR_GREEN,"(2) SLAP, SPEC (OFF), BURN, WARN, MUTE, UNMUTE, GIVEWEAPON, SPAWN, LSLOWMO, GETINFO, LASTON");
SendClientMessage(playerid,COLOR_GREEN,"(2) SETCASH, SETSKIN, SETWANTED, LMENU, LTELE, LVEHICLE, SETINTERIOR, LWEAPONS, LTUNEMENU, LJETPACK, ASAY"); }
if(LAdmin[playerid] > 2) {
SendClientMessage(playerid,COLOR_GREEN,"(3) KICK, BAN, GOD, EXPLODE, EJECT, LJAIL, LUNJAIL,FREEZE, UNFREEZE, LADMIN, LWEAPS, LAMMO");
SendClientMessage(playerid,COLOR_GREEN,"(3)DUEL, COUNTDOWN, INVISIBLECAR, GETHERE, TELEPLAYER, CAR, CARHEALTH, (UN) INVIS");
SendClientMessage(playerid,COLOR_GREEN,"(3) SETHEALTH, SETARMOUR, SETGRAVITY, SETNAME, SETTIME, SETTEMPLEVEL, SETALLWANTED, SETWORLD");
SendClientMessage(playerid,COLOR_GREEN,"(3) LTIME, SETWEATHER, LWEATHER, HEALALL, ARMOURALL, KILLALL, DISARMALL, KICKALL, EJECTALL, SETALLWORLD"); }
if(LAdmin[playerid] > 3) {
SendClientMessage(playerid,COLOR_GREEN,"(4) SETLEVEL, DIE, OBJECT, PICKUP, LOADFS"); }
if(LAdmin[playerid] < 1) {
SendClientMessage(playerid,COLOR_GREEN, "Your commands are: report, stats, time"); }
if(LAdmin[playerid] == 0 && IsPlayerAdmin(playerid)) {
SendClientMessage(playerid,COLOR_GREEN, "Your are rcon admin but not ladmin, type /levelme"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/colourme", true) == 0) {
if(LAdmin[playerid] >= 4) {
SetPlayerColor(playerid,0x2C2727AA);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/ljetpack", true) == 0) {
if(LAdmin[playerid] >= 1) {
SetPlayerSpecialAction(playerid, 2); CMDMessageToAdmins(playerid,"LJETPACK");
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/lslowmo", true) == 0) {
if(LAdmin[playerid] >= 1) {
new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); CreatePickup(1241, 4, x, y, z);
CMDMessageToAdmins(playerid,"LSLOWMO");
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext,"/invis",true)==0) {
if(LAdmin[playerid] >= 4) {
if(IsPlayerInAnyVehicle(playerid)) {
new LVehicleID = GetPlayerVehicleID(playerid); new int1 = GetPlayerInterior(playerid);
LinkVehicleToInterior(LVehicleID,int1 + 1); SetPlayerColor(playerid,0xFFFFFF00);
SendClientMessage(playerid,COLOR_RED,"[Cmd]: You Are Now Invisible"); Invis[playerid] = 1;
CMDMessageToAdmins(playerid,"INVIS");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleID; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle); SetPlayerColor(playerid,0xFFFFFF00); new int1 = GetPlayerInterior(playerid);
LVehicleID = CreateVehicle(457,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,LVehicleID,0); LinkVehicleToInterior(LVehicleID,int1 + 1);
SendClientMessage(playerid,COLOR_RED,"[Cmd]: You Are Now Invisible");} Invis[playerid] = 1;
CMDMessageToAdmins(playerid,"INVIS");
} else {
SendClientMessage(playerid,COLOR_RED,"LEVEL ERROR!"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext,"/uninvis",true)==0) {
if(LAdmin[playerid] >= 4) {
if(IsPlayerInAnyVehicle(playerid)) {
new LVehicleID = GetPlayerVehicleID(playerid); new int1 = GetPlayerInterior(playerid); LinkVehicleToInterior(LVehicleID,int1); SetPlayerColor(playerid,0xAFAFAFAA);
SendClientMessage(playerid,COLOR_RED,"[Cmd]: You Are Now Visible"); Invis[playerid] = 0;
} else {
SetPlayerColor(playerid,0xAFAFAFAA); SendClientMessage(playerid,COLOR_RED,"[Cmd]: You Are Now Visible"); Invis[playerid] = 0; }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 4 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/destroycar", true) == 0) if(LAdmin[playerid] >= 4) return EraseVehicle(GetPlayerVehicleID(playerid));
//-------------------Admin Chat-------------------------------------------------
if(strcmp(cmd,"/asay",true)==0) {
if(LAdmin[playerid] >= 2) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /asay [text]");
return 1; }
GetPlayerName(playerid, adminname, sizeof(adminname));
format(string, sizeof(string), "**Admin %s: %s",adminname,cmdtext[6]);
SendClientMessageToAll(COLOR_PINK,string);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 2 to use this command"); }
return 1; }
//-------------------SPECTATE A PLAYER------------------------------------------
if(strcmp(cmd, "/lspec", true) == 0) {
if(LAdmin[playerid] >= 2) {
new tmp[256], specplayerid;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /specplayer [playerid]");
return 1; }
specplayerid = strval(tmp);
if(!IsPlayerConnected(specplayerid) || (LAdmin[specplayerid] == MAX_ADMIN_LEVEL && LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected");
return 1; }
if(specplayerid == playerid) {
SendClientMessage(playerid, COLOR_RED, "ERROR: You cannot spectate yourself");
return 1;
}
if(GetPlayerState(specplayerid) == PLAYER_STATE_SPECTATING && gSpectateID[specplayerid] != INVALID_PLAYER_ID) {
SendClientMessage(playerid, COLOR_RED, "Spectate: Player spectating someone else");
return 1;
}
if(GetPlayerState(specplayerid) != 1 && GetPlayerState(specplayerid) != 2 && GetPlayerState(specplayerid) != 3) {
SendClientMessage(playerid, COLOR_RED, "Spectate: Player not spawned");
return 1;
}
StartSpectate(playerid, specplayerid);
SendClientMessage(playerid,COLOR_BLUE,"Now Spectating");
CMDMessageToAdmins(playerid,"LSPEC");
GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
GetPlayerFacingAngle(playerid,Pos[playerid][3]);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 2 to use this command"); }
return 1; }
//---------------------SPECTATE A VEHICLE---------------------------------------
if(strcmp(cmd, "/lspecvehicle", true) == 0) {
if(LAdmin[playerid] >= 2) {
new tmp[256],specvehicleid;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /specvehicle [vehicleid]");
return 1; }
specvehicleid = strval(tmp);
if(specvehicleid < MAX_VEHICLES) {
TogglePlayerSpectating(playerid, 1);
PlayerSpectateVehicle(playerid, specvehicleid);
gSpectateID[playerid] = specvehicleid;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE;
SendClientMessage(playerid,COLOR_BLUE,"Now Spectating");
CMDMessageToAdmins(playerid,"SPEC VEHICLE");
GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
GetPlayerFacingAngle(playerid,Pos[playerid][3]);
}
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 2 to use this command"); }
return 1; }
//--------------------STOP SPECTATING-------------------------------------------
if(strcmp(cmd, "/lspecoff", true) == 0) {
StopSpectate(playerid);
SendClientMessage(playerid,COLOR_BLUE,"No Longer Spectating");
SetTimerEx("PosAfterSpec",3000,0,"d",playerid);
return 1; }
//=====================[ REPORT ]===============================================
if(strcmp(cmd, "/report", true) == 0) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /report [playerid] [reason]");
return 1; }
new reported;
reported = strval(tmp);
if(!IsPlayerConnected(reported) || reported == INVALID_PLAYER_ID || (LAdmin[reported] == MAX_ADMIN_LEVEL) || playerid == reported) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected");
return 1; }
tmp = strtok(cmdtext, idx);
new length = strlen(cmdtext);
new minlength = 14;
if(length < minlength) {
SendClientMessage(playerid,COLOR_RED,"ERROR: What Is The Reason");
return 1; }
new reportedname[MAX_PLAYER_NAME], reporter[MAX_PLAYER_NAME], str[100];
GetPlayerName(reported, reportedname, sizeof(reportedname)); GetPlayerName(playerid, reporter, sizeof(reporter));
format(str, sizeof(str), "||NewReport|| %s(ID %d) reported %s(ID %d) reason = %s", reporter,playerid, reportedname, reported, cmdtext[9]);
MessageToAdmins(COLOR_WHITE,str); SaveToFile("ReportLog",str);
SendClientMessage(playerid,COLOR_YELLOW, "Report Sent.");
return 1;
}
//==============================================================================
if(strcmp(cmd, "/setworld", true) == 0) {
if(LAdmin[playerid] >= 3) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setworld [playerid] [virtual world]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected");
return 1; }
tmp = strtok(cmdtext, idx);
new world;
world = strval(tmp);
tmp = strtok(cmdtext, idx);
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s has set your virtual world to %d",adminname,world); if(player1 != playerid) { SendClientMessage(player1,COLOR_BLUE,string); }
format(string,256,"You have set %s's virtual world to %d",playername,world); SendClientMessage(playerid,COLOR_BLUE,string);
CMDMessageToAdmins(playerid,"SETWORLD"); SetPlayerVirtualWorld(player1,world);
PlayerPlaySound(playerid,1057,0.0,0.0,0.0); PlayerPlaySound(player1,1057,0.0,0.0,0.0);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/teleplayer", true) == 0) {
if(LAdmin[playerid] >= 3) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /teleplayer [playerid] to [playerid]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected");
return 1; }
tmp = strtok(cmdtext, idx);
new player2;
player2 = strval(tmp);
if(!IsPlayerConnected(player1) || player2 == INVALID_PLAYER_ID) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected");
return 1; }
tmp = strtok(cmdtext, idx);
new Float:plocx,Float:plocy,Float:plocz;
GetPlayerPos(player2, plocx, plocy, plocz); new intid = GetPlayerInterior(player2); SetPlayerInterior(player1,intid);
SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(player2));
CMDMessageToAdmins(playerid,"TELEPLAYER");
if (GetPlayerState(player1) == 2)
{
new VehicleID = GetPlayerVehicleID(player1);
SetVehiclePos(VehicleID, plocx, plocy+4, plocz); LinkVehicleToInterior(VehicleID,intid);
SetVehicleVirtualWorld(VehicleID, GetPlayerVirtualWorld(player2) );
} else {
SetPlayerPos(player1,plocx,plocy+2, plocz); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//===================================[WARN]=====================================
if(strcmp(cmd, "/warn", true) == 0) {
if(LAdmin[playerid] >= 2) {
new tmp[256]; new str[256]; new pname[256]; new aname[256]; new tmp2[256];
tmp = strtok(cmdtext, idx);
tmp2 = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /warn [PlayerID] [Reason]");
return 1; }
new warned;
warned = strval(tmp);
if(!IsPlayerConnected(warned) || warned == INVALID_PLAYER_ID || (LAdmin[warned] == MAX_ADMIN_LEVEL) || (warned == playerid)) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected or is yourself");
return 1; }
tmp = strtok(cmdtext, idx);
CMDMessageToAdmins(playerid,"WARN");
if(Warnings[warned] == 0) {
Warnings[warned]+=1;
GetPlayerName(warned, pname, sizeof (str));
GetPlayerName(playerid, aname, sizeof (str));
format(str, sizeof (str), "***Administrator %s has given %s a warning [Reason: %s] [1/3 Warnings]***", aname, pname, cmdtext[8]);
SendClientMessageToAll(COLOR_YELLOW, str);
return 1; }
else if(Warnings[warned] == 1) {
GetPlayerName(warned, pname, sizeof (str));
GetPlayerName(playerid, aname, sizeof (str));
format(str, sizeof (str), "***Administrator %s has given %s a warning [Reason: %s] [2/3 Warnings]***", aname, pname, cmdtext[8]);
SendClientMessageToAll(COLOR_YELLOW, str);
Warnings[warned]+=1;
return 1; }
else if(Warnings[warned] == 2) {
GetPlayerName(warned, pname, sizeof (str));
GetPlayerName(playerid, aname, sizeof (str));
format(str, sizeof (str), "***Administrator %s has Kicked %s [Reason: %s] [3/3 Warnings]***", aname, pname, cmdtext[8]);
SendClientMessageToAll(COLOR_GREY, str);
SaveToFile("BanKickLog",string); Kick(warned);
return 1; }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 2 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/car", true) == 0) {
if(LAdmin[playerid] >= 3) {
new tmp[256], car,colour1,colour2;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /car [carid] [colour1] [colour2]");
return 1; }
car = strval(tmp);
if(car < 400 || car > 611) {
SendClientMessage(playerid, COLOR_RED, "Vehicle Number can't be below 400 or above 611");
return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /car [carid] [colour1] [colour2]");
return 1; }
colour1 = strval(tmp);
if(colour1 < 0 || colour1 > 126) {
SendClientMessage(playerid, COLOR_RED, "ERROR: Colour Number can't be below 0 or above 126");
return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /car [carid] [colour1] [colour2]");
return 1; }
colour2 = strval(tmp);
if(colour2 < 0 || colour2 > 126) {
SendClientMessage(playerid, COLOR_RED, "ERROR: Colour Number can't be below 0 or above 126");
return 1; }
new LVehicleID,Float:X,Float:Y,Float:Z, Float:Angle,int1 ; GetPlayerPos(playerid, X,Y,Z); GetPlayerFacingAngle(playerid,Angle); int1 = GetPlayerInterior(playerid);
LVehicleID = CreateVehicle(car, X+3,Y,Z, Angle, colour1, colour2, 60000); LinkVehicleToInterior(LVehicleID,int1);
CMDMessageToAdmins(playerid,"CAR");
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
format(string, sizeof(string), "You have spawned car (%d) colour1 (%d) colour2 (%d), at %0.2f, %0.2f, %0.2f", car, colour1, colour2, X, Y, Z);
SendClientMessage(playerid,COLOR_YELLOW, string);
format(string, sizeof(string), "%s has spawned car (%d) colour1 (%d) colour2 (%d), at %0.2f, %0.2f, %0.2f", pname, car, colour1, colour2, X, Y, Z);
SaveToFile("CarSpawns",string);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//---------------------------------------
if(strcmp(cmd, "/pickup", true) == 0) {
if(LAdmin[playerid] >= 4) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /pickup [pickup-id]");
return 1; }
new pick,Float:px,Float:py,Float:pz; GetPlayerPos(playerid, px,py,pz);
pick = strval(tmp);
CMDMessageToAdmins(playerid,"PICKUP");
CreatePickup(pick, 2, px, py, pz);
format(string, sizeof(string), "CreatePickup(%d, 2, %0.2f, %0.2f, %0.2f);", pick, px, py, pz);
SendClientMessage(playerid,COLOR_YELLOW, string);
SaveToFile("Pickups",string);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/object", true) == 0) {
if(LAdmin[playerid] >= 4) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /object [object-id]");
return 1; }
new object, Float:px,Float:py,Float:pz; GetPlayerPos(playerid, px,py,pz);
object = strval(tmp);
CMDMessageToAdmins(playerid,"OBJECT");
CreateObject(object, px, py, pz, 0, 0, 0);
format(string, sizeof(string), "You Have Created Object %d, at %0.2f, %0.2f, %0.2f", object, px, py, pz);
SendClientMessage(playerid,COLOR_YELLOW, string);
format(string, sizeof(string), "CreateObject(%d, %0.2f, %0.2f, %0.2f, 0.00, 0.00, 0.00);", object, px, py, pz);
SaveToFile("Objects",string);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//==============================================================================
if(strcmp(cmd, "/linkcar", true) == 0) {
if(IsPlayerInAnyVehicle(playerid)) {
LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(playerid));
SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(playerid));
}
return 1; }
//==============================================================================
if(strcmp(cmd, "/setinterior", true) == 0) {
if(LAdmin[playerid] >= 3) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setinterior [playerid] [interiorid]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected");
return 1; }
tmp = strtok(cmdtext, idx);
new interior;
interior = strval(tmp);
if(interior < 0 || interior > 25) {
SendClientMessage(playerid, COLOR_RED, "Interior can't be below 0 or above 26");
return 1; }
tmp = strtok(cmdtext, idx);
CMDMessageToAdmins(playerid,"SETINTERIOR");
SetPlayerInterior(player1,interior);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/duel", true) == 0) {
if(LAdmin[playerid] >= 3) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /duel [player1 id] [player2 id] [location (1) or (2) or (3)]");
SendClientMessage(playerid, COLOR_RED, "If location isnt stated then players duel at their present location");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected");
return 1; }
tmp = strtok(cmdtext, idx);
new player2;
player2 = strval(tmp);
if(!IsPlayerConnected(player1) || player2 == INVALID_PLAYER_ID) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected");
return 1; }
tmp = strtok(cmdtext, idx);
new location;
location = strval(tmp);
tmp = strtok(cmdtext, idx);
if(location == 1) {
SetPlayerInterior(player1,16); SetPlayerPos(player1,-1404.067, 1270.3706, 1042.8672); SetPlayerHealth(player1,100.0); SetPlayerArmour(player1,100.0); GivePlayerWeapon(player1,26,400); GivePlayerWeapon(player1,24,300); GivePlayerWeapon(player1,28,500);
SetPlayerInterior(player2,16); SetPlayerPos(player2,-1395.067, 1261.3706, 1042.8672); SetPlayerHealth(player2,100.0); SetPlayerArmour(player2,100.0); GivePlayerWeapon(player2,26,400); GivePlayerWeapon(player2,24,300); GivePlayerWeapon(player2,28,500);
InDuel[player1] = 1;
InDuel[player2] = 1;
CMDMessageToAdmins(playerid,"DUEL");
cdt=6;
timer=SetTimer("duel",1000,1);
} else if(location == 2) {
SetPlayerInterior(player1,0); SetPlayerPos(player1,1353.407,2188.155,11.02344); SetPlayerHealth(player1,100.0); SetPlayerArmour(player1,100.0); GivePlayerWeapon(player1,26,400); GivePlayerWeapon(player1,24,300); GivePlayerWeapon(player1,28,500);
SetPlayerInterior(player2,0); SetPlayerPos(player2,1346.255,2142.843,11.01563); SetPlayerHealth(player2,100.0); SetPlayerArmour(player2,100.0); GivePlayerWeapon(player2,26,400); GivePlayerWeapon(player2,24,300); GivePlayerWeapon(player2,28,500);
InDuel[player1] = 1;
InDuel[player2] = 1;
CMDMessageToAdmins(playerid,"DUEL");
cdt=6;
timer=SetTimer("duel",1000,1);
} else if(location == 3) {
SetPlayerInterior(player1,10); SetPlayerPos(player1,-1041.037,1078.729,1347.678); SetPlayerFacingAngle(player1,135); SetPlayerHealth(player1,100.0); SetPlayerArmour(player1,100.0); GivePlayerWeapon(player1,26,400); GivePlayerWeapon(player1,24,300); GivePlayerWeapon(player1,28,500);
SetPlayerInterior(player2,10); SetPlayerPos(player2,-1018.061,1052.502,1346.327); SetPlayerFacingAngle(player2,45); SetPlayerHealth(player2,100.0); SetPlayerArmour(player2,100.0); GivePlayerWeapon(player2,26,400); GivePlayerWeapon(player2,24,300); GivePlayerWeapon(player2,28,500);
InDuel[player1] = 1;
InDuel[player2] = 1;
CMDMessageToAdmins(playerid,"DUEL");
cdt=6;
timer=SetTimer("duel",1000,1);
} else {
InDuel[player1] = 1;
InDuel[player2] = 1;
CMDMessageToAdmins(playerid,"DUEL");
cdt=6;
timer=SetTimer("duel",1000,1); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext,"/countdown",true)==0) {
if(LAdmin[playerid] >= 3) {
CMDMessageToAdmins(playerid,"COUNTDOWN");
cdt=6;
timer=SetTimer("countdown",1000,1);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar", true)==0 || strcmp(cmdtext, "/ltc", true)==0) {
if(LAdmin[playerid] >= 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,COLOR_RED,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
LVehicleIDt = CreateVehicle(560,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,LVehicleIDt,0); CMDMessageToAdmins(playerid,"LTunedCar");
AddVehicleComponent(LVehicleIDt, 1028); AddVehicleComponent(LVehicleIDt, 1030); AddVehicleComponent(LVehicleIDt, 1031); AddVehicleComponent(LVehicleIDt, 1138); AddVehicleComponent(LVehicleIDt, 1140); AddVehicleComponent(LVehicleIDt, 1170);
AddVehicleComponent(LVehicleIDt, 1080); AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ChangeVehiclePaintjob(LVehicleIDt,0);
SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 1 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar2", true)==0 || strcmp(cmdtext, "/ltc2", true)==0) {
if(LAdmin[playerid] >= 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,COLOR_RED,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
LVehicleIDt = CreateVehicle(560,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,LVehicleIDt,0); CMDMessageToAdmins(playerid,"LTunedCar");
AddVehicleComponent(LVehicleIDt, 1028); AddVehicleComponent(LVehicleIDt, 1030); AddVehicleComponent(LVehicleIDt, 1031); AddVehicleComponent(LVehicleIDt, 1138); AddVehicleComponent(LVehicleIDt, 1140); AddVehicleComponent(LVehicleIDt, 1170);
AddVehicleComponent(LVehicleIDt, 1080); AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ChangeVehiclePaintjob(LVehicleIDt,1);
SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar3", true)==0 || strcmp(cmdtext, "/ltc3", true)==0) {
if(LAdmin[playerid] >= 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,COLOR_RED,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
LVehicleIDt = CreateVehicle(560,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,LVehicleIDt,0); CMDMessageToAdmins(playerid,"LTunedCar");
AddVehicleComponent(LVehicleIDt, 1028); AddVehicleComponent(LVehicleIDt, 1030); AddVehicleComponent(LVehicleIDt, 1031); AddVehicleComponent(LVehicleIDt, 1138); AddVehicleComponent(LVehicleIDt, 1140); AddVehicleComponent(LVehicleIDt, 1170);
AddVehicleComponent(LVehicleIDt, 1080); AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ChangeVehiclePaintjob(LVehicleIDt,2);
SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar4", true)==0 || strcmp(cmdtext, "/ltc4", true)==0) {
if(LAdmin[playerid] >= 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,COLOR_RED,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
carid = CreateVehicle(559,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
AddVehicleComponent(carid,1065); AddVehicleComponent(carid,1067); AddVehicleComponent(carid,1162); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar5", true)==0 || strcmp(cmdtext, "/ltc5", true)==0) {
if(LAdmin[playerid] >= 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,COLOR_RED,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
carid = CreateVehicle(565,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
AddVehicleComponent(carid,1046); AddVehicleComponent(carid,1049); AddVehicleComponent(carid,1053); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar6", true)==0 || strcmp(cmdtext, "/ltc6", true)==0) {
if(LAdmin[playerid] >= 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,COLOR_RED,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
carid = CreateVehicle(558,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
AddVehicleComponent(carid,1088); AddVehicleComponent(carid,1092); AddVehicleComponent(carid,1139); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar7", true)==0 || strcmp(cmdtext, "/ltc7", true)==0) {
if(LAdmin[playerid] >= 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,COLOR_RED,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
carid = CreateVehicle(561,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
AddVehicleComponent(carid,1055); AddVehicleComponent(carid,1058); AddVehicleComponent(carid,1064); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar8", true)==0 || strcmp(cmdtext, "/ltc8", true)==0) {
if(LAdmin[playerid] >= 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,COLOR_RED,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
carid = CreateVehicle(562,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
AddVehicleComponent(carid,1034); AddVehicleComponent(carid,1038); AddVehicleComponent(carid,1147); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar9", true)==0 || strcmp(cmdtext, "/ltc9", true)==0) {
if(LAdmin[playerid] >= 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,COLOR_RED,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
carid = CreateVehicle(567,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
AddVehicleComponent(carid,1102); AddVehicleComponent(carid,1129); AddVehicleComponent(carid,1133); AddVehicleComponent(carid,1186); AddVehicleComponent(carid,1188); ChangeVehiclePaintjob(carid,1); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1085); AddVehicleComponent(carid,1087); AddVehicleComponent(carid,1086);
SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar10", true)==0 || strcmp(cmdtext, "/ltc10", true)==0) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,COLOR_RED,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
carid = CreateVehicle(558,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
AddVehicleComponent(carid,1092); AddVehicleComponent(carid,1166); AddVehicleComponent(carid,1165); AddVehicleComponent(carid,1090);
AddVehicleComponent(carid,1094); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1087); AddVehicleComponent(carid,1163);//SPOILER
AddVehicleComponent(carid,1091); ChangeVehiclePaintjob(carid,2);
SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/lp", true) == 0) {
if(LAdmin[playerid] >= 1) {
if (GetPlayerState(playerid) == 2)
{
new VehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(VehicleID);
switch(LModel) { case 448,461,462,463,468,471,509,510,521,522,523,581,586: return SendClientMessage(playerid,COLOR_RED,"ERROR: You can not tune bikes!"); }
new str[256], Float:pos[3]; format(str, sizeof(str), "%s", cmdtext[2]);
SetVehicleNumberPlate(VehicleID, str);
GetPlayerPos(playerid, pos[0], pos[1], pos[2]); SetPlayerPos(playerid, pos[0]+1, pos[1], pos[2]);
SetVehicleToRespawn(VehicleID); SetVehiclePos(VehicleID, pos[0], pos[1], pos[2]);
SetTimerEx("TuneLCar",4000,0,"d",VehicleID); PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
SendClientMessage(playerid, COLOR_BLUE, "You have changed your licence plate"); CMDMessageToAdmins(playerid,"LP");
} else {
SendClientMessage(playerid,COLOR_RED,"Error: You have to be the driver of a vehicle to change its licence plate"); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 1 use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/lcar", true) == 0) {
if(LAdmin[playerid] >= 2) {
if (IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,COLOR_RED,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,VehicleID;
GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
VehicleID = CreateVehicle(415,X,Y,Z,Angle,1,-1,-1); SetVehicleNumberPlate(VehicleID, "admin"); PutPlayerInVehicle(playerid,VehicleID,0);
if(GetPlayerInterior(playerid)) LinkVehicleToInterior(VehicleID,GetPlayerInterior(playerid));
SetVehicleVirtualWorld(VehicleID,GetPlayerVirtualWorld(playerid));
ChangeVehicleColor(VehicleID,0,7); AddVehicleComponent(VehicleID, 1010); /*Nitro x10*/ AddVehicleComponent(VehicleID, 1087); /*Hydraulic*/
SendClientMessage(playerid,COLOR_BLUE,"Enjoy your new car"); CMDMessageToAdmins(playerid,"LCAR"); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 2 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/lbike", true) == 0) {
if(LAdmin[playerid] >= 2) {
if (IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,COLOR_RED,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,VehicleID;
GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
VehicleID = CreateVehicle(522,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,VehicleID,0);
if(GetPlayerInterior(playerid)) LinkVehicleToInterior(VehicleID,GetPlayerInterior(playerid));
SetVehicleVirtualWorld(VehicleID,GetPlayerVirtualWorld(playerid));
ChangeVehicleColor(VehicleID,0,7);
SendClientMessage(playerid,COLOR_BLUE,"Enjoy your new bike"); CMDMessageToAdmins(playerid,"LBIKE"); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 2 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/flip", true) == 0) {
if(LAdmin[playerid] >= 1) {
if (IsPlayerInAnyVehicle(playerid)) {
new VehicleID, Float:X, Float:Y, Float:Z, Float:Angle; GetPlayerPos(playerid, X, Y, Z); VehicleID = GetPlayerVehicleID(playerid);
GetVehicleZAngle(VehicleID, Angle);
SetVehiclePos(VehicleID, X, Y, Z);
SetVehicleZAngle(VehicleID, Angle); SetVehicleHealth(VehicleID,1200.0);
SendClientMessage(playerid, COLOR_BLUE,"Vehicle Flipped"); CMDMessageToAdmins(playerid,"FLIP");
} else {
SendClientMessage(playerid,COLOR_RED,"Error: You are not in a vehicle"); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 1 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/fix", true) == 0) {
if(LAdmin[playerid] >= 1) {
if (IsPlayerInAnyVehicle(playerid)) {
new VehicleID = GetPlayerVehicleID(playerid); SetVehicleHealth(VehicleID,1000.0);
SendClientMessage(playerid,COLOR_BLUE,"Vehicle Fixed");
} else {
SendClientMessage(playerid,COLOR_RED,"Error: You are not in a vehicle"); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 1 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext,"/ltune",true)==0){
if(LAdmin[playerid] >= 1) {
if(IsPlayerInAnyVehicle(playerid)) {
new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
switch(LModel) { case 448,461,462,463,468,471,509,510,521,522,523,581,586: return SendClientMessage(playerid,COLOR_RED,"ERROR: You can not tune bikes!"); }
CMDMessageToAdmins(playerid,"LTUNE"); SetVehicleHealth(GetPlayerVehicleID(playerid),2000.0); TuneLCar(LVehicleID); PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
} else { SendClientMessage(playerid,COLOR_RED,"ERROR: You must be in a vehicle."); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext,"/nos",true)==0){
if(LAdmin[playerid] >= 1) {
if(IsPlayerInAnyVehicle(playerid)) {
new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
switch(LModel) { case 448,461,462,463,468,471,509,510,521,522,523,581,586: return SendClientMessage(playerid,COLOR_RED,"ERROR: You can not tune bikes!"); }
AddVehicleComponent(LVehicleID, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
} else { SendClientMessage(playerid,COLOR_RED,"ERROR: You must be in a vehicle."); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if (strcmp(cmd, "/ladmin", true) ==0 ) {
if(LAdmin[playerid] >= 3) {
new tmp[256], Float:X, Float:Y, Float:Z;
tmp = strtok(cmdtext,idx);
if(!strlen(tmp)) {
SendClientMessage(playerid,COLOR_RED,"USAGE: /ladmin [up / down / +x / -x / +y / -y / off]"); }
else if(strcmp(tmp,"up",true) == 0) {
TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y,Z+5); SetCameraBehindPlayer(playerid); }
else if(strcmp(tmp,"down",true) == 0) {
TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y,Z-5); SetCameraBehindPlayer(playerid); }
else if(strcmp(tmp,"+x",true) == 0) {
TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X+5,Y,Z); }
else if(strcmp(tmp,"-x",true) == 0) {
TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X-5,Y,Z); }
else if(strcmp(tmp,"+y",true) == 0) {
TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y+5,Z); }
else if(strcmp(tmp,"-y",true) == 0) {
TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y-5,Z); }
else if(strcmp(tmp,"off",true) == 0) {
TogglePlayerControllable(playerid,true); }
else {
SendClientMessage(playerid,COLOR_RED,"USAGE: /ladmin [up / down / +x / -x / +y / -y / off]"); }
return 1;
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//==================[ Save More To File ]============================================================
if(strcmp(cmd, "/gotoplace", true) == 0) {
if(LoggedIn[playerid] && LAdmin[playerid] >= 1) {
if (dUserINT(PlayerName2(playerid)).("x")!=0) {
PutAtPos(playerid);
SetPlayerVirtualWorld(playerid, (dUserINT(PlayerName2(playerid)).("world")) );
SendClientMessage(playerid,COLOR_YELLOW,"You have successfully teleported to your saved place");
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You must save a place before you can teleport to it"); }
} else {
SendClientMessage(playerid,COLOR_RED, "ERROR: You must be an administrator to use this command"); }
return 1; }
//------------
if(strcmp(cmd, "/saveplace", true) == 0) {
if(LoggedIn[playerid] && LAdmin[playerid] >= 1) {
new Float:x,Float:y,Float:z, interior;
GetPlayerPos(playerid,x,y,z); interior = GetPlayerInterior(playerid);
dUserSetINT(PlayerName2(playerid)).("x",floatround(x));
dUserSetINT(PlayerName2(playerid)).("y",floatround(y));
dUserSetINT(PlayerName2(playerid)).("z",floatround(z));
dUserSetINT(PlayerName2(playerid)).("interior",interior);
dUserSetINT(PlayerName2(playerid)).("world", (GetPlayerVirtualWorld(playerid)) );
SendClientMessage(playerid,COLOR_YELLOW,"You have successfully saved these coordinates");
} else {
SendClientMessage(playerid,COLOR_RED, "ERROR: You must be an administrator to use this command"); }
return 1; }
//-----------------------------------------
if(strcmp(cmd, "/saveskin", true) == 0)
{
if((LAdmin[playerid] >= 1) && (LoggedIn[playerid] == 1)) {
new skinid, tmp[256],str[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /saveskin [Skinid]");
return 1;
}
skinid = strval(tmp);
if(skinid >= 0 && skinid <= 300) {
dUserSetINT(PlayerName2(playerid)).("FavSkin",skinid);
format(str, sizeof(str), "You have successfully saved this skin[%d]",skinid);
SendClientMessage(playerid,COLOR_YELLOW,str); SendClientMessage(playerid,COLOR_YELLOW,"Type: /useskin to use this skin when you spawn or /dontuseskin to stop using skin");
dUserSetINT(PlayerName2(playerid)).("UseSkin",1);
CMDMessageToAdmins(playerid,"SAVESKIN");
return 1;
} else {
SendClientMessage(playerid, COLOR_GREEN, "ERROR: Invalid Skin ID");
return 1; }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You must be an administrator to use this command"); }
return 1;
}
//------------------------------------------------------------------------------
if(strcmp(cmd, "/useskin", true) == 0) {
if((LAdmin[playerid] >= 1) && (LoggedIn[playerid] == 1)) {
dUserSetINT(PlayerName2(playerid)).("UseSkin",1);
SetPlayerSkin(playerid,dUserINT(PlayerName2(playerid)).("FavSkin"));
SendClientMessage(playerid,COLOR_YELLOW,"Skin now in use"); }
return 1; }
if(strcmp(cmd, "/dontuseskin", true) == 0) {
if((LAdmin[playerid] >= 1) && (LoggedIn[playerid] == 1)) {
dUserSetINT(PlayerName2(playerid)).("UseSkin",0);
SendClientMessage(playerid,COLOR_YELLOW,"Skin will no longer be used"); }
return 1; }
//------------------------------------------------------------------------------
// REMOVED
//__________________________________
/* if(strcmp(cmd, "/levelme", true) == 0) {
if(IsPlayerAdmin(playerid)) {
if (LoggedIn[playerid] == 0) return SendClientMessage(playerid,COLOR_RED,"You Must be Registered And logged In To Be An Admin.");
LAdmin[playerid] = MAX_ADMIN_LEVEL;
dUserSetINT(PlayerName2(playerid)).("level",(MAX_ADMIN_LEVEL));
LAdmin[playerid] = MAX_ADMIN_LEVEL;
new str1[100]; format(str1, sizeof(str1),"You are now the highest level admin [level %d ]", MAX_ADMIN_LEVEL);
SendClientMessage(playerid, COLOR_GREEN, str1);
return 1; }
}*/
//------------------------------------------------------------------------------
if(strcmp(cmd, "/resetstats", true) == 0) {
if(LoggedIn[playerid] == 1) {
// save as backup
dUserSetINT(PlayerName2(playerid)).("oldkills",MyKills[playerid]);
dUserSetINT(PlayerName2(playerid)).("olddeaths",MyDeaths[playerid]);
// stats reset
MyKills[playerid] = 0;
MyDeaths[playerid] = 0;
dUserSetINT(PlayerName2(playerid)).("kills",MyKills[playerid]);
dUserSetINT(PlayerName2(playerid)).("deaths",MyDeaths[playerid]);
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
SendClientMessage(playerid,COLOR_YELLOW,"ACCOUNT: You have successfully reset your stats. Your kills and deaths are: 0");
} else {
SendClientMessage(playerid,COLOR_RED, "ERROR: You must have an account to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/changepass", true) == 0) {
if(LoggedIn[playerid] ==1) {
// GetPlayerName(playerid,playername,sizeof(playername));
// format(file,sizeof(file),"users/%s.ini",playername);
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /changepass [password]");
return 1; }
if(strlen(cmdtext) < 15) {
SendClientMessage(playerid,COLOR_RED,"ACCOUNT: Incorrect password length");
return 1; }
dUserSetINT(PlayerName2(playerid)).("password_hash",udb_hash(cmdtext[12]) );
dUserSet(PlayerName2(playerid)).("Password",cmdtext[12]);
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
format(string, sizeof(string),"ACCOUNT: You have successfully changed your password to [ %s ]",cmdtext[12]);
SendClientMessage(playerid,COLOR_YELLOW,string);
} else {
SendClientMessage(playerid,COLOR_RED, "ERROR: You must have an account to use this command"); }
return 1; }
//==============================================================================
if(strcmp(cmd, "/stats", true) == 0) {
new idplayer, tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
ShowScore(playerid);
return 1; }
idplayer = strval(tmp);
if(IsPlayerConnected(idplayer)) {
GetPlayerName(idplayer, playername, sizeof(playername));
format(string, sizeof(string), "<> %s's Stats: Kills: %d | Deaths: %d | Ratio: %0.2f | Money: $%d ",playername,MyKills[idplayer],MyDeaths[idplayer],Float:MyKills[idplayer]/Float:MyDeaths[idplayer],GetPlayerMoney(idplayer));
SendClientMessage(playerid, COLOR_GREEN, string);
return 1;
} else {
SendClientMessage(playerid, COLOR_WHITE, "Player Not Connected!");
return 1; }
}
//------------------------------------------------------------------------------
if (strcmp(cmd, "/moveplayer", true) ==0 ) {
if(LAdmin[playerid] >= 3) {
new tmp[256], Float:X, Float:Y, Float:Z;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /moveplayer [playerid] [up / down / +x / -x / +y / -y ]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL && LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected or is max admin level");
return 1; }
tmp = strtok(cmdtext, idx);
//if(!strlen(tmp)) {
// SendClientMessage(playerid,COLOR_RED,"USAGE: /moveplayer [playerid] [up / down / +x / -x / +y / -y / off]"); }
if(strcmp(tmp,"up",true) == 0) {
GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X,Y,Z+5); SetCameraBehindPlayer(player1); }
else if(strcmp(tmp,"down",true) == 0) {
GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X,Y,Z-5); SetCameraBehindPlayer(player1); }
else if(strcmp(tmp,"+x",true) == 0) {
GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X+5,Y,Z); }
else if(strcmp(tmp,"-x",true) == 0) {
GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X-5,Y,Z); }
else if(strcmp(tmp,"+y",true) == 0) {
GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X,Y+5,Z); }
else if(strcmp(tmp,"-y",true) == 0) {
GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X,Y-5,Z); }
else {
SendClientMessage(playerid,COLOR_RED,"USAGE: /moveplayer [playerid] [up / down / +x / -x / +y / -y ]"); }
return 1;
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/lweaps", true) == 0) {
if(LAdmin[playerid] >= 3) {
GivePlayerWeapon(playerid,9,1); GivePlayerWeapon(playerid,24,1000); GivePlayerWeapon(playerid,26,1000); GivePlayerWeapon(playerid,28,1000); GivePlayerWeapon(playerid,31,1000); GivePlayerWeapon(playerid,34,1000); GivePlayerWeapon(playerid,38,1000); GivePlayerWeapon(playerid,16,1000); GivePlayerWeapon(playerid,42,1000); GivePlayerWeapon(playerid,14,1000); GivePlayerWeapon(playerid,46,1000);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 3 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/lammo", true) == 0) {
if(LAdmin[playerid] >= 3) {
MaxAmmo(playerid);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 3 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if((strcmp(cmdtext,"/god",true)==0)||(strcmp(cmdtext,"/god",true)==0)) {
if(LAdmin[playerid] >= 3) {
if(God[playerid] == 0) {
God[playerid] = 1;
SetPlayerHealth(playerid,100000);
GivePlayerWeapon(playerid,38,50000); GivePlayerWeapon(playerid,15,50000); GivePlayerWeapon(playerid,26,50000);
SendClientMessage(playerid,COLOR_GREEN,"GODMODE ON");
} else {
God[playerid] = 0;
SendClientMessage(playerid,COLOR_RED,"GODMODE OFF");
SetPlayerHealth(playerid, 100); GivePlayerWeapon(playerid,35,0); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 3 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/die", true) == 0) {
if(LAdmin[playerid] >= 4) {
new Float:x, Float:y, Float:z ;
GetPlayerPos( playerid, Float:x, Float:y, Float:z );
CreateExplosion(Float:x+10, Float:y, Float:z, 8,10.0);
CreateExplosion(Float:x-10, Float:y, Float:z, 8,10.0);
CreateExplosion(Float:x, Float:y+10, Float:z, 8,10.0);
CreateExplosion(Float:x, Float:y-10, Float:z, 8,10.0);
CreateExplosion(Float:x+10, Float:y+10, Float:z, 8,10.0);
CreateExplosion(Float:x-10, Float:y+10, Float:z, 8,10.0);
CreateExplosion(Float:x-10, Float:y-10, Float:z, 8,10.0);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 4 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/burn", true) == 0) {
if(LAdmin[playerid] >= 2) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /burn [playerid]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID && LAdmin[playerid] == 1) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected");
return 1; }
tmp = strtok(cmdtext, idx);
GetPlayerName(player1, playername, sizeof(playername));
GetPlayerName(playerid, adminname, sizeof(adminname));
CMDMessageToAdmins(playerid,"BURN");
format(string,256,"You have been flamed by Administrator \"%s\".",adminname); SendClientMessage(player1,COLOR_BLUE,string);
new Float:burnx, Float:burny, Float:burnz;
GetPlayerPos(player1,burnx, burny, burnz);
CreateExplosion(burnx, burny , burnz + 3, 1, 10);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 2 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/explode", true) == 0) {
if(LAdmin[playerid] >= 3) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /explode [playerid] [reason]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL && LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected or is max admin level");
return 1; }
tmp = strtok(cmdtext, idx);
GetPlayerName(player1, playername, sizeof(playername));
GetPlayerName(playerid, adminname, sizeof(adminname));
CMDMessageToAdmins(playerid,"EXPLODE");
format(string,256,"You have been exploded by Administrator %s [reason: %d]",adminname,cmdtext[11]); SendClientMessage(player1,COLOR_BLUE,string);
format(string,256,"You have exploded %s [reason: %d]", playername,cmdtext[11]); SendClientMessage(playerid,COLOR_BLUE,string);
new Float:burnx, Float:burny, Float:burnz;
GetPlayerPos(player1,burnx, burny, burnz);
CreateExplosion(burnx, burny , burnz, 7,10.0);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 3 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/spawnplayer", true) == 0) {
if(LAdmin[playerid] >= 2) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /spawnplayer [playerid]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL && LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected or is yourself");
return 1; }
tmp = strtok(cmdtext, idx);
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
CMDMessageToAdmins(playerid,"SPAWNPLAYER");
format(string,256,"You have been spawned by Administrator %s",adminname); SendClientMessage(player1,COLOR_BLUE,string);
format(string,256,"You have spawned %s ", playername); SendClientMessage(playerid,COLOR_BLUE,string);
SpawnPlayer(player1);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 3 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/setweather", true) == 0) {
if(LAdmin[playerid] >= 3) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setweather [playerid] [weatherid]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL && LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected or is yourself");
return 1; }
tmp = strtok(cmdtext, idx);
new weather;
weather = strval(tmp);
tmp = strtok(cmdtext, idx);
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s has changed your weather",adminname); if(player1 != playerid) { SendClientMessage(player1,COLOR_BLUE,string); }
format(string,256,"You have changed %s's weather ",playername); SendClientMessage(playerid,COLOR_BLUE,string);
CMDMessageToAdmins(playerid,"SETWEATHER"); SetPlayerWeather(player1,weather); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); PlayerPlaySound(player1,1057,0.0,0.0,0.0);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 3 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/settime", true) == 0) {
if(LAdmin[playerid] >= 3) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /settime [playerid] [hour] [minute]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL && LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected or is yourself");
return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /settime [playerid] [hour] [minute]");
return 1; }
new timeh;
timeh = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /settime [playerid] [hour] [minute]");
return 1; }
new timem;
timem = strval(tmp);
tmp = strtok(cmdtext, idx);
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s has changed your time to %d : %d",adminname,timeh,timem); if(player1 != playerid) { SendClientMessage(player1,COLOR_BLUE,string); }
format(string,256,"You have changed %s's time to %d:%d",playername,timeh,timem); SendClientMessage(playerid,COLOR_BLUE,string);
CMDMessageToAdmins(playerid,"SETTIME"); SetPlayerTime(player1,timeh,timem); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); PlayerPlaySound(player1,1057,0.0,0.0,0.0);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 3 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/setmytime", true) == 0) {
if(LAdmin[playerid] >= 1) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setmytime [hour] [minute]");
return 1; }
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setmytime [hour] [minute]");
return 1; }
new timeh;
timeh = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setmytime [hour] [minute]");
return 1; }
new timem;
timem = strval(tmp);
tmp = strtok(cmdtext, idx);
GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"You have changed your time to %d:%d",adminname,timeh,timem); SendClientMessage(playerid,COLOR_BLUE,string);
CMDMessageToAdmins(playerid,"SETMYTIME"); SetPlayerTime(playerid,timeh,timem); PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 1 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/disarm", true) == 0) {
if(LAdmin[playerid] >= 2) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /disarm [playerid]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL && LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected or is yourself");
return 1; }
tmp = strtok(cmdtext, idx);
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
CMDMessageToAdmins(playerid,"DISARM"); PlayerPlaySound(player1,1057,0.0,0.0,0.0);
format(string,256,"You have been disarmed by Administrator %s",adminname); SendClientMessage(player1,COLOR_BLUE,string);
format(string,256,"You have disarmed %s ", playername); SendClientMessage(playerid,COLOR_BLUE,string);
ResetPlayerWeapons(player1);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/kick", true) == 0) {
if(LAdmin[playerid] >= 3) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /kick [playerid] [reason]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected or is yourself");
return 1; }
tmp = strtok(cmdtext, idx);
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
CMDMessageToAdmins(playerid,"KICK");
format(string,256,"%s has been kicked by Administrator %s [reason: %s] ",playername,adminname,cmdtext[7]); SendClientMessageToAll(COLOR_GREY,string);
SaveToFile("BanKickLog",string); Kick(player1);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/ban", true) == 0) {
if(LAdmin[playerid] >= 3) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /ban [playerid] [reason]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected or is yourself");
return 1; }
tmp = strtok(cmdtext, idx);
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
new year,month,day; getdate(year, month, day); new strdate[20]; format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
CMDMessageToAdmins(playerid,"BAN");
format(string,256,"%s has been banned by Administrator %s [Reason: %s] [Date: %s] ",playername,adminname,cmdtext[6],strdate); SendClientMessageToAll(COLOR_GREY,string);
SaveToFile("BanKickLog",string); Ban(player1);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/slap", true) == 0) {
if(LAdmin[playerid] >= 2) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /slap [playerid] [reason]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected or is yourself");
return 1; }
tmp = strtok(cmdtext, idx);
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
CMDMessageToAdmins(playerid,"SLAP");
format(string,256,"You have been slapped by Administrator %s %s ",adminname,cmdtext[7]); SendClientMessage(player1,COLOR_RED,string);
format(string,256,"You have slapped %s %s ",playername,cmdtext[7]); SendClientMessage(playerid,COLOR_BLUE,string);
new Float:Health, Float:x, Float:y, Float:z; GetPlayerHealth(player1,Health); SetPlayerHealth(player1,Health-25); GetPlayerPos(player1,x,y,z); SetPlayerPos(player1,x,y,z+5); PlayerPlaySound(playerid,1190,0.0,0.0,0.0); PlayerPlaySound(player1,1190,0.0,0.0,0.0);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 2 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/mute", true) == 0) {
if(LAdmin[playerid] >= 2) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /mute [playerid] [reason]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL)) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected or is yourself");
return 1; }
tmp = strtok(cmdtext, idx);
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
CMDMessageToAdmins(playerid,"MUTE");
PlayerPlaySound(player1,1057,0.0,0.0,0.0); IsPlayerMuted[player1] = 1; mutedwarning[player1] = 0;
format(string,256,"You have been muted by Administrator %s [reason: %s] ",adminname,cmdtext[8]); SendClientMessage(player1,COLOR_RED,string);
format(string,256,"You have muted %s [reason: %s] ",playername,cmdtext[8]); SendClientMessage(playerid,COLOR_BLUE,string);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/unmute", true) == 0) {
if(LAdmin[playerid] >= 2) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /unmute [playerid] [reason]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected or is yourself");
return 1; }
tmp = strtok(cmdtext, idx);
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
CMDMessageToAdmins(playerid,"UNMUTE");
PlayerPlaySound(player1,1057,0.0,0.0,0.0); IsPlayerMuted[player1] = 0; mutedwarning[player1] = 0;
format(string,256,"You have been unmuted by Administrator %s",adminname); SendClientMessage(player1,COLOR_RED,string);
format(string,256,"You have unmuted %s",playername); SendClientMessage(playerid,COLOR_BLUE,string);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/setlevel", true) == 0)
{
if(LAdmin[playerid] >= 3) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setlevel [playerid] [level]");
return 1;
}
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected");
return 1; }
if(LoggedIn[player1] == 0) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player must be registered to be an admin");
return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setlevel [playerid] [level]");
return 1; }
new level;
level = strval(tmp);
if(level > MAX_ADMIN_LEVEL ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Incorrect Level");
return 1; }
tmp = strtok(cmdtext, idx);
CMDMessageToAdmins(playerid,"SETLEVEL");
GetPlayerName(player1, playername, sizeof(playername));
GetPlayerName(playerid, adminname, sizeof(adminname));
new year,month,day; getdate(year, month, day);
if(level==1) { format(string,256,"Administrator %s has set you to Member Status [ level %d ]",adminname,level); SendClientMessage(player1,COLOR_BLUE,string);
} else { format(string,256,"Administrator %s has set you to Administrator Status [ level %d ]",adminname,level); SendClientMessage(player1,COLOR_BLUE,string); }
format(string,256,"You have made %s [Level %d] on %d/%d/%d", playername, level, day, month, year); SendClientMessage(playerid,COLOR_BLUE,string);
format(string,256,"Administrator %s has made %s [Level %d] on %d/%d/%d",adminname, playername, level, day, month, year); SaveToFile("AdminLog",string);
dUserSetINT(PlayerName2(player1)).("level",(level));
LAdmin[player1] = level;
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/settemplevel", true) == 0)
{
if(LAdmin[playerid] >= 3) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /settemplevel [playerid] [level]");
return 1;
}
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || player1 == playerid || (LAdmin[player1] == MAX_ADMIN_LEVEL && LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected Or is yourself" );
return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /settemplevel [playerid] [level]");
return 1; }
new level;
level = strval(tmp);
if(level > LAdmin[playerid] ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Incorrect Level");
return 1; }
tmp = strtok(cmdtext, idx);
CMDMessageToAdmins(playerid,"SETTEMPLEVEL");
GetPlayerName(player1, playername, sizeof(playername));
GetPlayerName(playerid, adminname, sizeof(adminname));
new year,month,day; getdate(year, month, day);
if(level==1) { format(string,256,"Administrator %s has temporarily set you to Member Status [ level %d ]",adminname,level); SendClientMessage(player1,COLOR_BLUE,string);
} else { format(string,256,"Administrator %s has temporarily set you to Administrator Status [ level %d ]",adminname,level); SendClientMessage(player1,COLOR_BLUE,string); }
format(string,256,"You have temporarily made %s [Level %d] on %d/%d/%d", playername, level, day, month, year); SendClientMessage(playerid,COLOR_BLUE,string);
format(string,256,"Administrator %s has temporarily made %s [Level %d] on %d/%d/%d",adminname, playername, level, day, month, year); SaveToFile("TempAdminLog",string);
LAdmin[player1] = level;
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/ljail", true) == 0)
{
if(LAdmin[playerid] >= 3) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /ljail [playerid] [time] [reason]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL)) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected or is yourself");
return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /ljail [playerid] [time] [reason]");
return 1; }
new jtime;
jtime = strval(tmp);
if(jtime < 10 ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Incorrect Time (must be higher)");
return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /ljail [playerid] [time] [reason]");
return 1; }
CMDMessageToAdmins(playerid,"LJail");
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s has jailed you for %d seconds[reason: %s]",adminname,jtime,cmdtext[12]); SendClientMessage(player1,COLOR_BLUE,string);
format(string,256,"Administrator %s has jailed %s for %d seconds [reason: %s]",adminname, playername, jtime, cmdtext[12]); SendClientMessageToAll(COLOR_BLUE,string);
jailnoob[player1] = jtime;
SetTimerEx("JailPlayer",5000,0,"d",player1, jtime);
SetTimerEx("Jail1",1000,0,"d",player1);
IsPlayerInJail[player1] = 1;
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/freeze", true) == 0) {
if(LAdmin[playerid] >= 3) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /freeze [playerid] [time] [reason]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL && LAdmin[playerid] != MAX_ADMIN_LEVEL)) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected or is yourself");
return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /freeze [playerid] [time] [reason]");
return 1; }
new ftime;
ftime = strval(tmp);
if(ftime < 5 ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Incorrect Time (must be higher)");
return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /freeze [playerid] [time] [reason]");
return 1; }
CMDMessageToAdmins(playerid,"Freeze");
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s has frozen you for %d seconds [reason: %s]",adminname,ftime,cmdtext[12]); SendClientMessage(player1,COLOR_BLUE,string);
format(string,256,"Administrator %s has frozen %s for %d seconds [reason: %s]",adminname, playername, ftime, cmdtext[12]); SendClientMessageToAll(COLOR_BLUE,string);
TogglePlayerControllable(player1,false); IsPlayerFrozen[player1] = 1; PlayerPlaySound(player1,1057,0.0,0.0,0.0);
freezenoob[player1] = ftime;
SetTimerEx("UnFreezeMe",freezenoob[player1]*1000,0,"d",player1);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/write", true) == 0) {
if(LAdmin[playerid] >= 1) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /write [Colour] [Text]");
SendClientMessage(playerid, COLOR_RED, "Colours: 0=black 1=white 2=red 3=orange 4=yellow 5=green 6=blue 7=purple 8=brown 9=pink");
return 1; }
new Colour;
Colour = strval(tmp);
if(Colour > 9 ) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /write [Colour] [Text]");
SendClientMessage(playerid, COLOR_RED, "Colours: 0=black 1=white 2=red 3=orange 4=yellow 5=green 6=blue 7=purple 8=brown 9=pink");
return 1; }
tmp = strtok(cmdtext, idx);
CMDMessageToAdmins(playerid,"WRITE");
if(Colour == 0) { format(string,256,"%s",cmdtext[9]); SendClientMessageToAll(COLOR_BLACK,string); return 1; }
else if(Colour == 1) { format(string,256,"%s",cmdtext[9]); SendClientMessageToAll(COLOR_WHITE,string); return 1; }
else if(Colour == 2) { format(string,256,"%s",cmdtext[9]); SendClientMessageToAll(COLOR_RED,string); return 1; }
else if(Colour == 3) { format(string,256,"%s",cmdtext[9]); SendClientMessageToAll(COLOR_ORANGE,string); return 1; }
else if(Colour == 4) { format(string,256,"%s",cmdtext[9]); SendClientMessageToAll(COLOR_YELLOW,string); return 1; }
else if(Colour == 5) { format(string,256,"%s",cmdtext[9]); SendClientMessageToAll(COLOR_GREEN1,string); return 1; }
else if(Colour == 6) { format(string,256,"%s",cmdtext[9]); SendClientMessageToAll(COLOR_BLUE,string); return 1; }
else if(Colour == 7) { format(string,256,"%s",cmdtext[9]); SendClientMessageToAll(COLOR_PURPLE,string); return 1; }
else if(Colour == 8) { format(string,256,"%s",cmdtext[9]); SendClientMessageToAll(COLOR_BROWN,string); return 1; }
else if(Colour == 9) { format(string,256,"%s",cmdtext[9]); SendClientMessageToAll(COLOR_PINK,string); return 1; }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 1 to use this command"); }
return 1; }
//-----------------------------------------------------------------------------
if(strcmp(cmd, "/lockdoors", true) == 0) {
if(LAdmin[playerid] >= 2) {
if(IsPlayerInAnyVehicle(playerid)) {
for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,false,true);
CMDMessageToAdmins(playerid,"LOCKDOORS");
DoorsLocked[playerid] = 1;
GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s has locked his car",adminname); SendClientMessageToAll(COLOR_BLUE,string);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be in a vehicle to lock the doors"); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 2 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/unlockdoors", true) == 0) {
if(LAdmin[playerid] >= 2) {
if(IsPlayerInAnyVehicle(playerid)) {
for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,false,false);
CMDMessageToAdmins(playerid,"UNLOCKDOORS");
GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s has unlocked his car",adminname); SendClientMessageToAll(COLOR_BLUE,string);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be in a vehicle to lock the doors"); }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 2 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/lunjail", true) == 0) {
if(LAdmin[playerid] >= 3) {
new player1, tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /lunjail [playerid]");
return 1; }
player1 = strval(tmp);
if(IsPlayerConnected(player1)) {
CMDMessageToAdmins(playerid,"LUnJail");
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s has unjailed you",adminname); SendClientMessage(player1,COLOR_BLUE,string);
format(string,256,"Administrator %s has unjailed %s",adminname, playername); SendClientMessageToAll(COLOR_BLUE,string);
TogglePlayerControllable(player1,true); SpawnPlayer(player1); IsPlayerInJail[player1] = 0;
return 1;
} else {
SendClientMessage(playerid, COLOR_RED, "Player is not connected");
return 1; }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/unfreeze", true) == 0) {
if(LAdmin[playerid] >= 3) {
new player1, tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /unfreeze [playerid]");
return 1; }
player1 = strval(tmp);
if(IsPlayerConnected(player1)) {
CMDMessageToAdmins(playerid,"Unfreeze");
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s has unfrozen you",adminname); SendClientMessage(player1,COLOR_BLUE,string);
format(string,256,"Administrator %s has unfrozen %s",adminname, playername); SendClientMessageToAll(COLOR_BLUE,string);
TogglePlayerControllable(player1,true); IsPlayerFrozen[player1] = 0; PlayerPlaySound(player1,1057,0.0,0.0,0.0);
return 1;
} else {
SendClientMessage(playerid, COLOR_RED, "Player is not connected");
return 1; }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/akill", true) == 0) {
if(LAdmin[playerid] >= 3) {
new player1, tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /akill [playerid]");
return 1; }
player1 = strval(tmp);
if(IsPlayerConnected(player1)) {
CMDMessageToAdmins(playerid,"AKILL");
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s has killed you",adminname); SendClientMessage(player1,COLOR_BLUE,string);
format(string,256,"You have killed %s",playername); SendClientMessage(playerid,COLOR_BLUE,string);
SetPlayerHealth(player1,0.0);
return 1;
} else {
SendClientMessage(playerid, COLOR_RED, "Player is not connected");
return 1; }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
if(strcmp(cmd, "/goto", true) == 0) {
if(LAdmin[playerid] >= 2) {
new player1, tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /goto [playerid]");
return 1; }
player1 = strval(tmp);
if(IsPlayerConnected(player1)) {
CMDMessageToAdmins(playerid,"GOTO");
new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z); SetPlayerInterior(playerid,GetPlayerInterior(player1));
SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(player1));
if(GetPlayerState(playerid) == 2) {
SetVehiclePos(GetPlayerVehicleID(playerid),x+3,y,z); LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(player1));
SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(player1));
} else {
SetPlayerPos(playerid,x+2,y,z); }
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
//format(string,256,"Administrator %s has teleported to you",adminname); SendClientMessage(player1,COLOR_BLUE,string);
format(string,256,"You have teleported to %s", playername); SendClientMessage(playerid,COLOR_BLUE,string);
return 1;
} else {
SendClientMessage(playerid, COLOR_RED, "Player is not connected");
return 1; }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/gethere", true) == 0) {
if(LAdmin[playerid] >= 3) {
new player1, tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /gethere [playerid]");
return 1; }
player1 = strval(tmp);
if(IsPlayerConnected(player1)) {
CMDMessageToAdmins(playerid,"GETHERE");
new Float:x, Float:y, Float:z; GetPlayerPos(playerid,x,y,z); SetPlayerInterior(player1,GetPlayerInterior(playerid));
SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(playerid));
if(GetPlayerState(player1) == 2) {
new VehicleID = GetPlayerVehicleID(player1);
SetVehiclePos(VehicleID,x+3,y,z); LinkVehicleToInterior(VehicleID,GetPlayerInterior(playerid));
SetVehicleVirtualWorld(GetPlayerVehicleID(player1),GetPlayerVirtualWorld(playerid));
} else {
SetPlayerPos(player1,x+2,y,z); }
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"You have been teleported to Administrator %s's location",adminname); SendClientMessage(player1,COLOR_BLUE,string);
format(string,256,"You have teleported %s to your location", playername); SendClientMessage(playerid,COLOR_BLUE,string);
return 1;
} else {
SendClientMessage(playerid, COLOR_RED, "Player is not connected");
return 1; }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/giveweapon", true) == 0)
{
if(LAdmin[playerid] >= 2) {
new player1, tmp[256],weap,ammo;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /giveweapon [playerid] [weapon id]");
return 1; }
player1 = strval(tmp);
tmp = strtok(cmdtext, idx);
weap = strval(tmp);
if(!IsValidWeapon(weap)) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Incorrect Weapon ID");
return 1; }
tmp = strtok(cmdtext, idx);
ammo = strval(tmp);
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
if(IsPlayerConnected(player1)) {
CMDMessageToAdmins(playerid,"GIVEWEAPON");
GivePlayerWeapon(player1, weap, ammo);
format(string, sizeof(string), "You have given %s weapon id: %d with %d rounds of ammo", playername,weap,ammo); SendClientMessage(playerid,COLOR_BLUE,string);
format(string,256,"Administrator %s has given you weapon id: %d with %d rounds of ammo",adminname,weap,ammo); if(player1 != playerid) { SendClientMessage(player1,COLOR_BLUE,string); }
return 1;
} else {
SendClientMessage(playerid, COLOR_RED, "Player is not connected");
return 1; }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/sethealth", true) == 0)
{
if(LAdmin[playerid] >= 3) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /sethealth [playerid] [Amount]");
return 1;
}
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL && LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected or is yourself");
return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /sethealth [playerid] [Amount]");
return 1;
}
new amount;
amount = strval(tmp);
if((amount > 100) && (LAdmin[player1] != MAX_ADMIN_LEVEL) && (LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Incorrect Health Amount"); }
tmp = strtok(cmdtext, idx);
CMDMessageToAdmins(playerid,"SETHEALTH");
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s has set your health to %d",adminname,amount); if(player1 != playerid) { SendClientMessage(player1,COLOR_BLUE,string); }
format(string,256,"You have set %s's health to %d",playername,amount); SendClientMessage(playerid,COLOR_BLUE,string);
SetPlayerHealth(player1,amount);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/setarmour", true) == 0)
{
if(LAdmin[playerid] >= 3) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setarmour [playerid] [Amount]");
return 1;
}
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL && LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected or is yourself");
return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setarmour [playerid] [Amount]");
return 1;
}
new amount;
amount = strval(tmp);
if((amount > 100) && (LAdmin[player1] != MAX_ADMIN_LEVEL) && (LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Incorrect Armour Amount"); }
tmp = strtok(cmdtext, idx);
CMDMessageToAdmins(playerid,"SETARMOUR");
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s has set your armour to %d",adminname,amount); if(player1 != playerid) { SendClientMessage(player1,COLOR_BLUE,string); }
format(string,256,"You have set %s's armour to %d",playername,amount); SendClientMessage(playerid,COLOR_BLUE,string);
SetPlayerArmour(player1,amount);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/setcash", true) == 0)
{
if(LAdmin[playerid] >= 2) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setcash [playerid] [Amount]");
return 1;
}
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL && LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected");
return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setcash [playerid] [Amount]");
return 1; }
new amount;
amount = strval(tmp);
tmp = strtok(cmdtext, idx);
CMDMessageToAdmins(playerid,"SETCASH");
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s has set your cash to $%d",adminname,amount); if(player1 != playerid) { SendClientMessage(player1,COLOR_BLUE,string); }
format(string,256,"You have set %s's cash to $%d",playername,amount); SendClientMessage(playerid,COLOR_BLUE,string);
ResetPlayerMoney(player1); GivePlayerMoney(player1,amount);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/setscore", true) == 0)
{
if(LAdmin[playerid] >= 2) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setscore [playerid] [Amount]");
return 1;
}
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL && LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected or is yourself");
return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setscore [playerid] [Amount]");
return 1;
}
new score;
score = strval(tmp);
tmp = strtok(cmdtext, idx);
CMDMessageToAdmins(playerid,"SETSCORE");
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s has set your score to %d",adminname,score); if(player1 != playerid) { SendClientMessage(player1,COLOR_BLUE,string); }
format(string,256,"You have set %s's score to %d",playername,score); SendClientMessage(playerid,COLOR_BLUE,string);
SetPlayerScore(player1,score);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/setskin", true) == 0)
{
if(LAdmin[playerid] >= 2) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setskin [playerid] [skinid]");
return 1;
}
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL && LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected");
return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setskin [playerid] [skinid]");
return 1; }
new SkinID;
SkinID = strval(tmp);
if((SkinID == 0)||(SkinID == 7)||(SkinID >= 9 && SkinID <= 41)||(SkinID >= 43 && SkinID <= 64)||(SkinID >= 66 && SkinID <= 73)||(SkinID >= 75 && SkinID <= 85)||(SkinID >= 87 && SkinID <= 118)||(SkinID >= 120 && SkinID <= 148)||(SkinID >= 150 && SkinID <= 207)||(SkinID >= 209 && SkinID <= 264)||(SkinID >= 274 && SkinID <= 288)||(SkinID >= 290 && SkinID <= 299)) {
tmp = strtok(cmdtext, idx);
CMDMessageToAdmins(playerid,"SETSKIN");
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s has set your skin to %d",adminname,SkinID); if(player1 != playerid) { SendClientMessage(player1,COLOR_BLUE,string); }
format(string,256,"You have set %s's skin to %d",playername,SkinID); SendClientMessage(playerid,COLOR_BLUE,string);
SetPlayerSkin(player1,SkinID);
} else { SendClientMessage(playerid,COLOR_RED,"ERROR: Incorrect skin id"); return 1; }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/setwanted", true) == 0)
{
if(LAdmin[playerid] >= 1) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setwanted [playerid] [level]");
return 1;
}
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL && LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected");
return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setwanted [playerid] [level]");
return 1; }
new SkinID;
SkinID = strval(tmp);
if(SkinID < 7) {
tmp = strtok(cmdtext, idx);
CMDMessageToAdmins(playerid,"SETWANTED");
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s has set your wanted level to %d",adminname,SkinID); if(player1 != playerid) { SendClientMessage(player1,COLOR_BLUE,string); }
format(string,256,"You have set %s's wanted level to %d",playername,SkinID); SendClientMessage(playerid,COLOR_BLUE,string);
SetPlayerWantedLevel(player1,SkinID);
} else { SendClientMessage(playerid,COLOR_RED,"ERROR: Incorrect wanted level"); return 1; }
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/setname", true) == 0)
{
if(LAdmin[playerid] >= 3) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setname [playerid] [Name]");
return 1;
}
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL && LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected or is yourself");
return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setname [playerid] [Name]");
return 1; }
new NewName;
NewName = strval(tmp);
new length = strlen(cmdtext);
if(length < 14 || length > 30 ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Incorrect Name Length");
return 1; }
tmp = strtok(cmdtext, idx);
PlayerNewName[player1] = NewName;
CMDMessageToAdmins(playerid,"SETNAME");
new strname[30]; format(strname,30,"%s",cmdtext[11]);
GetPlayerName(player1, playername, sizeof(playername));
SetPlayerName(player1,cmdtext[11]); //OnPlayerConnect(player1);
GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s has set your name to %s",adminname,cmdtext[11]); if(player1 != playerid) { SendClientMessage(player1,COLOR_BLUE,string); }
format(string,256,"You have set %s's name to %s",playername,cmdtext[11]); SendClientMessage(playerid,COLOR_BLUE,string);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd,"/carcolour",true) == 0) {
if(LAdmin[playerid] >= 1) {
new tmp[256], colour1, colour2;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /carcolour [playerid] [colour 1] [colour 2]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL && LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected or is yourself");
return 1; }
tmp = strtok(cmdtext, idx);
colour1 = strval(tmp);
if(colour1 < 0 || colour1 > 126) {
SendClientMessage(playerid, COLOR_RED, "ERROR: Colour Number can't be below 0 or above 126");
return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /carcolour [playerid] [colour 1] [colour 2]");
return 1; }
colour2 = strval(tmp);
if(colour2 < 0 || colour2 > 126) {
SendClientMessage(playerid, COLOR_RED, "ERROR: Colour Number can't be below 0 or above 126");
return 1; }
CMDMessageToAdmins(playerid,"CARCOLOUR");
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s has set your vehicle's colour to: Colour1 ID %d || Colour2 ID %d",adminname,colour1,colour2); if(player1 != playerid) { SendClientMessage(player1,COLOR_BLUE,string); }
format(string,256,"You have set %s's vehicle's colour to: Colour1 ID %d || Colour2 ID %d",playername,colour1,colour2); SendClientMessage(playerid,COLOR_BLUE,string);
ChangeVehicleColor(GetPlayerVehicleID(player1),colour1,colour2);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 1 to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd,"/carhealth",true) == 0) {
if(LAdmin[playerid] >= 3) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /carhealth [playerid] [Amount]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL && LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected or is yourself");
return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /carhealth [playerid] [Amount]");
return 1; }
new amount;
amount = strval(tmp);
if((amount < 0 || amount > 1000000) && (LAdmin[player1] != MAX_ADMIN_LEVEL) && (LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Incorrect Health Amount ");
return 1; }
tmp = strtok(cmdtext, idx);
CMDMessageToAdmins(playerid,"CARHEALTH");
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s has set your vehicle health to %d",adminname,amount); if(player1 != playerid) { SendClientMessage(player1,COLOR_BLUE,string); }
format(string,256,"You have set %s's vehicle health to %d",playername,amount); SendClientMessage(playerid,COLOR_BLUE,string);
SetVehicleHealth(GetPlayerVehicleID(player1),amount);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//=========================[EJECT]==============================================
if(strcmp(cmd, "/eject", true) == 0) {
if(LAdmin[playerid] >= 3) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /eject [playerid]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL && LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected");
return 1; }
tmp = strtok(cmdtext, idx);
CMDMessageToAdmins(playerid,"EJECT");
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s has ejects you",adminname); if(player1 != playerid) { SendClientMessage(player1,COLOR_BLUE,string); }
format(string,256,"You have ejected %s",playername); SendClientMessage(playerid,COLOR_BLUE,string);
RemovePlayerFromVehicle(player1);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/fu", true) == 0) {
if(LAdmin[playerid] >= 2) {
new tmp[256],NewName[20];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /fu [playerid]");
return 1; }
new player1;
player1 = strval(tmp);
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (LAdmin[player1] == MAX_ADMIN_LEVEL && LAdmin[playerid] != MAX_ADMIN_LEVEL) ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected");
return 1; }
tmp = strtok(cmdtext, idx);
CMDMessageToAdmins(playerid,"F U");
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,256,"Administrator %s says fuck you",adminname); if(player1 != playerid) { SendClientMessage(player1,COLOR_BLUE,string); }
format(string,256,"You have told %s fuck you",playername); SendClientMessage(playerid,COLOR_BLUE,string);
SetPlayerHealth(player1,1.0); SetPlayerArmour(player1,0.0); ResetPlayerWeapons(player1);ResetPlayerMoney(player1);GivePlayerWeapon(player1,24,1);
SetPlayerSkin(player1, 137); SetPlayerScore(player1, 0); SetPlayerColor(player1,COLOR_PINK); SetPlayerWeather(player1,19);
format(NewName,sizeof(NewName),"[Noob]%s",playername); SetPlayerName(player1,NewName);
if(IsPlayerInAnyVehicle(player1)) EraseVehicle(GetPlayerVehicleID(player1));
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/laston", true) == 0) {
if(LAdmin[playerid] >= 2) {
new file[256],name[24],str[256]; GetPlayerName(playerid,name,24); format(file,256,"/users/%s.sav",udb_encode(name));
new tmp2[256];
if(dUserINT(PlayerName2(playerid)).("LastOn")==0) {
format(str, sizeof(str),"Never");
tmp2 = str;
} else {
tmp2 = dini_Get(file,"LastOn"); }
format(str, sizeof(str),"Last on = %s",tmp2);
SendClientMessage(playerid, COLOR_RED, str);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/getinfo", true) == 0)
{
if(LAdmin[playerid] >= 2) {
new tmp[256];
tmp = strtok(cmdtext, idx);
new player1;
player1 = strval(tmp);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /getinfo [playerid]");
}
if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID ) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected");
return 1; }
tmp = strtok(cmdtext, idx);
GetPlayerName(player1, playername, sizeof(playername));
new Float:player1health, Float:player1armour; GetPlayerHealth(player1,player1health); GetPlayerArmour(player1,player1armour);
new playerip[256]; GetPlayerIp(player1, playerip, sizeof(playerip));
new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
if(LoggedIn[player1] == 1)
{
new getinfotext[256];
format(getinfotext, sizeof(getinfotext),"INFO: [ ID: %d || Name: %s ]",player1, playername);
SendClientMessage(playerid,COLOR_BLUE,getinfotext);
format(getinfotext, sizeof(getinfotext),"INFO: Health[%d] Armour[%d] Ammo[%d] Score[%d] Cash[%d] Skin[%d] IP[%s] Ping[%d]",floatround(player1health),floatround(player1armour),GetPlayerAmmo(player1),
GetPlayerScore(player1),GetPlayerMoney(player1),GetPlayerSkin(player1),playerip,GetPlayerPing(player1) );
SendClientMessage(playerid,COLOR_BLUE,getinfotext);
format(getinfotext, sizeof(getinfotext),"INFO: Interior[%d] Virtual World[%d] Wanted Level[%d] X[%0.2f] Y[%0.2f] Z[%0.2f]", GetPlayerInterior(player1), GetPlayerVirtualWorld(player1), GetPlayerWantedLevel(player1),
Float:x,Float:y,Float:z);
SendClientMessage(playerid,COLOR_BLUE,getinfotext);
format(getinfotext, sizeof(getinfotext),"INFO: Times On Server [%d] Kills[%d] Deaths[%d] Ratio[%0.2f] AdminLevel[%d]", (dUserINT(PlayerName2(player1)).("TimesOnServer")),
MyKills[player1] ,MyDeaths[player1],Float:MyKills[player1]/Float:MyDeaths[player1],(dUserINT(PlayerName2(player1)).("level")) );
SendClientMessage(playerid,COLOR_BLUE,getinfotext);
format(getinfotext, sizeof(getinfotext),"INFO: Registered[%d] Logged[%d] In Jail[%d] Frozen [%d]",(dUserINT(PlayerName2(player1)).("Registered")), (dUserINT(PlayerName2(player1)).("LoggedIn")),
IsPlayerInJail[player1], IsPlayerFrozen[player1] );
SendClientMessage(playerid,COLOR_BLUE,getinfotext);
} else {
new getinfotext[256];
format(getinfotext, sizeof(getinfotext),"INFO: [ ID: %d || Name: %s ]",player1, playername);
SendClientMessage(playerid,COLOR_BLUE,getinfotext);
format(getinfotext, sizeof(getinfotext),"INFO: Health:[%d] Armour:[%d] Ammo[%d] Score[%d] Cash[%d] Skin[%d] IP[%s] Ping[%d]",floatround(player1health),floatround(player1armour),GetPlayerAmmo(player1),
GetPlayerScore(player1),GetPlayerMoney(player1),GetPlayerSkin(player1),playerip,GetPlayerPing(player1) );
SendClientMessage(playerid,COLOR_BLUE,getinfotext);
format(getinfotext, sizeof(getinfotext),"INFO: Interior[%d] Virtual World[%d] Wanted Level[%d] X[%0.2f] Y[%0.2f] Z[%0.2f]", GetPlayerInterior(player1), GetPlayerVirtualWorld(player1), GetPlayerWantedLevel(player1),
Float:x,Float:y,Float:z);
SendClientMessage(playerid,COLOR_BLUE,getinfotext);
format(getinfotext, sizeof(getinfotext),"INFO: Times On Server [%d] Kills[%d] Deaths[%d] Ratio[%0.2f] AdminLevel[%d]", (dUserINT(PlayerName2(player1)).("TimesOnServer")),
MyKills[player1] ,MyDeaths[player1],Float:MyKills[player1]/Float:MyDeaths[player1],(dUserINT(PlayerName2(player1)).("level")) );
SendClientMessage(playerid,COLOR_BLUE,getinfotext);
format(getinfotext, sizeof(getinfotext),"INFO: [ Not Registered ] [ Not Logged In ] In Jail[%d] Frozen [%d]", IsPlayerInJail[player1], IsPlayerFrozen[player1] );
SendClientMessage(playerid,COLOR_BLUE,getinfotext);
}
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be administrator level 2 to use this command"); }
return 1; }
//==============================================================================
if(strcmp(cmd, "/getall", true) == 0) {
if(LAdmin[playerid] >= 3) {
new Float:x,Float:y,Float:z, interior;
GetPlayerPos(playerid,x,y,z); interior = GetPlayerInterior(playerid);
SendClientMessage(playerid,COLOR_BLUE,"All players are now at your location");
CMDMessageToAdmins(playerid,"GETALL"); GetPlayerName(playerid, adminname, sizeof(adminname));
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && i != playerid) {
SetPlayerPos(i,x+2,y+2,z); SetPlayerInterior(i,interior); PlayerPlaySound(i,1057,0.0,0.0,0.0); format(string,256,"Administrator %s has teleported you",adminname); SendClientMessage(i,COLOR_BLUE,string); }
}
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/healall", true) == 0) {
if(LAdmin[playerid] >= 3) {
CMDMessageToAdmins(playerid,"HEALALL"); GetPlayerName(playerid, adminname, sizeof(adminname));
SendClientMessage(playerid,COLOR_BLUE,"You have healed all players");
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) == 1) {
SetPlayerHealth(i,100.0); PlayerPlaySound(i,1057,0.0,0.0,0.0); format(string,256,"Administrator %s has restored your health",adminname); SendClientMessage(i,COLOR_BLUE,string); }
}
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/armourall", true) == 0) {
if(LAdmin[playerid] >= 3) {
CMDMessageToAdmins(playerid,"ARMOURALL"); GetPlayerName(playerid, adminname, sizeof(adminname));
SendClientMessage(playerid,COLOR_BLUE,"You have given all players armour");
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) == 1) {
SetPlayerArmour(i,100.0); PlayerPlaySound(i,1057,0.0,0.0,0.0); format(string,256,"Administrator %s has restored your armour",adminname); SendClientMessage(i,COLOR_BLUE,string); }
}
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/killall", true) == 0) {
if(LAdmin[playerid] >= 3) {
CMDMessageToAdmins(playerid,"KILLALL"); GetPlayerName(playerid, adminname, sizeof(adminname));
SendClientMessage(playerid,COLOR_BLUE,"You have killed all players");
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) == 1 && (i != playerid) && i != MAX_ADMIN_LEVEL) {
SetPlayerHealth(i,0.0); format(string,256,"Administrator %s has killed you",adminname); SendClientMessage(i,COLOR_BLUE,string); }
}
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/freezeall", true) == 0) {
if(LAdmin[playerid] >= 3) {
CMDMessageToAdmins(playerid,"FREEZEALL"); GetPlayerName(playerid, adminname, sizeof(adminname));
SendClientMessage(playerid,COLOR_BLUE,"You have frozen all players");
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) == 1 && (i != playerid) && i != MAX_ADMIN_LEVEL) {
TogglePlayerControllable(playerid,false); format(string,256,"Administrator %s has frozen you",adminname); SendClientMessage(i,COLOR_BLUE,string); }
}
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/unfreezeall", true) == 0) {
if(LAdmin[playerid] >= 3) {
CMDMessageToAdmins(playerid,"UNFREEZEALL"); GetPlayerName(playerid, adminname, sizeof(adminname));
SendClientMessage(playerid,COLOR_BLUE,"You have unfrozen all players");
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) == 1 && (i != playerid) && i != MAX_ADMIN_LEVEL) {
TogglePlayerControllable(playerid,true); format(string,256,"Administrator %s has unfrozen you",adminname); SendClientMessage(i,COLOR_BLUE,string); }
}
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/kickall", true) == 0) {
if(LAdmin[playerid] >= 3) {
CMDMessageToAdmins(playerid,"KICKALL"); GetPlayerName(playerid, adminname, sizeof(adminname));
SendClientMessage(playerid,COLOR_BLUE,"You have kicked all players");
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) == 1 && (i != playerid) && i != MAX_ADMIN_LEVEL) {
format(string,256,"Administrator %s has kick everyone",adminname); SendClientMessage(i,COLOR_BLUE,string); Kick(i); }
}
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/disarmall", true) == 0) {
if(LAdmin[playerid] >= 3) {
CMDMessageToAdmins(playerid,"DISARMALL"); GetPlayerName(playerid, adminname, sizeof(adminname));
SendClientMessage(playerid,COLOR_BLUE,"You have disarmed all players");
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && (i != playerid) && i != MAX_ADMIN_LEVEL) {
ResetPlayerWeapons(i); PlayerPlaySound(i,1057,0.0,0.0,0.0); format(string,256,"Administrator %s has disarmed you",adminname); SendClientMessage(i,COLOR_BLUE,string); }
}
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/ejectall", true) == 0) {
if(LAdmin[playerid] >= 3) {
CMDMessageToAdmins(playerid,"EJECTALL"); GetPlayerName(playerid, adminname, sizeof(adminname));
SendClientMessage(playerid,COLOR_BLUE,"You have ejected everyone from their vehicle");
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i) && (i != playerid) && i != MAX_ADMIN_LEVEL) {
RemovePlayerFromVehicle(i); PlayerPlaySound(i,1057,0.0,0.0,0.0); format(string,256,"Administrator %s has ejected you",adminname); if(i != playerid) { SendClientMessage(i,COLOR_BLUE,string); } }
}
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
if(strcmp(cmd, "/setllwanted", true) == 0) {
if(LAdmin[playerid] >= 3) {
new tmp[256],wanted;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setallwanted [level]");
return 1; }
wanted = strval(tmp);
if(wanted > 6) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Incorrect Wanted Level");
return 1; }
tmp = strtok(cmdtext, idx);
CMDMessageToAdmins(playerid,"SETALLWANTED"); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string, sizeof(string), "You have set everyone's wanted level to %d",wanted); SendClientMessage(playerid,COLOR_BLUE,string);
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) == 1) {
PlayerPlaySound(i,1057,0.0,0.0,0.0); format(string,256,"Administrator %s has set your wanted level to %d",adminname,wanted); if(i != playerid) { SendClientMessage(i,COLOR_BLUE,string); }
SetPlayerWantedLevel(i,wanted); }
}
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
if(strcmp(cmd, "/giveallweapon", true) == 0) {
if(LAdmin[playerid] >= 3) {
new tmp[256],weap,ammo;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /giveallweapon [playerid] [weapon id]");
return 1; }
weap = strval(tmp);
if(!IsValidWeapon(weap)) {
SendClientMessage(playerid,COLOR_RED,"ERROR: Incorrect Weapon ID");
return 1; }
tmp = strtok(cmdtext, idx);
ammo = strval(tmp);
CMDMessageToAdmins(playerid,"GIVEALLWEAPON"); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string, sizeof(string), "You have given everyone weapon id: %d with %d rounds of ammo",weap,ammo); SendClientMessage(playerid,COLOR_BLUE,string);
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) == 1) {
PlayerPlaySound(i,1057,0.0,0.0,0.0); format(string,256,"Administrator %s has given you weapon id: %d with %d rounds of ammo",adminname,weap,ammo); if(i != playerid) { SendClientMessage(i,COLOR_BLUE,string); }
GivePlayerWeapon(i,weap,ammo); }
}
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/setallworld", true) == 0) {
if(LAdmin[playerid] >= 3) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setallworld [virtual world]");
return 1; }
new world;
world = strval(tmp);
tmp = strtok(cmdtext, idx);
CMDMessageToAdmins(playerid,"SETALLWORLD");
GetPlayerName(playerid, adminname, sizeof(adminname)); PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
format(string,256,"You have set everyones virtual world to %d",world); SendClientMessage(playerid,COLOR_BLUE,string);
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) == 1) {
format(string,256,"Administrator %s has set your virtual world to %d",adminname,world);
SendClientMessage(i,COLOR_BLUE,string); SetPlayerVirtualWorld(i,world); PlayerPlaySound(i,1057,0.0,0.0,0.0); }
}
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmd, "/setallscore", true) == 0) {
if(LAdmin[playerid] >= 3) {
new tmp[256],score;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_RED, "USAGE: /setallscore [score]");
return 1; }
score = strval(tmp);
tmp = strtok(cmdtext, idx);
CMDMessageToAdmins(playerid,"SETALLWANTED"); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string, sizeof(string), "You have set everyone's score to %d",score); SendClientMessage(playerid,COLOR_BLUE,string);
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) == 1) {
PlayerPlaySound(i,1057,0.0,0.0,0.0); format(string,256,"Administrator %s has set your score to %d",adminname,score); if(i != playerid) { SendClientMessage(i,COLOR_BLUE,string); }
SetPlayerScore(i,score); }
}
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
//==================================[ REMOTE CONSOLE ]==========================
if(strcmp(cmd, "/loadfs", true) == 0) {
if(LAdmin[playerid] >= 4) {
new str[256]; format(str,256,"%s",cmdtext[1]); SendRconCommand(str);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
if(strcmp(cmd, "/unloadfs", true) == 0) {
if(LAdmin[playerid] >= 4) {
new str[256]; format(str,256,"%s",cmdtext[1]); SendRconCommand(str);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
/* if(strcmp(cmd, "/changemode", true) == 0) {
if(LAdmin[playerid] >= 4) {
new str[256]; format(str,256,"%s",cmdtext[1]); SendRconCommand(str);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }
if(strcmp(cmd, "/gmx", true) == 0) {
if(LAdmin[playerid] >= 4) {
new str[256]; format(str,256,"%s",cmdtext[1]); SendRconCommand(str);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1; }*/
//------------------------------------------------------------------------------
if (strcmp(cmd, "/admins", true) == 0)
{
new count=0;
SendClientMessage(playerid, COLOR_GREEN, "________________________________________");
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(LAdmin[i] > 1)
{
GetPlayerName(i, adminname, sizeof(adminname));
format(string, 256, "Admin: %s [ID %d] [Level %d]", adminname,i,LAdmin[i]);
SendClientMessage(playerid, COLOR_BLUE, string);
count++;
}
if(LAdmin[i] == 1)
{
GetPlayerName(i, adminname, sizeof(adminname));
format(string, 256, "Member: %s [ID %d] [Level %d]", adminname,i,LAdmin[i]);
SendClientMessage(playerid, COLOR_BLUE, string);
count++;
}
}
}
//-----=[ rcon ]=------------------
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(IsPlayerAdmin(i))
{
GetPlayerName(i, adminname, sizeof(adminname));
format(string, 256, "%s [ID %d] [rcon admin]", adminname,i);
if(LAdmin[playerid] >= 1) SendClientMessage(playerid, COLOR_WHITE, string);
}
}
}
if(count == 0) {
SendClientMessage(playerid, COLOR_BLUE, "LAdmin Found No Administrators online"); }
SendClientMessage(playerid, COLOR_GREEN, "________________________________________");
return 1;
}
//========================[Time]================================================
if(strcmp(cmd, "/time", true) == 0) {
new hour,minuite,second; gettime(hour,minuite,second);
FixHour(hour); hour = shifthour;
format(string, sizeof(string), "~g~|~w~%d:%d~g~|", hour, minuite);
GameTextForPlayer(playerid, string, 5000, 1);
return 1; }
//========
return 0;
}
dcmd_setgravity(playerid,params[]) {
if(LAdmin[playerid] >= 3) {
if(!strlen(params)||!(strval(params)<=50&&strval(params)>=-50)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /setgravity <-50.0 - 50.0>");
CMDMessageToAdmins(playerid,"SETGRAVITY");
new string[256],adminname[24]; GetPlayerName(playerid, adminname, sizeof(adminname)); new Float:Gravity = floatstr(params);format(string,256,"Admnistrator %s has set the gravity to %f",adminname,Gravity);
SetGravity(Gravity); return SendClientMessageToAll(COLOR_BLUE,string);
} else return SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command");
}
dcmd_ladmincredits(playerid,params[]) {
#pragma unused params
return SendClientMessage(playerid,COLOR_GREEN,"LAdmin Info: [Creator: LethaL ] [Car Shop Menu: Darkimmortal] [Warn: Andre9977]");
}
dcmd_serverinfo(playerid,params[]) {
#pragma unused params
new TotalVehicles = CreateVehicle(411, 0, 0, 0, 0, 0, 0, 1000);
DestroyVehicle(TotalVehicles);
new Text:TT = TextDrawCreate(1,1,"Test");
TextDrawDestroy(TT);
new numo = CreateObject(1245,0,0,1000,0,0,0);
DestroyObject(numo);
new nump = CreatePickup(371,2,0,0,1000);
DestroyPickup(nump);
new gz = GangZoneCreate(3,3,5,5);
GangZoneDestroy(gz);
new model[250], nummodel;
for(new i=1;i<TotalVehicles;i++) {
model[GetVehicleModel(i)-400]++;
}
for(new i=0;i<250;i++) {
if(model[i]!=0) {
nummodel++; }
}
new string[256];
format(string,256,"Server Info: [ Players Connected: %d || Maximum Players: %d ] [Ratio %0.2f ]",ConnectedPlayers(),GetMaxPlayers(),Float:ConnectedPlayers() / Float:GetMaxPlayers() );
SendClientMessage(playerid,COLOR_GREEN,string);
format(string,256,"Server Info: [ Vehicles: %d || Models %d || Players In Vehicle: %d || InCar %d / OnBike %d ]",TotalVehicles-1,nummodel, InVehCount(),InCarCount(),OnBikeCount() );
SendClientMessage(playerid,COLOR_GREEN,string);
format(string,256,"Server Info: [ Textdraws: %d || Objects: %d || Pickups %d || Gangzones %d ]",_:TT, numo,nump,gz);
SendClientMessage(playerid,COLOR_GREEN,string);
format(string,256,"Server Info: [ Player In Jail %d || Players Frozen %d ]",JailedPlayers(),FrozenPlayers() );
return SendClientMessage(playerid,COLOR_GREEN,string);
}
dcmd_announce(playerid,params[]) {
if(LAdmin[playerid] >= 1) {
CMDMessageToAdmins(playerid,"ANNOUNCE");
if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"Syntax Error: \"/ANNOUNCE <TEXT>\".");
return GameTextForAll(params,4000,3);
} else return SendClientMessage(playerid,COLOR_RED,"ERROR: You need to be level 1 to use this command");
}
//=====================================[ Menus ]===========================================================
dcmd_lmenu(playerid,params[]) {
#pragma unused params
if(LAdmin[playerid] >= 2) {
if(IsPlayerInAnyVehicle(playerid)) {
TogglePlayerControllable(playerid,false); ShowMenuForPlayer(XMainMenu,playerid);
} else { ShowMenuForPlayer(XMainMenu,playerid); }
} else { SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1;
}
dcmd_ltele(playerid,params[]) {
#pragma unused params
if(LAdmin[playerid] >= 2) {
if(IsPlayerInAnyVehicle(playerid)) {
TogglePlayerControllable(playerid,false); ShowMenuForPlayer(XTele,playerid);
} else { ShowMenuForPlayer(XTele,playerid); }
} else { SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1;
}
dcmd_lweather(playerid,params[]) {
#pragma unused params
if(LAdmin[playerid] >= 3) {
if(IsPlayerInAnyVehicle(playerid)) {
TogglePlayerControllable(playerid,false); ShowMenuForPlayer(LWeather,playerid);
} else { ShowMenuForPlayer(LWeather,playerid); }
} else { SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1;
}
dcmd_ltime(playerid,params[]) {
#pragma unused params
if(LAdmin[playerid] >= 3) {
if(IsPlayerInAnyVehicle(playerid)) {
TogglePlayerControllable(playerid,false); ShowMenuForPlayer(LTime,playerid);
} else { ShowMenuForPlayer(LTime,playerid); }
} else { SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1;
}
dcmd_cm(playerid,params[]) {
#pragma unused params
if(LAdmin[playerid] >= 2) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,COLOR_RED,"ERROR: You already have a car.");
} else { ShowMenuForPlayer(LCars,playerid); TogglePlayerControllable(playerid,false); }
} else { SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1;
}
dcmd_ltmenu(playerid,params[]) {
#pragma unused params
if(LAdmin[playerid] >= 2) {
if(IsPlayerInAnyVehicle(playerid)) {
new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
switch(LModel) { case 448,461,462,463,468,471,509,510,521,522,523,581,586: return SendClientMessage(playerid,COLOR_RED,"ERROR: You can not tune bikes!"); }
TogglePlayerControllable(playerid,false); ShowMenuForPlayer(LTuneMenu,playerid);
} else { SendClientMessage(playerid,COLOR_RED,"ERROR: You do not have a vehicle to tune"); }
} else { SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1;
}
dcmd_lweapons(playerid,params[]) {
#pragma unused params
if(LAdmin[playerid] >= 3) {
if(IsPlayerInAnyVehicle(playerid)) {
TogglePlayerControllable(playerid,false); ShowMenuForPlayer(XWeapons,playerid);
} else { ShowMenuForPlayer(XWeapons,playerid); }
} else { SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1;
}
dcmd_lvehicle(playerid,params[]) {
#pragma unused params
if(LAdmin[playerid] >= 2) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,COLOR_RED,"ERROR: You already have a car.");
} else { ShowMenuForPlayer(XVehicles,playerid); TogglePlayerControllable(playerid,false); }
} else { SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); }
return 1;
}
//========================[ADMIN AREA]==========================================
dcmd_adminarea(playerid,params[]) {
#pragma unused params
if(LAdmin[playerid] >= 2) {
CMDMessageToAdmins(playerid,"ADMINAREA");
GameTextForPlayer(playerid,"Welcome Admin",1000,3); SetPlayerPos(playerid,377.9259,170.8513,1008.383); SetPlayerInterior(playerid,3);
} else {
SendClientMessage(playerid,COLOR_RED, "ERROR: You must be an administrator to use this command.");
SetPlayerHealth(playerid,1.0); new pname[MAX_PLAYER_NAME], string[256]; GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
format(string, sizeof(string), "SERVER MESSAGE: %s has been used adminarea (non admin)", pname);
MessageToAdmins(COLOR_RED,string);
}
}
dcmd_racehelp(playerid, params[])
{
#pragma unused params
SendClientMessage(playerid, COLOR_GREEN, "Yagu's race script racing help:");
SendClientMessage(playerid, COLOR_WHITE, "/loadrace [name] to load a track and start it. Use /join to jo in, and /ready");
SendClientMessage(playerid, COLOR_WHITE, "once at start to begin the race once others are ready as well. /leave to leave");
SendClientMessage(playerid, COLOR_WHITE, "the race./endrace to aborts the race. /bestlap and /bestrace can be used to");
SendClientMessage(playerid, COLOR_WHITE, "display record times for the races, you can also specify a race to see the");
SendClientMessage(playerid, COLOR_WHITE, "times for it. For info on building races, see /buildhelp. For additional");
SendClientMessage(playerid, COLOR_WHITE, "settings, see /raceadmin.");
return 1;
}
dcmd_buildhelp(playerid, params[])
{
#pragma unused params
SendClientMessage(playerid, COLOR_GREEN, "Yagu's race script building help:");
SendClientMessage(playerid, COLOR_WHITE, "/buildrace to start building, /cp for new a checkpoint, /scp to select an old");
SendClientMessage(playerid, COLOR_WHITE, "checkpoint, /dcp to delete, /mcp to move and /rcp to replace with a new one.");
SendClientMessage(playerid, COLOR_WHITE, "/editrace to load a race to editor. /saverace [name] to save the race and");
SendClientMessage(playerid, COLOR_WHITE, "/buildmenu to set racemode/laps/etc. For info on racing itself, see /racehelp");
SendClientMessage(playerid, COLOR_WHITE, "For additional settings, see /raceadmin.");
return 1;
}
dcmd_buildrace(playerid, params[])
{
#pragma unused params
if(BuildAdmin == 1 && IsNotAdmin(playerid)) return 1;
if(RaceBuilders[playerid] != 0)
{
SendClientMessage(playerid, COLOR_YELLOW, "You are already building a race, dork.");
}
else if(RaceParticipant[playerid]>0)
{
SendClientMessage(playerid, COLOR_YELLOW, "You are participating in a race, can't build a race.");
}
else
{
new slot;
slot=GetBuilderSlot(playerid);
if(slot == 0)
{
SendClientMessage(playerid, COLOR_YELLOW, "No builderslots available!");
return 1;
}
format(ystring,sizeof(ystring),"You are now building a race (Slot: %d)",slot);
SendClientMessage(playerid, COLOR_GREEN, ystring);
RaceBuilders[playerid]=slot;
BCurrentCheckpoints[b(playerid)]=0;
Bracemode[b(playerid)]=0;
Blaps[b(playerid)]=0;
BAirrace[b(playerid)] = 0;
BCPsize[b(playerid)] = 8.0;
}
return 1;
}
dcmd_cp(playerid, params[])
{
#pragma unused params
if(RaceBuilders[playerid] != 0 && BCurrentCheckpoints[b(playerid)] < MAX_RACECHECKPOINTS)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid,x,y,z);
format(ystring,sizeof(ystring),"Checkpoint %d created: %f,%f,%f.",BCurrentCheckpoints[b(playerid)],x,y,z);
SendClientMessage(playerid, COLOR_GREEN, ystring);
BRaceCheckpoints[b(playerid)][BCurrentCheckpoints[b(playerid)]][0]=x;
BRaceCheckpoints[b(playerid)][BCurrentCheckpoints[b(playerid)]][1]=y;
BRaceCheckpoints[b(playerid)][BCurrentCheckpoints[b(playerid)]][2]=z;
BSelectedCheckpoint[b(playerid)]=BCurrentCheckpoints[b(playerid)];
SetBRaceCheckpoint(playerid,BCurrentCheckpoints[b(playerid)],-1);
BCurrentCheckpoints[b(playerid)]++;
}
else if(RaceBuilders[playerid] != 0 && BCurrentCheckpoints[b(playerid)] == MAX_RACECHECKPOINTS)
{
format(ystring,sizeof(ystring),"Sorry, maximum amount of checkpoints reached (%d).",MAX_RACECHECKPOINTS);
SendClientMessage(playerid, COLOR_YELLOW, ystring);
}
else
{
SendClientMessage(playerid, COLOR_RED, "You are not building a race!");
}
return 1;
}
dcmd_scp(playerid, params[])
{
new sele, tmp[256], idx;
tmp = strtok(params, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /scp [checkpoint]");
return 1;
}
sele = strval(tmp);
if(RaceBuilders[playerid] != 0)
{
if(sele>BCurrentCheckpoints[b(playerid)]-1 || BCurrentCheckpoints[b(playerid)] < 1 || sele < 0)
{
SendClientMessage(playerid, COLOR_YELLOW, "Invalid checkpoint!");
return 1;
}
format(ystring,sizeof(ystring),"Selected checkpoint %d.",sele);
SendClientMessage(playerid, COLOR_GREEN, ystring);
BActiveCP(playerid,sele);
BSelectedCheckpoint[b(playerid)]=sele;
}
else
{
SendClientMessage(playerid, COLOR_RED, "You are not building a race!");
}
return 1;
}
dcmd_rcp(playerid, params[])
{
#pragma unused params
if(RaceBuilders[playerid] == 0)
{
SendClientMessage(playerid, COLOR_RED, "You are not building a race!");
return 1;
}
else if(BCurrentCheckpoints[b(playerid)] < 1)
{
SendClientMessage(playerid, COLOR_YELLOW, "No checkpoint to replace!");
return 1;
}
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
format(ystring,sizeof(ystring),"Checkpoint %d replaced: %f,%f,%f.",BSelectedCheckpoint[b(playerid)],x,y,z);
SendClientMessage(playerid, COLOR_GREEN, ystring);
BRaceCheckpoints[b(playerid)][BSelectedCheckpoint[b(playerid)]][0]=x;
BRaceCheckpoints[b(playerid)][BSelectedCheckpoint[b(playerid)]][1]=y;
BRaceCheckpoints[b(playerid)][BSelectedCheckpoint[b(playerid)]][2]=z;
BActiveCP(playerid,BSelectedCheckpoint[b(playerid)]);
return 1;
}
dcmd_mcp(playerid, params[])
{
if(RaceBuilders[playerid] == 0)
{
SendClientMessage(playerid, COLOR_RED, "You are not building a race!");
return 1;
}
else if(BCurrentCheckpoints[b(playerid)] < 1)
{
SendClientMessage(playerid, COLOR_YELLOW, "No checkpoint to move!");
return 1;
}
new idx, direction, dir[MAX_STRING];
dir = strtok(params, idx);
new Float:amount=floatstr(strtok(params,idx));
if(amount == 0.0 || (dir[0] != 'x' && dir[0]!='y' && dir[0]!='z'))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /mcp [x,y or z] [amount]");
return 1;
}
if(dir[0] == 'x') direction=0;
else if (dir[0] == 'y') direction=1;
else if (dir[0] == 'z') direction=2;
BRaceCheckpoints[b(playerid)][BSelectedCheckpoint[b(playerid)]][direction]=BRaceCheckpoints[b(playerid)][BSelectedCheckpoint[b(playerid)]][direction]+amount;
BActiveCP(playerid,BSelectedCheckpoint[b(playerid)]);
return 1;
}
dcmd_dcp(playerid, params[])
{
#pragma unused params
if(RaceBuilders[playerid] == 0)
{
SendClientMessage(playerid, COLOR_RED, "You are not building a race!");
return 1;
}
else if(BCurrentCheckpoints[b(playerid)] < 1)
{
SendClientMessage(playerid, COLOR_YELLOW, "No checkpoint to delete!");
return 1;
}
for(new i=BSelectedCheckpoint[b(playerid)];i<BCurrentCheckpoints[b(playerid)];i++)
{
BRaceCheckpoints[b(playerid)][i][0]=BRaceCheckpoints[b(playerid)][i+1][0];
BRaceCheckpoints[b(playerid)][i][1]=BRaceCheckpoints[b(playerid)][i+1][1];
BRaceCheckpoints[b(playerid)][i][2]=BRaceCheckpoints[b(playerid)][i+1][2];
}
BCurrentCheckpoints[b(playerid)]--;
BSelectedCheckpoint[b(playerid)]--;
if(BCurrentCheckpoints[b(playerid)] < 1)
{
DisablePlayerRaceCheckpoint(playerid);
BSelectedCheckpoint[b(playerid)]=0;
return 1;
}
else if(BSelectedCheckpoint[b(playerid)] < 0)
{
BSelectedCheckpoint[b(playerid)]=0;
}
BActiveCP(playerid,BSelectedCheckpoint[b(playerid)]);
SendClientMessage(playerid,COLOR_GREEN,"Checkpoint deleted!");
return 1;
}
dcmd_clearrace(playerid,params[])
{
#pragma unused params
if(RaceBuilders[playerid] != 0) clearrace(playerid);
else SendClientMessage(playerid, COLOR_RED, "You are not building a race!");
return 1;
}
dcmd_editrace(playerid,params[])
{
if(RaceBuilders[playerid] == 0)
{
SendClientMessage(playerid, COLOR_RED, "You are not building a race!");
return 1;
}
if(BCurrentCheckpoints[b(playerid)]>0) //Clear the old race if there is such.
{
for(new i=0;i<BCurrentCheckpoints[b(playerid)];i++)
{
BRaceCheckpoints[b(playerid)][i][0]=0.0;
BRaceCheckpoints[b(playerid)][i][1]=0.0;
BRaceCheckpoints[b(playerid)][i][2]=0.0;
}
BCurrentCheckpoints[b(playerid)]=0;
}
new tmp[256],idx;
tmp = strtok(params, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /editrace [name]");
return 1;
}
new race_name[32],templine[42];
format(race_name,sizeof(race_name), "%s.yr",tmp);
if(!fexist(race_name))
{
format(ystring,sizeof(ystring), "The race \"%s\" doesn't exist.",tmp);
SendClientMessage(playerid, COLOR_RED, ystring);
return 1;
}
BCurrentCheckpoints[b(playerid)]=-1;
new File:f, i;
f = fopen(race_name, io_read);
fread(f,templine,sizeof(templine));
if(templine[0] == 'Y') //Checking if the racefile is v0.2+
{
new fileversion;
strtok(templine,i); // read off YRACE
fileversion = strval(strtok(templine,i)); // read off the file version
if(fileversion > RACEFILE_VERSION) // Check if the race is made with a newer version of the racefile format
{
format(ystring,128,"Race \'%s\' is created with a newer version of YRACE, unable to load.",tmp);
SendClientMessage(playerid,COLOR_RED,ystring);
return 1;
}
strtok(templine,i); // read off RACEBUILDER
Bracemode[b(playerid)] = strval(strtok(templine,i)); // read off racemode
Blaps[b(playerid)] = strval(strtok(templine,i)); // read off amount of laps
if(fileversion >= 2)
{
BAirrace[b(playerid)] = strval(strtok(templine,i));
BCPsize[b(playerid)] = floatstr(strtok(templine,i));
}
else
{
BAirrace[b(playerid)] = 0;
BCPsize[b(playerid)] = 8.0;
}
fread(f,templine,sizeof(templine)); // read off best race times, not saved due to editing the track
fread(f,templine,sizeof(templine)); // read off best lap times, -||-
}
else //Otherwise add the lines as checkpoints, the file is made with v0.1 (or older) version of the script.
{
BCurrentCheckpoints[b(playerid)]++;
BRaceCheckpoints[b(playerid)][BCurrentCheckpoints[b(playerid)]][0] = floatstr(strtok(templine,i));
BRaceCheckpoints[b(playerid)][BCurrentCheckpoints[b(playerid)]][1] = floatstr(strtok(templine,i));
BRaceCheckpoints[b(playerid)][BCurrentCheckpoints[b(playerid)]][2] = floatstr(strtok(templine,i));
}
while(fread(f,templine,sizeof(templine),false))
{
BCurrentCheckpoints[b(playerid)]++;
i=0;
BRaceCheckpoints[b(playerid)][BCurrentCheckpoints[b(playerid)]][0] = floatstr(strtok(templine,i));
BRaceCheckpoints[b(playerid)][BCurrentCheckpoints[b(playerid)]][1] = floatstr(strtok(templine,i));
BRaceCheckpoints[b(playerid)][BCurrentCheckpoints[b(playerid)]][2] = floatstr(strtok(templine,i));
}
fclose(f);
BCurrentCheckpoints[b(playerid)]++; // # of next CP to be created
format(ystring,sizeof(ystring),"Race \"%s\" has been loaded for editing. (%d checkpoints)",tmp,BCurrentCheckpoints[b(playerid)]);
SendClientMessage(playerid, COLOR_GREEN,ystring);
return 1;
}
dcmd_saverace(playerid, params[])
{
if(RaceBuilders[playerid] != 0)
{
new tmp[256], idx;
tmp = strtok(params, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /saverace [name]");
return 1;
}
if(BCurrentCheckpoints[b(playerid)] < 2)
{
SendClientMessage(playerid, COLOR_YELLOW, "You need atleast 2 checkpoints to save!");
return 1;
}
new race_name[32],templine[42];
format(race_name, 32, "%s.yr",tmp);
if(fexist(race_name))
{
format(ystring,sizeof(ystring), "Race \"%s\" already exists.",tmp);
SendClientMessage(playerid, COLOR_RED, ystring);
return 1;
}
new File:f,Float:x,Float:y,Float:z, Bcreator[MAX_PLAYER_NAME];
GetPlayerName(playerid, Bcreator, MAX_PLAYER_NAME);
f = fopen(race_name,io_write);
format(templine,sizeof(templine),"YRACE %d %s %d %d %d %f\n", RACEFILE_VERSION, Bcreator, Bracemode[b(playerid)], Blaps[b(playerid)], BAirrace[b(playerid)], BCPsize[b(playerid)]);
fwrite(f,templine);
format(templine,sizeof(templine),"A 0 A 0 A 0 A 0 A 0\n"); //Best complete race times
fwrite(f,templine);
format(templine,sizeof(templine),"A 0 A 0 A 0 A 0 A 0\n"); //Best lap times
fwrite(f,templine);
for(new i = 0; i < BCurrentCheckpoints[b(playerid)];i++)
{
x=BRaceCheckpoints[b(playerid)][i][0];
y=BRaceCheckpoints[b(playerid)][i][1];
z=BRaceCheckpoints[b(playerid)][i][2];
format(templine,sizeof(templine),"%f %f %f\n",x,y,z);
fwrite(f,templine);
}
fclose(f);
format(ystring,sizeof(ystring),"Your race \"%s\" has been saved.",tmp);
SendClientMessage(playerid, COLOR_GREEN, ystring);
}
else
{
SendClientMessage(playerid, COLOR_RED, "You are not building a race!");
}
return 1;
}
dcmd_setlaps(playerid,params[])
{
new tmp[256], idx;
tmp = strtok(params, idx);
if(!strlen(tmp) || strval(tmp) <= 0)
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /setlaps [amount of laps (min: 1)]");
return 1;
}
if(RaceBuilders[playerid] != 0)
{
Blaps[b(playerid)] = strval(tmp);
format(tmp,sizeof(tmp),"Amount of laps set to %d.", Blaps[b(playerid)]);
SendClientMessage(playerid, COLOR_GREEN, tmp);
return 1;
}
if(RaceAdmin == 1 && IsNotAdmin(playerid)) return 1;
if(RaceActive == 1 || RaceStart == 1) SendClientMessage(playerid, COLOR_RED, "Race already in progress!");
else if(LCurrentCheckpoint == 0) SendClientMessage(playerid, COLOR_YELLOW, "No race loaded.");
else
{
Racelaps=strval(tmp);
format(tmp,sizeof(tmp),"Amount of laps set to %d for current race.", Racelaps);
SendClientMessage(playerid, COLOR_GREEN, tmp);
}
return 1;
}
dcmd_racemode(playerid,params[])
{
new tmp[256], idx, tempmode;
tmp = strtok(params, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /racemode [0/1/2/3]");
return 1;
}
if(tmp[0] == 'd') tempmode=0;
else if(tmp[0] == 'r') tempmode=1;
else if(tmp[0] == 'y') tempmode=2;
else if(tmp[0] == 'm') tempmode=3;
else tempmode=strval(tmp);
if (0 > tempmode || tempmode > 3)
{
SendClientMessage(playerid, COLOR_YELLOW, "Invalid racemode!");
return 1;
}
if(RaceBuilders[playerid] != 0)
{
if(tempmode == 2 && BCurrentCheckpoints[b(playerid)] < 3)
{
SendClientMessage(playerid, COLOR_YELLOW, "Can't set racemode 2 on races with only 2 CPs. Changing to mode 1 instead.");
Bracemode[b(playerid)] = 1;
return 1;
}
Bracemode[b(playerid)] = tempmode;
format(tmp,sizeof(tmp),"Racemode set to %d.", Bracemode[b(playerid)]);
SendClientMessage(playerid, COLOR_GREEN, tmp);
return 1;
}
if(RaceAdmin == 1 && IsNotAdmin(playerid)) return 1;
if(RaceActive == 1 || RaceStart == 1) SendClientMessage(playerid, COLOR_RED, "Race already in progress!");
else if(LCurrentCheckpoint == 0) SendClientMessage(playerid, COLOR_YELLOW, "No race loaded.");
else
{
if(tempmode == 2 && LCurrentCheckpoint < 2)
{
SendClientMessage(playerid, COLOR_YELLOW, "Can't set racemode 2 on races with only 2 CPs. Changing to mode 1 instead.");
Racemode = 1;
return 1;
}
Racemode=tempmode;
format(tmp,sizeof(tmp),"Racemode set to %d.", Racemode);
SendClientMessage(playerid, COLOR_GREEN, tmp);
}
return 1;
}
dcmd_loadrace(playerid, params[])
{
if(RaceAdmin == 1 && IsNotAdmin(playerid)) return 1;
Racemode = 0; Racelaps = 1;
new tmp[MAX_STRING], idx, fback;
tmp = strtok(params, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /loadrace [name]");
return 1;
}
if(RaceActive == 1)
{
SendClientMessage(playerid, COLOR_RED, "A race is already active!");
return 1;
}
fback=LoadRace(tmp);
if(fback == -1) format(ystring,sizeof(ystring),"Race \'%s\' doesn't exist!",tmp);
else if (fback == -2) format(ystring,sizeof(ystring),"Race \'%s\' is created with a newer version of YRACE, cannot load.",tmp);
if(fback < 0)
{
SendClientMessage(playerid,COLOR_RED,ystring);
return 1;
}
format(ystring,sizeof(ystring),"Race \'%s\' loaded, /startrace to start it. You can change laps and mode before that.",CRaceName);
SendClientMessage(playerid,COLOR_GREEN,ystring);
if(LCurrentCheckpoint<2 && Racemode == 2)
{
Racemode = 1; // Racemode 2 doesn't work well with only 2CPs, and mode 1 is just the same when playing with 2 CPs.
} // Setting racemode 2 is prevented from racebuilder so this shouldn't happen anyways.
#if defined MENUSYSTEM
if(!IsValidMenu(MRace)) CreateRaceMenus();
if(Airrace == 0) SetMenuColumnHeader(MRace,0,"Air race: off");
else SetMenuColumnHeader(MRace,0,"Air race: ON");
TogglePlayerControllable(playerid,0);
ShowMenuForPlayer(MRace,playerid);
#endif
return 1;
}
dcmd_startrace(playerid, params[])
{
#pragma unused params
if(RaceAdmin == 1 && IsNotAdmin(playerid)) return 1;
if(LCurrentCheckpoint == 0) SendClientMessage(playerid,COLOR_YELLOW,"No race loaded!");
else if (RaceActive == 1) SendClientMessage(playerid,COLOR_YELLOW,"Race is already active!");
else startrace();
return 1;
}
dcmd_deleterace(playerid, params[])
{
if((RaceAdmin == 1 || BuildAdmin == 1) && IsNotAdmin(playerid)) return 1;
new filename[MAX_STRING], idx;
filename = strtok(params,idx);
if(!(strlen(filename)))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /deleterace [race]");
return 1;
}
format(filename,sizeof(filename),"%s.yr",filename);
if(!fexist(filename))
{
format(ystring,sizeof(ystring), "The race \"%s\" doesn't exist.",filename);
SendClientMessage(playerid, COLOR_RED, ystring);
return 1;
}
fremove(filename);
format(ystring,sizeof(ystring), "The race \"%s\" has been deleted.",filename);
SendClientMessage(playerid, COLOR_GREEN, ystring);
return 1;
}
dcmd_join(playerid,params[])
{
#pragma unused params
if(RaceBuilders[playerid] != 0)
{
SendClientMessage(playerid, COLOR_YELLOW, "You are currently building a race, can't join. Use /clearrace to exit build mode.");
return 1;
}
if(RaceParticipant[playerid]>0)
{
SendClientMessage(playerid, COLOR_YELLOW, "You've already joined the race!");
}
else if(RaceActive==1 && RaceStart==0)
{
if(PrizeMode >= 2 && GetPlayerMoney(playerid) < JoinFee)
{
format(ystring,sizeof(ystring),"You don't have enough money to join the race! (Join fee: %d$)",JoinFee);
SendClientMessage(playerid, COLOR_YELLOW, ystring);
return 1;
}
else if (PrizeMode >= 2)
{
new tempval;
tempval=(-1)*JoinFee;
GivePlayerMoney(playerid,tempval);
Pot+=JoinFee;
}
CurrentCheckpoint[playerid]=0;
if(Racemode == 3)
{
SetRaceCheckpoint(playerid,LCurrentCheckpoint,LCurrentCheckpoint-1);
CurrentCheckpoint[playerid]=LCurrentCheckpoint;
}
else SetRaceCheckpoint(playerid,0,1);
RaceParticipant[playerid]=1;
CurrentLap[playerid]=0;
SendClientMessage(playerid, COLOR_GREEN, "You have joined the race, go to the start!");
Participants++;
}
else if(RaceActive==1 && RaceStart==1)
{
SendClientMessage(playerid, COLOR_YELLOW, "The race has already started, can't join.");
}
else
{
SendClientMessage(playerid, COLOR_YELLOW, "There is no race you can join.");
}
return 1;
}
dcmd_leave(playerid,params[])
{
#pragma unused params
if(RaceParticipant[playerid] > 0)
{
if(RaceParticipant[playerid]==3 && RaceStart == 1) //Countdown in progress, no leaving during it.
{
SendClientMessage(playerid,COLOR_RED,"Unable to leave at this time: Countdown in progress.");
return 1;
}
DisablePlayerRaceCheckpoint(playerid);
RaceParticipant[playerid]=0;
Participants--;
SendClientMessage(playerid,COLOR_YELLOW,"You have left the race.");
if(PrizeMode >= 2 && RaceStart == 0)
{
GivePlayerMoney(playerid,JoinFee/2);
Pot-=JoinFee/2;
}
if(Participants == 0) endrace();
else if(RaceStart == 0)ReadyRefresh();
}
else SendClientMessage(playerid, COLOR_YELLOW, "You aren't in a race.");
return 1;
}
dcmd_endrace(playerid, params[])
{
#pragma unused params
if(RaceAdmin == 1 && IsNotAdmin(playerid)) return 1;
if(RaceActive==0)
{
SendClientMessage(playerid, COLOR_YELLOW, "There is no race active.");
return 1;
}
endrace();
return 1;
}
dcmd_ready(playerid, params[])
{
#pragma unused params
new PState=GetPlayerState(playerid);
if(RaceParticipant[playerid]==2 && PState != PLAYER_STATE_PASSENGER)
{
SendClientMessage(playerid,COLOR_GREEN,"You are now ready. Type /ready again to cancel.");
RaceParticipant[playerid]=3;
ReadyRefresh();
}
else if (RaceParticipant[playerid]==3 && RaceStart==0)
{
SendClientMessage(playerid,COLOR_YELLOW,"You are now not ready. Type /ready when you are.");
RaceParticipant[playerid]=2;
}
else if (PState == PLAYER_STATE_PASSENGER) SendClientMessage(playerid,COLOR_YELLOW,"You need to be driving for yourself!");
else if(RaceParticipant[playerid] == 1) SendClientMessage(playerid,COLOR_YELLOW,"You must have visited the starting CP to /ready.");
else SendClientMessage(playerid,COLOR_YELLOW,"You have not participated in a race.");
return 1;
}
dcmd_bestlap(playerid,params[])
{
new tmp[MAX_STRING], idx;
tmp = strtok(params, idx);
if(LoadTimes(playerid,1,tmp)) return 1;
if(TopLapTimes[0] == 0)
{
SendClientMessage(playerid,COLOR_YELLOW,"No scores available.");
return 1;
}
else if(ORacemode == 0)
{
SendClientMessage(playerid,COLOR_YELLOW,"This race doesn't have any laps.");
return 1;
}
format(ystring,sizeof(ystring),"%s by %s - Best Laps:",CRaceName,CBuilder);
SendClientMessage(playerid,COLOR_GREEN,ystring);
for(new i;i<5;i++)
{
if(TopLapTimes[i] == 0)
{
format(ystring,sizeof(ystring),"%d. None yet",i+1);
i=6;
}
else
{
format(ystring,sizeof(ystring),"%d. %s - %s",i+1,BeHuman(TopLapTimes[i]),TopLappers[i]);
}
SendClientMessage(playerid,COLOR_GREEN,ystring);
}
return 1;
}
dcmd_bestrace(playerid,params[])
{
new tmp[MAX_STRING], idx;
tmp = strtok(params, idx);
if(LoadTimes(playerid,0,tmp)) return 1;
if(TopRacerTimes[0] == 0)
{
SendClientMessage(playerid,COLOR_YELLOW,"No scores available.");
return 1;
}
format(ystring,sizeof(ystring),"%s by %s - Best Race times:",CRaceName,CBuilder);
SendClientMessage(playerid,COLOR_GREEN,ystring);
for(new i;i<5;i++)
{
if(TopRacerTimes[i] == 0)
{
format(ystring,sizeof(ystring),"%d. None yet",i+1);
i=6;
}
else
{
format(ystring,sizeof(ystring),"%d. %s - %s",i+1,BeHuman(TopRacerTimes[i]),TopRacers[i]);
}
SendClientMessage(playerid,COLOR_GREEN,ystring);
}
return 1;
}
dcmd_airrace(playerid,params[])
{
#pragma unused params
if(RaceBuilders[playerid] != 0)
{
if(BAirrace[b(playerid)] == 0)
{
SendClientMessage(playerid,COLOR_GREEN,"Air race enabled.");
BAirrace[b(playerid)]=1;
}
else
{
SendClientMessage(playerid,COLOR_GREEN,"Air race disabled.");
BAirrace[b(playerid)]=0;
}
return 1;
}
if(RaceAdmin == 1 && IsNotAdmin(playerid)) return 1;
if(RaceActive == 1 || RaceStart == 1) SendClientMessage(playerid, COLOR_YELLOW, "Race is already in progress!");
else if(LCurrentCheckpoint == 0) SendClientMessage(playerid, COLOR_YELLOW, "No race loaded!");
else if(Airrace == 0)
{
SendClientMessage(playerid,COLOR_GREEN,"Air race enabled.");
Airrace = 1;
}
else if(Airrace == 1)
{
SendClientMessage(playerid,COLOR_GREEN,"Air race disabled.");
Airrace = 0;
}
else printf("Error in /airrace detected. RaceActive: %d, RaceStart: %d LCurrentCheckpoint: %d, Airrace: %d", RaceActive,RaceStart,LCurrentCheckpoint,Airrace);
return 1;
}
dcmd_cpsize(playerid,params[])
{
new idx, tmp[MAX_STRING];
tmp = strtok(params,idx);
if(!(strlen(tmp)) || floatstr(tmp) <= 0.0)
{
SendClientMessage(playerid,COLOR_WHITE,"USAGE: /cpsize [size]");
return 1;
}
if(RaceBuilders[playerid] != 0)
{
BCPsize[b(playerid)] = floatstr(tmp);
format(ystring,sizeof(ystring),"Checkpoint size set to %f",floatstr(tmp));
SendClientMessage(playerid,COLOR_GREEN,ystring);
return 1;
}
if(RaceAdmin == 1 && IsNotAdmin(playerid)) return 1;
if(RaceActive == 1) SendClientMessage(playerid, COLOR_YELLOW, "Race has already been activated!");
else if(LCurrentCheckpoint == 0) SendClientMessage(playerid, COLOR_YELLOW, "No race loaded!");
else
{
CPsize = floatstr(tmp);
format(ystring,sizeof(ystring),"Checkpoint size set to %f",floatstr(tmp));
SendClientMessage(playerid,COLOR_GREEN,ystring);
}
return 1;
}
dcmd_prizemode(playerid,params[])
{
if(IsNotAdmin(playerid)) return 1;
new idx, tmp;
tmp=strval(strtok(params,idx));
if(tmp < 0 || tmp > 4) SendClientMessage(playerid,COLOR_WHITE,"USAGE: /prizemode [0-4]");
else if(RaceActive == 1) SendClientMessage(playerid,COLOR_YELLOW,"Race is already active!");
else
{
PrizeMode = tmp;
format(ystring,sizeof(ystring),"Prizemode set to %d",PrizeMode);
SendClientMessage(playerid,COLOR_GREEN,ystring);
}
return 1;
}
dcmd_setprize(playerid,params[])
{
if(IsNotAdmin(playerid)) return 1;
new idx, tmp;
tmp = strval(strtok(params, idx));
if(0 >= tmp) SendClientMessage(playerid,COLOR_WHITE,"USAGE: /setprize [amount]");
else if(RaceActive == 1) SendClientMessage(playerid,COLOR_YELLOW,"Race is already active!");
else
{
Prize = tmp;
format(ystring,sizeof(ystring),"Prize set to %d",Prize);
SendClientMessage(playerid,COLOR_GREEN,ystring);
}
return 1;
}
#if defined MENUSYSTEM
dcmd_raceadmin(playerid,params[])
{
#pragma unused params
if(IsNotAdmin(playerid)) return 1;
if(!IsValidMenu(MAdmin)) CreateRaceMenus();
TogglePlayerControllable(playerid,0);
ShowMenuForPlayer(MAdmin,playerid);
return 1;
}
dcmd_buildmenu(playerid,params[])
{
#pragma unused params
if(BuildAdmin == 1 && IsNotAdmin(playerid)) return 1;
if(RaceBuilders[playerid] == 0)
{
SendClientMessage(playerid,COLOR_YELLOW,"You are not building a race!");
return 1;
}
if(BAirrace[b(playerid)] == 0) SetMenuColumnHeader(MBuild,0,"Air race: off");
else SetMenuColumnHeader(MBuild,0,"Air race: on");
if(!IsValidMenu(MBuild)) CreateRaceMenus();
TogglePlayerControllable(playerid,0);
ShowMenuForPlayer(MBuild,playerid);
return 1;
}
#endif
dcmd_scores(playerid,params[])
{
#pragma unused playerid, params
new sstring[256], sstring2[256];
format(sstring, sizeof(sstring), "%s: %d Kills", TEAM1, sCount1);
format(sstring2, sizeof(sstring2), "%s: %d Kills", TEAM2, sCount2);
SendClientMessageToAllEx(COLOR_YELLOW, sstring);
SendClientMessageToAllEx(COLOR_YELLOW, sstring2);
return 1;
}
dcmd_reset(playerid,params[])
{
#pragma unused params
if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
{
SendClientMessageToAllEx(COLOR_YELLOW, "Clan War Reset!");
sCount1 = 0;
sCount2 = 0;
for(new i=0;i<MAX_PLAYERS;i++)
{
TogglePlayerControllable(i,1);
SpawnPlayer(i);
DeathCount[i] = 0;
SetPlayerScore(i, 0);
}
}
}
dcmd_help(playerid,params[])
{
#pragma unused params
SendClientMessage(playerid, COLOR_YELLOW, "/scores, /reset(Admin Only)");
return 1;
}
dcmd_kill(playerid,params[])
{
#pragma unused params
SetPlayerHealth(playerid, 0.0);
return 1;
}
dcmd_me(playerid,params[])
{
if(!strlen(params)) {
SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /me [text]");
return 1;
}
new str[128];
new playerColor = GetPlayerColor(playerid);
GetPlayerName(playerid, str, sizeof(str));
format(str, sizeof(str), "%s %s", str, params);
SendClientMessageToAll(playerColor, str);
return 1;
}
dcmd_stunt(playerid,params[])
{
#pragma unused params
ShowMenuForPlayer(Stunt, playerid);
return 1;
}
dcmd_stunthelp(playerid,params[])
{
#pragma unused params
SendClientMessage(playerid, COLOR_RED, "================Commands=================");
SendClientMessage(playerid, COLOR_RED, " /stunt /fixveh");
SendClientMessage(playerid, COLOR_RED, "=============Commands End================");
return 1;
}
//==============================================================================
ChangeMenu(playerid,Menu:oldmenu,Menu:newmenu){
if(IsValidMenu(oldmenu))
HideMenuForPlayer(oldmenu,playerid);
ShowMenuForPlayer(newmenu,playerid);
return 1;
}
CloseMenu(playerid,Menu:oldmenu){
HideMenuForPlayer(oldmenu,playerid);
TogglePlayerControllable(playerid,1);
return 1;
}
BuyCar(playerid,vehid,Menu:mnu){
new Float:X,Float:Y,Float:Z,Float:A;
CloseMenu(playerid,mnu);
SetCameraBehindPlayer(playerid);
GetPlayerPos(playerid,X,Y,Z);
GetPlayerFacingAngle(playerid,A);
new carid = CreateVehicle(vehid,X,Y,Z,A,-1,-1,600);
PutPlayerInVehicle(playerid,carid,0);
return 0;
}
//------------------------------------------------------------------------------
MaxAmmo(playerid) {
new slot, weap, ammo;
for (slot = 0; slot < 14; slot++)
{
GetPlayerWeaponData(playerid, slot, weap, ammo);
if (IsValidWeapon(weap))
{
GivePlayerWeapon(playerid, weap, 99999);
}
}
return 1;
}
//==============================================================================
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
new x = 0;
while(x!=MAX_PLAYERS) {
if( IsPlayerConnected(x) && GetPlayerState(x) == PLAYER_STATE_SPECTATING &&
gSpectateID[x] == playerid && gSpectateType[x] == ADMIN_SPEC_TYPE_PLAYER )
{
SetPlayerInterior(x,newinteriorid);
}
x++;
}
}
//==============================================================================
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && gSpectateID[playerid] != INVALID_PLAYER_ID) {
if(newkeys == KEY_JUMP) {
AdvanceSpectate(playerid);
}
else if(newkeys == KEY_SPRINT) {
ReverseSpectate(playerid);
}
}
return 1; }
//==============================================================================
public OnPlayerEnterVehicle(playerid, vehicleid) {
for(new x=0; x<MAX_PLAYERS; x++) {
if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && gSpectateID[x] == playerid) {
TogglePlayerSpectating(x, 1);
PlayerSpectateVehicle(x, vehicleid);
gSpectateType[x] = ADMIN_SPEC_TYPE_VEHICLE;
}
}
return 1; }
//==============================================================================
public OnPlayerStateChange(playerid, newstate, oldstate){
switch(newstate){
case PLAYER_STATE_ONFOOT:{
switch(oldstate){
case PLAYER_STATE_DRIVER:OnPlayerExitVehicle(playerid,255);
case PLAYER_STATE_PASSENGER:OnPlayerExitVehicle(playerid,255);
}
}
}
return 1; }
//==============================================================================
stock StartSpectate(playerid, specplayerid)
{
for(new x=0; x<MAX_PLAYERS; x++) {
if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && gSpectateID[x] == playerid) {
AdvanceSpectate(x);
}
}
if(IsPlayerInAnyVehicle(specplayerid)) {
SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
TogglePlayerSpectating(playerid, 1);
PlayerSpectateVehicle(playerid, GetPlayerVehicleID(specplayerid));
gSpectateID[playerid] = specplayerid;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE;
}
else {
SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, specplayerid);
gSpectateID[playerid] = specplayerid;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
}
new string[100];
GetPlayerName(specplayerid,string,sizeof(string));
format(string,sizeof(string),"~w~%s - ID:%d~n~< sprint - jump >", string,specplayerid);//sprint jump
SpecText = TextDrawCreate(271.000000,427.000000,string);
TextDrawTextSize(SpecText,437.000000,0.000000);
TextDrawSetOutline(SpecText,1);
TextDrawSetShadow(SpecText,1);
TextDrawShowForPlayer(playerid,SpecText);
return 1;
}
//------------------------------------------------------------------------------
stock StopSpectate(playerid)
{
TogglePlayerSpectating(playerid, 0);
gSpectateID[playerid] = INVALID_PLAYER_ID;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_NONE;
GameTextForPlayer(playerid,"~n~~n~~n~~w~Spectate off",1000,3);
TextDrawDestroy(SpecText);
return 1;
}
//------------------------------------------------------------------------------
stock AdvanceSpectate(playerid)
{
if(ConnectedPlayers() == 2) { StopSpectate(playerid); return 1; }
if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && gSpectateID[playerid] != INVALID_PLAYER_ID) {
for(new x=gSpectateID[playerid]+1; x<=MAX_PLAYERS; x++) {
if(x == MAX_PLAYERS) { x = 0; }
if(IsPlayerConnected(x) && x != playerid) {
if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && gSpectateID[x] != INVALID_PLAYER_ID ||
(GetPlayerState(x) != 1 && GetPlayerState(x) != 2 && GetPlayerState(x) != 3))
{
continue;
}
else {
StartSpectate(playerid, x);
break;
}
}
}
}
return 1;
}
//------------------------------------------------------------------------------
stock ReverseSpectate(playerid)
{
if(ConnectedPlayers() == 2) { StopSpectate(playerid); return 1; }
if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && gSpectateID[playerid] != INVALID_PLAYER_ID) {
for(new x=gSpectateID[playerid]-1; x>=0; x--) {
if(x == 0) { x = MAX_PLAYERS; }
if(IsPlayerConnected(x) && x != playerid) {
if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && gSpectateID[x] != INVALID_PLAYER_ID ||
(GetPlayerState(x) != 1 && GetPlayerState(x) != 2 && GetPlayerState(x) != 3))
{
continue;
}
else {
StartSpectate(playerid, x);
break;
}
}
}
}
return 1;
}
//-------------------------------------------
forward PosAfterSpec(playerid);
public PosAfterSpec(playerid) {
SetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
SetPlayerFacingAngle(playerid,Pos[playerid][3]);
}
//==============================================================================
EraseVehicle(vehicleid)
{
for(new players=0;players<=MAX_PLAYERS;players++)
{
new Float:X,Float:Y,Float:Z;
if (IsPlayerInVehicle(players,vehicleid))
{
GetPlayerPos(players,X,Y,Z);
SetPlayerPos(players,X,Y,Z+2);
SetVehicleToRespawn(vehicleid);
}
SetVehicleParamsForPlayer(vehicleid,players,0,1);
}
SetTimerEx("VehRes",3000,0,"d",vehicleid);
return 1;
}
//==============================================================================
forward VehRes(vehicleid);
public VehRes(vehicleid)
{
DestroyVehicle(vehicleid);
}
//==============================================================================
public OnPlayerExitVehicle(playerid, vehicleid)
{
if(Invis[playerid] == 1) EraseVehicle(vehicleid);
if(DoorsLocked[playerid] == 1) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),playerid,false,false);
//spec
for(new x=0; x<MAX_PLAYERS; x++) {
if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && gSpectateID[x] == playerid && gSpectateType[x] == ADMIN_SPEC_TYPE_VEHICLE) {
TogglePlayerSpectating(x, 1);
PlayerSpectatePlayer(x, playerid);
gSpectateType[x] = ADMIN_SPEC_TYPE_PLAYER;
}
}
return 1;
}
//==============================================================================
public OnRconCommand(cmd[]) {
if (strlen(cmd) > 50)
{
print("Invalid command length (exceeding 50 characters)");
return true;
}
//------------------------------------------
else if(strcmp(cmd, "info", true)==0) {
new TotalVehicles = CreateVehicle(411, 0, 0, 0, 0, 0, 0, 1000);
DestroyVehicle(TotalVehicles);
new Text:TT = TextDrawCreate(1,1,"Test");
TextDrawDestroy(TT);
new numo = CreateObject(1245,0,0,1000,0,0,0);
DestroyObject(numo);
new nump = CreatePickup(371,2,0,0,1000);
DestroyPickup(nump);
new gz = GangZoneCreate(3,3,5,5);
GangZoneDestroy(gz);
new model[250], nummodel;
for(new i=1;i<TotalVehicles;i++) {
model[GetVehicleModel(i)-400]++;
}
for (new i=0;i<250;i++) {
if(model[i]!=0) {
nummodel++; }
}
new string[256];
print(" ===========================================================================");
printf(" Server Info:");
format(string,256,"[ Players Connected: %d || Maximum Players: %d ] [Ratio %0.2f ]",ConnectedPlayers(),GetMaxPlayers(),Float:ConnectedPlayers() / Float:GetMaxPlayers() );
printf(string);
format(string,256,"[ Vehicles: %d || Models %d || Players In Vehicle: %d ]",TotalVehicles-1,nummodel, InVehCount() );
printf(string);
format(string,256,"[ InCar %d || OnBike %d ]",InCarCount(),OnBikeCount() );
printf(string);
format(string,256,"[ Textdraws: %d || Objects: %d || Pickups %d || Gangzones %d]",_:TT, numo-1,nump,gz);
printf(string);
format(string,256,"[ Players In Jail %d || Players Frozen %d ]",JailedPlayers(),FrozenPlayers() );
printf(string);
format(string,256,"[ Admins online %d ]",AdminCount() );
printf(string);
print(" ===========================================================================");
return 1;
}
else if (!strcmp(cmd, "msg", .length = 3))
{
new arg_1 = argpos(cmd),
arg_2 = argpos(cmd, arg_1),
targetid = strval(cmd[arg_1]),
message[128];
if ( !cmd[arg_1] || cmd[arg_1] < '0' || cmd[arg_1] > '9' || targetid > max_playerid || targetid < 0 || !cmd[arg_2])
printf("Usage: \"msg <playerid(0-%d)> <message>\"",max_playerid);
else if ( !IsPlayerConnected(targetid) )
print("This player is not connected!");
else
{
format(message, sizeof(message), "[RCON] Message from an admin: %s", cmd[arg_2]);
SendClientMessage(targetid, 0xFFFFFFFF, message);
}
return true;
}
//--------------------------------------------
else if (!strcmp(cmd, "asay", .length = 4))
{
new arg_1 = argpos(cmd),
message[128];
if ( !cmd[arg_1] || cmd[arg_1] < '0')
print("Usage: \"asay <message>\"");
else
{
format(message, sizeof(message), "[RCON] MessageToAdmins: %s", cmd[arg_1]);
MessageToAdmins(0xFFFFFFFF, message);
}
return true;
}
//
return 0;
}
//==============================================================================
forward HideNameTag();
public HideNameTag()
{
for (new i = 0; i < MAX_PLAYERS; i++)
{
for (new x = 0; x < MAX_PLAYERS; x++)
{
if(!LAdmin[i] && Invis[x] == 1)
{
ShowPlayerNameTagForPlayer(i,x,0);
}
else
{
ShowPlayerNameTagForPlayer(i,x,1);
}
}
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
Object_OnPlayerDisconnect(playerid, reason);
if (LoggedIn[playerid] == 1) {
dUserSetINT(PlayerName2(playerid)).("LoggedIn",0);
dUserSetINT(PlayerName2(playerid)).("money",GetPlayerMoney(playerid));
dUserSetINT(PlayerName2(playerid)).("kills",MyKills[playerid]);
dUserSetINT(PlayerName2(playerid)).("deaths",MyDeaths[playerid]);
/* new Float:x,Float:y,Float:z, interior;
GetPlayerPos(playerid,x,y,z); interior = GetPlayerInterior(playerid);
dUserSetINT(PlayerName2(playerid)).("x",floatround(x));
dUserSetINT(PlayerName2(playerid)).("y",floatround(y));
dUserSetINT(PlayerName2(playerid)).("z",floatround(z));
dUserSetINT(PlayerName2(playerid)).("interior",interior);*/
//weapons
new weap1, ammo1, weap2, ammo2, weap3, ammo3, weap4, ammo4, weap5, ammo5, weap6, ammo6;
GetPlayerWeaponData(playerid,2,weap1,ammo1);// hand gun
GetPlayerWeaponData(playerid,3,weap2,ammo2);//shotgun
GetPlayerWeaponData(playerid,4,weap3,ammo3);// SMG
GetPlayerWeaponData(playerid,5,weap4,ammo4);// AK47 / M4
GetPlayerWeaponData(playerid,6,weap5,ammo5);// rifle
GetPlayerWeaponData(playerid,7,weap6,ammo6);// rocket launcher
dUserSetINT(PlayerName2(playerid)).("weap1",weap1); dUserSetINT(PlayerName2(playerid)).("weap1ammo",ammo1);
dUserSetINT(PlayerName2(playerid)).("weap2",weap2); dUserSetINT(PlayerName2(playerid)).("weap2ammo",ammo2);
dUserSetINT(PlayerName2(playerid)).("weap3",weap3); dUserSetINT(PlayerName2(playerid)).("weap3ammo",ammo3);
dUserSetINT(PlayerName2(playerid)).("weap4",weap4); dUserSetINT(PlayerName2(playerid)).("weap4ammo",ammo4);
dUserSetINT(PlayerName2(playerid)).("weap5",weap5); dUserSetINT(PlayerName2(playerid)).("weap5ammo",ammo5);
dUserSetINT(PlayerName2(playerid)).("weap6",weap6); dUserSetINT(PlayerName2(playerid)).("weap6ammo",ammo6);
new Float:health; GetPlayerHealth(playerid, Float:health);
dUserSetINT(PlayerName2(playerid)).("health",floatround(health));
new Float:armour; GetPlayerArmour(playerid, Float:armour);
dUserSetINT(PlayerName2(playerid)).("armour",floatround(armour));
new year,month,day; getdate(year, month, day);
new strdate[20]; format(strdate, sizeof(strdate), "%d.%d.%d",day,month,year);
new file[256],name[24]; GetPlayerName(playerid,name,24); format(file,256,"/users/%s.sav",udb_encode(name));
dini_Set(file,"LastOn",strdate);
dUserSetINT(PlayerName2(playerid)).("TimesOnServer",(dUserINT(PlayerName2(playerid)).("TimesOnServer"))+1);
}
LoggedIn[playerid] = 0;
//spec--------------
for(new x=0; x<MAX_PLAYERS; x++) {
if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && gSpectateID[x] == playerid) {
AdvanceSpectate(x);
}
}
if(RaceParticipant[playerid]>=1)
{
if(Participants==1) //Last participant leaving, ending race.
{
endrace();
}
if(RaceParticipant[playerid] < 3 && RaceStart == 0 && !(RaceParticipant[playerid]==3 && RaceStart == 1))
{ //Doing readycheck since someone left, but not if they disconnected during countdown.
ReadyRefresh();
}
Participants--;
RaceParticipant[playerid]=0;
DisablePlayerRaceCheckpoint(playerid);
}
if(RaceBuilders[playerid] != 0)
{
DisablePlayerRaceCheckpoint(playerid);
for(new i;i<BCurrentCheckpoints[b(playerid)];i++)
{
BRaceCheckpoints[b(playerid)][i][0]=0.0;
BRaceCheckpoints[b(playerid)][i][1]=0.0;
BRaceCheckpoints[b(playerid)][i][2]=0.0;
}
BuilderSlots[b(playerid)] = MAX_PLAYERS+1;
RaceBuilders[playerid] = 0;
}
Object_OnPlayerDisconnect(playerid, reason);
tkscore[playerid] = 0;
new pName[MAX_PLAYER_NAME];
new string[56];
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), "%s has left the server.", pName);
SendClientMessageToAllEx(COLOR_RED, string);
return 1;
}
//==============================================================================
forward PutAtPos(playerid);
public PutAtPos(playerid) {
if (dUserINT(PlayerName2(playerid)).("x")!=0) {
//SendClientMessage(playerid,COLOR_BLUE,"Setting you to your last position. Welcome back!");
SetPlayerPos(playerid,
float(dUserINT(PlayerName2(playerid)).("x")),
float(dUserINT(PlayerName2(playerid)).("y")),
float(dUserINT(PlayerName2(playerid)).("z")));
SetPlayerInterior(playerid, (dUserINT(PlayerName2(playerid)).("interior")) );
}
}
public LockRacers()
{
for(new i;i<MAX_PLAYERS;i++)
{
if(RaceParticipant[i] != 0)
{
TogglePlayerControllable(i,0);
if(IsPlayerInAnyVehicle(i)) PlayerVehicles[i]=GetPlayerVehicleID(i);
else PlayerVehicles[i]=0;
}
}
}
public UnlockRacers()
{
for(new i;i<MAX_PLAYERS;i++)
{
if(RaceParticipant[i]>0)
{
TogglePlayerControllable(i,1);
if(PlayerVehicles[i] != 0)
{
PutPlayerInVehicle(i,PlayerVehicles[i],0);
PlayerVehicles[i]=0;
}
}
}
}
public countdown() {
if(RaceStart == 0) // Locking players, setting the reward and
{
RaceStart=1;
LockRacers();
new tmpprize, OPot;
OPot=Pot;
if(PrizeMode == 1 || PrizeMode == 4)
{
if(Racemode == 0 || Racemode == 3) tmpprize = floatround(RLenght);
else if(Racemode == 1) tmpprize = floatround(LLenght * Racelaps);
else if(Racemode == 2) tmpprize = floatround(RLenght * 2 * Racelaps);
}
tmpprize *= DynaMP;
if(PrizeMode == 0 || PrizeMode == 3) Pot += Prize;
else if(PrizeMode == 1 || PrizeMode == 4) Pot += tmpprize;
if(Participants == 1) Pot=OPot; // Only 1 racer, force reward to entrance fees.
}
if(cd>0)
{
format(ystring, sizeof(ystring), "%d...",cd);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(RaceParticipant[i]>1)
{
RaceSound(i,1056);
GameTextForPlayer(i,ystring,1000,3);
}
}
}
else if(cd == 0)
{
format(ystring, sizeof(ystring), "~g~GO!",cd);
KillTimer(Countdown);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(RaceParticipant[i]>1)
{
RaceSound(i,1057);
GameTextForPlayer(i,ystring,3000,3);
RaceParticipant[i]=4;
CurrentLap[i]=1;
if(Racemode == 3) SetRaceCheckpoint(i,LCurrentCheckpoint,LCurrentCheckpoint-1);
else SetRaceCheckpoint(i,0,1);
}
}
UnlockRacers();
RaceTick=tickcount();
}
cd--;
}
public SetNextCheckpoint(playerid)
{
if(Racemode == 0) // Default Mode
{
CurrentCheckpoint[playerid]++;
if(CurrentCheckpoint[playerid] == LCurrentCheckpoint)
{
SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],-1);
RaceParticipant[playerid]=6;
}
else SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],CurrentCheckpoint[playerid]+1);
}
else if(Racemode == 1) // Ring Mode
{
CurrentCheckpoint[playerid]++;
if(CurrentCheckpoint[playerid] == LCurrentCheckpoint+1 && CurrentLap[playerid] == Racelaps)
{
SetRaceCheckpoint(playerid,0,-1);
RaceParticipant[playerid]=6;
}
else if (CurrentCheckpoint[playerid] == LCurrentCheckpoint+1 && CurrentLap[playerid] != Racelaps)
{
CurrentCheckpoint[playerid]=0;
SetRaceCheckpoint(playerid,0,1);
RaceParticipant[playerid]=5;
}
else if(CurrentCheckpoint[playerid] == 1 && RaceParticipant[playerid]==5)
{
ChangeLap(playerid);
if(LCurrentCheckpoint==1)
{
SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],0);
}
else
{
SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],2);
}
RaceParticipant[playerid]=4;
}
else
{
if(LCurrentCheckpoint==1 || CurrentCheckpoint[playerid] == LCurrentCheckpoint) SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],0);
else SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],CurrentCheckpoint[playerid]+1);
}
}
else if(Racemode == 2) // Yoyo-mode
{
if(RaceParticipant[playerid]==4)
{
if(CurrentCheckpoint[playerid] == LCurrentCheckpoint) // @ Last CP, trigger last-1
{
RaceParticipant[playerid]=5;
CurrentCheckpoint[playerid]=LCurrentCheckpoint-1;
SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],CurrentCheckpoint[playerid]-1);
}
else if(CurrentCheckpoint[playerid] == LCurrentCheckpoint-1) // Second last CP, set next accordingly
{
CurrentCheckpoint[playerid]++;
SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],CurrentCheckpoint[playerid]-1);
}
else
{
CurrentCheckpoint[playerid]++;
SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],CurrentCheckpoint[playerid]+1);
}
}
else if(RaceParticipant[playerid]==5)
{
if(CurrentCheckpoint[playerid] == 1 && CurrentLap[playerid] == Racelaps) //Set the finish line
{
SetRaceCheckpoint(playerid,0,-1);
RaceParticipant[playerid]=6;
}
else if(CurrentCheckpoint[playerid] == 0) //At finish line, change lap.
{
ChangeLap(playerid);
if(LCurrentCheckpoint==1)
{
SetRaceCheckpoint(playerid,1,0);
}
else
{
SetRaceCheckpoint(playerid,1,2);
}
RaceParticipant[playerid]=4;
}
else if(CurrentCheckpoint[playerid] == 1)
{
CurrentCheckpoint[playerid]--;
SetRaceCheckpoint(playerid,0,1);
}
else
{
CurrentCheckpoint[playerid]--;
SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],CurrentCheckpoint[playerid]-1);
}
}
}
else if(Racemode == 3) // Mirror Mode
{
CurrentCheckpoint[playerid]--;
if(CurrentCheckpoint[playerid] == 0)
{
SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],-1);
RaceParticipant[playerid]=6;
}
else
{
SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],CurrentCheckpoint[playerid]-1);
}
}
}
public SetRaceCheckpoint(playerid,target,next)
{
if(next == -1 && Airrace == 0) SetPlayerRaceCheckpoint(playerid,1,RaceCheckpoints[target][0],RaceCheckpoints[target][1],RaceCheckpoints[target][2],0.0,0.0,0.0,CPsize);
else if(next == -1 && Airrace == 1) SetPlayerRaceCheckpoint(playerid,4,RaceCheckpoints[target][0],RaceCheckpoints[target][1],RaceCheckpoints[target][2],0.0,0.0,0.0,CPsize);
else if(Airrace == 1) SetPlayerRaceCheckpoint(playerid,3,RaceCheckpoints[target][0],RaceCheckpoints[target][1],RaceCheckpoints[target][2],RaceCheckpoints[next][0],
RaceCheckpoints[next][1],RaceCheckpoints[next][2],CPsize);
else SetPlayerRaceCheckpoint(playerid,0,RaceCheckpoints[target][0],RaceCheckpoints[target][1],RaceCheckpoints[target][2],RaceCheckpoints[next][0],RaceCheckpoints[next][1],
RaceCheckpoints[next][2],CPsize);
}
public SetBRaceCheckpoint(playerid,target,next)
{
new ar = BAirrace[b(playerid)];
if(next == -1 && ar == 0) SetPlayerRaceCheckpoint(playerid,1,BRaceCheckpoints[b(playerid)][target][0],BRaceCheckpoints[b(playerid)][target][1],
BRaceCheckpoints[b(playerid)][target][2],0.0,0.0,0.0,BCPsize[b(playerid)]);
else if(next == -1 && ar == 1) SetPlayerRaceCheckpoint(playerid,4,BRaceCheckpoints[b(playerid)][target][0],
BRaceCheckpoints[b(playerid)][target][1],BRaceCheckpoints[b(playerid)][target][2],0.0,0.0,0.0,
BCPsize[b(playerid)]);
else if(ar == 1) SetPlayerRaceCheckpoint(playerid,3,BRaceCheckpoints[b(playerid)][target][0],BRaceCheckpoints[b(playerid)][target][1],BRaceCheckpoints[b(playerid)][target][2],
BRaceCheckpoints[b(playerid)][next][0],BRaceCheckpoints[b(playerid)][next][1],BRaceCheckpoints[b(playerid)][next][2],BCPsize[b(playerid)]);
else SetPlayerRaceCheckpoint(playerid,0,BRaceCheckpoints[b(playerid)][target][0],BRaceCheckpoints[b(playerid)][target][1],BRaceCheckpoints[b(playerid)][target][2],
BRaceCheckpoints[b(playerid)][next][0],BRaceCheckpoints[b(playerid)][next][1],BRaceCheckpoints[b(playerid)][next][2],BCPsize[b(playerid)]);
}
public GetLapTick(playerid)
{
new tick, lap;
tick=tickcount();
if(CurrentLap[playerid]==1)
{
lap=tick-RaceTick;
LastLapTick[playerid]=tick;
}
else
{
lap=tick-LastLapTick[playerid];
LastLapTick[playerid]=tick;
}
return lap;
}
public GetRaceTick(playerid)
{
new tick, race;
tick=tickcount();
race=tick-RaceTick;
return race;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
if(RaceParticipant[playerid]>=1) // See if the player is participating in a race, allows race builders to do their stuff in peace.
{
if(RaceParticipant[playerid] == 6) // Player reaches the checkered flag.
{
new name[MAX_PLAYER_NAME], LapTime, RaceTime;
LapTime=GetLapTick(playerid);
RaceTime=GetRaceTick(playerid);
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
RaceParticipant[playerid]=0;
RaceSound(playerid,1139);
format(ystring,sizeof(ystring),"%s has finished the race, position: %d",name,Ranking);
if (Ranking < 4) SendClientMessageToAll(COLOR_GREEN,ystring);
else SendClientMessage(playerid,COLOR_GREEN,ystring);
if(Racemode == ORacemode && ORacelaps == Racelaps)
{
new LapString[10],RaceString[10], laprank, racerank;
LapString=BeHuman(LapTime);
RaceString=BeHuman(RaceTime);
format(ystring,sizeof(ystring),"~w~Racetime: %s",RaceString);
if(ORacemode!=0) format(ystring,sizeof(ystring),"%s~n~Laptime: %s",ystring,LapString);
laprank=CheckBestLap(playerid,LapTime);
if(laprank == 1)
{
format(ystring,sizeof(ystring),"%s~n~~y~LAP RECORD!",ystring);
}
racerank=CheckBestRace(playerid,RaceTime);
if(racerank == 1)
{
format(ystring,sizeof(ystring),"%s~n~~y~TRACK RECORD!",ystring);
}
GameTextForPlayer(playerid,ystring,13000,3);
}
if(Ranking<4)
{
new winrar;
if(Ranking == 1 && Participants == 1) winrar=Pot; // If the player was only participant, give the whole pot.
else if(Ranking == 1 && Participants == 2) winrar=Pot/6*4; // If only 2 participants, give 4/6ths of the pot.
else winrar=Pot/6*PrizeMP; // Otherwise 3/6ths, 2/6ths and 1/6th.
GivePlayerMoney(playerid,winrar);
format(ystring,sizeof(ystring),"You have earned $%d from the race!",winrar);
PrizeMP--;
SendClientMessage(playerid,COLOR_GREEN,ystring);
}
Ranking++;
Participants--;
DisablePlayerRaceCheckpoint(playerid);
if(Participants == 0)
{
endrace();
}
}
else if (RaceStart == 0 && RaceParticipant[playerid]==1) // Player arrives to the start CP for 1st time
{
SendClientMessage(playerid,COLOR_YELLOW,"Type /ready when you are ready to start.");
SendClientMessage(playerid,COLOR_YELLOW,"NOTE: Your controls will be locked once the countdown starts.");
RaceParticipant[playerid]=2;
}
else if (RaceStart==1) // Otherwise switch to the next race CP.
{
RaceSound(playerid,1138);
SetNextCheckpoint(playerid);
}
}
return 1;
}
public endrace()
{
SaveScores(); //If the race had already started, and mode & laps are as originally, save the lapscores and racescores.
for(new i=0;i<LCurrentCheckpoint;i++)
{
RaceCheckpoints[i][0]=0.0;
RaceCheckpoints[i][1]=0.0;
RaceCheckpoints[i][2]=0.0;
}
LCurrentCheckpoint=0;
for(new i=0;i<MAX_PLAYERS;i++)
{
LastLapTick[i]=0;
DisablePlayerRaceCheckpoint(i);
if(RaceParticipant[i]==3) //Player was still /ready-locked, unlocking.
{
TogglePlayerControllable(i,1);
if(PlayerVehicles[i] != 0)
{
PutPlayerInVehicle(i,PlayerVehicles[i],0);
PlayerVehicles[i]=0;
}
}
RaceParticipant[i]=0;
}
RaceActive=0;
RaceStart=0;
Participants=0;
Pot = 0;
PrizeMP = 3;
SendClientMessageToAll(COLOR_YELLOW, "The current race has been finished.");
}
public BActiveCP(playerid,sele)
{
if(BCurrentCheckpoints[b(playerid)]-1 == sele) SetBRaceCheckpoint(playerid,sele,-1);
else SetBRaceCheckpoint(playerid,sele,sele+1);
}
public RaceSound(playerid,sound)
{
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
PlayerPlaySound(playerid,sound,x,y,z);
}
public ReadyRefresh()
{
if(RaceActive==1) //No countdown if no race is active (could occur with /leave)
{
new Waiting=0, Ready=0;
for(new i=0;i<MAX_PLAYERS;i++)
{
if(RaceParticipant[i] == 1 || RaceParticipant[i] == 2) Waiting++;
else if(RaceParticipant[i] == 3) Ready++;
}
if(Waiting==0)
{
SendClientMessageToAll(COLOR_GREEN,"Everyone is ready, the race begins!");
cd=5;
Countdown = SetTimer("countdown",1000,1);
}
else if(Ready >= Waiting && MajorityDelay > 0 && MajStart == 0)
{
MajStart=1;
format(ystring,sizeof(ystring),"Half of the racers are ready, race starts in %d seconds!", MajorityDelay);
SendClientMessageToAll(COLOR_GREEN,ystring);
MajStartTimer = SetTimer("mscountdown",10000,1);
mscd= MajorityDelay;
}
}
}
public mscountdown()
{
if(RaceStart == 1 || MajStart == 0)
{
MajStart=0;
KillTimer(MajStartTimer);
}
else
{
mscd-=10;
if(mscd <= 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
if(RaceParticipant[i] != 3 && RaceParticipant[i] != 0)
{
GameTextForPlayer(i,"~r~You didn't make it in time!",6000,3);
DisablePlayerRaceCheckpoint(i);
RaceParticipant[i]=0;
Participants--;
}
else if (RaceParticipant[i]!=0) SendClientMessage(i,COLOR_GREEN,"Pre-race countdown done, the race beings!");
}
KillTimer(MajStartTimer);
cd=5;
Countdown = SetTimer("countdown",1000,1);
}
else
{
new hurry_string[64];
format(ystring,sizeof(ystring),"~y~Race starting in ~w~%d~y~ seconds!",mscd);
format(hurry_string,sizeof(hurry_string),"%s~n~~r~HURRY UP AND /READY",ystring);
for(new i;i<MAX_PLAYERS;i++)
{
if(RaceParticipant[i] < 3 && mscd < 31) GameTextForPlayer(i,hurry_string,6000,3);
else if(RaceParticipant[i] > 0) GameTextForPlayer(i,ystring,6000,3);
}
}
}
}
public CheckBestLap(playerid,laptime)
{
if(TopLapTimes[4]<laptime && TopLapTimes[4] != 0 || Racemode == 0)
{
return 0; // If the laptime is more than the previous 5th on the top list, skip to end
} // Or the race is gamemode 0 where laps don't really apply
for(new i;i<5;i++)
{
if(TopLapTimes[i] == 0)
{
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,playername,MAX_PLAYER_NAME);
TopLappers[i]=playername;
TopLapTimes[i]=laptime;
ScoreChange=1;
return i+1;
}
else if(TopLapTimes[i] > laptime)
{
for(new j=4;j>=i;j--)
{
TopLapTimes[j+1]=TopLapTimes[j];
TopLappers[j+1]=TopLappers[j];
}
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,playername,MAX_PLAYER_NAME);
TopLapTimes[i]=laptime;
TopLappers[i]=playername;
ScoreChange=1;
return i+1;
}
}
return -1; //Shouldn't get here.
}
public CheckBestRace(playerid,racetime)
{
if(TopRacerTimes[4]<racetime && TopRacerTimes[4] != 0) return 0;
for(new i;i<5;i++)
{
if(TopRacerTimes[i] == 0)
{
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,playername,MAX_PLAYER_NAME);
TopRacers[i]=playername;
TopRacerTimes[i]=racetime;
ScoreChange=1;
return i+1;
}
else if(TopRacerTimes[i] > racetime)
{
for(new j=4;j>=i;j--)
{
TopRacerTimes[j+1]=TopRacerTimes[j];
TopRacers[j+1]=TopRacers[j];
}
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,playername,MAX_PLAYER_NAME);
TopRacerTimes[i]=racetime;
TopRacers[i]=playername;
ScoreChange=1;
return i+1;
}
}
return -1; //Shouldn't get here.
}
public SaveScores()
{
if(ScoreChange == 1)
{
fremove(CFile);
new File:f,Float:x,Float:y,Float:z, templine[512];
f = fopen(CFile,io_write);
format(templine,sizeof(templine),"YRACE %d %s %d %d %d %f\n", RACEFILE_VERSION, CBuilder, ORacemode, ORacelaps, OAirrace, OCPsize);
fwrite(f,templine);
format(templine,sizeof(templine),"%s %d %s %d %s %d %s %d %s %d\n",
TopRacers[0],TopRacerTimes[0],TopRacers[1], TopRacerTimes[1], TopRacers[2],TopRacerTimes[2],
TopRacers[3],TopRacerTimes[3],TopRacers[4], TopRacerTimes[4]);
fwrite(f,templine);
format(templine,sizeof(templine),"%s %d %s %d %s %d %s %d %s %d\n",
TopLappers[0],TopLapTimes[0],TopLappers[1], TopLapTimes[1], TopLappers[2],TopLapTimes[2],
TopLappers[3],TopLapTimes[3],TopLappers[4], TopLapTimes[4]);
fwrite(f,templine);
for(new i = 0; i < LCurrentCheckpoint+1;i++)
{
x=RaceCheckpoints[i][0];
y=RaceCheckpoints[i][1];
z=RaceCheckpoints[i][2];
format(templine,sizeof(templine),"%f %f %f\n",x,y,z);
fwrite(f,templine);
}
fclose(f);
}
ScoreChange=0;
}
public ChangeLap(playerid)
{
new LapTime, TimeString[10], checklap;
LapTime=GetLapTick(playerid);
TimeString=BeHuman(LapTime);
format(ystring,sizeof(ystring),"~w~Lap %d/%d - time: %s", CurrentLap[playerid], Racelaps, TimeString);
if(Racemode == ORacemode && ORacelaps == Racelaps)
{
checklap=CheckBestLap(playerid,LapTime);
if(checklap==1) format(ystring,sizeof(ystring),"%s~n~~y~LAP RECORD!",ystring);
}
CurrentLap[playerid]++;
if(CurrentLap[playerid] == Racelaps) format(ystring,sizeof(ystring),"%s~n~~g~Final lap!",ystring);
GameTextForPlayer(playerid,ystring,6000,3);
}
BeHuman(ticks)
{
new HumanTime[10], minutes, seconds, secstring[2], msecstring[3];
minutes=ticks/60000;
ticks=ticks-(minutes*60000);
seconds=ticks/1000;
ticks=ticks-(seconds*1000);
if(seconds <10) format(secstring,sizeof(secstring),"0%d",seconds);
else format(secstring,sizeof(secstring),"%d",seconds);
format(HumanTime,sizeof(HumanTime),"%d:%s",minutes,secstring);
if(ticks < 10) format(msecstring,sizeof(msecstring),"00%d", ticks);
else if(ticks < 100) format(msecstring,sizeof(msecstring),"0%d",ticks);
else format(msecstring,sizeof(msecstring),"%d",ticks);
format(HumanTime,sizeof(HumanTime),"%s.%s",HumanTime,msecstring);
return HumanTime;
}
public LoadTimes(playerid,timemode,tmp[])
{
new temprace[67], idx;
format(temprace,sizeof(temprace),"%s.yr",tmp);
if(strlen(tmp))
{
if(!fexist(temprace))
{
format(ystring,sizeof(ystring),"Race \'%s\' doesn't exist!",tmp);
SendClientMessage(playerid,COLOR_YELLOW,ystring);
return 1;
}
else
{
new File:f, templine[256], TBuilder[MAX_STRING], TempLapper[MAX_STRING], TempLap;
idx=0;
f = fopen(temprace, io_read);
fread(f,templine,sizeof(templine)); // Read header-line
if(templine[0] == 'Y') //Checking if the racefile is v0.2+
{
new fileversion;
strtok(templine,idx); // read off YRACE
fileversion = strval(strtok(templine,idx)); // read off the file version
if(fileversion > RACEFILE_VERSION) // Check if the race is made with a newer version of the racefile format
{
format(ystring,sizeof(ystring),"Race \'%s\' is created with a newer version of YRACE, unable to load.",tmp);
SendClientMessage(playerid,COLOR_RED,ystring);
return 1;
}
TBuilder=strtok(templine,idx); // read off RACEBUILDER
fread(f,templine,sizeof(templine)); // read off best race times
if(timemode ==1) fread(f,templine,sizeof(templine)); // read off best lap times
idx=0;
if(timemode == 0) format(ystring,sizeof(ystring),"%s by %s - Best race times:",tmp,TBuilder);
else if(timemode == 1) format(ystring,sizeof(ystring),"%s by %s - Best laps:",tmp,TBuilder);
else return 1;
SendClientMessage(playerid,COLOR_GREEN,ystring);
for(new i=0;i<5;i++)
{
TempLapper=strtok(templine,idx);
TempLap=strval(strtok(templine,idx));
if(TempLap == 0)
{
format(ystring,sizeof(ystring),"%d. None yet",i+1);
i=6;
}
else format(ystring,sizeof(ystring),"%d. %s - %s",i+1,BeHuman(TempLap),TempLapper);
SendClientMessage(playerid,COLOR_GREEN,ystring);
}
return 1;
}
else
{
format(ystring,sizeof(ystring),"Race \'%s\' doesn't contain any time data.",tmp);
SendClientMessage(playerid,COLOR_GREEN,ystring);
return 1;
}
}
}
return 0;
}
public IsNotAdmin(playerid)
{
if (!IsPlayerAdmin(playerid))
{
SendClientMessage(playerid, COLOR_RED, "You need to be an admin to use this command!");
return 1;
}
return 0;
}
public GetBuilderSlot(playerid)
{
for(new i;i < MAX_BUILDERS; i++)
{
if(!(BuilderSlots[i] < MAX_PLAYERS+1))
{
BuilderSlots[i] = playerid;
RaceBuilders[playerid] = i+1;
return i+1;
}
}
return 0;
}
public b(playerid) return RaceBuilders[playerid]-1;
public Float:Distance(Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2)
{
new Float:temp=floatsqroot((x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) + (z1-z2) * (z1-z2));
if(temp < 0) temp=temp*(-1);
return temp;
}
public clearrace(playerid)
{
for(new i=0;i<BCurrentCheckpoints[b(playerid)];i++)
{
BRaceCheckpoints[b(playerid)][i][0]=0.0;
BRaceCheckpoints[b(playerid)][i][1]=0.0;
BRaceCheckpoints[b(playerid)][i][2]=0.0;
}
BCurrentCheckpoints[b(playerid)]=0;
DisablePlayerRaceCheckpoint(playerid);
SendClientMessage(playerid, COLOR_GREEN, "Your race has been cleared! Use /buildrace to start a new one.");
BuilderSlots[b(playerid)] = MAX_PLAYERS+1;
RaceBuilders[playerid]=0;
}
public startrace()
{
format(ystring,128,"Race \'%s\' is about to start, type /join to join!",CRaceName);
SendClientMessageToAll(COLOR_GREEN,ystring);
if(Racemode == 0) format(ystring,sizeof(ystring),"default");
else if(Racemode == 1) format(ystring,sizeof(ystring),"ring");
else if(Racemode == 2) format(ystring,sizeof(ystring),"yoyo");
else if(Racemode == 3) format(ystring,sizeof(ystring),"mirror");
format(ystring,sizeof(ystring),"Racemode: %s Laps: %d",ystring,Racelaps);
if(PrizeMode >= 2) format(ystring,sizeof(ystring),"%s Join fee: %d",ystring,JoinFee);
if(Airrace == 1) format(ystring,sizeof(ystring),"%s AIR RACE",ystring);
if(Racemode == 0 || Racemode == 3) format(ystring,sizeof(ystring),"%s Track lenght: %0.2fkm", ystring, RLenght/1000);
else if(Racemode == 1) format(ystring,sizeof(ystring),"%s Lap lenght: %.2fkm, Total: %.2fkm", ystring, LLenght/1000, LLenght * Racelaps / 1000);
SendClientMessageToAll(COLOR_GREEN,ystring);
RaceStart=0;
RaceActive=1;
ScoreChange=0;
Ranking=1;
PrizeMP=3;
}
ReturnModeName(mode)
{
new modename[8];
if(mode == 0) modename="Default";
else if(mode == 1) modename="Ring";
else if(mode == 2) modename="Yoyo";
else if(mode == 3) modename="Mirror";
return modename;
}
public LoadRace(tmp[])
{
new race_name[32],templine[512];
format(CRaceName,sizeof(CRaceName), "%s",tmp);
format(race_name,sizeof(race_name), "%s.yr",tmp);
if(!fexist(race_name)) return -1; // File doesn't exist
CFile=race_name;
LCurrentCheckpoint=-1; RLenght=0; RLenght=0;
new File:f, i;
f = fopen(race_name, io_read);
fread(f,templine,sizeof(templine));
if(templine[0] == 'Y') //Checking if the racefile is v0.2+
{
new fileversion;
strtok(templine,i); // read off YRACE
fileversion = strval(strtok(templine,i)); // read off the file version
if(fileversion > RACEFILE_VERSION) return -2; // Check if the race is made with a newer version of the racefile format
CBuilder=strtok(templine,i); // read off RACEBUILDER
ORacemode = strval(strtok(templine,i)); // read off racemode
ORacelaps = strval(strtok(templine,i)); // read off amount of laps
if(fileversion > 1)
{
Airrace = strval(strtok(templine,i)); // read off airrace
CPsize = floatstr(strtok(templine,i)); // read off CP size
}
else // v1 file format, set to default
{
Airrace = 0;
CPsize = 8.0;
}
OAirrace = Airrace;
OCPsize = CPsize;
Racemode=ORacemode; Racelaps=ORacelaps; //Allows changing the modes, but disables highscores if they've been changed.
fread(f,templine,sizeof(templine)); // read off best race times
i=0;
for(new j=0;j<5;j++)
{
TopRacers[j]=strtok(templine,i);
TopRacerTimes[j]=strval(strtok(templine,i));
}
fread(f,templine,sizeof(templine)); // read off best lap times
i=0;
for(new j=0;j<5;j++)
{
TopLappers[j]=strtok(templine,i);
TopLapTimes[j]=strval(strtok(templine,i));
}
}
else //Otherwise add the lines as checkpoints, the file is made with v0.1 (or older) version of the script.
{
LCurrentCheckpoint++;
RaceCheckpoints[LCurrentCheckpoint][0] = floatstr(strtok(templine,i));
RaceCheckpoints[LCurrentCheckpoint][1] = floatstr(strtok(templine,i));
RaceCheckpoints[LCurrentCheckpoint][2] = floatstr(strtok(templine,i));
Racemode=0; ORacemode=0; Racelaps=0; ORacelaps=0; //Enables converting old files to new versions
CPsize = 8.0; Airrace = 0; // v2 additions
OCPsize = CPsize; OAirrace = Airrace; // v2 additions
CBuilder="UNKNOWN";
for(new j;j<5;j++)
{
TopLappers[j]="A"; TopLapTimes[j]=0; TopRacers[j]="A"; TopRacerTimes[j]=0;
}
}
while(fread(f,templine,sizeof(templine),false))
{
LCurrentCheckpoint++;
i=0;
RaceCheckpoints[LCurrentCheckpoint][0] = floatstr(strtok(templine,i));
RaceCheckpoints[LCurrentCheckpoint][1] = floatstr(strtok(templine,i));
RaceCheckpoints[LCurrentCheckpoint][2] = floatstr(strtok(templine,i));
if(LCurrentCheckpoint >= 1)
{
RLenght+=Distance(RaceCheckpoints[LCurrentCheckpoint][0],RaceCheckpoints[LCurrentCheckpoint][1],
RaceCheckpoints[LCurrentCheckpoint][2],RaceCheckpoints[LCurrentCheckpoint-1][0],
RaceCheckpoints[LCurrentCheckpoint-1][1],RaceCheckpoints[LCurrentCheckpoint-1][2]);
}
}
LLenght = RLenght + Distance(RaceCheckpoints[LCurrentCheckpoint][0],RaceCheckpoints[LCurrentCheckpoint][1],
RaceCheckpoints[LCurrentCheckpoint][2],RaceCheckpoints[0][0],RaceCheckpoints[0][1],
RaceCheckpoints[0][2]);
fclose(f);
return 1;
}
public RaceRotation()
{
if(!fexist("yrace.rr"))
{
printf("ERROR in YRACE's Race Rotation (yrace.rr): yrace.rr doesn't exist!");
return -1;
}
if(RRotation == -1)
{
KillTimer(RotationTimer);
return -1; // RRotation has been disabled
}
if(Participants > 0) return 1; // A race is still active.
new File:f, templine[32], rotfile[]="yrace.rr", rraces=-1, rracenames[255][255], idx, fback;
f = fopen(rotfile, io_read);
while(fread(f,templine,sizeof(templine),false))
{
idx = 0;
rraces++;
rracenames[rraces]=strtok(templine,idx);
}
fclose(f);
RRotation++;
if(RRotation > rraces) RRotation = 0;
fback = LoadRace(rracenames[RRotation]);
if(fback == -1) printf("ERROR in YRACE's Race Rotation (yrace.rr): Race \'%s\' doesn't exist!",rracenames[RRotation]);
else if (fback == -2) printf("ERROR in YRACE's Race Rotation (yrace.rr): Race \'%s\' is created with a newer version of YRACE",rracenames[RRotation]);
else startrace();
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerSpawn(playerid)
{
SetPlayerInterior(playerid,0);
if(gTeam[playerid] == TEAM_1)
{
SetPlayerColor(playerid,COLOR_RED);// Red
SetPlayerArmour(playerid, 100);
}
else if(gTeam[playerid] == TEAM_2)
{
SetPlayerColor(playerid,COLOR_BLUE); // Blue
SetPlayerArmour(playerid, 100);
}
else if(gTeam[playerid] == TEAM_REF)
{
SetPlayerColor(playerid,COLOR_LIGHTBLUE); // Light Blue
SetPlayerArmour(playerid, 100);
}
if(aAutoS == 1) // AUTO SPAWN IMPLEMENTATION
{
if(gTeam[playerid] == TEAM_1)
{
SetPlayerPos(playerid,1410.8242,2102.9089,12.0156);
SetPlayerFacingAngle(playerid, 270);
return 1;
}
else if(gTeam[playerid] == TEAM_2)
{
SetPlayerPos(playerid,1306.5330,2211.8743,12.0156);
SetPlayerFacingAngle(playerid, 90);
return 1;
}
else if(gTeam[playerid] == TEAM_REF)
{
SetPlayerPos(playerid,1368.5774,2196.8315,9.7578);
SetPlayerFacingAngle(playerid, 90);
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid, 43,500);
return 1;
}
}
Spawned[playerid] = 1;
if(IsPlayerFrozen[playerid] == 1) {
TogglePlayerControllable(playerid,false); SendClientMessage(playerid,COLOR_RED,"You Are Still Frozen"); }
if(IsPlayerInJail[playerid] == 1) {
SetTimerEx("JailPlayerAfterDeath",1500,0,"d",playerid); TogglePlayerControllable(playerid,false); SendClientMessage(playerid,COLOR_RED,"You Are Still In Jail"); }
if((GetPlayerSkin(playerid) == AdminSkin1) || (GetPlayerSkin(playerid) == AdminSkin2)) {
if(LAdmin[playerid] >= 1) {
GameTextForPlayer(playerid,"~b~Welcome~n~~w~Admin",4000,1);
} else {
GameTextForPlayer(playerid,"~r~This Skin Is For~n~Administrators~n~Only",4000,1);
ForceClassSelection(playerid); SetPlayerHealth(playerid,0.0); }
}
if((dUserINT(PlayerName2(playerid)).("UseSkin")) == 1) {
if((LAdmin[playerid] >= 1) && (LoggedIn[playerid] == 1)) {
SetPlayerSkin(playerid,(dUserINT(PlayerName2(playerid)).("FavSkin")) ); }
}
if(LoggedIn[playerid] == 1) {
TimesSpawned[playerid]++;
if(TimesSpawned[playerid] == 1) {
// GivePlayerMoney(playerid,dUserINT(PlayerName2(playerid)).("money")-GetPlayerMoney(playerid));
// SetTimerEx("PutAtPos",4000,0,"d",playerid);
GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap1"), dUserINT(PlayerName2(playerid)).("weap1ammo") );
GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap2"), dUserINT(PlayerName2(playerid)).("weap2ammo") );
GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap3"), dUserINT(PlayerName2(playerid)).("weap3ammo") );
GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap4"), dUserINT(PlayerName2(playerid)).("weap4ammo") );
GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap5"), dUserINT(PlayerName2(playerid)).("weap5ammo") );
GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap6"), dUserINT(PlayerName2(playerid)).("weap6ammo") );
}
}
/* if (LoggedIn[playerid] == 0) {
TogglePlayerControllable(playerid,false);
SendClientMessage(playerid, COLOR_RED, "You must be registered and logged in before playing"); }
*/
return 1;
}
forward SetupPlayerForClassSelection(playerid);
public SetupPlayerForClassSelection(playerid) // CHANGE ALL
{
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid,1410.5830,2109.2654,12.0156);
SetPlayerFacingAngle(playerid, 90);
SetPlayerCameraPos(playerid,1368.5774,2196.8315,9.7578);
SetPlayerCameraLookAt(playerid,1368.5774,2196.8315,9.7578);
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerDeath(playerid, killerid, reason)
{
if(gTeam[killerid] != gTeam[playerid])
{
SendDeathMessage(killerid,playerid,reason);
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
}
else {
new warning[256];
format(warning, sizeof(warning), "Be careful! Do Not Team-Kill");
SendClientMessage(killerid, 0xFFFF00AA, warning);
SendDeathMessage(killerid,playerid,reason);
SetPlayerScore(killerid, GetPlayerScore(killerid) - 1);
tkscore[playerid]++;
return 1;
}
new string[256], string2[256], string3[256], gtstring[256];
DeathCount[playerid]++;
if(killerid == INVALID_PLAYER_ID) {
SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
SetPlayerScore(playerid, GetPlayerScore(playerid)-1);
}
if(IsPlayerConnected(killerid))
{
if(gTeam[killerid] == TEAM_1)
{
sCount1++;
format(string2, sizeof(string2), "%s Score: %d", TEAM1, sCount1);
SendClientMessageToAllEx(COLOR_YELLOW, string2);
for(new z=0;z<MAX_PLAYERS;z++)
{
if(gTeam[z] == 0)
{
format(gtstring, sizeof(gtstring), "~b~%s Score: ~r~%d", TEAM1, sCount1);
GameTextForPlayer(z,gtstring,3500,3);
}
}
}
if(gTeam[killerid] == TEAM_2)
{
sCount2++;
format(string3, sizeof(string3), "%s Score: %d", TEAM2, sCount2);
SendClientMessageToAllEx(COLOR_YELLOW, string3);
for(new y=0;y<MAX_PLAYERS;y++)
{
if(gTeam[y] == 1)
{
format(gtstring, sizeof(gtstring), "~b~%s Score: ~r~%d", TEAM2, sCount2);
GameTextForPlayer(y,gtstring,3500,3);
}
}
}
}
if(sCount1 == MAXKILLS)
{
format(string, sizeof(string), "%s has WON the CLAN WAR!", TEAM1);
strins(winner,TEAM1,0,sizeof(winner));
iStats();
sStats();
iFreeze();
TogglePlayerControllable(playerid,0);
SendClientMessageToAllEx(COLOR_YELLOW, string);
}
else if(sCount2 == MAXKILLS)
{
format(string, sizeof(string), "%s has WON the CLAN WAR!", TEAM2);
strins(winner,TEAM2,0,sizeof(winner));
iStats();
sStats();
iFreeze();
TogglePlayerControllable(playerid,0);
SendClientMessageToAllEx(COLOR_YELLOW, string);
}
if(InDuel[playerid] == 1) {
GameTextForPlayer(killerid,"Winner !",3000,3); SpawnPlayer(killerid);
GameTextForPlayer(playerid,"Loser !",3000,3);
for(new i = 0; i < MAX_PLAYERS; i++) {
InDuel[playerid] = 0; }
}
//------
for(new x=0; x<MAX_PLAYERS; x++) {
if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && gSpectateID[x] == playerid) {
AdvanceSpectate(x);
}
}
//------
if (LoggedIn[playerid] == 1)
{
MyDeaths[playerid]++;
MyKills[killerid]++;
return 1; }
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerRequestClass(playerid, classid)
{
if(aAutoS == 1)
{
if(gTeam[playerid] == TEAM_1)
{
GameTextForPlayer(playerid,TEAM1,1000,3);
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid,2789.9348,-2418.5481,13.6331);
SetPlayerFacingAngle(playerid, 87);
SetPlayerCameraPos(playerid,2783.6499,-2418.1187,13.6347);
SetPlayerCameraLookAt(playerid,2789.9348,-2418.5481,13.6331);
}
else if(gTeam[playerid] == TEAM_2)
{
GameTextForPlayer(playerid,TEAM2,1000,3);
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid,2640.1646,-2502.8940,13.4922);
SetPlayerFacingAngle(playerid, 278);
SetPlayerCameraPos(playerid,2647.3855,-2503.3369,13.4922);
SetPlayerCameraLookAt(playerid,2640.1646,-2502.8940,13.4922);
}
else if(gTeam[playerid] == TEAM_REF)
{
GameTextForPlayer(playerid,"~g~Ref",1000,3);
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid,2731.3306,-2451.0273,17.5937);
SetPlayerFacingAngle(playerid, 277);
SetPlayerCameraPos(playerid,2734.3848,-2450.4028,17.5938);
SetPlayerCameraLookAt(playerid,2731.3306,-2451.0273,17.5937);
}
}
if(aAutoS == 0)
{
SetPlayerClass(playerid, classid);
gPlayerClass[playerid] = classid;
SetupPlayerForClassSelection(playerid);
switch (classid) {
case 0:
{
GameTextForPlayer(playerid,TEAM1,1000,3);
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid,2789.9348,-2418.5481,13.6331);
SetPlayerFacingAngle(playerid, 87);
SetPlayerCameraPos(playerid,2783.6499,-2418.1187,13.6347);
SetPlayerCameraLookAt(playerid,2789.9348,-2418.5481,13.6331);
}
case 1:
{
GameTextForPlayer(playerid,TEAM1,1000,3);
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid,2640.1646,-2502.8940,13.4922);
SetPlayerFacingAngle(playerid, 278);
SetPlayerCameraPos(playerid,2647.3855,-2503.3369,13.4922);
SetPlayerCameraLookAt(playerid,2640.1646,-2502.8940,13.4922);
}
case 2:
{
GameTextForPlayer(playerid,TEAM1,1000,3);
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid,2640.1646,-2502.8940,13.4922);
SetPlayerFacingAngle(playerid, 278);
SetPlayerCameraPos(playerid,2647.3855,-2503.3369,13.4922);
SetPlayerCameraLookAt(playerid,2640.1646,-2502.8940,13.4922);
}
case 3:
{
GameTextForPlayer(playerid,TEAM2,1000,3);
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid,2640.1646,-2502.8940,13.4922);
SetPlayerFacingAngle(playerid, 278);
SetPlayerCameraPos(playerid,2647.3855,-2503.3369,13.4922);
SetPlayerCameraLookAt(playerid,2640.1646,-2502.8940,13.4922);
}
case 4:
{
GameTextForPlayer(playerid,TEAM2,1000,3);
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid,2640.1646,-2502.8940,13.4922);
SetPlayerFacingAngle(playerid, 278);
SetPlayerCameraPos(playerid,2647.3855,-2503.3369,13.4922);
SetPlayerCameraLookAt(playerid,2640.1646,-2502.8940,13.4922);
}
case 5:
{
GameTextForPlayer(playerid,TEAM2,1000,3);
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid,2640.1646,-2502.8940,13.4922);
SetPlayerFacingAngle(playerid, 278);
SetPlayerCameraPos(playerid,2647.3855,-2503.3369,13.4922);
SetPlayerCameraLookAt(playerid,2640.1646,-2502.8940,13.4922);
}
case 6:
{
GameTextForPlayer(playerid,"~g~Ref",1000,3);
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid,2731.3306,-2451.0273,17.5937);
SetPlayerFacingAngle(playerid, 277);
SetPlayerCameraPos(playerid,2734.3848,-2450.4028,17.5938);
SetPlayerCameraLookAt(playerid,2731.3306,-2451.0273,17.5937);
}
}
}
return 1;
}
//------------------------------------------------------------------------------
SetPlayerClass(playerid, classid)
{
if(classid == 0){ gTeam[playerid] = TEAM_1;
}
else if(classid == 1){ gTeam[playerid] = TEAM_1;
}
else if(classid == 2){ gTeam[playerid] = TEAM_1;
}
else if(classid == 3){ gTeam[playerid] = TEAM_2;
}
else if(classid == 4){ gTeam[playerid] = TEAM_2;
}
else if(classid == 5){ gTeam[playerid] = TEAM_2;
}
else if(classid == 6){ gTeam[playerid] = TEAM_REF;
}
return 1;
}
//------------------------------------------------------------------------------
// READ FILE CONFIG
rConfig()
{
new File:fhandle;
new cname[256];
new temp[256];
new value[256];
fhandle = fopen("ClanConfig.txt",io_readwrite);
while(fread(fhandle,temp,sizeof(temp),false))
{
new idx;
cname = strtok(temp, idx);
value = strtok(temp, idx);
if(strcmp(cname,"Team-1",true) == 0) strins(TEAM1,value,0,MAX_STRING);
else if(strcmp(cname,"Team-2",true) == 0) strins(TEAM2,value,0,MAX_STRING);
else if(strcmp(cname,"Max-Clan-Kills",true) == 0) MAXKILLS = strval(value);
else if(strcmp(cname,"Weapon1",true) == 0) wpn1 = strval(value);
else if(strcmp(cname,"Weapon2",true) == 0) wpn2 = strval(value);
else if(strcmp(cname,"Weapon3",true) == 0) wpn3 = strval(value);
else if(strcmp(cname,"Ammogm1",true) == 0) ammogm1 = strval(value);
else if(strcmp(cname,"Ammogm2",true) == 0) ammogm2 = strval(value);
else if(strcmp(cname,"Ammogm3",true) == 0) ammogm3 = strval(value);
// else if(strcmp(cname,"Clan-Detect",true) == 0) aAutoS = strval(value);
}
fclose(fhandle);
return 1;
}
/*
========================
Team Chat
========================
*/
public OnPlayerText(playerid, text[])
{
new strName[MAX_PLAYER_NAME];
new strOut[MAX_STRING];
new i;
i++;
GetPlayerName(playerid, strName, sizeof(strName));
if(text[0] == '!')
{
new string[MAX_STRING];
strmid(string, text, 1, strlen(text), MAX_STRING);
format(strOut, MAX_STRING, "[TC] [%s]: %s", strName, string);
for(i = 0; i<MAX_PLAYERS; i++)
{
if(gTeam[i] == gTeam[playerid])
SendClientMessage(i, COLOR_LIGHTBLUE, strOut);
}
return 0;
}
if(text[0] == '#' && LAdmin[playerid] >= 1) {
new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Admin Chat: %s says: %s",name,text[1]); MessageToAdmins(COLOR_GREEN,string);
return 0; }
if(IsPlayerMuted[playerid] == 1) {
mutedwarning[playerid]++;
if(mutedwarning[playerid] < 5) {
SendClientMessage(playerid,COLOR_RED,"WARNING: You are muted, if you continue to speak you will be kicked");
} else {
SendClientMessage(playerid,COLOR_RED,"You have been warned ! Now you have been kicked");
new string[100], playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername));
format(string, sizeof(string),"%s [ID %d ] Kicked For exceeding Mute warnings", playername,playerid);
SaveToFile("BanKickLog",string); Kick(playerid); }
return 0; }
return 1;
}
/*
========================
Save Stats
========================
*/
iStats()
{
new File:fhandle;
new temp[256], temp2[256], temp3[256];
fhandle = fopen("ClanStats.txt",io_append);
format(temp,sizeof(temp),"ClanWar %s VS %s\r\n",TEAM1,TEAM2);
format(temp2, sizeof(temp2), "Winner: %s\r\n",winner);
format(temp3, sizeof(temp3), "%s: %d || %s: %d\r\n", TEAM1, sCount1, TEAM2, sCount2);
fwrite(fhandle,temp);
fwrite(fhandle,temp2);
fwrite(fhandle,temp3);
fclose(fhandle);
}
sStats()
{
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
{
new File:fhandle;
new temp[256];
new Score;
Score = GetPlayerScore(i);
new Float:ratio = Float:Score / Float:DeathCount[i];
fhandle = fopen("ClanStats.txt",io_append);
format(temp,sizeof(temp),"%s Kills: %d Deaths: %d Ratio: %0.2f\r\n",PlayerName(i),Score,DeathCount[i],ratio);
fwrite(fhandle,temp);
fclose(fhandle);
}
}
}
/*
========================
GetPlayerName
========================
*/
forward PlayerName(playerid);
public PlayerName(playerid)
{
new pName[256];
GetPlayerName(playerid, pName, sizeof(pName));
return 1;
}
/*
========================
AutoSpawn
========================
*/
forward ClanDetect(playerid);
public ClanDetect(playerid)
{
if(IsPlayerConnected(playerid))
{
SendClientMessage(playerid, COLOR_YELLOW, "Detecting Clan...");
new tmpnick[MAX_PLAYER_NAME];
new ctxt[256];
GetPlayerName(playerid, tmpnick, sizeof(tmpnick));
for(new n=0; n<strlen(tmpnick); n++)
{
if(TEAM1[0] == tmpnick[n])
{
if(TEAM1[1] == tmpnick[(n+1)])
{
if(TEAM1[2] == tmpnick[(n+2)])
{
format(ctxt, sizeof(ctxt), "Detected Clan: %s", TEAM1);
SendClientMessage(playerid, COLOR_YELLOW, ctxt);
return TEAM_1;
}
}
}
else if(TEAM2[0] == tmpnick[n])
{
if(TEAM2[1] == tmpnick[(n+1)])
{
if(TEAM2[2] == tmpnick[(n+2)])
{
format(ctxt, sizeof(ctxt), "Detected Clan: %s", TEAM2);
SendClientMessage(playerid, COLOR_YELLOW, ctxt);
return TEAM_2;
}
}
}
}
SendClientMessage(playerid, COLOR_YELLOW, "Clan not detected, Set as REF!");
return TEAM_REF;
}
return 0;
}
/*
========================
Commands
========================
*/
public OnPlayerSelectedMenuRow(playerid, row)
{
new Menu:onscreenmenu = GetPlayerMenu(playerid);
//==============[ new menus ]===================================================
if(onscreenmenu == XMainMenu) {
switch(row)
{
case 0: { ShowMenuForPlayer(XTele,playerid); }
case 1: { ShowMenuForPlayer(XVehicles,playerid); }
case 2: { if(LAdmin[playerid] >= 3) { ShowMenuForPlayer(XWeapons,playerid); } else { SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); TogglePlayerControllable(playerid,true); }}
case 3: { SetPlayerHealth(playerid,100.0); TogglePlayerControllable(playerid,true); }
case 4: { SetPlayerArmour(playerid,100.0); TogglePlayerControllable(playerid,true); }
case 5: { ShowMenuForPlayer(LCars,playerid); }
case 6:
{
if(LAdmin[playerid] >= 1) {
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_RED,"ERROR: You must be in a vehicle to repair.");
SetVehicleHealth(GetPlayerVehicleID(playerid),1000.0); TogglePlayerControllable(playerid,true);
return SendClientMessage(playerid,COLOR_YELLOW,"You have successfully repaired your vehicle!");
} else return SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command");
}
case 7:
{ if(LAdmin[playerid] >= 2) {
if(IsPlayerInAnyVehicle(playerid)) {
new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
switch(LModel) { case 448,461,462,463,468,471,509,510,521,522,523,581,586:
{ SendClientMessage(playerid,COLOR_RED,"ERROR: You can not tune bikes!"); TogglePlayerControllable(playerid,true); return 1; } }
TogglePlayerControllable(playerid,false); ShowMenuForPlayer(LTuneMenu,playerid);
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You do not have a vehicle to tune"); TogglePlayerControllable(playerid,true);
}
} else {
SendClientMessage(playerid,COLOR_RED,"ERROR: You are not a high enough level to use this command"); TogglePlayerControllable(playerid,true);
}
}
case 8: { ShowMenuForPlayer(LWeather,playerid); }
case 9: { ShowMenuForPlayer(LTime,playerid); }
case 10:
{
new Menu:Currentxmenu = GetPlayerMenu(playerid);
HideMenuForPlayer(Currentxmenu,playerid); TogglePlayerControllable(playerid,true);
}
}
}//-------------------------------------------------------------------------
if(onscreenmenu==XVehicles){
switch(row){
case 0: ChangeMenu(playerid,onscreenmenu,twodoor);
case 1: ChangeMenu(playerid,onscreenmenu,fourdoor);
case 2: ChangeMenu(playerid,onscreenmenu,fastcar);
case 3: ChangeMenu(playerid,onscreenmenu,Othercars);
case 4: ChangeMenu(playerid,onscreenmenu,bikes);
case 5: ChangeMenu(playerid,onscreenmenu,boats);
case 6: ChangeMenu(playerid,onscreenmenu,planes);
case 7: ChangeMenu(playerid,onscreenmenu,helicopters);
case 8: return ChangeMenu(playerid,onscreenmenu,XMainMenu);
}
return 1;
}
if(onscreenmenu==twodoor){
new vehid;
switch(row){
case 0: vehid = 533;
case 1: vehid = 139;
case 2: vehid = 555;
case 3: vehid = 422;
case 4: vehid = 554;
case 5: vehid = 575;
case 6: vehid = 536;
case 7: vehid = 535;
case 8: vehid = 576;
case 9: vehid = 401;
case 10: vehid = 526;
case 11: return ChangeMenu(playerid,onscreenmenu,XVehicles);
}
return BuyCar(playerid,vehid,onscreenmenu);
}
if(onscreenmenu==fourdoor){
new vehid;
switch(row){
case 0: vehid = 404;
case 1: vehid = 566;
case 2: vehid = 414;
case 3: vehid = 445;
case 4: vehid = 507;
case 5: vehid = 466;
case 6: vehid = 546;
case 7: vehid = 511;
case 8: vehid = 467;
case 9: vehid = 426;
case 10: vehid = 405;
case 11: return ChangeMenu(playerid,onscreenmenu,XVehicles);
}
return BuyCar(playerid,vehid,onscreenmenu);
}
if(onscreenmenu==fastcar){
new vehid;
switch(row){
case 0: vehid = 480;
case 1: vehid = 402;
case 2: vehid = 415;
case 3: vehid = 587;
case 4: vehid = 494;
case 5: vehid = 411;
case 6: vehid = 603;
case 7: vehid = 506;
case 8: vehid = 451;
case 9: vehid = 477;
case 10: vehid = 541;
case 11: return ChangeMenu(playerid,onscreenmenu,XVehicles);
}
return BuyCar(playerid,vehid,onscreenmenu);
}
if(onscreenmenu==Othercars){
new vehid;
switch(row){
case 0: vehid = 556;
case 1: vehid = 408;
case 2: vehid = 431;
case 3: vehid = 437;
case 4: vehid = 427;
case 5: vehid = 432;
case 6: vehid = 601;
case 7: vehid = 524;
case 8: vehid = 455;
case 9: vehid = 424;
case 10: vehid = 573;
case 11: return ChangeMenu(playerid,onscreenmenu,XVehicles);
}
return BuyCar(playerid,vehid,onscreenmenu);
}
if(onscreenmenu==bikes){
new vehid;
switch(row){
case 0: vehid = 581;
case 1: vehid = 481;
case 2: vehid = 462;
case 3: vehid = 521;
case 4: vehid = 463;
case 5: vehid = 522;
case 6: vehid = 461;
case 7: vehid = 448;
case 8: vehid = 471;
case 9: vehid = 468;
case 10: vehid = 586;
case 11: return ChangeMenu(playerid,onscreenmenu,XVehicles);
}
return BuyCar(playerid,vehid,onscreenmenu);
}
if(onscreenmenu==boats){
new vehid;
switch(row){
case 0: vehid = 472;
case 1: vehid = 473;
case 2: vehid = 493;
case 3: vehid = 595;
case 4: vehid = 484;
case 5: vehid = 430;
case 6: vehid = 453;
case 7: vehid = 452;
case 8: vehid = 446;
case 9: vehid = 454;
case 10: return ChangeMenu(playerid,onscreenmenu,XVehicles);
}
return BuyCar(playerid,vehid,onscreenmenu);
}
if(onscreenmenu==planes){
new vehid;
switch(row){
case 0: vehid = 592;
case 1: vehid = 577;
case 2: vehid = 511;
case 3: vehid = 512;
case 4: vehid = 593;
case 5: vehid = 520;
case 6: vehid = 553;
case 7: vehid = 476;
case 8: vehid = 519;
case 9: vehid = 460;
case 10: vehid = 513;
case 11: return ChangeMenu(playerid,onscreenmenu,XVehicles);
}
return BuyCar(playerid,vehid,onscreenmenu);
}
if(onscreenmenu==helicopters){
new vehid;
switch(row){
case 0: vehid = 548;
case 1: vehid = 425;
case 2: vehid = 417;
case 3: vehid = 487;
case 4: vehid = 488;
case 5: vehid = 497;
case 6: vehid = 563;
case 7: vehid = 447;
case 8: vehid = 469;
case 9: return ChangeMenu(playerid,onscreenmenu,XVehicles);
}
return BuyCar(playerid,vehid,onscreenmenu);
}
//------------------------------------------------------
if(onscreenmenu==XWeapons){
switch(row){
case 0: { GivePlayerWeapon(playerid,24,500); TogglePlayerControllable(playerid,true); }
case 1: { GivePlayerWeapon(playerid,31,500); TogglePlayerControllable(playerid,true); }
case 2: { GivePlayerWeapon(playerid,26,500); TogglePlayerControllable(playerid,true); }
case 3: { GivePlayerWeapon(playerid,27,500); TogglePlayerControllable(playerid,true); }
case 4: { GivePlayerWeapon(playerid,28,500); TogglePlayerControllable(playerid,true); }
case 5: { GivePlayerWeapon(playerid,35,500); TogglePlayerControllable(playerid,true); }
case 6: { GivePlayerWeapon(playerid,38,1000); TogglePlayerControllable(playerid,true); }
case 7: { GivePlayerWeapon(playerid,34,500); TogglePlayerControllable(playerid,true); }
case 8: ChangeMenu(playerid,onscreenmenu,XWeaponsBig);
case 9: ChangeMenu(playerid,onscreenmenu,XWeaponsSmall);
case 10: ChangeMenu(playerid,onscreenmenu,XWeaponsMore);
case 11: ChangeMenu(playerid,onscreenmenu,XMainMenu);
}
return 1;
}
if(onscreenmenu==XWeaponsBig){
switch(row){
case 0: { GivePlayerWeapon(playerid,25,500); TogglePlayerControllable(playerid,true); }
case 1: { GivePlayerWeapon(playerid,30,500); TogglePlayerControllable(playerid,true); }
case 2: { GivePlayerWeapon(playerid,33,500); TogglePlayerControllable(playerid,true); }
case 3: { GivePlayerWeapon(playerid,36,500); TogglePlayerControllable(playerid,true); }
case 4: { GivePlayerWeapon(playerid,37,500); TogglePlayerControllable(playerid,true); }
case 5: { GivePlayerWeapon(playerid,29,500); TogglePlayerControllable(playerid,true); }
case 6: { GivePlayerWeapon(playerid,32,1000); TogglePlayerControllable(playerid,true); }
case 7: ChangeMenu(playerid,onscreenmenu,XWeapons);
}
return 1;
}
if(onscreenmenu==XWeaponsSmall){
switch(row){
case 0: { GivePlayerWeapon(playerid,22,500); TogglePlayerControllable(playerid,true); }//9mm
case 1: { GivePlayerWeapon(playerid,23,500); TogglePlayerControllable(playerid,true); }//s9
case 2: { GivePlayerWeapon(playerid,18,500); TogglePlayerControllable(playerid,true); }// MC
case 3: { GivePlayerWeapon(playerid,42,500); TogglePlayerControllable(playerid,true); }//FE
case 4: { GivePlayerWeapon(playerid,41,500); TogglePlayerControllable(playerid,true); }//spraycan
case 5: { GivePlayerWeapon(playerid,16,500); TogglePlayerControllable(playerid,true); }//grenade
case 6: { GivePlayerWeapon(playerid,8,500); TogglePlayerControllable(playerid,true); }//Katana
case 7: { GivePlayerWeapon(playerid,9,1000); TogglePlayerControllable(playerid,true); }//chainsaw
case 8: ChangeMenu(playerid,onscreenmenu,XWeapons);
}
return 1;
}
if(onscreenmenu==XWeaponsMore){
switch(row){
case 0: { SetPlayerSpecialAction(playerid, 2); TogglePlayerControllable(playerid,true); }
case 1: { GivePlayerWeapon(playerid,4,500); TogglePlayerControllable(playerid,true); }
case 2: { GivePlayerWeapon(playerid,14,500); TogglePlayerControllable(playerid,true); }
case 3: { GivePlayerWeapon(playerid,43,500); TogglePlayerControllable(playerid,true); }
case 4: { GivePlayerWeapon(playerid,7,500); TogglePlayerControllable(playerid,true); }
case 5: { GivePlayerWeapon(playerid,5,500); TogglePlayerControllable(playerid,true); }
case 6: { GivePlayerWeapon(playerid,2,1000); TogglePlayerControllable(playerid,true); }
case 7: { MaxAmmo(playerid); TogglePlayerControllable(playerid,true); }
case 8: ChangeMenu(playerid,onscreenmenu,XWeapons);
}
return 1;
}
if(onscreenmenu == XTele)
{
switch(row)
{
case 0: ChangeMenu(playerid,onscreenmenu,LasVenturasMenu);
case 1: ChangeMenu(playerid,onscreenmenu,LosSantosMenu);
case 2: ChangeMenu(playerid,onscreenmenu,SanFierroMenu);
case 3: ChangeMenu(playerid,onscreenmenu,DesertMenu);
case 4: ChangeMenu(playerid,onscreenmenu,FlintMenu);
case 5: ChangeMenu(playerid,onscreenmenu,MountChiliadMenu);
case 6: ChangeMenu(playerid,onscreenmenu,InteriorsMenu);
case 7: return ChangeMenu(playerid,onscreenmenu,XMainMenu);
}
return 1;
}
if(onscreenmenu == LasVenturasMenu)
{
switch(row)
{
case 0: { SetPlayerPos(playerid,2037.0,1343.0,12.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// strip
case 1: { SetPlayerPos(playerid,2163.0,1121.0,23); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// come a lot
case 2: { SetPlayerPos(playerid,1688.0,1615.0,12.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// lv airport
case 3: { SetPlayerPos(playerid,2503.0,2764.0,10.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// military fuel
case 4: { SetPlayerPos(playerid,1418.0,2733.0,10.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// golf lv
case 5: { SetPlayerPos(playerid,1377.0,2196.0,9.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// pitch match
case 6: return ChangeMenu(playerid,onscreenmenu,XTele);
}
return 1;
}
if(onscreenmenu == LosSantosMenu)
{
switch(row)
{
case 0: { SetPlayerPos(playerid,2495.0,-1688.0,13.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// ganton
case 1: { SetPlayerPos(playerid,1979.0,-2241.0,13.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// ls airport
case 2: { SetPlayerPos(playerid,2744.0,-2435.0,15.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// docks
case 3: { SetPlayerPos(playerid,1481.0,-1656.0,14.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// square
case 4: { SetPlayerPos(playerid,1150.0,-2037.0,69.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// veradant bluffs
case 5: { SetPlayerPos(playerid,425.0,-1815.0,6.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// santa beach
case 6: { SetPlayerPos(playerid,1240.0,-744.0,95.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// mullholland
case 7: { SetPlayerPos(playerid,679.0,-1070.0,49.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// richman
case 8: return ChangeMenu(playerid,onscreenmenu,XTele);
}
return 1;
}
if(onscreenmenu == SanFierroMenu)
{
switch(row)
{
case 0: { SetPlayerPos(playerid,-1990.0,137.0,27.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); } // sf station
case 1: { SetPlayerPos(playerid,-1528.0,-206.0,14.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// sf airport
case 2: { SetPlayerPos(playerid,-2709.0,198.0,4.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// ocean flats
case 3: { SetPlayerPos(playerid,-2738.0,-295.0,6.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// avispa country club
case 4: { SetPlayerPos(playerid,-1457.0,465.0,7.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// easter basic docks
case 5: { SetPlayerPos(playerid,-1853.0,1404.0,7.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// esplanadae north
case 6: { SetPlayerPos(playerid,-2620.0,1373.0,7.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// battery point
case 7: return ChangeMenu(playerid,onscreenmenu,XTele);
}
return 1;
}
if(onscreenmenu == DesertMenu)
{
switch(row)
{
case 0: { SetPlayerPos(playerid,416.0,2516.0,16.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); } // plane graveyard
case 1: { SetPlayerPos(playerid,81.0,1920.0,17.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// area51
case 2: { SetPlayerPos(playerid,-324.0,1516.0,75.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// big ear
case 3: { SetPlayerPos(playerid,-640.0,2051.0,60.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// dam
case 4: { SetPlayerPos(playerid,-766.0,1545.0,27.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// las barrancas
case 5: { SetPlayerPos(playerid,-1514.0,2597.0,55.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// el qyebrados
case 6: { SetPlayerPos(playerid,442.0,1427.0,9.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// actane springs
case 7: return ChangeMenu(playerid,onscreenmenu,XTele);
}
return 1;
}
if(onscreenmenu == FlintMenu)
{
switch(row)
{
case 0: { SetPlayerPos(playerid,-849.0,-1940.0,13.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// lake
case 1: { SetPlayerPos(playerid,-1107.0,-1619.0,76.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// leafy hollow
case 2: { SetPlayerPos(playerid,-1049.0,-1199.0,128.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// the farm
case 3: { SetPlayerPos(playerid,-1655.0,-2219.0,32.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// shady cabin
case 4: { SetPlayerPos(playerid,-375.0,-1441.0,25.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// flint range
case 5: { SetPlayerPos(playerid,-367.0,-1049.0,59.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// beacon hill
case 6: { SetPlayerPos(playerid,-494.0,-555.0,25.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// fallen tree
case 7: return ChangeMenu(playerid,onscreenmenu,XTele);
}
return 1;
}
if(onscreenmenu == MountChiliadMenu)
{
switch(row)
{
case 0: { SetPlayerPos(playerid,-2308.0,-1657.0,483.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// chiliad jump
case 1: { SetPlayerPos(playerid,-2331.0,-2180.0,35.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// bottom chiliad
case 2: { SetPlayerPos(playerid,-2431.0,-1620.0,526.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// highest point
case 3: { SetPlayerPos(playerid,-2136.0,-1775.0,208.0); TogglePlayerControllable(playerid,true); SetPlayerInterior(playerid,0); }// chiliad path
case 4: return ChangeMenu(playerid,onscreenmenu,XTele);
}
return 1;
}
if(onscreenmenu == InteriorsMenu)
{
switch(row)
{
case 0: { SetPlayerPos(playerid,386.5259, 173.6381, 1008.3828); SetPlayerInterior(playerid,3); TogglePlayerControllable(playerid,true); }
case 1: { SetPlayerPos(playerid,288.4723, 170.0647, 1007.1794); SetPlayerInterior(playerid,3); TogglePlayerControllable(playerid,true); }
case 2: { SetPlayerPos(playerid,372.5565, -131.3607, 1001.4922); SetPlayerInterior(playerid,5); TogglePlayerControllable(playerid,true); }
case 3: { SetPlayerPos(playerid,-1129.8909, 1057.5424, 1346.4141); SetPlayerInterior(playerid,10); TogglePlayerControllable(playerid,true); }
case 4: { SetPlayerPos(playerid,2233.9363, 1711.8038, 1011.6312); SetPlayerInterior(playerid,1); TogglePlayerControllable(playerid,true); }
case 5: { SetPlayerPos(playerid,2536.5322, -1294.8425, 1044.125); SetPlayerInterior(playerid,2); TogglePlayerControllable(playerid,true); }
case 6: { SetPlayerPos(playerid,1267.8407, -776.9587, 1091.9063); SetPlayerInterior(playerid,5); TogglePlayerControllable(playerid,true); }
case 7: { SetPlayerPos(playerid,-1421.5618, -663.8262, 1059.5569); SetPlayerInterior(playerid,4); TogglePlayerControllable(playerid,true); }
case 8: { SetPlayerPos(playerid,-1401.067, 1265.3706, 1039.8672); SetPlayerInterior(playerid,16); TogglePlayerControllable(playerid,true); }
case 9: { SetPlayerPos(playerid,285.8361, -39.0166, 1001.5156); SetPlayerInterior(playerid,1); TogglePlayerControllable(playerid,true); }
case 10: { SetPlayerPos(playerid,1727.2853, -1642.9451, 20.2254); SetPlayerInterior(playerid,18); TogglePlayerControllable(playerid,true); }
case 11: return ChangeMenu(playerid,onscreenmenu,XTele);
}
return 1;
}
if(onscreenmenu == LWeather)
{
new adminname[MAX_PLAYER_NAME],string[256]; GetPlayerName(playerid, adminname, sizeof(adminname));
switch(row)
{
case 0: { SetWeather(5); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"SETWEATHER"); TogglePlayerControllable(playerid,true); format(string,256,"Administrator %s has changed the weather",adminname); SendClientMessageToAll(COLOR_BLUE,string); }
case 1: { SetWeather(19); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"SETWEATHER"); TogglePlayerControllable(playerid,true); format(string,256,"Administrator %s has changed the weather",adminname); SendClientMessageToAll(COLOR_BLUE,string); }
case 2: { SetWeather(8); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"SETWEATHER"); TogglePlayerControllable(playerid,true); format(string,256,"Administrator %s has changed the weather",adminname); SendClientMessageToAll(COLOR_BLUE,string); }
case 3: { SetWeather(20); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"SETWEATHER"); TogglePlayerControllable(playerid,true); format(string,256,"Administrator %s has changed the weather",adminname); SendClientMessageToAll(COLOR_BLUE,string); }
case 4: { SetWeather(9); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"SETWEATHER"); TogglePlayerControllable(playerid,true); format(string,256,"Administrator %s has changed the weather",adminname); SendClientMessageToAll(COLOR_BLUE,string); }
case 5: { SetWeather(16); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"SETWEATHER"); TogglePlayerControllable(playerid,true); format(string,256,"Administrator %s has changed the weather",adminname); SendClientMessageToAll(COLOR_BLUE,string); }
case 6: { SetWeather(45); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"SETWEATHER"); TogglePlayerControllable(playerid,true); format(string,256,"Administrator %s has changed the weather",adminname); SendClientMessageToAll(COLOR_BLUE,string); }
case 7: { SetWeather(44); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"SETWEATHER"); TogglePlayerControllable(playerid,true); format(string,256,"Administrator %s has changed the weather",adminname); SendClientMessageToAll(COLOR_BLUE,string); }
case 8: { SetWeather(22); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"SETWEATHER"); TogglePlayerControllable(playerid,true); format(string,256,"Administrator %s has changed the weather",adminname); SendClientMessageToAll(COLOR_BLUE,string); }
case 9: { SetWeather(11); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"SETWEATHER"); TogglePlayerControllable(playerid,true); format(string,256,"Administrator %s has changed the weather",adminname); SendClientMessageToAll(COLOR_BLUE,string); }
case 10: return ChangeMenu(playerid,onscreenmenu,XMainMenu);
}
return 1;
}
if(onscreenmenu == LTuneMenu)
{
switch(row)
{
case 0: { AddVehicleComponent(GetPlayerVehicleID(playerid),1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,COLOR_BLUE,"Vehicle Component Added"); TogglePlayerControllable(playerid,true);}
case 1: { AddVehicleComponent(GetPlayerVehicleID(playerid),1087); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,COLOR_BLUE,"Vehicle Component Added"); TogglePlayerControllable(playerid,true); }
case 2: { AddVehicleComponent(GetPlayerVehicleID(playerid),1081); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,COLOR_BLUE,"Vehicle Component Added"); TogglePlayerControllable(playerid,true); }
case 3: { AddVehicleComponent(GetPlayerVehicleID(playerid),1078); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,COLOR_BLUE,"Vehicle Component Added"); TogglePlayerControllable(playerid,true); }
case 4: { AddVehicleComponent(GetPlayerVehicleID(playerid),1098); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,COLOR_BLUE,"Vehicle Component Added"); TogglePlayerControllable(playerid,true); }
case 5: { AddVehicleComponent(GetPlayerVehicleID(playerid),1074); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,COLOR_BLUE,"Vehicle Component Added"); TogglePlayerControllable(playerid,true); }
case 6: { AddVehicleComponent(GetPlayerVehicleID(playerid),1082); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,COLOR_BLUE,"Vehicle Component Added"); TogglePlayerControllable(playerid,true); }
case 7: { AddVehicleComponent(GetPlayerVehicleID(playerid),1085); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,COLOR_BLUE,"Vehicle Component Added"); TogglePlayerControllable(playerid,true); }
case 8: { AddVehicleComponent(GetPlayerVehicleID(playerid),1025); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,COLOR_BLUE,"Vehicle Component Added"); TogglePlayerControllable(playerid,true); }
case 9: { AddVehicleComponent(GetPlayerVehicleID(playerid),1077); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,COLOR_BLUE,"Vehicle Component Added"); TogglePlayerControllable(playerid,true); }
case 10: return ChangeMenu(playerid,onscreenmenu,XMainMenu);
}
return 1;
}
if(onscreenmenu == LTime)
{
new adminname[MAX_PLAYER_NAME],string[256]; GetPlayerName(playerid, adminname, sizeof(adminname));
switch(row)
{
case 0: { for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerTime(i,7,0); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"LTIME MENU"); format(string,256,"Administrator %s has changed the time",adminname); SendClientMessageToAll(COLOR_BLUE,string); TogglePlayerControllable(playerid,true); }
case 1: { for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerTime(i,12,0); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"LTIME MENU"); format(string,256,"Administrator %s has changed the time",adminname); SendClientMessageToAll(COLOR_BLUE,string); TogglePlayerControllable(playerid,true); }
case 2: { for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerTime(i,16,0); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"LTIME MENU"); format(string,256,"Administrator %s has changed the time",adminname); SendClientMessageToAll(COLOR_BLUE,string); TogglePlayerControllable(playerid,true); }
case 3: { for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerTime(i,20,0); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"LTIME MENU"); format(string,256,"Administrator %s has changed the time",adminname); SendClientMessageToAll(COLOR_BLUE,string); TogglePlayerControllable(playerid,true); }
case 4: { for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerTime(i,0,0); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"LTIME MENU"); format(string,256,"Administrator %s has changed the time",adminname); SendClientMessageToAll(COLOR_BLUE,string); TogglePlayerControllable(playerid,true); }
case 5: return ChangeMenu(playerid,onscreenmenu,XMainMenu);
}
return 1;
}
//=====
if(onscreenmenu == LCars)
{
new vehid;
switch(row) {
case 0: vehid = 451;
case 1: vehid = 568;
case 2: vehid = 539;
case 3: vehid = 522;
case 4: vehid = 406;
case 5: vehid = 601;//s.w.a.t
case 6: vehid = 425;
case 7: vehid = 493;//jetmax
case 8: vehid = 432;
case 9: vehid = 444;
case 10: vehid = 447; //sea sparrow
case 11: return ChangeMenu(playerid,onscreenmenu,XMainMenu);
}
return BuyCar(playerid,vehid,onscreenmenu);
}
new Menu:Current = GetPlayerMenu(playerid);
if(Current == MAdmin)
{
if(row <=4 && RaceActive == 1)
{
SendClientMessage(playerid,COLOR_RED,"Race active, cannot change this setting!");
ShowMenuForPlayer(MAdmin,playerid);
return 1;
}
if(row == 0) ShowMenuForPlayer(MPMode,playerid);
else if (row == 1) ShowMenuForPlayer(MPrize,playerid);
else if (row == 2) ShowMenuForPlayer(MDyna,playerid);
else if (row == 3) ShowMenuForPlayer(MFee,playerid);
else if (row == 4) ShowMenuForPlayer(MDelay,playerid);
else if (row == 5)
{
if(RaceActive == 1) endrace();
else SendClientMessage(playerid,COLOR_YELLOW,"No race active!");
ShowMenuForPlayer(MAdmin,playerid);
}
else if (row == 9)
{
TogglePlayerControllable(playerid,1);
HideMenuForPlayer(MAdmin,playerid);
}
else
{
if(row == 6 && RaceAdmin == 1) RaceAdmin=0;
else if(row == 6 && RaceAdmin == 0) RaceAdmin=1;
else if(row == 7 && BuildAdmin == 1) BuildAdmin=0;
else if(row == 7 && BuildAdmin == 0) BuildAdmin=1;
else if(row == 8 && RRotation >= 0) RRotation = -1;
else RRotation = 0;
if(RaceAdmin == 1) format(ystring,sizeof(ystring),"RA: ON");
else format(ystring,sizeof(ystring),"RA: off");
if(BuildAdmin == 1) format(ystring,sizeof(ystring),"%s BA: ON",ystring);
else format(ystring,sizeof(ystring),"%s BA: off",ystring);
if(RRotation >= 0) format(ystring,sizeof(ystring),"%s RR: ON",ystring);
else format(ystring,sizeof(ystring),"%s RR: off",ystring);
if(RRotation >= 0 && row == 8) RotationTimer = SetTimer("RaceRotation",RRotationDelay,1);
else if(RRotation -1 && row == 8) KillTimer(RotationTimer);
RefreshMenuHeader(playerid,MAdmin,ystring);
}
}
else if(Current == MPMode)
{
if(row == 5)
{
ShowMenuForPlayer(MAdmin,playerid);
return 1;
}
PrizeMode = row;
if (PrizeMode == 0) ystring = "Fixed";
else if(PrizeMode == 1) ystring = "Dynamic";
else if(PrizeMode == 2) ystring = "Join Fee";
else if(PrizeMode == 3) ystring = "Join Fee + Fixed";
else if(PrizeMode == 4) ystring = "Join Fee + Dynamic";
format(ystring,sizeof(ystring),"Mode: %s",ystring);
RefreshMenuHeader(playerid,MPMode,ystring);
}
else if(Current == MPrize)
{
if(row == 6)
{
ShowMenuForPlayer(MAdmin,playerid);
return 1;
}
if (row == 0) Prize += 100;
else if(row == 1) Prize += 1000;
else if(row == 2) Prize += 10000;
else if(row == 3) Prize -= 100;
else if(row == 4) Prize -= 1000;
else if(row == 5) Prize -= 10000;
if(Prize < 0) Prize = 0;
format(ystring,sizeof(ystring),"Amount: %d",Prize);
RefreshMenuHeader(playerid,MPrize,ystring);
}
else if(Current == MDyna)
{
if(row == 4)
{
ShowMenuForPlayer(MAdmin,playerid);
return 1;
}
if (row == 0) DynaMP++;
else if(row == 1) DynaMP+=5;
else if(row == 2) DynaMP--;
else if(row == 3) DynaMP-=5;
else if(DynaMP < 1) DynaMP = 1;
format(ystring,sizeof(ystring),"Multiplier: %dx",DynaMP);
RefreshMenuHeader(playerid,MDyna,ystring);
}
else if(Current == MBuild)
{
if (row == 0)
{
format(ystring,sizeof(ystring),"Laps: %d",Blaps[b(playerid)]);
SetMenuColumnHeader(MLaps,0,ystring);
ShowMenuForPlayer(MLaps,playerid);
}
else if (row == 1)
{
format(ystring,sizeof(ystring),"Mode: %s",ReturnModeName(Bracemode[b(playerid)]));
SetMenuColumnHeader(MRacemode,0,ystring);
ShowMenuForPlayer(MRacemode,playerid);
}
else if (row == 2)
{
format(ystring,sizeof(ystring),"Size: %0.2f",BCPsize[b(playerid)]);
SetMenuColumnHeader(MCPsize,0,ystring);
ShowMenuForPlayer(MCPsize,playerid);
}
else if (row == 3)
{
if(BAirrace[b(playerid)] == 0)
{
BAirrace[b(playerid)] = 1;
format(ystring,sizeof(ystring),"Air race: ON");
}
else if(BAirrace[b(playerid)] == 1)
{
BAirrace[b(playerid)] = 0;
format(ystring,sizeof(ystring),"Air race: off");
}
RefreshMenuHeader(playerid,MBuild,ystring);
}
else if(row == 4)
{
clearrace(playerid);
HideMenuForPlayer(MBuild,playerid);
TogglePlayerControllable(playerid,1);
return 1;
}
else if(row == 5)
{
HideMenuForPlayer(MBuild,playerid);
TogglePlayerControllable(playerid,1);
}
}
else if(Current == MLaps)
{
if(row == 6)
{
if(RaceBuilders[playerid] != 0) ShowMenuForPlayer(MBuild,playerid);
else ShowMenuForPlayer(MRace,playerid);
return 1;
}
new change=0;
if (row == 0) change++;
else if(row == 1) change+=5;
else if(row == 2) change+=10;
else if(row == 3) change--;
else if(row == 4) change-=5;
else if(row == 5) change-=10;
if(RaceBuilders[playerid] != 0)
{
Blaps[b(playerid)] += change;
if(Blaps[b(playerid)] < 1) Blaps[b(playerid)] = 1;
format(ystring,sizeof(ystring),"Laps: %d",Blaps[b(playerid)]);
RefreshMenuHeader(playerid,MLaps,ystring);
}
else
{
Racelaps += change;
if(Racelaps < 1) Racelaps = 1;
format(ystring,sizeof(ystring),"Laps: %d",Racelaps);
RefreshMenuHeader(playerid,MLaps,ystring);
}
}
else if(Current == MRacemode)
{
if(row == 4)
{
if(RaceBuilders[playerid] != 0) ShowMenuForPlayer(MBuild,playerid);
else ShowMenuForPlayer(MRace,playerid);
return 1;
}
if(RaceBuilders[playerid] != 0)
{
Bracemode[b(playerid)]=row;
if(Bracemode[b(playerid)] == 2 && BCurrentCheckpoints[b(playerid)] < 3)
{
SendClientMessage(playerid,COLOR_YELLOW,"Cannot set racemode 2 with only 2 CPs!");
Bracemode[b(playerid)] = 1;
}
format(ystring,sizeof(ystring),"Mode: %s",ReturnModeName(Bracemode[b(playerid)]));
RefreshMenuHeader(playerid,MRacemode,ystring);
return 1;
}
else
{
Racemode = row;
if(Racemode == 2 && LCurrentCheckpoint < 2)
{
SendClientMessage(playerid,COLOR_YELLOW,"Cannot set racemode 2 with only 2 CPs!");
Racemode = 1;
}
format(ystring,sizeof(ystring),"Mode: %s",ReturnModeName(Racemode));
RefreshMenuHeader(playerid,MRacemode,ystring);
return 1;
}
}
else if(Current == MRace)
{
if(row == 0)
{
format(ystring,sizeof(ystring),"Laps: %d",Racelaps);
SetMenuColumnHeader(MLaps,0,ystring);
ShowMenuForPlayer(MLaps,playerid);
}
else if(row == 1)
{
format(ystring,sizeof(ystring),"Mode: %s",ReturnModeName(Racemode));
SetMenuColumnHeader(MRacemode,0,ystring);
ShowMenuForPlayer(MRacemode,playerid);
}
else if(row == 2)
{
format(ystring,sizeof(ystring),"Size: %0.2f",CPsize);
SetMenuColumnHeader(MCPsize,0,ystring);
ShowMenuForPlayer(MCPsize,playerid);
}
else if(row == 3)
{
if(Airrace == 0)
{
Airrace = 1;
format(ystring,sizeof(ystring),"Air race: ON");
}
else if(Airrace == 1)
{
Airrace = 0;
format(ystring,sizeof(ystring),"Air race: off");
}
RefreshMenuHeader(playerid,MRace,ystring);
}
else if(row == 4)
{
if(RaceActive == 0)
{
startrace();
HideMenuForPlayer(MRace,playerid);
TogglePlayerControllable(playerid,1);
}
else
{
SendClientMessage(playerid,COLOR_YELLOW,"Race is already active!");
}
}
else if(row == 5)
{
HideMenuForPlayer(MRace,playerid);
TogglePlayerControllable(playerid,1);
}
}
else if(Current == MFee)
{
if(row == 6)
{
ShowMenuForPlayer(MAdmin,playerid);
return 1;
}
if(row == 0) JoinFee +=100;
if(row == 1) JoinFee +=1000;
if(row == 2) JoinFee +=10000;
if(row == 3) JoinFee -=100;
if(row == 4) JoinFee -=1000;
if(row == 5) JoinFee -=10000;
if(JoinFee < 0) JoinFee = 0;
format(ystring,sizeof(ystring),"Fee: %d$",JoinFee);
RefreshMenuHeader(playerid,MFee,ystring);
}
else if(Current == MCPsize)
{
if(row == 6)
{
if(RaceBuilders[playerid] != 0) ShowMenuForPlayer(MBuild,playerid);
else ShowMenuForPlayer(MRace,playerid);
return 1;
}
new Float:change;
if(row == 0) change +=0.1;
if(row == 1) change +=1.0;
if(row == 2) change +=10.0;
if(row == 3) change -=0.1;
if(row == 4) change -=1.0;
if(row == 5) change -=10.0;
if(RaceBuilders[playerid] != 0)
{
BCPsize[b(playerid)] += change;
if(BCPsize[b(playerid)] < 1.0) BCPsize[b(playerid)] = 1.0;
if(BCPsize[b(playerid)] > 32.0) BCPsize[b(playerid)] = 32.0;
format(ystring,sizeof(ystring),"Size %0.2f",BCPsize[b(playerid)]);
RefreshMenuHeader(playerid,MCPsize,ystring);
}
else
{
CPsize += change;
if(CPsize < 1.0) CPsize = 1.0;
if(CPsize > 32.0) CPsize = 32.0;
format(ystring,sizeof(ystring),"Size %0.2f",CPsize);
RefreshMenuHeader(playerid,MCPsize,ystring);
}
}
else if(Current == MDelay)
{
if(row == 4)
{
ShowMenuForPlayer(MAdmin,playerid);
return 1;
}
if (row == 0) MajorityDelay+=10;
else if (row == 1) MajorityDelay+=60;
else if (row == 2) MajorityDelay-=10;
else if (row == 3) MajorityDelay-=60;
if(MajorityDelay <= 0)
{
MajorityDelay=0;
format(ystring,sizeof(ystring),"Delay: disabled");
}
else format(ystring,sizeof(ystring),"Delay: %ds",MajorityDelay);
RefreshMenuHeader(playerid,MDelay,ystring);
}
if(Current == Stunt)
{
switch(row)
{
case 0: //LS Airport
{
SetPlayerPos(playerid, 2097.5430,-2556.9167,13.8623);
SendClientMessage(playerid, COLOR_BLUE, "Welcome To The Los Santos Airport Stunt area!");
}
case 1:
{
SetPlayerPos(playerid,-2029.8400,-125.3162,35.2194);
SendClientMessage(playerid, COLOR_BLUE, "Welcome To The San Fierro School Yard Stunt area!");
}
case 2:
{
SetPlayerPos(playerid, 1690.881592, -2720.665283, 16.035704);
SendClientMessage(playerid, COLOR_BLUE, "Welcome To The Stunt Castle Area!");
}
case 3:
{
SetPlayerPos(playerid, -1645.2598,-201.1026,13.9188);
SendClientMessage(playerid, COLOR_BLUE, "Welcome To The Stunt Park!");
}
case 4:
{
SetPlayerPos(playerid, 1451.8146, 1315.0363, 10.8203/*,6.0827*/);
SendClientMessage(playerid, COLOR_BLUE, "Welcome To The LV Airfight Airport!");
}
}
}
return 1;
}
#if defined MENUSYSTEM
public OnPlayerExitedMenu(playerid) {
new Menu:onscreenmenu = GetPlayerMenu(playerid);
HideMenuForPlayer(onscreenmenu,playerid);
return TogglePlayerControllable(playerid,true);
}
//------------------------------------------
forward duel();
public duel()
{
if(cdt==6) {
GameTextForAll("~p~Duel Starting...",1000,6);
}
else if (cdt>=5) {
for(new i = 0; i < MAX_PLAYERS; i++) {
if(InDuel[i] == 1) {
GameTextForPlayer(i,"~w~five",1000,6);
PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
TogglePlayerControllable(i,0); }
}
}
else if (cdt>=4) {
for(new i = 0; i < MAX_PLAYERS; i++) {
if(InDuel[i] == 1) {
GameTextForPlayer(i,"~w~four",1000,6);
PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0); }
}
}
else if (cdt>=3) {
for(new i = 0; i < MAX_PLAYERS; i++) {
if(InDuel[i] == 1) {
GameTextForPlayer(i,"~w~three",1000,6);
PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0); }
}
}
else if (cdt>=2) {
for(new i = 0; i < MAX_PLAYERS; i++) {
if(InDuel[i] == 1) {
GameTextForPlayer(i,"~y~two",1000,6);
PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0); }
}
}
else if (cdt>=1) {
for(new i = 0; i < MAX_PLAYERS; i++) {
if(InDuel[i] == 1) {
GameTextForPlayer(i,"~r~one",1000,6);
PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0); }
}
}
else if (cdt==0) {
for(new i = 0; i < MAX_PLAYERS; i++) {
if(InDuel[i] == 1) {
GameTextForPlayer(i,"~g~GO~ r~!",1000,6);
TogglePlayerControllable(i,1);
PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0); }
}
}
cdt--;
if (cdt==-1){
KillTimer(timer);
//for(new i = 0; i < MAX_PLAYERS; i++) {
//InDuel[i] = 0;
}
}
//}
//==============================================================================
ShowScore(playerid)
{
new tmpTotal[128];
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
format(tmpTotal, sizeof(tmpTotal), "<> %s's Stats: Kills: %d | Deaths: %d | Ratio: %0.2f | Money: $%d",playername,MyKills[playerid],MyDeaths[playerid], (Float:MyKills[playerid]/Float:MyDeaths[playerid]),GetPlayerMoney(playerid));
SendClientMessage(playerid,COLOR_GREEN, tmpTotal);
}
//==============================================================================
forward MessageToAdmins(color,const string[]);
public MessageToAdmins(color,const string[])
{
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) == 1)
{
if (LAdmin[i] >= 1)
{
SendClientMessage(i, color, string);
}
}
}
return 1;
}
//==============================================================================
forward TuneLCar(VehicleID);
public TuneLCar(VehicleID) {
ChangeVehicleColor(VehicleID,0,7); AddVehicleComponent(VehicleID, 1010); /*Nitro x10*/ AddVehicleComponent(VehicleID, 1087); /*Hydraulic*/
}
forward Jail1(player1);
public Jail1(player1) {
TogglePlayerControllable(player1,false);
new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
SetPlayerCameraPos(player1,x+10,y,z+10);SetPlayerCameraLookAt(player1,x,y,z);
SetTimerEx("Jail2",1000,0,"d",player1);
}
forward Jail2(player1);
public Jail2(player1) {
new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
SetPlayerCameraPos(player1,x+7,y,z+5); SetPlayerCameraLookAt(player1,x,y,z);
if(GetPlayerState(player1) == PLAYER_STATE_ONFOOT) {
SetPlayerSpecialAction(player1,SPECIAL_ACTION_HANDSUP); }
SetTimerEx("Jail3",1000,0,"d",player1);
}
forward Jail3(player1);
public Jail3(player1) {
new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
SetPlayerCameraPos(player1,x+3,y,z);SetPlayerCameraLookAt(player1,x,y,z);
GameTextForPlayer(player1,"~r~Busted By Admins",3000,3);
}
forward JailPlayer(player1,jtime);
public JailPlayer(player1,jtime) {
TogglePlayerControllable(player1,true);
SetPlayerPos(player1,-689.1971,-2012.466,150.255);
SetPlayerInterior(player1,0);
SetCameraBehindPlayer(player1);
SetTimerEx("JailRelease",jailnoob[player1]*1000,0,"d",player1);
jailnoob[player1] = 0; IsPlayerInJail[player1] = 1;
}
forward JailRelease(player1);
public JailRelease(player1) {
SetPlayerInterior(player1,0); SpawnPlayer(player1); IsPlayerInJail[player1] = 0; PlayerPlaySound(player1,1057,0.0,0.0,0.0); GameTextForPlayer(player1,"~g~Released ~n~From Jail",3000,3);
}
//-------------------------
forward JailPlayerAfterDeath(player1,jtime);
public JailPlayerAfterDeath(player1,jtime) {
TogglePlayerControllable(player1,true);
SetPlayerPos(player1,-689.1971,-2012.466,150.255);
SetCameraBehindPlayer(player1);
}
//------------------------
forward UnFreezeMe(player1);
public UnFreezeMe(player1) {
TogglePlayerControllable(player1,true); IsPlayerFrozen[player1] = 0; PlayerPlaySound(player1,1057,0.0,0.0,0.0); GameTextForPlayer(player1,"~g~Unfrozen",3000,3);
}
//==============================================================================
forward PingKick();
public PingKick() {
for(new i = 0,string[256],name[24]; i < MAX_PLAYERS; i++)
if(IsPlayerConnected(i) && (GetPlayerPing(i) > MAX_PING)) {
if(LAdmin[i] < 1) {
GetPlayerName(i,name,24); format(string,256,"%s has been kicked from the server. (Reason: High Ping || Max Allowed: %d)",name,MAX_PING);
SendClientMessageToAll(COLOR_GREY,string); Kick(i);
}
}
}
forward GodUpdate();
public GodUpdate() {
for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && God[i] == 1) SetPlayerHealth(i,100000);
}
//==============================================================================
forward ConnectedPlayers();
public ConnectedPlayers() {
new Connected;
for(new i = 0; i < MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) {
Connected++; }
}
return Connected++; }
forward JailedPlayers();
public JailedPlayers() {
new JailedCount;
for(new i = 0; i < MAX_PLAYERS; i++) {
if(IsPlayerConnected(i) && IsPlayerInJail[i]) {
JailedCount++; }
}
return JailedCount++; }
forward FrozenPlayers();
public FrozenPlayers() {
new FrozenCount;
for(new i = 0; i < MAX_PLAYERS; i++) {
if(IsPlayerConnected(i) && IsPlayerFrozen[i]) {
FrozenCount++; }
}
return FrozenCount++; }
//----------------------------------------
forward InVehCount();
public InVehCount()
{
new InVeh;
for(new i = 0; i < MAX_PLAYERS; i++) {
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) {
InVeh++; }
}
return InVeh++;
}
//----------------------------------------
forward OnBikeCount();
public OnBikeCount()
{
new BikeCount;
for(new i = 0; i < MAX_PLAYERS; i++) {
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) {
new LModel = GetVehicleModel(GetPlayerVehicleID(i));
switch(LModel)
{
case 448,461,462,463,468,471,509,510,521,522,523,581,586: BikeCount++;
}
}
}
return BikeCount++;
}
//----------------------------------------
forward InCarCount();
public InCarCount()
{
new PInCarCount;
for(new i = 0; i < MAX_PLAYERS; i++) {
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) {
new LModel = GetVehicleModel(GetPlayerVehicleID(i));
if(LModel != 448 || 461 || 462 || 463 || 468 || 471 || 509 || 510 || 521 || 522 || 523 || 581 || 586) PInCarCount++;
}
}
return PInCarCount++;
}
forward AdminCount();
public AdminCount()
{
new LAdminCount;
for(new i = 0; i < MAX_PLAYERS; i++) {
if(IsPlayerConnected(i) && LAdmin[i] >= 1) {
LAdminCount++;
}
}
return LAdminCount++;
}
//=============================[FixHour]========================================
forward FixHour(hour);
public FixHour(hour) {
hour = timeshift+hour;
if (hour < 0) {
hour = hour+24;
} else if (hour > 23) {
hour = hour-24; }
shifthour = hour;
return 1;}
//==============================================================================
stock IsValidWeapon(weaponid)
{
if (weaponid > 0 && weaponid < 19 || weaponid > 21 && weaponid < 47)
{
return 1;
}
return 0;
}
//==============================================================================
//Small but nice function to get arguments positions (by yom)
argpos(const string[], idx = 0, sep = ' ')
{
for(new i = idx, j = strlen(string); i < j; i++)
if (string[i] == sep && string[i+1] != sep)
return i+1;
return -1;
}
//===============================================================================
stock CMDMessageToAdmins(playerid,command[]) { new string[200],name[30]; GetPlayerName(playerid,name,30); format(string,200,"[Admin]: %s has used the command %s",name,command); return MessageToAdmins(COLOR_BLUE,string); }
//=====================[ SAVING DATA ] =========================================
forward SaveToFile(filename[],text[]);
public SaveToFile(filename[],text[])
{
new File:LAdminfile;
new filepath[256], string[256], year,month,day, hour,minute,second;
getdate(year,month,day); gettime(hour,minute,second);
format(filepath,sizeof(filepath),"users/logs/%s.txt",filename);
LAdminfile = fopen(filepath,io_append);
format(string,sizeof(string),"[%d.%d.%d %d:%d:%d] %s\r\n",year,month,day,hour,minute,second,text);
fwrite(LAdminfile,string);
fclose(LAdminfile);
return 1;
}
//============================[ EOF ]===========================================
/*
=========================
TogglePlayerControllable
=========================
*/
forward iFreeze();
public iFreeze()
{
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
{
TogglePlayerControllable(i,0);
}
}
}
/*
========================
String Defines
========================
*/
stock SendClientMessageToAllEx(color,msg[])
{
SendClientMessageToAll(color,msg);
CallRemoteFunction("explain", "s", msg);
}
public RefreshMenuHeader(playerid,Menu:menu,text[])
{
SetMenuColumnHeader(menu,0,text);
ShowMenuForPlayer(menu,playerid);
}
public CreateRaceMenus()
{
//Admin menu
MAdmin = CreateMenu("Admin menu", 1, 25, 170, 220, 25);
AddMenuItem(MAdmin,0,"Set prizemode...");
AddMenuItem(MAdmin,0,"Set fixed prize...");
AddMenuItem(MAdmin,0,"Set dynamic prize...");
AddMenuItem(MAdmin,0,"Set entry fees...");
AddMenuItem(MAdmin,0,"Majority delay...");
AddMenuItem(MAdmin,0,"End current race");
AddMenuItem(MAdmin,0,"Toggle Race Admin [RA]");
AddMenuItem(MAdmin,0,"Toggle Build Admin [BA]");
AddMenuItem(MAdmin,0,"Toggle Race Rotation [RR]");
AddMenuItem(MAdmin,0,"Leave");
if(RaceAdmin == 1) format(ystring,sizeof(ystring),"RA: ON");
else format(ystring,sizeof(ystring),"RA: off");
if(BuildAdmin == 1) format(ystring,sizeof(ystring),"%s BA: ON",ystring);
else format(ystring,sizeof(ystring),"%s BA: off",ystring);
if(RRotation >= 0) format(ystring,sizeof(ystring),"%s RR: ON",ystring);
else format(ystring,sizeof(ystring),"%s RR: off",ystring);
SetMenuColumnHeader(MAdmin,0,ystring);
//Prizemode menu [Admin submenu]
MPMode = CreateMenu("Set prizemode:", 1, 25, 170, 220, 25);
AddMenuItem(MPMode,0,"Fixed");
AddMenuItem(MPMode,0,"Dynamic");
AddMenuItem(MPMode,0,"Entry Fee");
AddMenuItem(MPMode,0,"Entry Fee + Fixed");
AddMenuItem(MPMode,0,"Entry Fee + Dynamic");
AddMenuItem(MPMode,0,"Back");
SetMenuColumnHeader(MPMode,0,"Mode: Fixed");
//Fixed prize menu
MPrize = CreateMenu("Fixed prize:", 1, 25, 170, 220, 25);
AddMenuItem(MPrize,0,"+100$");
AddMenuItem(MPrize,0,"+1000$");
AddMenuItem(MPrize,0,"+10000$");
AddMenuItem(MPrize,0,"-100$");
AddMenuItem(MPrize,0,"-1000$");
AddMenuItem(MPrize,0,"-10000$");
AddMenuItem(MPrize,0,"Back");
format(ystring,sizeof(ystring),"Amount: %d",Prize);
SetMenuColumnHeader(MPrize,0,ystring);
//Dynamic prize menu
MDyna = CreateMenu("Dynamic Prize:", 1, 25, 170, 220, 25);
AddMenuItem(MDyna,0,"+1x");
AddMenuItem(MDyna,0,"+5x");
AddMenuItem(MDyna,0,"-1x");
AddMenuItem(MDyna,0,"-5x");
AddMenuItem(MDyna,0,"Leave");
format(ystring,sizeof(ystring),"Multiplier: %dx",DynaMP);
SetMenuColumnHeader(MDyna,0,ystring);
//Build Menu
MBuild = CreateMenu("Build Menu", 1, 25, 170, 220, 25);
AddMenuItem(MBuild,0,"Set laps...");
AddMenuItem(MBuild,0,"Set racemode...");
AddMenuItem(MBuild,0,"Checkpoint size...");
AddMenuItem(MBuild,0,"Toggle air race");
AddMenuItem(MBuild,0,"Clear the race and exit");
AddMenuItem(MBuild,0,"Leave");
SetMenuColumnHeader(MBuild,0,"Air race: off");
//Laps menu
MLaps = CreateMenu("Set laps", 1, 25, 170, 220, 25);
AddMenuItem(MLaps,0,"+1");
AddMenuItem(MLaps,0,"+5");
AddMenuItem(MLaps,0,"+10");
AddMenuItem(MLaps,0,"-1");
AddMenuItem(MLaps,0,"-5");
AddMenuItem(MLaps,0,"-10");
AddMenuItem(MLaps,0,"Back");
//Racemode menu
MRacemode = CreateMenu("Racemode", 1, 25, 170, 220, 25);
AddMenuItem(MRacemode,0,"Default");
AddMenuItem(MRacemode,0,"Ring");
AddMenuItem(MRacemode,0,"Yoyo");
AddMenuItem(MRacemode,0,"Mirror");
AddMenuItem(MRacemode,0,"Back");
//Race menu
MRace = CreateMenu("Race Menu", 1, 25, 170, 220, 25);
AddMenuItem(MRace,0,"Set laps...");
AddMenuItem(MRace,0,"Set racemode...");
AddMenuItem(MRace,0,"Set checkpoint size...");
AddMenuItem(MRace,0,"Toggle air race");
AddMenuItem(MRace,0,"Start race");
AddMenuItem(MRace,0,"Abort new race");
//Entry fee menu
MFee = CreateMenu("Entry fees", 1, 25, 170, 220, 25);
AddMenuItem(MFee,0,"+100");
AddMenuItem(MFee,0,"+1000");
AddMenuItem(MFee,0,"+10000");
AddMenuItem(MFee,0,"-100");
AddMenuItem(MFee,0,"-1000");
AddMenuItem(MFee,0,"-10000");
AddMenuItem(MFee,0,"Back");
format(ystring,sizeof(ystring),"Fee: %d$",JoinFee);
SetMenuColumnHeader(MFee,0,ystring);
//CP size menu
MCPsize = CreateMenu("CP size", 1, 25, 170, 220, 25);
AddMenuItem(MCPsize,0,"+0.1");
AddMenuItem(MCPsize,0,"+1");
AddMenuItem(MCPsize,0,"+10");
AddMenuItem(MCPsize,0,"-0.1");
AddMenuItem(MCPsize,0,"-1");
AddMenuItem(MCPsize,0,"-10");
AddMenuItem(MCPsize,0,"Back");
//Majority Delay menu
MDelay = CreateMenu("Majority Delay", 1, 25, 170, 220, 25);
AddMenuItem(MDelay,0,"+10s");
AddMenuItem(MDelay,0,"+60s");
AddMenuItem(MDelay,0,"-10s");
AddMenuItem(MDelay,0,"-60s");
AddMenuItem(MDelay,0,"Back");
if(MajorityDelay == 0) format(ystring,sizeof(ystring),"Delay: disabled");
else format(ystring,sizeof(ystring),"Delay: %ds",MajorityDelay);
SetMenuColumnHeader(MDelay,0,ystring);
}
#endif