rendered paste body//////////////////////////////////////////////////////////// GTA Gun Game //// By Backwardsman97 ////////////////////////////////////////////////////////////#include <a_samp>#include <dudb>#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 DARKGREY 0x818181FF#define ERROR 0xC06716FF#define ADMIN 0xF19E43FF#define GREEN 0x12B60AFF#define RED 0xE04141FF#define BLUE 0x0A8AE9FF#define DULLBLUE 0x5C8DC2FF#define ORANGE 0xEBA523FF#define LIMEGREEN 0xC4FF88FF#pragma unused ret_memcpy, strtokforward AfterSpawn(playerid);forward Restart();forward GameTime();forward StopSpectate(playerid);new CurrentMode =0;new CantSpawn =0;new GameMinutes =19;new GameSeconds =59;new GameTimer;new IsLogged[MAX_PLAYERS];new WeaponLevel[MAX_PLAYERS];new Kills[MAX_PLAYERS];new Deaths[MAX_PLAYERS];new Muted[MAX_PLAYERS];new Warnings[MAX_PLAYERS];new MiniGunKills[MAX_PLAYERS];new KillStreak[MAX_PLAYERS];new SpecTime[MAX_PLAYERS];new SpawnArmor[MAX_PLAYERS];new Admin[MAX_PLAYERS];new Text:Textdraw1[MAX_PLAYERS];new Text:Textdraw2,Text:Textdraw0;new Menu:PrizeMenu;new Weapon[17] ={ 22, //Dual pistols 23, //Silenced Pistol 24, //Deagle 25, //Shotgun 27, //Combat 26, //Sawn 32, //Tec 9 28, //Uzi 29, //Mp5 33, //Rifle 30, //AK 31, //M4 34, //Sniper 16, //Grenade 18, //Cocktail 4, //Knife 38 //Minigun};new Colors[10]={ 0x9595FFFF, 0x00F279FF, 0x35A5CAFF, 0xF4BA0BFF, 0xEDF20DFF, 0xF5800AFF, 0xE17777FF, 0xF18BF1FF, 0xA54BF5FF, 0x9DB649FF};new Float:ModeOneSpawns[30][5] ={ {2868.8455,857.6423,10.7500,156.4198}, {2881.6431,857.8389,10.7500,180.7396}, {2887.7654,865.1469,10.7500,181.6796}, {2889.6313,839.3175,10.7500,87.8471}, {2855.0078,857.3370,9.8134,180.7396}, {2841.8406,844.0111,10.7500,354.1595}, {2841.6091,856.4717,10.7578,183.2463}, {2822.7288,857.7284,10.7500,176.9796}, {2804.8403,856.9552,10.7500,181.3663}, {2786.4944,838.6228,10.7500,358.2329}, {2795.4404,858.8430,10.7578,180.1130}, {2800.1584,872.2941,10.7500,87.6788}, {2801.0793,890.4161,10.7578,98.0189}, {2817.9163,892.4055,9.8389,357.4379}, {2827.1399,892.2391,9.8250,359.6313}, {2855.4358,892.0141,9.8062,2.7646}, {2886.9866,889.2011,10.7578,358.3778}, {2885.5400,909.0891,10.7500,88.7870}, {2892.2437,914.3260,10.8984,96.9338}, {2886.3857,917.6217,10.7500,94.4271}, {2886.6755,922.3732,10.7500,89.5587}, {2886.6077,942.6301,10.7500,86.5937}, {2853.7637,945.2527,10.7500,173.5328}, {2846.1880,948.9348,10.7500,92.6921}, {2846.9646,965.8468,10.7500,77.8694}, {2787.8120,965.1090,10.7500,270.6437}, {2786.0281,962.3939,14.2559,266.7387}, {2796.3108,989.1851,10.7500,89.5587}, {2795.7461,1014.6691,10.7500,173.3644}, {2787.6284,1008.4048,10.7500,175.2444}};new Float:ModeTwoSpawns[36][5] ={ {1383.9604,2185.7610,11.0234,137.2283}, {1359.1348,2183.8911,11.0156,234.9892}, {1355.9463,2156.4919,11.0156,324.2900}, {1382.5735,2160.5447,11.0234,36.6707}, {1395.2374,2159.8896,9.7578,93.6980}, {1395.1614,2177.3032,9.7578,91.5046}, {1393.4335,2195.1882,11.0234,140.5300}, {1377.5297,2196.9299,9.7578,174.2253}, {1360.1039,2195.9141,9.7578,176.4187}, {1354.3848,2195.2251,11.0234,176.5637}, {1324.1288,2194.8164,11.0234,181.4321}, {1304.3392,2196.4160,11.0234,179.8654}, {1303.0316,2154.3992,11.0234,268.6121}, {1305.0566,2104.5461,11.0156,359.5521}, {1348.6730,2104.6260,11.0156,359.7930}, {1393.5704,2104.9370,11.0156,359.7930}, {1393.6859,2140.9851,11.0234,89.4071}, {1359.5442,2207.7637,17.2344,180.5155}, {1330.5021,2207.9463,17.2344,178.0813}, {1301.4852,2207.8237,17.2344,186.8548}, {1399.0642,2200.0571,15.9297,133.1783}, {1406.5208,2183.5852,17.2344,89.3112}, {1406.5752,2153.4153,17.2344,85.8645}, {1406.6150,2124.4009,17.2344,88.9979}, {1410.3383,2124.2454,12.0156,87.8896}, {1410.2003,2153.4260,12.0156,88.9979}, {1411.7147,2183.3552,12.0156,87.1179}, {1359.8030,2212.7842,12.0156,181.4322}, {1330.2648,2212.8843,12.0156,180.4922}, {1300.4966,2212.1453,12.0156,178.6121}, {1314.8237,2213.4412,18.9766,182.0588}, {1344.5253,2212.8845,18.9766,181.1188}, {1374.0377,2211.7827,18.5314,182.3722}, {1410.6438,2169.7065,18.5314,87.4312}, {1410.6947,2139.7854,18.5314,88.6846}, {1410.8324,2111.9446,18.5314,90.2513}};new Float:ModeThreeSpawns[29][5] ={ {105.0939,1900.9913,25.4985,86.4326}, {127.5178,1875.4213,17.8359,0.4336}, {139.9790,1864.8188,17.7505,264.4077}, {114.1990,1832.8400,17.6406,267.3727}, {113.4900,1814.4186,25.4985,264.2160}, {160.9695,1835.8633,17.6481,354.9386}, {166.5084,1850.0927,25.4985,268.2894}, {176.9861,1841.2455,17.6406,1.9770}, {209.9409,1834.7089,17.6406,0.4103}, {210.6214,1805.0287,17.6406,3.7120}, {211.5715,1809.9678,21.8672,359.6385}, {221.1439,1822.8473,17.6406,356.1919}, {250.4454,1833.1021,17.6406,358.0719}, {262.2354,1807.7170,25.4985,265.4460}, {279.3422,1835.4583,17.6481,0.0502}, {267.0904,1895.2994,25.4985,267.2792}, {223.7281,1886.4800,17.6406,1.6169}, {213.7761,1873.6516,17.6406,4.8952}, {213.9838,1881.9666,13.4019,358.9418}, {216.0334,1920.9247,17.6406,178.9418}, {197.2816,1922.5282,17.6406,176.1218}, {183.0919,1935.6461,17.8718,154.8874}, {232.6859,1934.6642,25.4985,269.4726}, {211.8152,1930.0742,23.2422,186.6069}, {162.9230,1932.8792,25.4985,85.6892}, {133.4883,1935.1809,19.2661,176.0751}, {114.5221,1935.7640,18.8916,171.8567}, {134.0925,1875.5911,22.4375,269.6177}, {144.6959,1852.5249,24.7726,273.7144}};new Map[3][20]={ {"LV Train depot"}, {"LV Baseball Field"}, {"Area 69"}};main(){ print("\n---------------------------------------"); print("| Gun Game v1.0 |"); print("| Activated |"); print("---------------------------------------\n");}public OnGameModeInit(){ for(new i = 0; i < 299; i++) { if(IsValidSkin(i)) { AddPlayerClass(i,0.0,0.0,0.0,0.0,0,0,0,0,0,0); } } ShowPlayerMarkers(0); UsePlayerPedAnims(); GameTimer = SetTimer("GameTime",1000,1); PrizeMenu = CreateMenu("Redeemable prizes", 2, 50.0, 180.0, 200.0, 200.0); AddMenuItem(PrizeMenu, 0, "Minus 1 warning"); AddMenuItem(PrizeMenu, 1, "1,000 points"); AddMenuItem(PrizeMenu, 0, "Spawn armor"); AddMenuItem(PrizeMenu, 1, "15,000 points"); AddMenuItem(PrizeMenu, 0, "One match armor"); AddMenuItem(PrizeMenu, 1, "5,000 points"); AddMenuItem(PrizeMenu, 0, "Ammo - 500"); AddMenuItem(PrizeMenu, 1, "50 points"); AddMenuItem(PrizeMenu, 0, "Skip a level"); AddMenuItem(PrizeMenu, 1, "600 points"); Textdraw2 = TextDrawCreate(590.000000,412.000000,"~r~Top Score~n~~w~0"); TextDrawUseBox(Textdraw2,1); TextDrawBoxColor(Textdraw2,0x00000066); TextDrawTextSize(Textdraw2,0.000000,80.000000); TextDrawAlignment(Textdraw2,2); TextDrawBackgroundColor(Textdraw2,0x000000ff); TextDrawFont(Textdraw2,1); TextDrawLetterSize(Textdraw2,0.399999,1.500000); TextDrawColor(Textdraw2,0xffffffff); TextDrawSetOutline(Textdraw2,1); TextDrawSetProportional(Textdraw2,1); TextDrawSetShadow(Textdraw2,1); Textdraw0 = TextDrawCreate(86.000000,427.000000,"15:00"); TextDrawAlignment(Textdraw0,2); TextDrawBackgroundColor(Textdraw0,0x000000ff); TextDrawFont(Textdraw0,3); TextDrawLetterSize(Textdraw0,0.499999,2.000000); TextDrawColor(Textdraw0,0xffffffff); TextDrawSetOutline(Textdraw0,1); TextDrawSetProportional(Textdraw0,1); TextDrawSetShadow(Textdraw0,1); CreateObject(2929,215.853454,1875.336547,13.951337,0.000000,0.000000,179.613388); CreateObject(2929,211.808059,1875.290649,13.951243,0.000000,0.000000,181.624099); CreateObject(988,96.789436,1920.165771,17.338628,0.000000,0.000000,271.234802); CreateObject(987,2776.981689,901.178710,9.765661,0.000000,0.000000,89.843864); CreateObject(987,2777.026855,913.340148,9.765661,0.000000,0.000000,90.343864); CreateObject(1225,2840.541748,956.958374,10.138525,0.000000,0.000000,168.783798); CreateObject(1225,2814.960693,891.875427,10.132592,0.000000,0.000000,186.957321); CreateObject(1225,2801.379150,890.245666,10.264112,0.000000,0.000000,194.814102); CreateObject(1225,2816.755126,933.871337,10.374737,0.000000,0.000000,256.854705); CreateObject(1225,2796.448242,989.189514,10.225549,0.000000,0.000000,257.794677); CreateObject(1225,2868.435546,944.667663,10.156861,0.000000,0.000000,318.582000); CreateObject(1225,2847.875000,1007.451965,10.111249,0.000000,0.000000,304.336944); SetGameModeText("|GTA Gun Game|"); return 1;}public OnPlayerSpawn(playerid){ SetPlayerInterior(playerid,0); SetCameraBehindPlayer(playerid); SetPlayerColor(playerid,Colors[random(10)]); SetPlayerHealth(playerid,9999999.0); SetTimerEx("AfterSpawn",5000,0,"d",playerid); if(CurrentMode == 0) { new Spawn = random(sizeof(ModeOneSpawns)); SetPlayerPos(playerid,ModeOneSpawns[Spawn][0],ModeOneSpawns[Spawn][1],ModeOneSpawns[Spawn][2]); SetPlayerFacingAngle(playerid,ModeOneSpawns[Spawn][4]); SetPlayerWorldBounds(playerid,2894.7029,2777.4805,1022.9144,833.630); return 1; } else if(CurrentMode == 1) { new Spawn = random(sizeof(ModeTwoSpawns)); SetPlayerPos(playerid,ModeTwoSpawns[Spawn][0],ModeTwoSpawns[Spawn][1],ModeTwoSpawns[Spawn][2]); SetPlayerFacingAngle(playerid,ModeTwoSpawns[Spawn][4]); SetPlayerWorldBounds(playerid,1417.6226, 1302.4888, 2216.7000, 2104.6328); return 1; } else if(CurrentMode == 2) { new Spawn = random(sizeof(ModeThreeSpawns)); SetPlayerPos(playerid,ModeThreeSpawns[Spawn][0],ModeThreeSpawns[Spawn][1],ModeThreeSpawns[Spawn][2]); SetPlayerFacingAngle(playerid,ModeThreeSpawns[Spawn][4]); SetPlayerWorldBounds(playerid,285.4742, 97.0450, 1940.4082, 1799.2507); return 1; } return 1;}public AfterSpawn(playerid){ SetPlayerHealth(playerid,100.0); GivePlayerWeapon(playerid,Weapon[WeaponLevel[playerid]],500); return 1;}public OnPlayerConnect(playerid){ new Stringy[128]; format(Stringy,sizeof(Stringy),"%s(%d) has joined the server.",ReturnPlayerName(playerid),playerid); SendClientMessageToAll(DARKGREY,Stringy); SendClientMessage(playerid,DULLBLUE,"Welcome to the Gun Game server."); SendClientMessage(playerid,RED,"Read /rules and /commands for the rules and commands."); SendClientMessage(playerid,RED,"See /help if you have any trouble."); if(udb_Exists(ReturnPlayerName(playerid))) { SendClientMessage(playerid,LIMEGREEN,"You have a registered account. Please use /login [password]"); } else { SendClientMessage(playerid,LIMEGREEN,"You currently do not have a registered account. Please use /register [password]"); } SetPlayerColor(playerid,DARKGREY); Muted[playerid]=0; Warnings[playerid]=0; WeaponLevel[playerid]=0; MiniGunKills[playerid]=0; Kills[playerid]=0; Deaths[playerid]=0; IsLogged[playerid] = 0; Textdraw1[playerid] = TextDrawCreate(493.000000,412.000000,"~r~Your Score~n~~w~0"); TextDrawUseBox(Textdraw1[playerid],1); TextDrawBoxColor(Textdraw1[playerid],0x00000066); TextDrawTextSize(Textdraw1[playerid],0.000000,88.000000); TextDrawAlignment(Textdraw1[playerid],2); TextDrawBackgroundColor(Textdraw1[playerid],0x000000ff); TextDrawFont(Textdraw1[playerid],1); TextDrawLetterSize(Textdraw1[playerid],0.400000,1.500000); TextDrawColor(Textdraw1[playerid],0xffffffff); TextDrawSetOutline(Textdraw1[playerid],1); TextDrawSetProportional(Textdraw1[playerid],1); TextDrawSetShadow(Textdraw1[playerid],1); TextDrawShowForPlayer(playerid,Textdraw0); TextDrawShowForPlayer(playerid,Textdraw1[playerid]); TextDrawShowForPlayer(playerid,Textdraw2); return 1;}public OnPlayerText(playerid,text[]){ if(Muted[playerid]) { SendClientMessage(playerid,ERROR,"You are muted. You may not speak."); return 0; } return 1;}public OnPlayerDeath(playerid,killerid,reason){ Deaths[playerid]++; KillStreak[playerid]=0; ResetPlayerWeapons(playerid); SendDeathMessage(killerid,playerid,reason); SetPlayerColor(playerid,DARKGREY); SetPlayerWorldBounds(playerid, 20000.0000,-20000.0000,20000.0000,-20000.0000); if((reason != 255) || (killerid != 255)) { new String[24]; Kills[killerid]++; KillStreak[killerid]++; SetPlayerScore(killerid,GetPlayerScore(killerid)+10); new String2[128]; format(String2,sizeof(String2),"~r~Top Score~n~~w~%d",ReturnHighScore()); TextDrawSetString(Textdraw2,String2); format(String,sizeof(String),"~r~Your Score~n~~w~%d",GetPlayerScore(killerid)); TextDrawSetString(Textdraw1[killerid],String); PlayerPlaySound2(killerid,1056); TogglePlayerSpectating(playerid,1); PlayerSpectatePlayer(playerid,killerid,SPECTATE_MODE_NORMAL); SetTimerEx("StopSpectate",1000,0,"i",playerid); SpecTime[playerid] = 8; if(reason==38) { MiniGunKills[killerid]++; if(MiniGunKills[killerid]==10) { new Stringy[128]; format(Stringy,sizeof(Stringy),"~r~%s(%d) ~y~has won the game!",ReturnPlayerName(killerid),killerid); GameTextForAll(Stringy,4,3000); MiniGunKills[killerid]=0; SetTimer("Restart",8000,0); SetPlayerScore(killerid,GetPlayerScore(killerid)+500); SendClientMessage(killerid,ORANGE,"You have been rewarded with 500 points."); CantSpawn=1; CurrentMode++; if(CurrentMode==3) { CurrentMode=0; } for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { ForceClassSelection(i); SetPlayerHealth(i,0.0); WeaponLevel[i]=0; } } } } if(!(Kills[killerid] % 4)) { if(!CantSpawn) { if(WeaponLevel[killerid]!=16) { WeaponLevel[killerid]++; ResetPlayerWeapons(killerid); GivePlayerWeapon(killerid,Weapon[WeaponLevel[killerid]],500); GameTextForPlayer(killerid,"~b~~h~~h~Leveled Up",1500,4); PlayerPlaySound2(killerid,1057); } } } new KillString[128]; if(KillStreak[killerid]==4) { GameTextForPlayer(killerid,"~w~Dominating!",1500,4); return 1; } if(KillStreak[killerid]==6) { format(KillString,sizeof(KillString),"%s ~b~~h~~h~Rampage!",ReturnPlayerName(killerid)); GameTextForAll(KillString,1500,4); return 1; } if(KillStreak[killerid]==8) { format(KillString,sizeof(KillString),"%s ~b~~h~~h~Killing Spree!",ReturnPlayerName(killerid)); GameTextForAll(KillString,1500,4); return 1; } if(KillStreak[killerid]==10) { format(KillString,sizeof(KillString),"%s ~b~~h~~h~Monster Kill!",ReturnPlayerName(killerid)); GameTextForAll(KillString,1500,4); } if(KillStreak[killerid]==12) { format(KillString,sizeof(KillString),"%s ~b~~h~~h~Unstoppable!",ReturnPlayerName(killerid)); GameTextForAll(KillString,1500,4); return 1; } if(KillStreak[killerid]==14) { format(KillString,sizeof(KillString),"%s ~b~~h~~h~Ultra Kill!",ReturnPlayerName(killerid)); GameTextForAll(KillString,1500,4); return 1; } if(KillStreak[killerid]==16) { format(KillString,sizeof(KillString),"%s ~b~~h~~h~God Like!",ReturnPlayerName(killerid)); GameTextForAll(KillString,1500,4); return 1; } if(KillStreak[killerid]==18) { format(KillString,sizeof(KillString),"%s ~b~~h~~h~Wicked Sick!",ReturnPlayerName(killerid)); GameTextForAll(KillString,1500,4); return 1; } if(KillStreak[killerid]==20) { format(KillString,sizeof(KillString),"%s ~b~~h~~h~Ludacris Kill!",ReturnPlayerName(killerid)); GameTextForAll(KillString,1500,4); return 1; } if(KillStreak[killerid]==22) { format(KillString,sizeof(KillString),"%s ~r~Holy Shit!",ReturnPlayerName(killerid)); GameTextForAll(KillString,1500,4); return 1; } } return 1;}public StopSpectate(playerid){ if(SpecTime[playerid] >= 1) { new String[128]; format(String,sizeof(String),"~y~Respawning in ~n~~w~%d",SpecTime[playerid]); GameTextForPlayer(playerid,String,2000,3); SetTimerEx("StopSpectate",1000,0,"i",playerid); if(SpecTime[playerid] <= 3) { PlayerPlaySound2(playerid,1056); } SpecTime[playerid]--; return 1; } else { TogglePlayerSpectating(playerid,0); GameTextForPlayer(playerid,"~r~Respawning...",1000,3); PlayerPlaySound2(playerid,1057); return 1; }}public OnPlayerDisconnect(playerid,reason){ new Stringy[128]; switch(reason) { case 0: format(Stringy, sizeof(Stringy), "%s has left the server (Timeout)", ReturnPlayerName(playerid)); case 1: format(Stringy, sizeof(Stringy), "%s has left the server (Leaving)", ReturnPlayerName(playerid)); case 2: format(Stringy, sizeof(Stringy), "%s has left the server (Kicked)", ReturnPlayerName(playerid)); } SendClientMessageToAll(DARKGREY, Stringy); new String2[128]; format(String2,sizeof(String2),"~r~Top Score~n~~w~%d",ReturnHighScore()); TextDrawSetString(Textdraw2,String2); Muted[playerid]=0; Warnings[playerid]=0; WeaponLevel[playerid]=0; MiniGunKills[playerid]=0; Kills[playerid]=0; Deaths[playerid]=0; dUserSetINT(ReturnPlayerName(playerid)).("Admin",Admin[playerid]); dUserSetINT(ReturnPlayerName(playerid)).("Warnings",Warnings[playerid]); dUserSetINT(ReturnPlayerName(playerid)).("Score",GetPlayerScore(playerid)); dUserSetINT(ReturnPlayerName(playerid)).("Kills",Kills[playerid] + dUserINT(ReturnPlayerName(playerid)).("Kills")); dUserSetINT(ReturnPlayerName(playerid)).("Deaths",Deaths[playerid] + dUserINT(ReturnPlayerName(playerid)).("Deaths")); TextDrawDestroy(Textdraw1[playerid]); return 1;}public OnPlayerRequestSpawn(playerid){ if(!IsLogged[playerid]) { SendClientMessage(playerid,ERROR,"You must be logged in to spawn."); return 0; } if(CantSpawn) { SendClientMessage(playerid,ERROR,"A new round is about to begin, please wait."); return 0; } return 1;}public OnPlayerRequestClass(playerid, classid){ SetPlayerPos(playerid,297.5041,-81.8028,1002.5341); SetPlayerFacingAngle(playerid,346.8848); SetPlayerCameraPos(playerid,297.504089,-80.802795,1002.534057); SetPlayerCameraLookAt(playerid,296.504089,-94.802795,1006.534057); ApplyAnimation(playerid,"DEALER","DEALER_IDLE",4.1,0,1,1,1,1); SetPlayerInterior(playerid,4); return 1;}public Restart(){ CantSpawn=0; for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { SendClientMessage(i,BLUE,"You may now spawn."); WeaponLevel[i] = 0; MiniGunKills[i] = 0; } } GameMinutes =19; GameSeconds =59; GameTimer = SetTimer("GameTime",1000,1); return 1;}public OnPlayerExitedMenu(playerid){ TogglePlayerControllable(playerid,1); return 1;}public OnPlayerSelectedMenuRow(playerid, row){ if(GetPlayerMenu(playerid) == PrizeMenu) { switch(row) { case 0: { if(GetPlayerScore(playerid) <= 1000) { SendClientMessage(playerid,ERROR,"You do not have enough points for that prize (1,000)."); ShowMenuForPlayer(PrizeMenu,playerid); return 1; } if(Warnings[playerid]==0) { SendClientMessage(playerid,ERROR,"You do not have any warnings."); ShowMenuForPlayer(PrizeMenu,playerid); return 1; } Warnings[playerid]--; SendClientMessage(playerid,BLUE,"You have reduced your warnings by 1."); SetPlayerScore(playerid,GetPlayerScore(playerid)-1000); TogglePlayerControllable(playerid,1); } case 1: { if(GetPlayerScore(playerid) <= 15000) { SendClientMessage(playerid,ERROR,"You do not have enough points for that prize (15,000)."); ShowMenuForPlayer(PrizeMenu,playerid); return 1; } if(SpawnArmor[playerid]==1) { SendClientMessage(playerid,ERROR,"You already have bought spawn armor."); ShowMenuForPlayer(PrizeMenu,playerid); return 1; } SpawnArmor[playerid]=1; SendClientMessage(playerid,BLUE,"You have bought spawn armor."); SetPlayerScore(playerid,GetPlayerScore(playerid)-15000); TogglePlayerControllable(playerid,1); } case 2: { if(GetPlayerScore(playerid) <= 5000) { SendClientMessage(playerid,ERROR,"You do not have enough points for that prize (5,000)."); ShowMenuForPlayer(PrizeMenu,playerid); return 1; } SetPlayerArmour(playerid,100.0); SendClientMessage(playerid,BLUE,"You have bought armor."); SetPlayerScore(playerid,GetPlayerScore(playerid)-5000); TogglePlayerControllable(playerid,1); } case 3: { if(GetPlayerScore(playerid) <= 50) { SendClientMessage(playerid,ERROR,"You do not have enough points for that prize (50)."); ShowMenuForPlayer(PrizeMenu,playerid); return 1; } SetPlayerAmmo(playerid,0,GetPlayerAmmo(playerid)+500); SetPlayerAmmo(playerid,1,GetPlayerAmmo(playerid)+500); SendClientMessage(playerid,BLUE,"You have bought 500 ammo."); SetPlayerScore(playerid,GetPlayerScore(playerid)-50); TogglePlayerControllable(playerid,1); } case 4: { if(GetPlayerScore(playerid) <= 6000) { SendClientMessage(playerid,ERROR,"You do not have enough points for that prize (6,000)."); ShowMenuForPlayer(PrizeMenu,playerid); return 1; } if(WeaponLevel[playerid]==16) { SendClientMessage(playerid,ERROR,"You cannot skip this level."); ShowMenuForPlayer(PrizeMenu,playerid); return 1; } WeaponLevel[playerid]++; GivePlayerWeapon(playerid,Weapon[WeaponLevel[playerid]],500); SendClientMessage(playerid,BLUE,"You have upgraded levels."); SetPlayerScore(playerid,GetPlayerScore(playerid)-6000); TogglePlayerControllable(playerid,1); } } new String2[128]; format(String2,sizeof(String2),"~r~Top Score~n~~w~%d",ReturnHighScore()); TextDrawSetString(Textdraw2,String2); } return 1;}public GameTime(){ if(GameSeconds || GameMinutes) { GameSeconds--; if(GameSeconds <= -1) { GameMinutes--; GameSeconds=59; } new TimeString[14]; format(TimeString,sizeof(TimeString),"%02d:%02d",GameMinutes,GameSeconds); TextDrawSetString(Textdraw0,TimeString); } else { KillTimer(GameTimer); SetTimer("Restart",8000,0); new String[128],leader = 0; for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(GetPlayerScore(i) > ReturnHighScore()) { leader = i; } } } CantSpawn=1; CurrentMode++; if(CurrentMode==3) { CurrentMode=0; } TextDrawSetString(Textdraw0,"00:00"); format(String,sizeof(String),"%s(%d) is the winner with %d kills and %d points and has received 500 bonus points.",ReturnPlayerName(leader),leader,Kills[leader],GetPlayerScore(leader)); SetPlayerScore(leader,GetPlayerScore(leader)+500); SendClientMessage(leader,ORANGE,"You have been rewarded with 500 points."); SendClientMessageToAll(RED,String); GameTextForAll("Time Up!",4000,4); for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { ForceClassSelection(i); SetPlayerHealth(i,0.0); WeaponLevel[i]=0; } } } return 1;}public OnPlayerCommandText(playerid,cmdtext[]){ //Admin Commands dcmd(kick,4,cmdtext); dcmd(ban,3,cmdtext); dcmd(mute,4,cmdtext); dcmd(unmute,6,cmdtext); dcmd(freeze,6,cmdtext); dcmd(unfreeze,8,cmdtext); dcmd(sethp,5,cmdtext); dcmd(disarm,6,cmdtext); dcmd(setarm,6,cmdtext); dcmd(armourall,9,cmdtext); dcmd(warn,4,cmdtext); //Commands dcmd(help,4,cmdtext); dcmd(commands,8,cmdtext); dcmd(rules,5,cmdtext); dcmd(level,5,cmdtext); dcmd(kills,5,cmdtext); dcmd(leader,6,cmdtext); dcmd(map,3,cmdtext); dcmd(redeemprize,11,cmdtext); dcmd(warnings,8,cmdtext); dcmd(register,8,cmdtext); dcmd(login,5,cmdtext); return 0;}dcmd_kick(playerid,params[]){ if(Admin[playerid]) { new giveplayerid, reason[128]; if(sscanf(params,"dz",giveplayerid,reason)) { SendClientMessage(playerid,ERROR,"Usage: /kick (id)"); return 1; } if(!IsPlayerConnected(giveplayerid)) { new Stringy[128]; format(Stringy, sizeof(Stringy), "ID (%d) Is not an active player", giveplayerid); SendClientMessage(playerid, ERROR, Stringy); return 1; } new Stringy[128]; format(Stringy,sizeof(Stringy),"***(Admin Kick) - %s(%d) %s",ReturnPlayerName(giveplayerid),giveplayerid,reason); SendClientMessageToAll(ADMIN,Stringy); Kick(giveplayerid); return 1; } return 0;}dcmd_ban(playerid,params[]){ if(Admin[playerid]) { new giveplayerid, reason[128]; if(sscanf(params,"dz",giveplayerid,reason)) { SendClientMessage(playerid,ERROR,"Usage: /ban (id)"); return 1; } if(!IsPlayerConnected(giveplayerid)) { new Stringy[128]; format(Stringy, sizeof(Stringy), "ID (%d) Is not an active player", giveplayerid); SendClientMessage(playerid, ERROR, Stringy); return 1; } new Stringy[128]; format(Stringy,sizeof(Stringy),"***(Admin Ban) - %s(%d) %s",ReturnPlayerName(giveplayerid),giveplayerid,reason); SendClientMessageToAll(ADMIN,Stringy); Ban(giveplayerid); return 1; } return 0;}dcmd_mute(playerid,params[]){ if(Admin[playerid]) { new giveplayerid, reason[128]; if(sscanf(params,"dz",giveplayerid,reason)) { SendClientMessage(playerid,ERROR,"Usage: /mute (id)"); return 1; } if(!IsPlayerConnected(giveplayerid)) { new Stringy[128]; format(Stringy, sizeof(Stringy), "ID (%d) Is not an active player", giveplayerid); SendClientMessage(playerid, ERROR, Stringy); return 1; } if(Muted[giveplayerid]) { SendClientMessage(playerid,ERROR,"That player is already muted."); return 1; } new Stringy[128]; Muted[giveplayerid]=1; format(Stringy,sizeof(Stringy),"***(Admin Mute) - %s(%d) %s",ReturnPlayerName(giveplayerid),giveplayerid,reason); SendClientMessageToAll(ADMIN,Stringy); return 1; } return 0;}dcmd_unmute(playerid,params[]){ if(Admin[playerid]) { new giveplayerid, reason[128]; if(sscanf(params,"dz",giveplayerid,reason)) { SendClientMessage(playerid,ERROR,"Usage: /unmute (id)"); return 1; } if(!IsPlayerConnected(giveplayerid)) { new Stringy[128]; format(Stringy, sizeof(Stringy), "ID (%d) Is not an active player", giveplayerid); SendClientMessage(playerid, ERROR, Stringy); return 1; } if(!Muted[giveplayerid]) { SendClientMessage(playerid,ERROR,"That player is already unmuted."); return 1; } new Stringy[128]; Muted[giveplayerid]=0; format(Stringy,sizeof(Stringy),"***(Admin Unmute) - %s(%d) %s",ReturnPlayerName(giveplayerid),giveplayerid,reason); SendClientMessageToAll(ADMIN,Stringy); return 1; } return 0;}dcmd_freeze(playerid,params[]){ if(Admin[playerid]) { new giveplayerid, reason[128]; if(sscanf(params,"dz",giveplayerid,reason)) { SendClientMessage(playerid,ERROR,"Usage: /freeze (id)"); return 1; } if(!IsPlayerConnected(giveplayerid)) { new Stringy[128]; format(Stringy, sizeof(Stringy), "ID (%d) Is not an active player", giveplayerid); SendClientMessage(playerid, ERROR, Stringy); return 1; } new Stringy[128]; TogglePlayerControllable(giveplayerid,0); format(Stringy,sizeof(Stringy),"***(Admin Freeze) - %s(%d) %s",ReturnPlayerName(giveplayerid),giveplayerid,reason); SendClientMessageToAll(ADMIN,Stringy); return 1; } return 0;}dcmd_unfreeze(playerid,params[]){ if(Admin[playerid]) { new giveplayerid, reason[128]; if(sscanf(params,"dz",giveplayerid,reason)) { SendClientMessage(playerid,ERROR,"Usage: /unfreeze (id)"); return 1; } if(!IsPlayerConnected(giveplayerid)) { new Stringy[128]; format(Stringy, sizeof(Stringy), "ID (%d) Is not an active player", giveplayerid); SendClientMessage(playerid, ERROR, Stringy); return 1; } new Stringy[128]; TogglePlayerControllable(giveplayerid,1); format(Stringy,sizeof(Stringy),"***(Admin UnFreeze) - %s(%d) %s",ReturnPlayerName(giveplayerid),giveplayerid,reason); SendClientMessageToAll(ADMIN,Stringy); return 1; } return 0;}dcmd_sethp(playerid,params[]){ if(Admin[playerid]) { new giveplayerid, health,reason[128]; if(sscanf(params,"ddz",giveplayerid,health,reason)) { SendClientMessage(playerid,ERROR,"Usage: /sethp (id) (hp)"); return 1; } if(!IsPlayerConnected(giveplayerid)) { new Stringy[128]; format(Stringy, sizeof(Stringy), "ID (%d) Is not an active player", giveplayerid); SendClientMessage(playerid, ERROR, Stringy); return 1; } new Stringy[128]; SetPlayerHealth(giveplayerid,health); format(Stringy,sizeof(Stringy),"***(Admin Health) - %s(%d) [%d] %s",ReturnPlayerName(giveplayerid),giveplayerid,health,reason); SendClientMessageToAll(ADMIN,Stringy); return 1; } return 0;}dcmd_disarm(playerid,params[]){ if(Admin[playerid]) { new giveplayerid, reason[128]; if(sscanf(params,"dz",giveplayerid,reason)) { SendClientMessage(playerid,ERROR,"Usage: /disarm (id)"); return 1; } if(!IsPlayerConnected(giveplayerid)) { new Stringy[128]; format(Stringy, sizeof(Stringy), "ID (%d) Is not an active player", giveplayerid); SendClientMessage(playerid, ERROR, Stringy); return 1; } new Stringy[128]; ResetPlayerWeapons(giveplayerid); format(Stringy,sizeof(Stringy),"***(Admin Disarm) - %s(%d) %s",ReturnPlayerName(giveplayerid),giveplayerid,reason); SendClientMessageToAll(ADMIN,Stringy); return 1; } return 0;}dcmd_setarm(playerid,params[]){ if(Admin[playerid]) { new giveplayerid, armour,reason[128]; if(sscanf(params,"ddz",giveplayerid,armour,reason)) { SendClientMessage(playerid,ERROR,"Usage: /setarm (id) (arm)"); return 1; } if(!IsPlayerConnected(giveplayerid)) { new Stringy[128]; format(Stringy, sizeof(Stringy), "ID (%d) Is not an active player", giveplayerid); SendClientMessage(playerid, ERROR, Stringy); return 1; } new Stringy[128]; SetPlayerArmour(giveplayerid,armour); format(Stringy,sizeof(Stringy),"***(Admin Armour) - %s(%d) [%d] %s",ReturnPlayerName(giveplayerid),giveplayerid,armour,reason); SendClientMessageToAll(ADMIN,Stringy); return 1; } return 0;}dcmd_armourall(playerid,params[]){ if(Admin[playerid]) { new Stringy[128]; for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { SetPlayerArmour(i,100.0); } } format(Stringy,sizeof(Stringy),"***(Admin Armour All) %s",params); SendClientMessageToAll(ADMIN,Stringy); return 1; } return 0;}dcmd_warn(playerid,params[]){ if(Admin[playerid]) { new giveplayerid, reason[128]; if(sscanf(params,"dz",giveplayerid,reason)) { SendClientMessage(playerid,ERROR,"Usage: /warn (id)"); return 1; } if(!IsPlayerConnected(giveplayerid)) { new Stringy[128]; format(Stringy, sizeof(Stringy), "ID (%d) Is not an active player", giveplayerid); SendClientMessage(playerid, ERROR, Stringy); return 1; } new Stringy[128]; Warnings[giveplayerid]++; format(Stringy,sizeof(Stringy),"***(Admin Warn) - %s(%d) %s",ReturnPlayerName(giveplayerid),giveplayerid,reason); SendClientMessageToAll(ADMIN,Stringy); return 1; } return 0;}dcmd_help(playerid,params[]){ SendClientMessage(playerid,GREEN,"Any questions? Please Visit our Forum at www.forum.com."); SendClientMessage(playerid,GREEN,"The Object of this Game Mode is to get the most kills and Level up the fastest."); SendClientMessage(playerid,GREEN,"If you have the Most kills or if you got all the levels at the end of the match,"); SendClientMessage(playerid,GREEN,"you will be rewarded with 500 Points. You get 10 points for every kill you acheive."); SendClientMessage(playerid,GREEN,"You may buy items with your points with the /redeemprize menu."); return 1; #pragma unused params}dcmd_commands(playerid,params[]){ SendClientMessage(playerid,DULLBLUE,"| - Available Server Commmands - |"); SendClientMessage(playerid,BLUE,"/rules - /warnings - /help - /level - /kills"); SendClientMessage(playerid,BLUE,"/leader - /redeemprize - /map"); if(Admin[playerid]) { SendClientMessage(playerid,RED,"--------------------------------------"); SendClientMessage(playerid,DULLBLUE,"| - Available Admin Commmands - |"); SendClientMessage(playerid,BLUE,"/kick (id) - /ban (id) - /mute (id)"); SendClientMessage(playerid,BLUE,"/unmute (id) - /freeze (id) - /unfreeze (id)"); SendClientMessage(playerid,BLUE,"/sethp (id) - /disarm (id) - /setarm (id)"); SendClientMessage(playerid,BLUE,"/armourall - /warn (id)"); } return 1; #pragma unused params}dcmd_rules(playerid,params[]){ SendClientMessage(playerid,DULLBLUE,"| - Server Rules - |"); SendClientMessage(playerid,BLUE,"- No spawn killing - No hacking or cheating -"); SendClientMessage(playerid,BLUE,"- Do not abuse admins - Any bug exploiting gives a warning -"); SendClientMessage(playerid,BLUE,"- 3 warnings = Kick - 5 warnings = Ban -"); return 1; #pragma unused params}dcmd_level(playerid,params[]){ new Stringy[128]; format(Stringy,sizeof(Stringy),"You are currently on the level of %d.",WeaponLevel[playerid]); SendClientMessage(playerid,BLUE,Stringy); return 1; #pragma unused params}dcmd_kills(playerid,params[]){ new Stringy[128],string[128]; format(Stringy,sizeof(Stringy),"You currently have %d kill(s) and %d death(s) since you last connected.",Kills[playerid],Deaths[playerid]); format(string,sizeof(string),"You currently have a total of %d kill(s) and %d death(s) since you've registered.",Kills[playerid] + dUserINT(ReturnPlayerName(playerid)).("Kills"),Deaths[playerid] + dUserINT(ReturnPlayerName(playerid)).("Deaths")); SendClientMessage(playerid,BLUE,Stringy); SendClientMessage(playerid,BLUE,string); return 1; #pragma unused params}dcmd_leader(playerid,params[]){ new leader = 0; for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(Kills[i] > Kills[leader]) { leader = i; } } } new Stringy[128]; format(Stringy,sizeof(Stringy),"%s(%d) is in the lead with %d points and %d kills.",ReturnPlayerName(leader),leader,GetPlayerScore(leader),Kills[leader]); SendClientMessage(playerid,BLUE,Stringy); return 1; #pragma unused params}dcmd_map(playerid,params[]){ new Stringy[128],TempMode=CurrentMode+1; if(TempMode==3) { TempMode = 0; } format(Stringy,sizeof(Stringy),"The current map is %s and the next map will be %s.",Map[CurrentMode][0],Map[TempMode][0]); SendClientMessage(playerid,BLUE,Stringy); return 1; #pragma unused params}dcmd_redeemprize(playerid,params[]){ TogglePlayerControllable(playerid,0); ShowMenuForPlayer(PrizeMenu,playerid); #pragma unused params return 1;}dcmd_warnings(playerid,params[]){ new string[128]; format(string,sizeof(string),"You currently have a total of %d warning(s).",Warnings[playerid]); SendClientMessage(playerid,BLUE,string); #pragma unused params return 1;}dcmd_register(playerid,params[]){ if (IsLogged[playerid]) { SendClientMessage(playerid,ERROR,"You have already registered and logged in."); return 1; } if (udb_Exists(ReturnPlayerName(playerid))) { SendClientMessage(playerid,ERROR,"Account already exists, please use /login [password]"); return 1; } if(!strlen(params)) { SendClientMessage(playerid,ERROR,"Usage: /register [password]"); return 1; } if (udb_Create(ReturnPlayerName(playerid),params)) { SendClientMessage(playerid,LIMEGREEN,"Your account has successfully been created and logged into."); IsLogged[playerid] = 1; return 1; } return true;}dcmd_login(playerid,params[]){ if(IsLogged[playerid]) { SendClientMessage(playerid,ERROR,"You have already logged in."); return 1; } if (!udb_Exists(ReturnPlayerName(playerid))) { SendClientMessage(playerid,ERROR,"This account has not yet been registered."); return 1; } if (!strlen(params)) { SendClientMessage(playerid,ERROR,"Usage: /login [password]"); return 1; } if(!udb_CheckLogin(ReturnPlayerName(playerid),params)) { SendClientMessage(playerid,ERROR,"Incorrect password."); return 1; } IsLogged[playerid] = 1; SendClientMessage(playerid,LIMEGREEN,"You have successfully logged in."); Warnings[playerid] = dUserINT(ReturnPlayerName(playerid)).("Warnings"); Admin[playerid] = dUserINT(ReturnPlayerName(playerid)).("Admin"); SetPlayerScore(playerid,dUserINT(ReturnPlayerName(playerid)).("Score")); return 1;}/////////////////////////////////Functions///////////////////////////////////stock PlayerPlaySound2(playerid,soundid){ new Float:X,Float:Y,Float:Z; GetPlayerPos(playerid,X,Y,Z); PlayerPlaySound(playerid,soundid,X,Y,Z);}stock ReturnPlayerName(playerid) //By Alex "Y_Less" Cole{ new pname[MAX_PLAYER_NAME]; pname="Invalid PlayerID"; if(IsPlayerConnected(playerid)) { GetPlayerName(playerid, pname, sizeof (pname)); } return pname;}stock sscanf(string[], format[], {Float,_}:...){ if (!strlen(string)) { return format[0]; } new formatPos = 0, stringPos = 0, paramPos = 2, paramCount = numargs(), delim = ' '; while (paramPos < paramCount && string[stringPos]) { switch (format[formatPos++]) { case '\0': { return 0; } case 'i', 'd': { new neg = 1, num = 0, ch = string[stringPos]; if (ch == '-') { neg = -1; ch = string[++stringPos]; } do { stringPos++; if (ch >= '0' && ch <= '9') { num = (num * 10) + (ch - '0'); } else { return -1; } } while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num * neg); } case 'h', 'x': { new ch, num = 0; while ((ch = string[stringPos]) > ' ' && ch != delim) { switch (ch) { case 'x', 'X': { num = 0; continue; } case '0' .. '9': { num = (num << 4) | (ch - '0'); } case 'a' .. 'f': { num = (num << 4) | (ch - ('a' - 10)); } case 'A' .. 'F': { num = (num << 4) | (ch - ('A' - 10)); } default: { return -1; } } } setarg(paramPos, 0, num); } case 'c': { setarg(paramPos, 0, string[stringPos++]); } case 'f': { setarg(paramPos, 0, _:floatstr(string[stringPos])); } case 'p': { delim = format[formatPos++]; continue; } case 's', 'z': { new i = 0, ch; if (format[formatPos]) { while ((ch = string[stringPos++]) && ch != delim) { setarg(paramPos, i++, ch); } if (!i) { return -1; } } else { while ((ch = string[stringPos++])) { setarg(paramPos, i++, ch); } } stringPos--; setarg(paramPos, i, '\0'); } default: { continue; } } while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ') { stringPos++; } while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' ')) { stringPos++; } paramPos++; } while (format[formatPos] == 'z') formatPos++; if (format[formatPos] > ' ') return format[formatPos]; return 0;}IsValidSkin(skinid){ #define MAX_BAD_SKINS 22 new badSkins[MAX_BAD_SKINS] = { 3, 4, 5, 6, 8, 42, 65, 74, 86, 119, 149, 208, 265, 266, 267, 268, 269, 270, 271, 272, 273, 289 }; if (skinid < 0 || skinid > 299) return false; for (new i = 0; i < MAX_BAD_SKINS; i++) { if (skinid == badSkins[i]) return false; } #undef MAX_BAD_SKINS return 1;}stock ReturnHighScore(){ new highscore = 0; for(new i=0; i<MAX_PLAYERS; i++) { new Score = GetPlayerScore(i); if(Score >= highscore) { highscore = Score; } } return highscore;}