#include #include #include #include #include #include #include // 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 for 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 is better than any of the ones in highscore list, and update. forward CheckBestRace(playerid,racetime); // Check if 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"); 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 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= 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= 1) { CMDMessageToAdmins(playerid,"ANNOUNCE"); if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"Syntax Error: \"/ANNOUNCE \"."); 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)];i0) //Clear the old race if there is such. { for(new i=0;i 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", 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 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 '9' || targetid > max_playerid || targetid < 0 || !cmd[arg_2]) printf("Usage: \"msg \"",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 \""); 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=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;i0) { 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;i1) { 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;i1) { 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= 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 0) GameTextForPlayer(i,ystring,6000,3); } } } } public CheckBestLap(playerid,laptime) { if(TopLapTimes[4] 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) { 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= 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= 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= 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= 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