rendered paste body#include <a_samp>#include <dini>#pragma dynamic 20480#define GameModeText "SimpleDM v.0.3"main() {}forward AntiSpawnKill(playerid);forward LoggingTimeoutT(playerid);forward UnMutePlayerT(playerid);forward WorldTimeUpdate();forward SaveAllPlayers();forward AreasCheck();forward IdleCheck();forward MoneyCheck();forward FloodCheck();forward MoneyForPlay();forward CountDown0();forward CountDown1();forward CountDown2();forward CountDown3();forward CountDown4();forward CountDown5();#define TimeCycle 1//#define SolidColorChat 1#define AllowBadSymbolsInNicks 1#define PlayersDir "simpledm/players/"#define PlayersExt ".txt"#define AdminsFile "simpledm/admins.txt"#define AdminColor 0xFFFFFFFF#define GameModeLog "simpledm/simpledm.log"//#define CommandsLog "simpledm/commands.log"#define AdminsLog "simpledm/admins.log"#define MutesLog "simpledm/mutes.log"#define KicksLog "simpledm/kicks.log"#define BansLog "simpledm/bans.log"#define MaxLogFileSize 10485760#define PrivateMsgColor 0xFF0000AA#define AdminChatColor 0xFFFF00AA#define SystemMsgColor 0xFFFF00AA#define ErrorMsgColor 0xFF0000AA#define HelpMsgColor 0x00FF00AA#define FreezeMsgColor 0xFF0000AA#define MuteMsgColor 0xFF0000AA#define KickMsgColor 0xFF0000AA#define BanMsgColor 0xFF0000AA#define MoneysForKill 1000#define MoneysForPlaying 500#define IdleTimeToKick 3#define FloodInterval 2#define FloodLines 3#define LoggingTimeout 20#define LoggingColor 0x22222200#define AntiSpawnKillTime 5#define LegalKillDistance 75#define NoDriveBy 1#define NoTeamKill 1#define MaxMoneyIllegalIncrease 2000000//#define InDoorWeapons 1/*#define CheatWeapons 22new CheatWeapon[CheatWeapons] = {1,2,6,7,9,10,11,12,13,14,15,16,17,18,22,26,28,32,33,37,38,41};*/#define FlameCheatsToBan 3#define DeathsFromCheatToBan 3#define AdminLevelToIgnorePunishment 6FixChars(string[]) for (new i=0;i<strlen(string);i++) if (string[i] < 0) string[i] += 256;/*RuLower(string[]) { new result[MAX_STRING]; copy(result,strlower(string),strlen(string)); for (new i=0;i<strlen(result);i++) if (192 <= result[i] <= 223) result[i] += 32; return result;}*/WriteToLog(text[],file[]=GameModeLog) { new day,mon,year,hr,mn,sec; new str[MAX_STRING]; getdate(year,mon,day); gettime(hr,mn,sec); format(str,sizeof(str),"%d.%d.%d [%d:%d:%d] %s",day,mon,year,hr,mn,sec,text); if (equal(file,GameModeLog,false)) print(str); new File:f = fopen(file,io_append); #if defined MaxLogFileSize if (flength(f) > MaxLogFileSize) { fclose(f); new tmp[MAX_STRING]; format(tmp,sizeof(tmp),"%s_%d.%d.%d.log",file,day,mon,year); fcopytextfile(file,tmp); fremove(file); f = fopen(file,io_append); } #endif fwrite(f,str); fwrite(f,"\r\n"); fclose(f);}WriteEcho(text[],playerid=INVALID_PLAYER_ID,color=SystemMsgColor) { new h,m,s; new str[MAX_STRING]; gettime(h,m,s); format(str,sizeof(str),"[%d:%d:%d] %s",h,m,s,text); if (playerid != INVALID_PLAYER_ID && IsPlayerConnected(playerid)) SendClientMessage(playerid,color,str); else SendClientMessageToAll(color,str);}#define Teams 10#if defined Teams #define ModelsInTeam 9 enum TeamInfos { TeamName[20], TeamColor, TeamModels[ModelsInTeam], TeamClassStart, TeamClassEnd, TeamSpawnInterior, Float:TeamSpawnX, Float:TeamSpawnY, Float:TeamSpawnZ, Float:TeamSpawnA } new TeamInfo[Teams][TeamInfos] = { {"~g~Groove", 0x7CFC00FF, {105,106,107,195}, 0,0,3,2495.8093,-1701.4963,1014.7422,0.1684}, {"~p~Ballas", 0x800080FF, {102,103,104,226}, 0,0,15,2223.6843,-1147.2241,1025.7969,89.6632}, {"~y~Vagos", 0xFFD700FF, {108,109,110,190}, 0,0,0,2793.6311,-1537.5637,10.9219,219.4087}, {"~b~Aztecas", 0x00FFFFFF, {114,115,116,233}, 0,0,0,1779.4553,-1915.1685,13.3889,269.3371}, {"~b~Police", 0x4682B4FF, {280,281,282,283,284,285,286,287,191}, 0,0,0,1529.5922,-1677.9790,5.8906,268.7291}, {"~w~Goverment", 0x808080FF, {165,166,295,141}, 0,0,0,1249.7217,-2025.5818,59.7143,269.1162}, {"~y~Da Nang Boys", 0xF0E68CFF, {121,122,123,93}, 0,0,0,325.3652,-1798.3684,4.7008,269.4659}, {"~w~Rifa", 0xB0E0E6FF, {173,174,175,211}, 0,0,0,212.6294,-1442.5620,13.1636,222.5141}, {"~r~Triad", 0xB22222FF, {117,118,120,169}, 0,0,0,1313.5397,-865.3055,39.5781,267.5482}, {"~y~Criminals", 0xB8860BFF, {28,29,30,192}, 0,0,0,856.0395,-1520.4128,13.5547,265.0022} };#endif#define Classes 259new ClassInfo[Classes] = { 7,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,43,44,45,46,47,48,49, 50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,66,67,68,69,70,71,72,73,75,76,77,78,79,80,81,82,83,84,85,87,88,89,90,91,92, 93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,120,121,122,123,124,125, 126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,150,151,152,153,154,155,156, 157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186, 187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,209,210,211,212,213,214,215,216,217, 218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247, 248,249,250,251,252,253,254,255,280,281,282,283,284,285,286,287,290,291,292,293,294,295,296,297,298,299};new DefaultPlayerColors[MAX_PLAYERS] = { 0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xF0E68CFF,0x778899FF,0xFF1493FF,0xF4A460FF,0xEE82EEFF, 0xFFD720FF,0x8B4513FF,0x4949A0FF,0x148B8BFF,0x14FF7FFF,0x556B2FFF,0x0FD9FAFF,0x10DC29FF,0x534081FF,0x0495CDFF, 0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF, 0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF, 0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF, 0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF,0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF, 0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF, 0x42ACF5FF,0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF, 0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,0xDCDE3DFF, 0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF,0x3FE65CFF};#define Vehicles 254enum VehicleInfos { VehicleModelID, Float:VehicleSpawnX, Float:VehicleSpawnY, Float:VehicleSpawnZ, Float:VehicleSpawnA, VehicleColor1, VehicleColor2}new VehicleInfo[Vehicles][VehicleInfos] = { {492,2488.168701,-1682.798095,13.335395,271.722106,86,1}, // Greenwood (ID: 1) // Groove Street {567,2508.157470,-1672.090942,13.378959,349.533935,86,-1}, // Savanna (ID: 2) // Groove Street {566,2482.753662,-1655.063964,13.309096,90.323776,86,-1}, // Tahoma (ID: 3) // Groove Street {482,2473.407958,-1699.544311,13.519279,359.456268,86,-1}, // Burrito (ID: 4) // Groove Street {475,2443.209716,-1642.994262,13.460376,180.146942,86,-1}, // Sabre (ID: 5) // Groove Street {566,2227.748779,-1173.421264,25.726562,91.503021,5,-1}, // Tahoma (ID: 6) // Motel Jefferson {567,2228.125732,-1162.914916,25.767463,90.980796,5,-1}, // Savanna (ID: 7) // Motel Jefferson {468,2217.522460,-1157.238159,25.726562,87.325241,5,-1}, // Sanchez (ID: 8) // Motel Jefferson {579,2205.773437,-1177.078857,25.726562,268.538085,5,-1}, // Huntley (ID: 9) // Motel Jefferson {482,2217.228515,-1166.083496,25.726562,90.273147,5,-1}, // Burrito (ID: 10) // Motel Jefferson {482,2796.360839,-1575.941040,10.927155,271.827880,6,-1}, // Burrito (ID: 11) // East Beach {475,2796.361083,-1567.129394,10.927155,269.216796,6,-1}, // Sabre (ID: 12) // East Beach {402,2807.477294,-1540.213378,10.921875,180.960388,6,-1}, // Buffalo (ID: 13) // East Beach {492,2822.060058,-1562.455444,10.927155,88.180908,6,1}, // Greenwood (ID: 14) // East Beach {567,2822.019042,-1553.378662,10.921875,91.137275,6,-1}, // Savanna (ID: 15) // East Beach {603,1795.320068,-1934.007202,13.274000,269.756439,51,-1}, // Phoenix (ID: 16) // Unity Station {534,1805.043579,-1921.249389,13.264128,0.720035,51,-1}, // Remington (ID: 17) // Unity Station {567,1793.350219,-1886.121093,13.269401,89.751121,51,-1}, // Savanna (ID: 18) // Unity Station {560,1775.841430,-1914.593750,13.258572,180.302734,51,-1}, // Sultan (ID: 19) // Unity Station {482,1838.001953,-1871.373168,13.255450,359.706909,51,-1}, // Burrito (ID: 20) // Unity Station {596,1535.970581,-1666.971801,13.188262,359.291046,-1,0}, // LSPD Police Car (ID: 21) // LSPD {596,1535.822998,-1678.474365,13.189436,359.291046,-1,0}, // LSPD Police Car (ID: 22) // LSPD {487,1561.646850,-1614.772460,13.559510,91.630447,0,1}, // Maverick (ID: 23) // LSPD {523,1601.414672,-1688.026367,5.696791,90.164779,0,-1}, // HPV1000 (ID: 24) // LSPD {523,1601.492065,-1691.986816,5.696719,91.491439,0,-1}, // HPV1000 (ID: 25) // LSPD {596,1587.453979,-1710.865600,5.695763,358.165405,-1,0}, // LSPD Police Car (ID: 26) // LSPD {596,1574.501342,-1710.236572,5.695737,359.649810,-1,0}, // LSPD Police Car (ID: 27) // LSPD {490,1530.038940,-1683.801269,5.697155,268.263702,0,-1}, // FBI Rancher (ID: 28) // LSPD {490,1545.517456,-1667.839477,5.694042,88.184928,0,-1}, // FBI Rancher (ID: 29) // LSPD {407,1751.650634,-1454.969604,13.351839,269.315338,-1,-1}, // Firetruck (ID: 30) // LSFD {407,1757.273925,-1484.091308,13.347614,247.498703,-1,-1}, // Firetruck (ID: 31) // LSFD {416,2020.521728,-1414.153808,16.797670,89.666770,-1,-1}, // Ambulance (ID: 32) // Hospital {416,2033.666503,-1431.295166,16.902194,358.661865,-1,-1}, // Ambulance (ID: 33) // Hospital {409,1244.272827,-2025.900878,59.659931,180.460601,0,0}, // Stretch (ID: 34) // Verdant Bluffs {490,1257.755371,-2010.788085,59.266197,180.460601,0,-1}, // FBI Rancher (ID: 35) // Verdant Bluffs {490,1267.860351,-2010.542358,58.977474,180.460601,0,-1}, // FBI Rancher (ID: 36) // Verdant Bluffs {426,1276.659301,-2030.210449,58.771591,89.707191,0,-1}, // Premier (ID: 37) // Verdant Bluffs {482,1276.537597,-2039.880126,58.810909,90.653999,0,-1}, // Burrito (ID: 38) // Verdant Bluffs {500,314.998229,-1788.702636,4.348239,180.305267,61,-1}, // Mesa (ID: 39) // Santa Maria Beach {587,324.641326,-1789.121826,4.501376,180.305267,61,-1}, // Euros (ID: 40) // Santa Maria Beach {405,347.111938,-1809.621582,4.234993,0.546290,61,-1}, // Sentinel (ID: 41) // Santa Maria Beach {542,334.075195,-1808.767578,4.221151,0.546290,61,-1}, // Clover (ID: 42) // Santa Maria Beach {579,321.201171,-1808.881347,4.208554,0.546290,61,-1}, // Huntley (ID: 43) // Santa Maria Beach {567,204.645416,-1444.406616,12.815665,318.328063,29,-1}, // Savanna (ID: 44) // Rodeo {475,200.009826,-1440.660522,12.803405,318.328063,29,-1}, // Sabre (ID: 45) // Rodeo {560,211.957931,-1423.395996,12.980006,134.051132,29,-1}, // Sultan (ID: 46) // Rodeo {405,218.385528,-1429.711669,12.996314,134.051132,29,-1}, // Sentinel (ID: 47) // Rodeo {521,214.204193,-1439.008666,12.926919,226.178039,29,-1}, // FCR-900 (ID: 48) // Rodeo {559,1311.380981,-856.143981,39.300998,177.522262,3,-1}, // Jester (ID: 49) // Mulholland {560,1321.721557,-856.712707,39.298252,177.522262,3,-1}, // Sultan (ID: 50) // Mulholland {506,1330.086059,-881.975463,39.298839,177.522262,3,-1}, // Super GT (ID: 51) // Mulholland {562,1319.317626,-873.059509,39.299736,177.522262,3,-1}, // Elegy (ID: 52) // Mulholland {522,1309.148193,-872.496093,39.298271,177.522262,3,-1}, // NRG500 (ID: 53) // Mulholland {492,871.714355,-1535.169677,13.214927,271.655426,55,-1}, // Greenwood (ID: 54) // Marina {603,884.036315,-1523.192993,13.215357,89.182685,55,-1}, // Phoenix (ID: 55) // Marina {482,855.193786,-1528.053588,13.013707,266.415924,55,-1}, // Burrito (ID: 56) // Marina {535,857.273193,-1512.742797,13.087572,266.415924,55,-1}, // Slamvan (ID: 57) // Marina {411,864.314453,-1500.947631,13.224195,177.197021,55,-1}, // Infernus (ID: 58) // Marina {514,2747.800048,-2465.335693,13.429963,269.006835,-1,-1}, // Tanker (ID: 59) // Docks {514,2748.372070,-2443.649658,13.425960,269.006835,-1,-1}, // Tanker (ID: 60) // Docks {406,2762.364990,-2394.942871,13.412092,177.454864,-1,-1}, // Dumper (ID: 61) // Docks {406,2779.589843,-2437.101074,13.414171,91.006835,-1,-1}, // Dumper (ID: 62) // Docks {487,2795.082763,-2545.983642,13.412330,177.454864,-1,-1}, // Maverick (ID: 63) // Docks {535,2785.703613,-1994.749389,13.163056,94.267616,-1,-1}, // Slamvan (ID: 64) // Playa Del Seville {566,2685.203857,-2017.712280,13.328207,358.753265,-1,-1}, // Tahoma (ID: 65) // Playa Del Seville {534,2662.252197,-2000.307250,13.165456,88.463493,-1,-1}, // Remington (ID: 66) // Playa Del Seville {567,2652.270019,-2035.403930,13.331976,41.777493,-1,-1}, // Savanna (ID: 67) // Playa Del Seville {444,2797.901855,-1875.848999,9.649276,359.544311,-1,-1}, // Monster (ID: 68) // Stadium {444,2787.847412,-1875.416748,9.610875,359.544311,-1,-1}, // Monster (ID: 69) // Stadium {444,2777.813476,-1875.198242,9.572721,359.544311,-1,-1}, // Monster (ID: 70) // Stadium {444,2767.774414,-1875.595703,9.523494,359.544311,-1,-1}, // Monster (ID: 71) // Stadium {494,2771.998291,-1842.478271,9.545600,200.137451,-1,-1}, // Hotring (ID: 72) // Stadium {494,2762.750244,-1846.010620,9.512990,200.137451,-1,-1}, // Hotring (ID: 73) // Stadium {494,2753.314941,-1849.223632,9.472146,199.192810,-1,-1}, // Hotring (ID: 74) // Stadium {494,2741.720947,-1851.832397,9.421898,179.380416,-1,-1}, // Hotring (ID: 75) // Stadium {487,1544.362426,-1353.175292,329.474548,90.522239,-1,-1}, // Maverick (ID: 76) // Highest Building {542,1013.543395,-1020.710021,31.762334,178.791854,-1,-1}, // Clover (ID: 77) // Temple {541,1096.994140,-1026.650512,31.849119,178.864196,-1,-1}, // Bullet (ID: 78) // Temple {429,1040.908813,-1052.341064,31.362176,0.864196,-1,-1}, // Banshee (ID: 79) // Temple {415,1028.227661,-1052.463989,31.307344,0.864196,-1,-1}, // Cheetah (ID: 80) // Temple {451,1016.122314,-1052.256835,31.022838,0.864196,-1,-1}, // Turismo (ID: 81) // Temple {480,1003.994445,-1052.958862,30.744747,0.864196,-1,-1}, // Comet (ID: 82) // Temple {506,989.683654,-919.843505,41.839294,181.591979,-1,-1}, // Super GT (ID: 83) // Temple {477,1000.786499,-1085.005737,23.489233,178.768478,-1,-1}, // ZR350 (ID: 84) // Temple {446,731.653076,-1497.972045,4.631143,181.861129,-1,-1}, // Squalo (ID: 85) // Market {487,1989.280395,-2249.075439,13.723354,90.048965,-1,-1}, // Maverick (ID: 86) // Airport {487,1989.216430,-2315.605712,13.724207,90.048965,-1,-1}, // Maverick (ID: 87) // Airport {487,1989.617675,-2382.604003,13.722428,90.048965,-1,-1}, // Maverick (ID: 88) // Airport {476,1823.287597,-2620.903564,13.546875,6.532232,-1,-1}, // Rustler (ID: 89) // Airport {476,1753.408813,-2621.539306,13.546875,2.522825,-1,-1}, // Rustler (ID: 90) // Airport {476,1682.046386,-2621.489501,13.546875,1.309966,-1,-1}, // Rustler (ID: 91) // Airport {476,1616.716186,-2623.020751,13.546875,2.691160,-1,-1}, // Rustler (ID: 92) // Airport {513,1565.795776,-2629.644531,13.546875,357.991119,-1,-1}, // Stuntplane (ID: 93) // Airport {513,1544.431884,-2628.521240,13.546875,357.991119,-1,-1}, // Stuntplane (ID: 94) // Airport {513,1526.430541,-2627.558349,13.546875,357.991119,-1,-1}, // Stuntplane (ID: 95) // Airport {513,1507.414672,-2626.932373,13.546875,357.991119,-1,-1}, // Stuntplane (ID: 96) // Airport {437,1665.962768,-2313.818847,13.329627,90.613891,-1,-1}, // Coach (ID: 97) // Airport {437,1699.231079,-2313.866455,13.329858,90.613891,-1,-1}, // Coach (ID: 98) // Airport {420,1560.797851,-2318.739501,13.416219,90.050659,-1,-1}, // Taxi (ID: 99) // Airport {500,1542.901000,-2361.018066,13.425674,359.819000,-1,-1}, // Mesa (ID: 100) // Airport {559,1454.505981,-2348.327636,13.414303,359.819000,-1,-1}, // Jester (ID: 101) // Airport {534,1404.678100,-2331.296142,13.419953,359.819000,-1,-1}, // Remington (ID: 102) // Airport {463,1365.557006,-2326.746093,13.417978,90.989105,-1,-1}, // Freeway (ID: 103) // Airport {542,1364.885009,-2246.154296,13.417449,269.052032,-1,-1}, // Clover (ID: 104) // Airport {475,1388.229125,-2225.669921,13.417157,0.328545,-1,-1}, // Sabre (ID: 105) // Airport {470,1408.144165,-2208.654785,13.409720,179.281478,-1,-1}, // Patriot (ID: 106) // Airport {451,1451.273437,-2224.511230,13.415595,179.281478,-1,-1}, // Turismo (ID: 107) // Airport {522,1512.114746,-2211.639404,13.422736,359.647491,-1,-1}, // NRG500 (ID: 108) // Airport {426,1560.190063,-2254.181152,13.416652,271.015991,-1,-1}, // Premier (ID: 109) // Airport {415,1681.843139,-2259.461181,13.300088,269.898681,-1,-1}, // Cheetah (ID: 110) // Airport {562,1951.140136,-2205.027099,13.417691,269.319335,-1,-1}, // Elegy (ID: 111) // Airport {468,1969.294189,-2184.720703,13.414156,359.800323,-1,-1}, // Sanchez (ID: 112) // Airport {510,1886.371582,-1360.628173,19.140625,90.731697,-1,-1}, // Mountain Bike (ID: 113) // Park {510,1886.252197,-1364.958374,19.140625,88.120559,-1,-1}, // Mountain Bike (ID: 114) // Park {510,1869.581054,-1364.902465,19.140625,268.996643,-1,-1}, // Mountain Bike (ID: 115) // Park {510,1869.607055,-1360.417968,19.140625,268.474365,-1,-1}, // Mountain Bike (ID: 116) // Park {510,1952.080322,-1380.445678,24.148437,359.864044,-1,-1}, // Mountain Bike (ID: 117) // Park {510,1956.610229,-1380.303588,24.148437,359.341827,-1,-1}, // Mountain Bike (ID: 118) // Park {510,1956.630249,-1363.743652,24.148437,178.987945,-1,-1}, // Mountain Bike (ID: 119) // Park {510,1952.154418,-1363.976928,24.148437,177.943496,-1,-1}, // Mountain Bike (ID: 120) // Park {510,1921.441406,-1418.123291,16.359375,93.157211,-1,-1}, // Mountain Bike (ID: 121) // Park {510,1913.456542,-1434.901855,16.366991,270.714477,-1,-1}, // Mountain Bike (ID: 122) // Park {411,1135.481201,-1466.869873,15.545242,40.920494,-1,-1}, // Infernus (ID: 123) // Verona Mall {415,1135.481201,-1461.869873,15.545242,40.920494,-1,-1}, // Cheetah (ID: 124) // Verona Mall {429,1135.481201,-1456.869873,15.545242,40.920494,-1,-1}, // Banshee (ID: 125) // Verona Mall {451,1135.481201,-1451.869873,15.545242,40.920494,-1,-1}, // Turismo (ID: 126) // Verona Mall {506,1135.481201,-1446.869873,15.545242,40.920494,-1,-1}, // Super GT (ID: 127) // Verona Mall {541,1135.481201,-1441.869873,15.545242,40.920494,-1,-1}, // Bullet (ID: 128) // Verona Mall {411,1122.481201,-1466.869873,15.545242,310.920494,-1,-1}, // Infernus (ID: 129) // Verona Mall {415,1122.481201,-1461.869873,15.545242,310.920494,-1,-1}, // Cheetah (ID: 130) // Verona Mall {429,1122.481201,-1456.869873,15.545242,310.920494,-1,-1}, // Banshee (ID: 131) // Verona Mall {451,1122.481201,-1451.869873,15.545242,310.920494,-1,-1}, // Turismo (ID: 132) // Verona Mall {506,1122.481201,-1446.869873,15.545242,310.920494,-1,-1}, // Super GT (ID: 133) // Verona Mall {541,1122.481201,-1441.869873,15.545242,310.920494,-1,-1}, // Bullet (ID: 134) // Verona Mall {409,668.889770,-1294.412719,13.242489,0.779876,-1,-1}, // Stretch (ID: 135) // Golf Club {409,1825.435424,-1682.812744,13.162638,0.978817,-1,-1}, // Stretch (ID: 136) // Alhambra Club {542,2416.276855,-1718.419677,13.529325,179.012817,-1,-1}, // Clover (ID: 137) // Groove Street {579,2497.724853,-1750.778442,13.233366,19.892271,-1,-1}, // Huntley (ID: 138) // Groove Street {475,2659.429687,-1425.874877,30.253877,0.312046,-1,-1}, // Sabre (ID: 139) // Eastside {402,2603.372314,-1250.774536,47.516540,90.312046,-1,-1}, // Buffalo (ID: 140) // Eastside {506,2430.125244,-1242.370727,24.037115,180.653350,-1,-1}, // Super GT (ID: 141) // Pig Pen {405,2270.338623,-1433.710205,23.612556,354.944854,-1,-1}, // Sentinel (ID: 142) // Eastside {534,2422.818115,-1106.193359,41.077373,4.864102,-1,-1}, // Remington (ID: 143) // Eastside {463,2751.363769,-1106.430053,69.360404,358.515625,-1,-1}, // Freeway (ID: 144) // Eastside {500,2743.434082,-1073.248291,69.324546,42.831970,-1,-1}, // Mesa (ID: 145) // Eastside {470,2816.528320,-1184.118408,25.115844,269.205902,-1,-1}, // Patriot (ID: 146) // Eastside {521,2390.796386,-1494.082519,23.537887,270.671630,-1,-1}, // FCR-900 (ID: 147) // Eastside Cluckin' Bell {420,2301.064697,-1638.187255,14.355358,204.079620,-1,-1}, // Taxi (ID: 148) // Groove Street Bar {429,2386.544921,-1927.515991,13.087308,1.484918,-1,-1}, // Banshee (ID: 149) // Ganton Cluckin' Bell {492,2502.870117,-2005.957397,12.985747,88.768928,-1,-1}, // Greenwood (ID: 150) // Willowfield {514,2437.250732,-2107.854980,13.254782,356.197235,-1,-1}, // Tanker (ID: 151) // Willowfield {468,2265.018798,-2122.640380,13.251161,42.138710,-1,-1}, // Sanchez (ID: 152) // Docks {603,1931.903564,-2151.721923,13.254512,179.011871,-1,-1}, // Phoenix (ID: 153) // Airport {415,1883.562866,-2022.473510,13.094923,179.906265,-1,-1}, // Cheetah (ID: 154) // El Corona {470,1922.774658,-1792.124389,13.087321,271.566925,-1,-1}, // Patriot (ID: 155) // El Corona {426,2095.775390,-1797.090087,13.165884,89.055381,-1,-1}, // Premier (ID: 156) // Idlewood {522,2159.146484,-1800.948608,13.153849,270.173706,-1,-1}, // NRG500 (ID: 157) // Idlewood {477,2092.460449,-1576.368774,13.005808,178.178710,-1,-1}, // ZR350 (ID: 158) // Idlewood {566,1825.292602,-1655.640380,13.163235,358.728363,-1,-1}, // Tahoma (ID: 159) // Alhambra Club {522,1825.332519,-1709.678344,13.163582,358.728363,-1,-1}, // NRG500 (ID: 160) // Alhambra Club {490,1125.806030,-1744.515014,13.178814,270.739562,0,-1}, // FBI Rancher (ID: 161) // Conference Center {405,1144.784057,-1744.501586,13.179642,270.739562,0,-1}, // Sentinel (ID: 162) // Conference Center {411,1080.781005,-1763.776489,13.152679,269.337951,-1,-1}, // Infernus (ID: 163) // Conference Center {506,1062.199218,-1743.167846,13.246815,90.171699,-1,-1}, // Super GT (ID: 164) // Conference Center {559,888.122985,-1669.256958,13.326845,179.932769,-1,-1}, // Jester (ID: 165) // Verona Beach {480,841.968078,-1802.136230,13.074001,0.501242,-1,-1}, // Comet (ID: 166) // Verona Beach Peer {579,639.531122,-1707.006704,14.369411,35302.261731,-1,-1}, // Huntley (ID: 167) // Verona Beach {522,447.087585,-1733.396362,9.526784,309.447814,-1,-1}, // NRG500 (ID: 168) // Verona Beach {541,107.669761,-1555.394042,7.145474,250.447814,-1,-1}, // Bullet (ID: 169) // Rodeo {429,336.078460,-1296.101684,54.005210,25.510961,-1,-1}, // Banshee (ID: 170) // Rodeo {500,404.925323,-1154.457763,77.213508,147.510961,-1,-1}, // Mesa (ID: 171) // Richman {562,564.611083,-1065.602050,73.474952,31.700830,-1,-1}, // Elegy (ID: 172) // Richman {405,1275.730224,-1558.857421,13.342744,90.362113,-1,-1}, // Sentinel (ID: 173) // Market {420,1304.286865,-1137.348999,23.438859,92.285606,-1,-1}, // Taxi (ID: 174) // Market {560,974.311645,-1304.160278,13.164890,179.460983,-1,-1}, // Sultan (ID: 175) // Market {579,746.687683,-1344.158081,13.300282,270.392517,-1,-1}, // Huntley (ID: 176) // Vinewood {480,834.464599,-925.766235,55.036350,242.148605,-1,-1}, // Comet (ID: 177) // Vinewood {587,724.647583,-994.253356,52.410949,59.031322,-1,-1}, // Euros (ID: 178) // Vinewood {470,792.086608,-849.858276,60.419754,171.635818,-1,-1}, // Patriot (ID: 179) // Vinewood {451,891.814514,-714.456726,108.325859,243.634704,-1,-1}, // Turismo (ID: 180) // Vinewood {415,1105.364379,-642.652221,112.454177,43.034236,-1,-1}, // Cheetah (ID: 181) // Vinewood {477,1358.613159,-615.489318,108.912948,76.262275,-1,-1}, // ZR350 (ID: 182) // Vinewood {429,1248.067993,-781.312622,90.462387,359.262275,-1,-1}, // Banshee (ID: 183) // Maddog's House {562,1251.299804,-812.692932,83.927108,141.262275,-1,-1}, // Elegy (ID: 184) // Maddog's House {487,1291.206298,-788.211303,96.460937,179.734359,-1,-1}, // Maverick (ID: 185) // Maddog's House {411,1524.090454,-882.923156,60.904850,49.207355,-1,-1}, // Infernus (ID: 186) // Vinewood {521,1685.356079,-1035.566650,23.690450,180.704605,-1,-1}, // FCR-900 (ID: 187) // Mulholland Intersection {587,1721.432983,-1007.263793,23.696136,352.521728,-1,-1}, // Euros (ID: 188) // Mulholland Intersection {541,1757.339355,-1037.625732,23.743011,179.695190,-1,-1}, // Bullet (ID: 189) // Mulholland Intersection {482,1788.991821,-1060.637084,23.744018,358.440948,-1,-1}, // Burrito (ID: 190) // Mulholland Intersection {468,1739.945434,-1084.709228,23.741813,358.440948,-1,-1}, // Sanchez (ID: 191) // Mulholland Intersection {470,1695.894042,-1069.324340,23.689058,358.440948,-1,-1}, // Patriot (ID: 192) // Mulholland Intersection {567,1658.602539,-1106.834716,23.690155,88.377090,-1,-1}, // Savanna (ID: 193) // Mulholland Intersection {429,1617.230590,-1128.288452,23.686874,88.377090,-1,-1}, // Banshee (ID: 194) // Mulholland Intersection {402,1581.666015,-1043.707275,23.688972,127.121681,-1,-1}, // Buffalo (ID: 195) // Mulholland Intersection {534,1910.453857,-1120.688232,25.493597,180.253845,-1,-1}, // Remington (ID: 196) // Park {426,1965.313110,-1210.967895,25.215663,185.093856,-1,-1}, // Premier (ID: 197) // Park {559,2084.050292,-1342.558471,23.768108,90.043258,-1,-1}, // Jester (ID: 198) // Mulholland {522,1585.928222,-1011.110290,23.687934,6.290105,-1,-1}, // NRG500 (ID: 199) // Mulholland Intersection {603,1636.306152,-1047.303100,23.687259,179.662826,-1,-1}, // Phoenix (ID: 200) // Mulholland Intersection {475,1431.105503,-1028.763811,23.547245,89.120421,-1,-1}, // Sabre (ID: 201) // Mulholland {492,1215.208129,-875.502014,42.690128,189.749923,-1,-1}, // Greenwood (ID: 202) // Vinewood {514,1147.334960,-1238.864746,15.860088,180.982284,-1,-1}, // Tanker (ID: 203) // Market {451,1282.760864,-1355.385253,13.253620,0.298043,-1,-1}, // Turismo (ID: 204) // Market {559,1560.973754,-1308.880615,16.777351,270.087646,-1,-1}, // Jester (ID: 205) // Highest Building {402,1533.991333,-1308.772094,15.604850,270.087646,-1,-1}, // Buffalo (ID: 206) // Highest Building {542,1730.300903,-1277.318481,13.432171,139.551971,-1,-1}, // Clover (ID: 207) // Near Park {562,2102.487548,-982.701477,53.715827,74.013938,-1,-1}, // Elegy (ID: 208) // Eastside {405,769.467895,-1128.637329,23.845144,218.737091,-1,-1}, // Sentinel (ID: 209) // Richman {521,872.521728,-1339.831665,13.422805,359.602630,-1,-1}, // FCR-900 (ID: 210) // Market {587,746.151428,-1647.853637,5.130365,179.769378,-1,-1}, // Euros (ID: 211) // Market {477,236.171966,-1566.026611,32.787525,163.647262,-1,-1}, // ZR350 (ID: 212) // Rodeo {426,398.119567,-1577.055664,27.922294,91.100753,-1,-1}, // Premier (ID: 213) // Rodeo {463,546.459821,-1477.241801,14.222844,3.921021,-1,-1}, // Freeway (ID: 214) // Rodeo {409,487.772308,-1515.493041,19.883850,5.185674,-1,-1}, // Stretch (ID: 215) // Rodeo {411,482.113616,-1489.037719,19.645090,184.543838,-1,-1}, // Infernus (ID: 216) // Rodeo {522,511.460700,-1597.633950,15.268744,270.319421,-1,-1}, // NRG500 (ID: 217) // Rodeo {415,609.892333,-1511.540771,14.555418,269.814208,-1,-1}, // Cheetah (ID: 218) // Rodeo {402,1269.080688,-1796.741088,13.186159,179.752624,-1,-1}, // Buffalo (ID: 219) // Conference Center {535,1034.401000,-2284.181396,12.799115,204.966705,-1,-1}, // Slamvan (ID: 220) // Near Airport {470,377.743591,-2034.954956,7.367589,43.895828,-1,-1}, // Patriot (ID: 221) // Santa Maria Beach {487,395.903717,-1858.933471,13.601562,0.681233,-1,-1}, // Maverick (ID: 222) // Santa Maria Beach {560,2337.197509,-1759.043457,13.331455,358.909698,-1,-1}, // Sultan (ID: 223) // Groove Street {480,2232.150146,-1937.669311,13.322902,88.823371,-1,-1}, // Comet (ID: 224) // Willowfield {587,2092.116455,-2094.257568,13.327116,177.526306,-1,-1}, // Euros (ID: 225) // Willowfield {603,1747.708129,-2099.114990,13.328202,179.969940,-1,-1}, // Phoenix (ID: 226) // Near Airport {541,1636.577148,-1902.174194,13.334104,300.834533,-1,-1}, // Bullet (ID: 227) // Verdant Bluffs {566,1373.253051,-1889.279663,13.279490,359.301208,-1,-1}, // Tahoma (ID: 228) // Verdant Bluffs {477,1025.350097,-1550.914672,13.332073,180.034439,-1,-1}, // ZR350 (ID: 229) // Market {463,441.789764,-1295.604858,14.972719,203.356765,-1,-1}, // Freeway (ID: 230) // Richman {480,399.930694,-1432.127807,32.826747,217.363891,-1,-1}, // Comet (ID: 231) // Rodeo {560,666.261657,-1418.682373,13.946446,357.971557,-1,-1}, // Sultan (ID: 232) // Market {420,996.153625,-1438.099121,13.328618,357.971557,-1,-1}, // Taxi (ID: 233) // Market {603,1459.093627,-1502.755615,13.331052,38.762462,-1,-1}, // Phoenix (ID: 234) // Market {480,1514.192749,-1462.814819,9.281811,181.656448,-1,-1}, // Comet (ID: 235) // Downtown {468,1523.681762,-1464.850219,9.283031,181.656448,-1,-1}, // Sanchez (ID: 236) // Downtown {521,1648.613159,-1343.982177,17.218912,181.656448,-1,-1}, // FCR-900 (ID: 237) // Downtown {477,2133.300537,-1132.668334,25.456342,44.821918,-1,-1}, // ZR350 (ID: 238) // Jefferson {463,2120.306640,-1136.523803,25.012439,306.459991,-1,-1}, // Freeway (ID: 239) // Jefferson {468,2148.018066,-1152.891723,23.724176,269.350891,-1,-1}, // Sanchez (ID: 240) // Jefferson {541,2161.433105,-1182.537719,23.601108,269.350891,-1,-1}, // Bullet (ID: 241) // Jefferson {420,1363.211425,-1643.393554,13.164815,269.703430,-1,-1}, // Taxi (ID: 242) // Commerce {592,2104.534221,-2450.372304,14.741810,127.896124,1,1}, // Andromada (ID: 243) // Airport {521,2470.294677,-1669.880371,13.096332,191.679702,86,-1}, // FCR-900 (ID: 244) // Groove Street {587,2206.342529,-1160.932495,25.512912,270.352844,5,-1}, // Euros (ID: 245) // Motel Jefferson {463,2796.455078,-1553.996337,10.704411,268.811889,6,-1}, // Freeway (ID: 246) // East Beach {468,1816.051269,-1902.948974,13.314620,178.052764,51,-1}, // Sanchez (ID: 247) // Unity Station {522,1250.838623,-2044.338134,59.429252,268.036926,0,-1}, // NRG500 (ID: 248) // Verdant Bluffs {487,1193.664428,-2053.663818,69.007812,275.950592,0,0}, // Maverick (ID: 249) // Verdant Bluffs {560,337.544464,-1788.788085,4.488074,178.447174,61,-1}, // Sultan (ID: 250) // Santa Maria Beach {566,240.217666,-1454.409057,13.280391,312.177062,29,-1}, // Tahoma (ID: 251) // Rodeo {480,1331.055786,-857.570800,39.454654,178.864349,3,-1}, // Comet (ID: 252) // Mulholland {468,872.113830,-1514.140869,13.259681,180.265335,55,-1}, // Sanchez (ID: 253) // Marina {470,893.968200,-1519.364746,12.898312,179.077041,55,-1} // Patriot (ID: 254) // Marina};#define Pickups 3enum PickupInfos { PickupModelID, PickupType, Float:PickupSpawnX, Float:PickupSpawnY, Float:PickupSpawnZ}new PickupInfo[Pickups][PickupInfos] = { {371,2,-2347.5498,-1607.7061,483.6420}, {371,2,1969.2869,-2187.5896,13.5469}, {371,2,1554.5847,-1365.5371,329.4535}};new WeaponNames[55][20] = { "Hands","Brassknuckle","Golf Club","Nitestick","Knife","Baseball Bat","Shovel","Pool Cue", "Katana","Chainsaw","Purple Dildo","White Dildo","Long Vibrator","Vibrator","Flowers","Cane","Grenade", "Teargas","Molotov","","","","Pistol","Silenced Pistol","Desert Eagle","Shotgun", "Sawnoff Shotgun","Spas 12","Micro Uzi","MP5","AK-47","M4","Tec-9","Rifle","Sniper Rifle", "RPG-7","Heatseeker","Flamethrower","Minigun","Satchel","Detonator","Spray Can", "Fire Extinguisher","Camera","","","Parachute","","","Vehicle","","","","Drown","Collision"};new SpawnWeapons[6] = {24,70,25,50,30,300};#define Weapons 11enum WeaponInfos { WeaponID, WeaponGroup, WeaponCost, bool:IsWeaponMelee}new WeaponInfo[Weapons][WeaponInfos] = { {3,0,1500,true}, {4,0,2000,true}, {5,0,1000,true}, {23,1,20,false}, {24,1,80,false}, {25,2,40,false}, {27,2,100,false}, {29,3,30,false}, {30,4,30,false}, {31,4,40,false}, {46,5,1000,true}};#define WeaponGroups 6enum PlayerInfos { Name[MAX_PLAYER_NAME], #if defined Teams Team, #endif Admin, bool:AdminColored, bool:HearAll, Query, bool:Ignores[MAX_PLAYERS], Moneys, WeaponIDs[WeaponGroups], WeaponAmmos[WeaponGroups], CheatKills, CheatDeaths, IdleTime, Float:LastPosX, Float:LastPosY, Float:LastPosZ, Messages, Mute, MuteTimer, #if defined AntiSpawnKillTime bool:CanBeKilled, AntiSpawnKillTimer, #endif bool:SafeDeath, bool:Logged, Password, WrongPasswords, Model, bool:ModelSet, Kills, MaxKillsForLife, CurrentKillsForLife, Deaths, Suicides}new PlayerInfo[MAX_PLAYERS][PlayerInfos];EncodeName(playername[]) { new str[MAX_STRING]; set(str,strlower(playername)); #if defined AllowBadSymbolsInNicks str = strreplace("(","%L%",str); str = strreplace(")","%R%",str); str = strreplace("%L%","(40)",str); str = strreplace("%R%","(41)",str); str = strreplace("[","(91)",str); str = strreplace("]","(93)",str); str = strreplace("{","(123)",str); str = strreplace("}","(124)",str); str = strreplace("/","(47)",str); str = strreplace("\\","(92)",str); str = strreplace("-","(45)",str); str = strreplace("_","(95)",str); str = strreplace("!","(33)",str); str = strreplace("?","(63)",str); str = strreplace(",","(44)",str); str = strreplace(".","(46)",str); str = strreplace(";","(59)",str); str = strreplace(":","(58)",str); str = strreplace("'","(39)",str); str = strreplace("\"","(34)",str); str = strreplace("`","(96)",str); str = strreplace("~","(126)",str); str = strreplace("<","(60)",str); str = strreplace(">","(62)",str); str = strreplace("@","(64)",str); str = strreplace("#","(35)",str); str = strreplace("$","(36)",str); str = strreplace("%","(37)",str); str = strreplace("^","(94)",str); str = strreplace("&","(38)",str); str = strreplace("*","(42)",str); str = strreplace("=","(61)",str); str = strreplace("+","(43)",str); #endif return str;}PlayerFile(playername[]) { new str[MAX_STRING]; format(str,sizeof(str),"%s%s%s",PlayersDir,EncodeName(playername),PlayersExt); return str;}ClearPlayer(playerid) { PlayerInfo[playerid][Name][0] = 0; #if defined Teams PlayerInfo[playerid][Team] = -1; #endif PlayerInfo[playerid][Admin] = 0; PlayerInfo[playerid][AdminColored] = false; PlayerInfo[playerid][HearAll] = false; PlayerInfo[playerid][Query] = INVALID_PLAYER_ID; for (new i=0;i<MAX_PLAYERS;i++) PlayerInfo[playerid][Ignores][i] = false; PlayerInfo[playerid][Moneys] = 0; for (new i=0;i<WeaponGroups;i++) { PlayerInfo[playerid][WeaponIDs][i] = 0; PlayerInfo[playerid][WeaponAmmos][i] = 0; } PlayerInfo[playerid][IdleTime] = 0; PlayerInfo[playerid][CheatKills] = 0; PlayerInfo[playerid][CheatDeaths] = 0; PlayerInfo[playerid][IdleTime] = 0; PlayerInfo[playerid][LastPosX] = 0; PlayerInfo[playerid][LastPosY] = 0; PlayerInfo[playerid][LastPosZ] = 0; PlayerInfo[playerid][Messages] = 0; PlayerInfo[playerid][Mute] = 0; KillTimer(PlayerInfo[playerid][MuteTimer]); #if defined AntiSpawnKillTime PlayerInfo[playerid][CanBeKilled] = false; KillTimer(PlayerInfo[playerid][AntiSpawnKillTimer]); #endif PlayerInfo[playerid][SafeDeath] = false; PlayerInfo[playerid][Logged] = false; PlayerInfo[playerid][Password] = 0; PlayerInfo[playerid][WrongPasswords] = 0; PlayerInfo[playerid][Model] = 0; PlayerInfo[playerid][ModelSet] = false; PlayerInfo[playerid][Kills] = 0; PlayerInfo[playerid][MaxKillsForLife] = 0; PlayerInfo[playerid][CurrentKillsForLife] = 0; PlayerInfo[playerid][Deaths] = 0; PlayerInfo[playerid][Suicides] = 0;}LoadPlayer(playerid) { if (!IsPlayerConnected(playerid)) return; ClearPlayer(playerid); GetPlayerName(playerid,PlayerInfo[playerid][Name],MAX_PLAYER_NAME); new filename[MAX_STRING]; filename = PlayerFile(PlayerInfo[playerid][Name]); if (!dini_Exists(filename)) return; PlayerInfo[playerid][Mute] = dini_Int(filename,"Mute"); if (PlayerInfo[playerid][Mute]) PlayerInfo[playerid][MuteTimer] = SetTimerEx("UnMutePlayerT",PlayerInfo[playerid][Mute]*60000,0,"i",playerid); PlayerInfo[playerid][Logged] = false; PlayerInfo[playerid][Password] = dini_Int(filename,"Password"); PlayerInfo[playerid][Model] = dini_Int(filename,"Model"); GiveMoney(playerid,dini_Int(filename,"Moneys")); PlayerInfo[playerid][Kills] = dini_Int(filename,"Kills"); PlayerInfo[playerid][MaxKillsForLife] = dini_Int(filename,"MaxKillsForLife"); PlayerInfo[playerid][Deaths] = dini_Int(filename,"Deaths"); PlayerInfo[playerid][Suicides] = dini_Int(filename,"Suicides"); SetPlayerScore(playerid,PlayerInfo[playerid][Kills]-PlayerInfo[playerid][Suicides]);}SavePlayer(playerid) { if (!IsPlayerConnected(playerid) || !PlayerInfo[playerid][Logged]) return; new filename[MAX_STRING]; filename = PlayerFile(PlayerInfo[playerid][Name]); if (!dini_Exists(filename)) return; dini_IntSet(filename,"Mute",PlayerInfo[playerid][Mute]); dini_IntSet(filename,"Password",PlayerInfo[playerid][Password]); dini_IntSet(filename,"Model",PlayerInfo[playerid][Model]); dini_IntSet(filename,"Moneys",PlayerInfo[playerid][Moneys]); dini_IntSet(filename,"Kills",PlayerInfo[playerid][Kills]); dini_IntSet(filename,"MaxKillsForLife",PlayerInfo[playerid][MaxKillsForLife]); dini_IntSet(filename,"Deaths",PlayerInfo[playerid][Deaths]); dini_IntSet(filename,"Suicides",PlayerInfo[playerid][Suicides]);}GetPlayerID(playername[]) { for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && equal(playername,PlayerInfo[i][Name],true)) return i; return INVALID_PLAYER_ID;}IsPlayerInArea(playerid,Float:x_min,Float:x_max,Float:y_min,Float:y_max,Float:z_min=-10000.0,Float:z_max=10000.0) { if (!IsPlayerConnected(playerid)) return false; new Float:x,Float:y,Float:z; GetPlayerPos(playerid,x,y,z); if (x_min <= x <= x_max && y_min <= y <= y_max && z_min <= z <= z_max) return true; return false;}#if defined LoggingTimeout public LoggingTimeoutT(playerid) if (IsPlayerConnected(playerid) && !PlayerInfo[playerid][Logged]) KickPlayer(playerid,"You didn't identified yourself");#endif#if defined AntiSpawnKillTime public AntiSpawnKill(playerid) PlayerInfo[playerid][CanBeKilled] = true;#endif/*MutePlayer(playerid,duration,reason[],muter[]="the server") { if (!IsPlayerConnected(playerid) || IsPlayerAdmin(playerid) || PlayerInfo[playerid][Admin] >= AdminLevelToIgnorePunishment) return; new str[MAX_STRING]; format(str,sizeof(str),"%s (id: %d) muted by %s for %d minutes: %s",PlayerInfo[playerid][Name],playerid,muter,duration,reason); WriteToLog(str); #if defined MutesLog WriteToLog(str,MutesLog); #endif WriteEcho(str,INVALID_PLAYER_ID,MuteMsgColor); PlayerInfo[playerid][Mute] = duration; format(str,sizeof(str),"UnMutePlayer_%d",playerid); PlayerInfo[playerid][MuteTimer] = SetTimer(str,PlayerInfo[playerid][Mute]*60000,0);}*/UnMutePlayer(playerid,unmuter[]="the server") { if (!IsPlayerConnected(playerid) || !PlayerInfo[playerid][Mute]) return; new str[MAX_STRING]; format(str,sizeof(str),"%s (id: %d) unmuted by %s",PlayerInfo[playerid][Name],playerid,unmuter); WriteToLog(str); #if defined MutesLog WriteToLog(str,MutesLog); #endif WriteEcho(str,INVALID_PLAYER_ID,MuteMsgColor); PlayerInfo[playerid][Mute] = 0; KillTimer(PlayerInfo[playerid][MuteTimer]);}public UnMutePlayerT(playerid) UnMutePlayer(playerid);KickPlayer(playerid,reason[],kicker[]="the server") { if (!IsPlayerConnected(playerid) || IsPlayerAdmin(playerid) || PlayerInfo[playerid][Admin] >= AdminLevelToIgnorePunishment) return; new str[MAX_STRING]; format(str,sizeof(str),"%s (id: %d) kicked by %s: %s",PlayerInfo[playerid][Name],playerid,kicker,reason); WriteToLog(str); #if defined KicksLog WriteToLog(str,KicksLog); #endif WriteEcho(str,INVALID_PLAYER_ID,KickMsgColor); Kick(playerid);}BanPlayer(playerid,reason[],banner[]="the server") { if (!IsPlayerConnected(playerid) || IsPlayerAdmin(playerid) || PlayerInfo[playerid][Admin] >= AdminLevelToIgnorePunishment) return; new str[MAX_STRING]; format(str,sizeof(str),"%s (id: %d) banned by %s: %s",PlayerInfo[playerid][Name],playerid,banner,reason); WriteToLog(str); #if defined BansLog WriteToLog(str,BansLog); #endif WriteEcho(str,INVALID_PLAYER_ID,BanMsgColor); Ban(playerid);}GiveMoney(playerid,amount) { PlayerInfo[playerid][Moneys] += amount; GivePlayerMoney(playerid,amount);}#if defined TimeCycle new WorldTime = 12; public WorldTimeUpdate() { WorldTime++; WorldTime %= 24; SetWorldTime(WorldTime); }#endifpublic SaveAllPlayers() { for (new i=0;i<MAX_PLAYERS;i++) SavePlayer(i); WriteToLog("Global save done");}#define RestrictedAreas 4#if defined RestrictedAreas new Float:RestrictedAreaInfo[RestrictedAreas][6] = { {284.0852,298.1549,-112.7213,-102.9336,1000.0,1010.0}, {284.2424,299.8185,-41.4566,-31.2172,1000.0,1010.0}, {284.6116,303.0293,-86.4009,-56.8201,1000.0,1010.0}, {306.3991,319.0888,-169.8648,-158.7572,999.0,1009.0} }; public AreasCheck() { for (new i=0;i<MAX_PLAYERS;i++) { if (IsPlayerConnected(i) && GetPlayerState(i) == PLAYER_STATE_ONFOOT && !IsPlayerAdmin(i) && PlayerInfo[i][Admin] < AdminLevelToIgnorePunishment) { for (new j=0;j<RestrictedAreas;j++) { if (IsPlayerInArea(i,RestrictedAreaInfo[j][0],RestrictedAreaInfo[j][1],RestrictedAreaInfo[j][2],RestrictedAreaInfo[j][3],RestrictedAreaInfo[j][4],RestrictedAreaInfo[j][5])) { PlayerInfo[i][SafeDeath] = true; SetPlayerHealth(i,0); WriteEcho("Do not go there",i,ErrorMsgColor); } } } } }#endif#if defined IdleTimeToKick public IdleCheck() { new str[MAX_STRING],Float:x,Float:y,Float:z; for (new i=0;i<MAX_PLAYERS;i++) { if (IsPlayerConnected(i)) { GetPlayerPos(i,x,y,z); if (x == PlayerInfo[i][LastPosX] && y == PlayerInfo[i][LastPosY] && z == PlayerInfo[i][LastPosZ] && GetPlayerState(i) != PLAYER_STATE_NONE && GetPlayerState(i) != PLAYER_STATE_WASTED) { PlayerInfo[i][IdleTime]++; if (IdleTimeToKick-1 == PlayerInfo[i][IdleTime]) { format(str,sizeof(str),"You are standing here already %d minutes! Please move to another area",PlayerInfo[i][IdleTime]); WriteEcho(str,i,ErrorMsgColor); } if (IdleTimeToKick <= PlayerInfo[i][IdleTime]) KickPlayer(i,"Staying on one place for too long"); } else { PlayerInfo[i][IdleTime] = 0; PlayerInfo[i][LastPosX] = x; PlayerInfo[i][LastPosY] = y; PlayerInfo[i][LastPosZ] = z; } } } }#endif#if defined FloodInterval && defined FloodLines public FloodCheck() for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i)) PlayerInfo[i][Messages] = 0;#endifpublic MoneyCheck() { for (new i=0;i<MAX_PLAYERS;i++) { if (IsPlayerConnected(i)) { if (GetPlayerMoney(i) > PlayerInfo[i][Moneys]) GivePlayerMoney(i,-GetPlayerMoney(i)+PlayerInfo[i][Moneys]); else if (GetPlayerMoney(i) < PlayerInfo[i][Moneys]) PlayerInfo[i][Moneys] = GetPlayerMoney(i); #if defined MaxMoneyIllegalIncrease if (GetPlayerMoney(i)-PlayerInfo[i][Moneys] > MaxMoneyIllegalIncrease) BanPlayer(i,"Cheating is bad: money cheat"); #endif } }}public MoneyForPlay() for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i)) GiveMoney(i,MoneysForPlaying);public OnGameModeInit() { SetGameModeText(GameModeText); new str[MAX_STRING]; print("\n\n--------------------------------------"); printf(" %s by ProRaiL (c) 2007",GameModeText); print("--------------------------------------\n\n"); WriteToLog("Gamemode starting..."); format(str,sizeof(str),"Gamemode: %s",GameModeText); WriteToLog(str); for (new i=0;i<Classes;i++) AddPlayerClass(ClassInfo[i],0,0,0,0,SpawnWeapons[0],SpawnWeapons[1],SpawnWeapons[2],SpawnWeapons[3],SpawnWeapons[4],SpawnWeapons[5]); #if defined Teams new TeamClasses; for (new i=0;i<Teams;i++) { for (new j=0;j<ModelsInTeam;j++) { if (TeamInfo[i][TeamModels][j] == 0) break; AddPlayerClass(TeamInfo[i][TeamModels][j],TeamInfo[i][TeamSpawnX],TeamInfo[i][TeamSpawnY],TeamInfo[i][TeamSpawnZ],TeamInfo[i][TeamSpawnA],SpawnWeapons[0],SpawnWeapons[1],SpawnWeapons[2],SpawnWeapons[3],SpawnWeapons[4],SpawnWeapons[5]); if (j == 0) TeamInfo[i][TeamClassStart] = Classes+TeamClasses; TeamClasses++; } TeamInfo[i][TeamClassEnd] = Classes+TeamClasses-1; } format(str,sizeof(str),"Classes: %d",Classes+TeamClasses); #else format(str,sizeof(str),"Classes: %d",Classes); #endif WriteToLog(str); new models[212],modelids; for (new i=0;i<Vehicles;i++) { AddStaticVehicle(VehicleInfo[i][VehicleModelID],VehicleInfo[i][VehicleSpawnX],VehicleInfo[i][VehicleSpawnY],VehicleInfo[i][VehicleSpawnZ],VehicleInfo[i][VehicleSpawnA],VehicleInfo[i][VehicleColor1],VehicleInfo[i][VehicleColor2]); if (VehicleInfo[i][VehicleModelID] != 0) models[VehicleInfo[i][VehicleModelID]-400]++; } for (new i=0;i<212;i++) if (models[i] > 0) modelids++; format(str,sizeof(str),"Vehicles: %d (Types: %d)",Vehicles,modelids); WriteToLog(str); for (new i=0;i<Pickups;i++) AddStaticPickup(PickupInfo[i][PickupModelID],PickupInfo[i][PickupType],PickupInfo[i][PickupSpawnX],PickupInfo[i][PickupSpawnY],PickupInfo[i][PickupSpawnZ]); format(str,sizeof(str),"Pickups: %d",Pickups); WriteToLog(str); #if defined Teams format(str,sizeof(str),"Teams: %d",Teams); WriteToLog(str); #endif ShowPlayerMarkers(1); ShowNameTags(1); WriteToLog("Gamemode started!"); #if defined TimeCycle SetTimer("WorldTimeUpdate",60000,1); #endif SetTimer("SaveAllPlayers",1800000,1); #if defined RestrictedAreas SetTimer("AreasCheck",1000,1); #endif #if defined IdleTimeToKick SetTimer("IdleCheck",60000,1); #endif #if defined FloodInterval && defined FloodLines SetTimer("FloodCheck",FloodInterval*1000,1); #endif SetTimer("MoneyCheck",10000,1); SetTimer("MoneyForPlay",60000,1); AllowAdminTeleport(1); AllowInteriorWeapons(1); EnableZoneNames(1); //SetDisabledWeapons(1,2,6,7,9,10,11,12,13,14,15,17,18,35,36,37,38,39,40,41,43,44,45); UsePlayerPedAnims(); AddStaticVehicle(538,2019.0902,-1943.2625,13.5469,0.0,-1,-1); // return 1;}public OnGameModeExit() { SaveAllPlayers(); WriteToLog("Gamemode exit..."); return 0;}public OnPlayerConnect(playerid) { new str[MAX_STRING]; ClearPlayer(playerid); LoadPlayer(playerid); format(str,sizeof(str),"%s (id: %d) connected to the server",PlayerInfo[playerid][Name],playerid); WriteToLog(str); #if !defined AllowBadSymbolsInNicks for (new i=0;i<strlen(PlayerInfo[playerid][Name]);i++) { if (PlayerInfo[playerid][Name][i] < 'A' || 'Z' < PlayerInfo[playerid][Name][i] < 'a' || 'z' < PlayerInfo[playerid][Name][i]) { KickPlayer(playerid,"Only alphabetical nicks allowed"); return 1; } } #endif SetPlayerColor(playerid,DefaultPlayerColors[playerid]); AllowPlayerTeleport(playerid, 0); return 1;}public OnPlayerDisconnect(playerid) { new str[MAX_STRING]; format(str,sizeof(str),"%s (id: %d) disconnected from the server",PlayerInfo[playerid][Name],playerid); WriteToLog(str); SavePlayer(playerid); ClearPlayer(playerid); for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && PlayerInfo[i][Ignores][playerid]) PlayerInfo[i][Ignores][playerid] = false; return 1;}public OnPlayerRequestClass(playerid,classid) { if (dini_Exists(PlayerFile(PlayerInfo[playerid][Name])) && !PlayerInfo[playerid][Logged]) { new str[MAX_STRING]; #if defined LoggingTimeout SetTimerEx("LoggingTimeoutT",LoggingTimeout*1000,0,"i",playerid); #endif format(str,sizeof(str),"This nickname is registered (%s)",PlayerInfo[playerid][Name]); WriteEcho(str,playerid,ErrorMsgColor); WriteEcho("If you are the owner identify yourself using your password",playerid,ErrorMsgColor); WriteEcho("Otherwise, choose another nickname or contact server administrator (if you forgot your password)",playerid,ErrorMsgColor); SetPlayerColor(playerid,LoggingColor); return 0; } PlayerPlaySound(playerid,1097,0,0,0); if (classid < Classes) { SetPlayerInterior(playerid,0); SetPlayerPos(playerid,1481.4418,-1790.4611,156.7533); SetPlayerFacingAngle(playerid,180); SetPlayerCameraPos(playerid,1481.4418,-1795.4611,156.7533); SetPlayerCameraLookAt(playerid,1481.4418,-1790.4611,156.7533); #if defined Teams PlayerInfo[playerid][Team] = -1; #endif new vehicleid = random(Vehicles); while (VehicleInfo[vehicleid][VehicleColor1] != -1 || VehicleInfo[vehicleid][VehicleColor2] != -1) vehicleid = random(Vehicles); if (!PlayerInfo[playerid][ModelSet]) PlayerInfo[playerid][ModelSet] = true; else PlayerInfo[playerid][Model] = classid; SetSpawnInfo(playerid,0,ClassInfo[PlayerInfo[playerid][Model]],VehicleInfo[vehicleid][VehicleSpawnX]+3,VehicleInfo[vehicleid][VehicleSpawnY]+3,VehicleInfo[vehicleid][VehicleSpawnZ],VehicleInfo[vehicleid][VehicleSpawnA],SpawnWeapons[0],SpawnWeapons[1],SpawnWeapons[2],SpawnWeapons[3],SpawnWeapons[4],SpawnWeapons[5]); } #if defined Teams else { new players,teammates,str[MAX_STRING]; for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i)) players++; for (new i=0;i<Teams;i++) { if (TeamInfo[i][TeamClassStart] <= classid <= TeamInfo[i][TeamClassEnd]) { format(str,sizeof(str),"%s ~w~Team",TeamInfo[i][TeamName]); teammates = 0; for (new j=0;j<MAX_PLAYERS;j++) if (IsPlayerConnected(j) && PlayerInfo[j][Team] == i && j != playerid) teammates++; if (teammates < players/2+1) { PlayerInfo[playerid][Team] = i; SetPlayerInterior(playerid,TeamInfo[i][TeamSpawnInterior]); SetPlayerPos(playerid,TeamInfo[i][TeamSpawnX],TeamInfo[i][TeamSpawnY],TeamInfo[i][TeamSpawnZ]); SetPlayerFacingAngle(playerid,TeamInfo[i][TeamSpawnA]); SetPlayerCameraPos(playerid,TeamInfo[i][TeamSpawnX]+(floatsin(-TeamInfo[i][TeamSpawnA],degrees)*5),TeamInfo[i][TeamSpawnY]+(floatcos(-TeamInfo[i][TeamSpawnA],degrees)*5),TeamInfo[i][TeamSpawnZ]); SetPlayerCameraLookAt(playerid,TeamInfo[i][TeamSpawnX],TeamInfo[i][TeamSpawnY],TeamInfo[i][TeamSpawnZ]); } else strcat(str,"~n~~r~FULL"); GameTextForPlayer(playerid,str,1000,3); break; } } } #endif return 1;}public OnPlayerSpawn(playerid) { SetPlayerInterior(playerid,0); if (PlayerInfo[playerid][SafeDeath]) { SetPlayerPos(playerid,0,0,5); return 1; } if (dini_Exists(PlayerFile(PlayerInfo[playerid][Name])) && !PlayerInfo[playerid][Logged]) { KickPlayer(playerid,"Identify yourself using /login command before spawning"); return 0; } new str[MAX_STRING]; format(str,sizeof(str),"%s (id: %d) spawned",PlayerInfo[playerid][Name],playerid); WriteToLog(str); PlayerPlaySound(playerid,1098,0,0,0); #if defined Teams new team = PlayerInfo[playerid][Team]; if (team == -1) { if (!PlayerInfo[playerid][AdminColored]) SetPlayerColor(playerid,DefaultPlayerColors[playerid]); else SetPlayerColor(playerid,AdminColor); } else { if (!PlayerInfo[playerid][AdminColored]) SetPlayerColor(playerid,TeamInfo[team][TeamColor]); else SetPlayerColor(playerid,AdminColor); SetPlayerInterior(playerid,TeamInfo[team][TeamSpawnInterior]); } #else if (!PlayerInfo[playerid][AdminColored]) SetPlayerColor(playerid,DefaultPlayerColors[playerid]); else SetPlayerColor(playerid,AdminColor); #endif #if defined AntiSpawnKillTime PlayerInfo[playerid][CanBeKilled] = false; PlayerInfo[playerid][AntiSpawnKillTimer] = SetTimerEx("AntiSpawnKill",AntiSpawnKillTime*1000,0,"i",playerid); #endif for (new i=0;i<WeaponGroups;i++) if (PlayerInfo[playerid][WeaponAmmos][i] > 0) GivePlayerWeapon(playerid,WeaponInfo[PlayerInfo[playerid][WeaponIDs][i]][WeaponID],PlayerInfo[playerid][WeaponAmmos][i]); return 1;}public OnPlayerDeath(playerid,killerid,reason) { if (PlayerInfo[playerid][SafeDeath]) { PlayerInfo[playerid][SafeDeath] = false; return 1; } new str[MAX_STRING]; SendDeathMessage(killerid,playerid,reason); #if defined AntiSpawnKillTime KillTimer(PlayerInfo[playerid][AntiSpawnKillTimer]); #endif #if defined Teams if (PlayerInfo[playerid][Team] == -1) { new vehicleid = random(Vehicles); while (VehicleInfo[vehicleid][VehicleColor1] != -1 || VehicleInfo[vehicleid][VehicleColor2] != -1) vehicleid = random(Vehicles); SetSpawnInfo(playerid,0,ClassInfo[PlayerInfo[playerid][Model]],VehicleInfo[vehicleid][VehicleSpawnX]+3,VehicleInfo[vehicleid][VehicleSpawnY]+3,VehicleInfo[vehicleid][VehicleSpawnZ],VehicleInfo[vehicleid][VehicleSpawnA],SpawnWeapons[0],SpawnWeapons[1],SpawnWeapons[2],SpawnWeapons[3],SpawnWeapons[4],SpawnWeapons[5]); } #else new vehicleid = random(Vehicles); while (VehicleInfo[vehicleid][VehicleColor1] != -1 || VehicleInfo[vehicleid][VehicleColor2] != -1) vehicleid = random(Vehicles); SetSpawnInfo(playerid,0,ClassInfo[PlayerInfo[playerid][Model]],VehicleInfo[vehicleid][VehicleSpawnX]+3,VehicleInfo[vehicleid][VehicleSpawnY]+3,VehicleInfo[vehicleid][VehicleSpawnZ],VehicleInfo[vehicleid][VehicleSpawnA],SpawnWeapons[0],SpawnWeapons[1],SpawnWeapons[2],SpawnWeapons[3],SpawnWeapons[4],SpawnWeapons[5]); #endif if (killerid == INVALID_PLAYER_ID) { format(str,sizeof(str),"%s (id: %d) suicided",PlayerInfo[playerid][Name],playerid); WriteToLog(str); SetPlayerScore(playerid,GetPlayerScore(playerid)-1); PlayerInfo[playerid][Suicides]++; } else { format(str,sizeof(str),"%s (id: %d) killed %s (id: %d) with %s (id: %d)",PlayerInfo[killerid][Name],killerid,PlayerInfo[playerid][Name],playerid,WeaponNames[reason],reason); WriteToLog(str); new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2; GetPlayerPos(playerid,x1,y1,z1); GetPlayerPos(killerid,x2,y2,z2); #if defined InDoorWeapons if (reason != 0 && z1 > 700 && z2 > 700 && !IsPlayerInAnyVehicle(playerid) && !IsPlayerInAnyVehicle(killerid)) { KickPlayer(killerid,"Cheating is bad: possible indoor weapons"); return 1; } #endif new distance = floatround(floatsqroot(floatpower(x2-x1,2)+floatpower(y2-y1,2)+floatpower(z2-z1,2)),floatround_floor); #if defined CheatWeapons for (new i=0;i<CheatWeapons;i++) { if (reason == CheatWeapon[i]) { if (reason == 37) { PlayerInfo[playerid][CheatDeaths]++; if (PlayerInfo[playerid][CheatDeaths] >= DeathsFromCheatToBan) { BanPlayer(playerid,"Cheating is bad: fake death"); return 1; } if (distance <= LegalKillDistance) { PlayerInfo[killerid][CheatKills]++; if (PlayerInfo[killerid][CheatKills] >= FlameCheatsToBan) { BanPlayer(killerid,"Cheating is bad: illegal weapon"); return 1; } } } else { if (distance > LegalKillDistance) { BanPlayer(playerid,"Cheating is bad: fake death"); return 1; } PlayerInfo[playerid][CheatDeaths]++; if (PlayerInfo[playerid][CheatDeaths] >= DeathsFromCheatToBan) { BanPlayer(playerid,"Cheating is bad: fake death"); return 1; } BanPlayer(killerid,"Cheating is bad: illegal weapon"); return 1; } break; } } #endif if (distance <= LegalKillDistance) { #if defined AntiSpawnKillTime if (!PlayerInfo[playerid][CanBeKilled]) { if (!IsPlayerAdmin(killerid) && PlayerInfo[killerid][Admin] < AdminLevelToIgnorePunishment) { SetPlayerScore(killerid,GetPlayerScore(killerid)-1); SetPlayerHealth(killerid,0); } WriteEcho("Do not kill on spawn points",killerid,ErrorMsgColor); return 1; } #endif #if defined NoDriveBy if (IsPlayerInAnyVehicle(killerid) && !IsPlayerInAnyVehicle(playerid) && reason == 29) { if (!IsPlayerAdmin(killerid) && PlayerInfo[killerid][Admin] < AdminLevelToIgnorePunishment) { SetPlayerScore(killerid,GetPlayerScore(killerid)-1); SetPlayerHealth(killerid,0); } WriteEcho("Do not shoot from car",killerid,ErrorMsgColor); return 1; } #endif #if defined Teams #if defined NoTeamKill if (PlayerInfo[killerid][Team] > -1 && PlayerInfo[killerid][Team] == PlayerInfo[playerid][Team]) { if (!IsPlayerAdmin(killerid) && PlayerInfo[killerid][Admin] < AdminLevelToIgnorePunishment) { SetPlayerScore(killerid,GetPlayerScore(killerid)-1); SetPlayerHealth(killerid,0); } WriteEcho("Do not kill your teammates",killerid,ErrorMsgColor); return 1; } #endif #endif } SetPlayerScore(killerid,GetPlayerScore(killerid)+1); PlayerInfo[killerid][Kills]++; PlayerInfo[killerid][CurrentKillsForLife]++; if (PlayerInfo[killerid][CurrentKillsForLife] > PlayerInfo[killerid][MaxKillsForLife]) PlayerInfo[killerid][MaxKillsForLife] = PlayerInfo[killerid][CurrentKillsForLife]; GiveMoney(killerid,MoneysForKill*PlayerInfo[killerid][CurrentKillsForLife]); } PlayerInfo[playerid][Deaths]++; PlayerInfo[playerid][CurrentKillsForLife] = 0; if (PlayerInfo[playerid][Moneys]-MoneysForKill > 0) GiveMoney(playerid,-MoneysForKill); else GiveMoney(playerid,-GetPlayerMoney(playerid)); return 1;}/*#define BadWords 49new BadWord[BadWords][10] = { "õóé", "õóè", "õóþ", "õóÿ", "õóå", "õó¸", "ïèçä", "ñóêà", "ñóêè", "ñóêå", "ñóêó", "ñóêî", "ñó÷ê", "ñöóê", "áëÿ", "åáàí", "¸áàí", "åáàò", "åáàë", "åáó ", "åáó÷", "åá¸", "åáåì", "åáíó", "¸áíó", "åáíå", "¸áíå", "åáëà", "åáëî", "åáëè", "¸á", "ïåäà", "ïåäî", "ïåäå", "ïèäà", "ïèäî", "ïèäå", "ìóä", "óáëþäîê", "óáëþäàê", "òðàõ", "øëþõ", "ïåòóõ", "fuck", "dick", "bitch", "pussy", "bastard", "noob"};*/public OnPlayerText(playerid,text[]) { if (!IsPlayerConnected(playerid)) return 0; #if defined FloodInterval && defined FloodLines if (!IsPlayerAdmin(playerid) && PlayerInfo[playerid][Admin] < AdminLevelToIgnorePunishment) { PlayerInfo[playerid][Messages]++; if (PlayerInfo[playerid][Messages] > FloodLines) { PlayerInfo[playerid][Messages] = 0; KickPlayer(playerid,"Stop flooding"); return 0; } } #endif if (dini_Exists(PlayerFile(PlayerInfo[playerid][Name])) && !PlayerInfo[playerid][Logged]) return 0; FixChars(text); //for (new i=0,pos;i<BadWords;i++) while ((pos=strfind(RuLower(text),BadWord[i],true)) != -1) for (new j=pos;j<pos+strlen(BadWord[i]);j++) text[j] = '#'; new str[MAX_STRING],targetid = PlayerInfo[playerid][Query]; if (text[0] == '!' && targetid != playerid && IsPlayerConnected(targetid)) { text[0] = ' '; format(str,sizeof(str),"%s (id: %d) sent PM to %s (id: %d):%s",PlayerInfo[playerid][Name],playerid,PlayerInfo[targetid][Name],targetid,text); WriteToLog(str); if (!IsPlayerAdmin(playerid) && PlayerInfo[playerid][Admin] == 0 && !IsPlayerAdmin(targetid) && PlayerInfo[targetid][Admin] == 0) for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && PlayerInfo[i][Admin] > PlayerInfo[playerid][Admin] && PlayerInfo[i][Admin] > PlayerInfo[targetid][Admin] && PlayerInfo[i][HearAll]) WriteEcho(str,i,PrivateMsgColor); format(str,sizeof(str),"PM to %s (id: %d):%s",PlayerInfo[targetid][Name],targetid,text); WriteEcho(str,playerid,PrivateMsgColor); if (PlayerInfo[targetid][Ignores][playerid]) return 0; format(str,sizeof(str),"PM from %s (id: %d):%s",PlayerInfo[playerid][Name],playerid,text); WriteEcho(str,targetid,PrivateMsgColor); return 0; } if (text[0] == '%' && (IsPlayerAdmin(playerid) || PlayerInfo[playerid][Admin] > 0)) { text[0] = ' '; format(str,sizeof(str),"%s (id: %d) to admins:%s",PlayerInfo[playerid][Name],playerid,text); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0)) WriteEcho(str,i,AdminChatColor); return 0; } if (PlayerInfo[playerid][Mute]) { format(str,sizeof(str),"Muted message: %s (id: %d): %s",PlayerInfo[playerid][Name],playerid,text); WriteToLog(str); WriteEcho("You are muted and cannot send messages to global chat",playerid,ErrorMsgColor); return 0; } #if defined Teams new team = PlayerInfo[playerid][Team]; if (text[0] == '*' && team > -1) { text[0] = ' '; format(str,sizeof(str),"%s (id: %d) to team %s (id: %d):%s",PlayerInfo[playerid][Name],playerid,TeamInfo[team][TeamName],team,text); for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && PlayerInfo[i][HearAll] && team != PlayerInfo[i][Team]) WriteEcho(str,i,TeamInfo[team][TeamColor]); format(str,sizeof(str),"%s (id: %d) to team:%s",PlayerInfo[playerid][Name],playerid,text); WriteToLog(str); for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && team == PlayerInfo[i][Team]) WriteEcho(str,i,TeamInfo[team][TeamColor]); return 0; } #endif format(str,sizeof(str),"%s (id: %d): %s",PlayerInfo[playerid][Name],playerid,text); WriteToLog(str); #if defined SolidColorChat new color; if (!PlayerInfo[playerid][AdminColored]) { #if defined Teams if (team > -1) color = TeamInfo[team][TeamColor]; else color = DefaultPlayerColors[playerid]; #else color = DefaultPlayerColors[playerid]; #endif } else color = AdminColor; for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && !PlayerInfo[i][Ignores][playerid]) WriteEcho(str,i,color); return 0; #endif return 1;}public OnPlayerPrivmsg(playerid,recieverid,text[]) { if (!IsPlayerConnected(playerid)) return 0; #if defined FloodInterval && defined FloodLines if (!IsPlayerAdmin(playerid) && PlayerInfo[playerid][Admin] < AdminLevelToIgnorePunishment) { PlayerInfo[playerid][Messages]++; if (PlayerInfo[playerid][Messages] > FloodLines) { PlayerInfo[playerid][Messages] = 0; KickPlayer(playerid,"Stop flooding"); return 0; } } #endif if (dini_Exists(PlayerFile(PlayerInfo[playerid][Name])) && !PlayerInfo[playerid][Logged]) return 0; FixChars(text); //for (new i=0,pos;i<BadWords;i++) while ((pos=strfind(RuLower(text),BadWord[i],true)) != -1) for (new j=pos;j<pos+strlen(BadWord[i]);j++) text[j] = '#'; new str[MAX_STRING]; format(str,sizeof(str),"%s (id: %d) sent PM to %s (id: %d): %s",PlayerInfo[playerid][Name],playerid,PlayerInfo[recieverid][Name],recieverid,text); WriteToLog(str); if (!IsPlayerAdmin(playerid) && !IsPlayerAdmin(recieverid)) for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && PlayerInfo[i][Admin] > PlayerInfo[playerid][Admin] && PlayerInfo[i][Admin] > PlayerInfo[recieverid][Admin] && PlayerInfo[i][HearAll]) WriteEcho(str,i,PrivateMsgColor); format(str,sizeof(str),"PM to %s (id: %d): %s",PlayerInfo[recieverid][Name],recieverid,text); WriteEcho(str,playerid,PrivateMsgColor); if (PlayerInfo[recieverid][Ignores][playerid]) return 0; format(str,sizeof(str),"PM from %s (id: %d): %s",PlayerInfo[playerid][Name],playerid,text); WriteEcho(str,recieverid,PrivateMsgColor); return 0;}#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 1dcmd_help(playerid,params[]) { #pragma unused params WriteEcho("SimpleDM by ProRaiL:",playerid); WriteEcho("This gamemode is a free for all deathmatch mode, If you want to play you must follow simple rules:",playerid,HelpMsgColor); WriteEcho("DO NOT use any cheats or game bugs; DO NOT abuse; DO NOT shoot from car; DO NOT kill teammates;",playerid,HelpMsgColor); WriteEcho("CO-OPERATE with server administrators, if they ask so;",playerid,HelpMsgColor); WriteEcho("If you will not follow that rules, you will be punished by the server or it's administrators",playerid,HelpMsgColor); #if defined Teams if (PlayerInfo[playerid][Team] > -1) WriteEcho("You can write into your team's chat by prefixing your messages with symbol \"*\"",playerid,HelpMsgColor); #endif WriteEcho("Weapons can be bought via /w[eaponlist] and /b[uy] commands",playerid,HelpMsgColor); WriteEcho("Report cheaters with /report command",playerid,HelpMsgColor); WriteEcho("To see the list of all commands, type /c[ommands]",playerid,HelpMsgColor); return 1;}dcmd_h(playerid,params[]) { dcmd_help(playerid,params); return 1;}dcmd_commands(playerid,params[]) { #pragma unused params WriteEcho("Available commands:",playerid); WriteEcho("Account related: /register /l[ogin] /changepassword /s[tats]",playerid,HelpMsgColor); WriteEcho("Chat related: /pm /msg /q[uery] /ignore",playerid,HelpMsgColor); WriteEcho("Weapon related: /w[eaponlist] /b[uy]",playerid,HelpMsgColor); WriteEcho("Other: /k[ill] /send /report /countdown",playerid,HelpMsgColor); return 1;}dcmd_c(playerid,params[]) { dcmd_commands(playerid,params); return 1;}dcmd_register(playerid,params[]) { new str[MAX_STRING]; if (dini_Exists(PlayerFile(PlayerInfo[playerid][Name]))) { format(str,sizeof(str),"This nickname already registered (%s)",PlayerInfo[playerid][Name]); WriteEcho(str,playerid,ErrorMsgColor); return 1; } new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /register <password>",playerid,HelpMsgColor); return 1; } if (strlen(tmp) < 5) { WriteEcho("Password length must be at least 5 symbols",playerid,ErrorMsgColor); return 1; } dini_Create(PlayerFile(PlayerInfo[playerid][Name])); PlayerInfo[playerid][Password] = num_hash(tmp); PlayerInfo[playerid][Logged] = true; SavePlayer(playerid); format(str,sizeof(str),"%s (id: %d) registered an account",PlayerInfo[playerid][Name],playerid); WriteToLog(str); format(str,sizeof(str),"You are successfully registered your nickname (%s)! Next time you connect, type /login %s to identify yourself",PlayerInfo[playerid][Name],tmp); WriteEcho(str,playerid); return 1;}dcmd_login(playerid,params[]) { new str[MAX_STRING]; if (!dini_Exists(PlayerFile(PlayerInfo[playerid][Name]))) { format(str,sizeof(str),"This nickname is not registered (%s). Register it by using /register command",PlayerInfo[playerid][Name]); WriteEcho(str,playerid,ErrorMsgColor); return 1; } new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /login <password>",playerid,HelpMsgColor); return 1; } if (PlayerInfo[playerid][Logged]) { WriteEcho("You already logged in",playerid,ErrorMsgColor); return 1; } if (PlayerInfo[playerid][Password] != num_hash(tmp)) { PlayerInfo[playerid][WrongPasswords]++; if (PlayerInfo[playerid][WrongPasswords] > 5) { KickPlayer(playerid,"Too many invalid passwords"); return 1; } format(str,sizeof(str),"%s (id: %d) typed wrong password",PlayerInfo[playerid][Name],playerid); WriteToLog(str); for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid) WriteEcho(str,i,AdminChatColor); format(str,sizeof(str),"You typed wrong password (%s)",tmp,PlayerInfo[playerid][WrongPasswords]); WriteEcho(str,playerid,ErrorMsgColor); return 1; } PlayerInfo[playerid][Logged] = true; format(str,sizeof(str),"%s (id: %d) logged in",PlayerInfo[playerid][Name],playerid); WriteToLog(str); WriteEcho("You are successfully logged in",playerid); PlayerInfo[playerid][SafeDeath] = true; SetSpawnInfo(playerid,0,0,0,0,5,0,0,0,0,0,0,0); SpawnPlayer(playerid); SetPlayerCameraPos(playerid,1481.4418,-1795.4611,156.7533); SetPlayerCameraLookAt(playerid,1481.4418,-1790.4611,156.7533); SetPlayerHealth(playerid,0); SetPlayerColor(playerid,DefaultPlayerColors[playerid]-0xFF); SendDeathMessage(INVALID_PLAYER_ID,playerid,201); return 1;}dcmd_l(playerid,params[]) { dcmd_login(playerid,params); return 1;}dcmd_changepassword(playerid,params[]) { new str[MAX_STRING]; if (!dini_Exists(PlayerFile(PlayerInfo[playerid][Name]))) { format(str,sizeof(str),"This nickname is not registered (%s). Register it by using /register command",PlayerInfo[playerid][Name]); WriteEcho(str,playerid,ErrorMsgColor); return 1; } new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /changepassword <old password> <new password>",playerid,HelpMsgColor); return 1; } new tmp2[MAX_STRING]; tmp2 = strtok(params,idx); if (!strlen(tmp2)) { WriteEcho("Syntax: /changepassword <old password> <new password>",playerid,HelpMsgColor); return 1; } if (PlayerInfo[playerid][Password] != num_hash(tmp)) { PlayerInfo[playerid][WrongPasswords]++; if (PlayerInfo[playerid][WrongPasswords] > 5) { KickPlayer(playerid,"Too many invalid passwords"); return 1; } format(str,sizeof(str),"%s (id: %d) typed wrong password",PlayerInfo[playerid][Name],playerid); WriteToLog(str); format(str,sizeof(str),"You typed wrong password (%s)",tmp,PlayerInfo[playerid][WrongPasswords]); WriteEcho(str,playerid,ErrorMsgColor); return 1; } PlayerInfo[playerid][Password] = num_hash(tmp2); format(str,sizeof(str),"%s (id: %d) changed his password",PlayerInfo[playerid][Name],playerid); WriteToLog(str); format(str,sizeof(str),"You are successfully changed your password. Next time you connect, type /login %s to identify yourself",tmp2); WriteEcho(str,playerid); return 1;}dcmd_stats(playerid,params[]) { new str[MAX_STRING],tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { format(str,sizeof(str),"Your statistic (%s):",PlayerInfo[playerid][Name]); WriteEcho(str,playerid); format(str,sizeof(str),"Money: %d",GetPlayerMoney(playerid)); WriteEcho(str,playerid,HelpMsgColor); format(str,sizeof(str),"Kills: %d",PlayerInfo[playerid][Kills]); WriteEcho(str,playerid,HelpMsgColor); format(str,sizeof(str),"Maximum kills for life: %d",PlayerInfo[playerid][MaxKillsForLife]); WriteEcho(str,playerid,HelpMsgColor); format(str,sizeof(str),"Deaths: %d",PlayerInfo[playerid][Deaths]); WriteEcho(str,playerid,HelpMsgColor); format(str,sizeof(str),"Suicides: %d",PlayerInfo[playerid][Suicides]); WriteEcho(str,playerid,HelpMsgColor); if (PlayerInfo[playerid][Deaths] > 0) { new Float:ratio = floatdiv(PlayerInfo[playerid][Kills],PlayerInfo[playerid][Deaths]); format(str,sizeof(str),"Kills/deaths ratio: %f",ratio); WriteEcho(str,playerid,HelpMsgColor); } } else { new targetid = GetPlayerID(tmp); if (targetid != INVALID_PLAYER_ID) { format(str,sizeof(str),"Statistic for player %s (id: %d):",PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid); format(str,sizeof(str),"Money: %d",GetPlayerMoney(targetid)); WriteEcho(str,playerid,HelpMsgColor); format(str,sizeof(str),"Kills: %d",PlayerInfo[targetid][Kills]); WriteEcho(str,playerid,HelpMsgColor); format(str,sizeof(str),"Maximum kills for life: %d",PlayerInfo[targetid][MaxKillsForLife]); WriteEcho(str,playerid,HelpMsgColor); format(str,sizeof(str),"Deaths: %d",PlayerInfo[targetid][Deaths]); WriteEcho(str,playerid,HelpMsgColor); format(str,sizeof(str),"Suicides: %d",PlayerInfo[targetid][Suicides]); WriteEcho(str,playerid,HelpMsgColor); if (PlayerInfo[targetid][Deaths] > 0) { new Float:ratio = floatdiv(PlayerInfo[targetid][Kills],PlayerInfo[targetid][Deaths]); format(str,sizeof(str),"Kills/deaths ratio: %f",ratio); WriteEcho(str,playerid,HelpMsgColor); } } else { new filename[MAX_STRING]; filename = PlayerFile(tmp); if (!dini_Exists(filename)) { format(str,sizeof(str),"This nickname is not registered (%s)",tmp); WriteEcho(str,playerid,ErrorMsgColor); return 1; } format(str,sizeof(str),"Statistic for player %s:",tmp); WriteEcho(str,playerid); format(str,sizeof(str),"Money: %d",dini_Int(filename,"Moneys")); WriteEcho(str,playerid,HelpMsgColor); format(str,sizeof(str),"Kills: %d",dini_Int(filename,"Kills")); WriteEcho(str,playerid,HelpMsgColor); format(str,sizeof(str),"Maximum kills for life: %d",dini_Int(filename,"MaxKillsForLife")); WriteEcho(str,playerid,HelpMsgColor); format(str,sizeof(str),"Deaths: %d",dini_Int(filename,"Deaths")); WriteEcho(str,playerid,HelpMsgColor); format(str,sizeof(str),"Suicides: %d",dini_Int(filename,"Suicides")); WriteEcho(str,playerid,HelpMsgColor); new deaths = dini_Int(filename,"Deaths"); if (deaths > 0) { new Float:ratio = floatdiv(dini_Int(filename,"Kills"),deaths); format(str,sizeof(str),"Kills/deaths ratio: %f",ratio); WriteEcho(str,playerid,HelpMsgColor); } } } return 1;}dcmd_s(playerid,params[]) { dcmd_stats(playerid,params); return 1;}dcmd_query(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /query <playerid>",playerid,HelpMsgColor); return 1; } new targetid = strval(tmp); if (targetid == playerid) { WriteEcho("You cannot query yourself",playerid,ErrorMsgColor); return 1; } new str[MAX_STRING]; if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot query offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } PlayerInfo[playerid][Query] = targetid; format(str,sizeof(str),"You made query with %s (id: %d). You can send him PMs easily by prefixing messages with symbol \"!\"",PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid); return 1;}dcmd_q(playerid,params[]) { dcmd_query(playerid,params); return 1;}dcmd_ignore(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /ignore <playerid>",playerid,HelpMsgColor); return 1; } new targetid = strval(tmp); if (targetid == playerid) { WriteEcho("You cannot ignore yourself",playerid,ErrorMsgColor); return 1; } new str[MAX_STRING]; if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot ignore offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } if (!PlayerInfo[playerid][Ignores][targetid]) { PlayerInfo[playerid][Ignores][targetid] = true; format(str,sizeof(str),"You added %s (id: %d) to your ignore list. You will not see his messages in the chat and PMs",PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid); format(str,sizeof(str),"If you will need to remove him from the ignore list just type /ignore %d again",targetid); WriteEcho(str,playerid); } else { PlayerInfo[playerid][Ignores][targetid] = false; format(str,sizeof(str),"You deleted %s (id: %d) from your ignore list. You will see now his messages in the chat and PMs",PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid); } return 1;}dcmd_weaponlist(playerid,params[]) { #pragma unused params WriteEcho("Available weapons (for non-melee weapons cost is per bullet):",playerid); new str[MAX_STRING],tmp[WeaponGroups][MAX_STRING]; set(tmp[0],"Melee: "); set(tmp[1],"Pistols: "); set(tmp[2],"Shotguns: "); set(tmp[3],"SMGs: "); set(tmp[4],"Assault rifles: "); set(tmp[5],"Other: "); for (new i=0;i<Weapons;i++) { format(str,sizeof(str),"%d) %s - $%d; ",i,WeaponNames[WeaponInfo[i][WeaponID]],WeaponInfo[i][WeaponCost]); strcat(tmp[WeaponInfo[i][WeaponGroup]],str); } for (new i=0;i<WeaponGroups;i++) WriteEcho(tmp[i],playerid,HelpMsgColor); return 1;}dcmd_w(playerid,params[]) { dcmd_weaponlist(playerid,params); return 1;}dcmd_buy(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /buy <weaponid> <ammo>",playerid,HelpMsgColor); return 1; } new str[MAX_STRING],weaponid = strval(tmp); if (weaponid < 0 || Weapons <= weaponid) { format(str,sizeof(str),"There is no such weapon (%d)",weaponid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } if (!WeaponInfo[weaponid][IsWeaponMelee]) { new tmp2[MAX_STRING]; tmp2 = strtok(params,idx); if (!strlen(tmp2)) { WriteEcho("Syntax: /buy <weaponid> <ammo>",playerid,HelpMsgColor); return 1; } new ammo = strval(tmp2); if (ammo <= 0) { format(str,sizeof(str),"You cannot buy that ammo (%d)",ammo); WriteEcho(str,playerid,ErrorMsgColor); return 1; } new moneys = WeaponInfo[weaponid][WeaponCost]*ammo; if (PlayerInfo[playerid][Moneys] < moneys) { format(str,sizeof(str),"You don't have enough money ($%d)",moneys); WriteEcho(str,playerid,ErrorMsgColor); return 1; } GivePlayerWeapon(playerid,WeaponInfo[weaponid][WeaponID],ammo); if (weaponid == PlayerInfo[playerid][WeaponIDs][WeaponInfo[weaponid][WeaponGroup]]) PlayerInfo[playerid][WeaponAmmos][WeaponInfo[weaponid][WeaponGroup]] += ammo; else { PlayerInfo[playerid][WeaponIDs][WeaponInfo[weaponid][WeaponGroup]] = weaponid; PlayerInfo[playerid][WeaponAmmos][WeaponInfo[weaponid][WeaponGroup]] = ammo; } GiveMoney(playerid,-moneys); format(str,sizeof(str),"%s (id: %d) bought weapon %s (id: %d) (shop id: %d) (ammo: %d)",PlayerInfo[playerid][Name],playerid,WeaponNames[WeaponInfo[weaponid][WeaponID]],WeaponInfo[weaponid][WeaponID],weaponid,ammo); WriteToLog(str); format(str,sizeof(str),"You bought %s (id: %d) and %d bullets for $%d",WeaponNames[WeaponInfo[weaponid][WeaponID]],weaponid,ammo,moneys); WriteEcho(str,playerid); } else { if (PlayerInfo[playerid][Moneys] < WeaponInfo[weaponid][WeaponCost]) { format(str,sizeof(str),"You don't have enough money ($%d)",WeaponInfo[weaponid][WeaponCost]); WriteEcho(str,playerid,ErrorMsgColor); return 1; } GivePlayerWeapon(playerid,WeaponInfo[weaponid][WeaponID],1); PlayerInfo[playerid][WeaponIDs][WeaponInfo[weaponid][WeaponGroup]] = weaponid; PlayerInfo[playerid][WeaponAmmos][WeaponInfo[weaponid][WeaponGroup]] = 1; GiveMoney(playerid,-WeaponInfo[weaponid][WeaponCost]); format(str,sizeof(str),"%s (id: %d) bought weapon %s (id: %d) (shop id: %d)",PlayerInfo[playerid][Name],playerid,WeaponNames[WeaponInfo[weaponid][WeaponID]],WeaponInfo[weaponid][WeaponID],weaponid); WriteToLog(str); format(str,sizeof(str),"You bought %s (id: %d) for $%d",WeaponNames[WeaponInfo[weaponid][WeaponID]],weaponid,WeaponInfo[weaponid][WeaponCost]); WriteEcho(str,playerid); } return 1;}dcmd_b(playerid,params[]) { dcmd_buy(playerid,params); return 1;}dcmd_k(playerid,params[]) { #pragma unused params SetPlayerHealth(playerid,0); return 1;}dcmd_send(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /send <playerid> <amount>",playerid,HelpMsgColor); return 1; } new targetid = strval(tmp); if (targetid == playerid) { WriteEcho("You cannot send money to yourself",playerid,ErrorMsgColor); return 1; } new str[MAX_STRING]; if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot send money to offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } new tmp2[MAX_STRING]; tmp2 = strtok(params,idx); if (!strlen(tmp2)) { WriteEcho("Syntax: /send <playerid> <amount>",playerid,HelpMsgColor); return 1; } new amount = strval(tmp2); if (amount <= 0) { format(str,sizeof(str),"You cannot send that money ($%d)",amount); WriteEcho(str,playerid,ErrorMsgColor); return 1; } if (PlayerInfo[playerid][Moneys] < amount) { format(str,sizeof(str),"You don't have enough money ($%d)",amount); WriteEcho(str,playerid,ErrorMsgColor); return 1; } GiveMoney(playerid,-amount); GiveMoney(targetid,amount); format(str,sizeof(str),"%s (id: %d) sent $%d to %s (id: %d)",PlayerInfo[playerid][Name],playerid,amount,PlayerInfo[targetid][Name],targetid); WriteToLog(str); format(str,sizeof(str),"You sent $%d to %s (id: %d)",amount,PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid); format(str,sizeof(str),"You received $%d from %s (id: %d)",amount,PlayerInfo[playerid][Name],playerid); WriteEcho(str,targetid); return 1;}dcmd_report(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /report <playerid> <text>",playerid,HelpMsgColor); return 1; } new targetid = strval(tmp); if (targetid == playerid) { WriteEcho("You cannot report on yourself",playerid,ErrorMsgColor); return 1; } new str[MAX_STRING]; if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot report on offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } /*if (IsPlayerAdmin(targetid) || PlayerInfo[targetid][Admin] >= PlayerInfo[playerid][Admin]) { format(str,sizeof(str),"You cannot report on admins (%s (id: %d))",PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; }*/ new tmp2[MAX_STRING]; strmid(tmp2,params,strlen(tmp)+1,strlen(params)); if (!strlen(tmp2)) { WriteEcho("Syntax: /report <playerid> <reason>",playerid,HelpMsgColor); return 1; } format(str,sizeof(str),"%s (id: %d) reported on %s (id: %d): %s",PlayerInfo[playerid][Name],playerid,PlayerInfo[targetid][Name],targetid,tmp2); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid) WriteEcho(str,i,AdminChatColor); WriteEcho("Your report sent to all online administrators",playerid); return 1;}new bool:CountDown;new bool:InCountDown[MAX_PLAYERS];public CountDown0() { for (new i=0;i<MAX_PLAYERS;i++) { if (InCountDown[i]) { GameTextForPlayer(i,"~r~~h~GO!",1000,3); TogglePlayerControllable(i,1); } } CountDown = false;}public CountDown1() for (new i=0;i<MAX_PLAYERS;i++) if (InCountDown[i]) GameTextForPlayer(i,"~r~~h~1",1000,3);public CountDown2() for (new i=0;i<MAX_PLAYERS;i++) if (InCountDown[i]) GameTextForPlayer(i,"~g~~h~2",1000,3);public CountDown3() for (new i=0;i<MAX_PLAYERS;i++) if (InCountDown[i]) GameTextForPlayer(i,"~g~~h~3",1000,3);public CountDown4() for (new i=0;i<MAX_PLAYERS;i++) if (InCountDown[i]) GameTextForPlayer(i,"~b~~h~4",1000,3);public CountDown5() for (new i=0;i<MAX_PLAYERS;i++) if (InCountDown[i]) GameTextForPlayer(i,"~b~~h~5",1000,3);dcmd_countdown(playerid,params[]) { #pragma unused params if (GetPlayerState(playerid) == PLAYER_STATE_NONE || GetPlayerState(playerid) == PLAYER_STATE_WASTED) { WriteEcho("You must be spawned to use countdown",playerid,ErrorMsgColor); return 1; } if (CountDown) { WriteEcho("Countdown is in progress now",playerid,ErrorMsgColor); return 1; } CountDown = true; new Float:x,Float:y,Float:z; GetPlayerPos(playerid,x,y,z); for (new i=0;i<MAX_PLAYERS;i++) { if (IsPlayerInArea(i,x-20,x+20,y-20,x+20,z-5,z+5) && GetPlayerState(i) != PLAYER_STATE_NONE && GetPlayerState(i) != PLAYER_STATE_WASTED) { InCountDown[i] = true; TogglePlayerControllable(i,0); GameTextForPlayer(i,"~w~~h~READY!",1000,3); } else InCountDown[i] = false; } SetTimer("CountDown0",6000,0); SetTimer("CountDown1",5000,0); SetTimer("CountDown2",4000,0); SetTimer("CountDown3",3000,0); SetTimer("CountDown4",2000,0); SetTimer("CountDown5",1000,0); return 1;}dcmd_alogin(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /alogin <login> <password>",playerid,HelpMsgColor); return 1; } new str[MAX_STRING]; if (!dini_Isset(AdminsFile,tmp)) { PlayerInfo[playerid][WrongPasswords]++; if (PlayerInfo[playerid][WrongPasswords] > 5) { KickPlayer(playerid,"Too many invalid passwords"); return 1; } format(str,sizeof(str),"%s (id: %d) typed wrong login (%s) in admin login",PlayerInfo[playerid][Name],playerid,tmp); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid) WriteEcho(str,i,AdminChatColor); WriteEcho("You typed wrong login or password",playerid,ErrorMsgColor); return 1; } new tmp2[MAX_STRING]; tmp2 = strtok(params,idx); if (!strlen(tmp2)) { WriteEcho("Syntax: /alogin <login> <password>",playerid,HelpMsgColor); return 1; } idx = 0; new password = strval(strtok(dini_Get(AdminsFile,tmp),idx,',')); if (password != num_hash(tmp2)) { PlayerInfo[playerid][WrongPasswords]++; if (PlayerInfo[playerid][WrongPasswords] > 5) { KickPlayer(playerid,"Too many invalid passwords"); return 1; } format(str,sizeof(str),"%s (id: %d) typed wrong password in admin login as %s",PlayerInfo[playerid][Name],playerid,tmp); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid) WriteEcho(str,i,AdminChatColor); WriteEcho("You typed wrong login or password",playerid,ErrorMsgColor); return 1; } new level = strval(strtok(dini_Get(AdminsFile,tmp),idx,',')); PlayerInfo[playerid][Admin] = level; format(str,sizeof(str),"%s (id: %d) logged in as admin %s (level: %d)",PlayerInfo[playerid][Name],playerid,tmp,level); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif format(str,sizeof(str),"You are successfully logged in as admin %s",tmp); WriteEcho(str,playerid); AllowPlayerTeleport(playerid, 1); return 1;}dcmd_ahelp(playerid,params[]) { #pragma unused params new str[MAX_STRING]; format(str,sizeof(str),"Your admin level: %d",PlayerInfo[playerid][Admin]); WriteEcho(str,playerid,HelpMsgColor); WriteEcho("Admin chat is available by prefixing your message with symbol \"%\"",playerid,HelpMsgColor); WriteEcho("Available commands:",playerid); if (PlayerInfo[playerid][Admin] > 1) WriteEcho("/acolor /announce /mute /unmute /kick /ban",playerid,HelpMsgColor); else WriteEcho("/acolor /announce /mute /unmute",playerid,HelpMsgColor); if (PlayerInfo[playerid][Admin] > 3) WriteEcho("/outcar /disarm /freeze /unfreeze /locations /teleport /goto /gethere /tocar",playerid,HelpMsgColor); else if (PlayerInfo[playerid][Admin] > 2) WriteEcho("/outcar /disarm /freeze /unfreeze",playerid,HelpMsgColor); if (PlayerInfo[playerid][Admin] > 6) WriteEcho("/givemoney /setmoney /weaponids /giveweapon /hearall /settime",playerid,HelpMsgColor); else if (PlayerInfo[playerid][Admin] > 5) WriteEcho("/givemoney /setmoney /weaponids /giveweapon",playerid,HelpMsgColor); else if (PlayerInfo[playerid][Admin] > 4) WriteEcho("/givemoney /setmoney",playerid,HelpMsgColor); if (PlayerInfo[playerid][Admin] > 8) WriteEcho("/rape /heal /godmode /globalsave /gamemodeexit",playerid,HelpMsgColor); else if (PlayerInfo[playerid][Admin] > 7) WriteEcho("/rape /heal /godmode",playerid,HelpMsgColor); return 1;}dcmd_acolor(playerid,params[]) { #pragma unused params if (!PlayerInfo[playerid][AdminColored]) { PlayerInfo[playerid][AdminColored] = true; SetPlayerColor(playerid,AdminColor); WriteEcho("You are now marked with special color",playerid); } else { PlayerInfo[playerid][AdminColored] = false; #if defined Teams if (PlayerInfo[playerid][Team] > -1) SetPlayerColor(playerid,TeamInfo[PlayerInfo[playerid][Team]][TeamColor]); else #endif SetPlayerColor(playerid,DefaultPlayerColors[playerid]); WriteEcho("You are no longer marked with special color",playerid); } return 1;}dcmd_announce(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /announce <duration> <text>",playerid,HelpMsgColor); return 1; } new str[MAX_STRING],duration = strval(tmp); if (duration < 1) { format(str,sizeof(str),"You cannot announce for that duration (%d)",duration); WriteEcho(str,playerid,ErrorMsgColor); return 1; } new tmp2[MAX_STRING]; strmid(tmp2,params,strlen(tmp)+1,strlen(params)); if (!strlen(tmp2)) { WriteEcho("Syntax: /announce <duration> <text>",playerid,HelpMsgColor); return 1; } GameTextForAll(tmp2,duration*1000,5); format(str,sizeof(str),"%s (id: %d) announced for %d seconds: %s",PlayerInfo[playerid][Name],playerid,duration,tmp2); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid) WriteEcho(str,i,AdminChatColor); return 1;}dcmd_mute(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /mute <playerid> <duration> <reason>",playerid,HelpMsgColor); return 1; } new targetid = strval(tmp); if (targetid == playerid) { WriteEcho("You cannot mute yourself",playerid,ErrorMsgColor); return 1; } new str[MAX_STRING]; if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot mute offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } if (IsPlayerAdmin(targetid) || PlayerInfo[targetid][Admin] >= PlayerInfo[playerid][Admin]) { format(str,sizeof(str),"You cannot mute admins (%s (id: %d))",PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } new tmp2[MAX_STRING]; tmp2 = strtok(params,idx); if (!strlen(tmp2)) { WriteEcho("Syntax: /mute <playerid> <duration> <reason>",playerid,HelpMsgColor); return 1; } new duration = strval(tmp2); if (duration < 1) { format(str,sizeof(str),"You cannot mute for such duration (%d)",duration); WriteEcho(str,playerid,ErrorMsgColor); return 1; } new tmp3[MAX_STRING]; strmid(tmp3,params,strlen(tmp)+strlen(tmp2)+2,strlen(params)); if (!strlen(tmp3)) { WriteEcho("Syntax: /mute <playerid> <duration> <reason>",playerid,HelpMsgColor); return 1; } format(str,sizeof(str),"%s (id: %d) muted by %s (id: %d) for %d minutes: %s",PlayerInfo[targetid][Name],targetid,PlayerInfo[playerid][Name],playerid,duration,tmp3); WriteToLog(str); #if defined MutesLog WriteToLog(str,MutesLog); #endif #if defined AdminsLog WriteToLog(str,AdminsLog); #endif WriteEcho(str,INVALID_PLAYER_ID,MuteMsgColor); PlayerInfo[targetid][Mute] = duration; PlayerInfo[targetid][MuteTimer] = SetTimerEx("UnMutePlayerT",duration*60000,0,"i",targetid); return 1;}dcmd_unmute(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /unmute <playerid>",playerid,HelpMsgColor); return 1; } new str[MAX_STRING],targetid = strval(tmp); if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot unmute offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } format(str,sizeof(str),"%s (id: %d) unmuted by %s (id: %d)",PlayerInfo[targetid][Name],targetid,PlayerInfo[playerid][Name],playerid); WriteToLog(str); #if defined MutesLog WriteToLog(str,MutesLog); #endif #if defined AdminsLog WriteToLog(str,AdminsLog); #endif WriteEcho(str,INVALID_PLAYER_ID,MuteMsgColor); PlayerInfo[targetid][Mute] = 0; KillTimer(PlayerInfo[targetid][MuteTimer]); return 1;}dcmd_kick(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /kick <playerid> <reason>",playerid,HelpMsgColor); return 1; } new targetid = strval(tmp); if (targetid == playerid) { WriteEcho("You cannot kick yourself",playerid,ErrorMsgColor); return 1; } new str[MAX_STRING]; if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot kick offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } if (IsPlayerAdmin(targetid) || PlayerInfo[targetid][Admin] >= PlayerInfo[playerid][Admin]) { format(str,sizeof(str),"You cannot kick admins (%s (id: %d))",PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } new tmp2[MAX_STRING]; strmid(tmp2,params,strlen(tmp)+1,strlen(params)); if (!strlen(tmp2)) { WriteEcho("Syntax: /kick <playerid> <reason>",playerid,HelpMsgColor); return 1; } format(str,sizeof(str),"%s (id: %d) kicked by %s (id: %d): %s",PlayerInfo[targetid][Name],targetid,PlayerInfo[playerid][Name],playerid,tmp2); WriteToLog(str); #if defined KicksFile WriteToLog(str,KicksFile); #endif #if defined AdminsLog WriteToLog(str,AdminsLog); #endif WriteEcho(str,INVALID_PLAYER_ID,KickMsgColor); Kick(targetid); return 1;}dcmd_ban(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /ban <playerid> <reason>",playerid,HelpMsgColor); return 1; } new targetid = strval(tmp); if (targetid == playerid) { WriteEcho("You cannot ban yourself",playerid,ErrorMsgColor); return 1; } new str[MAX_STRING]; if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot ban offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } if (IsPlayerAdmin(targetid) || PlayerInfo[targetid][Admin] >= PlayerInfo[playerid][Admin]) { format(str,sizeof(str),"You cannot ban admins (%s (id: %d))",PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } new tmp2[MAX_STRING]; strmid(tmp2,params,strlen(tmp)+1,strlen(params)); if (!strlen(tmp2)) { WriteEcho("Syntax: /ban <playerid> <reason>",playerid,HelpMsgColor); return 1; } format(str,sizeof(str),"%s (id: %d) banned by %s (id: %d): %s",PlayerInfo[targetid][Name],targetid,PlayerInfo[playerid][Name],playerid,tmp2); WriteToLog(str); #if defined BansLog WriteToLog(str,BansLog); #endif #if defined AdminsLog WriteToLog(str,AdminsLog); #endif WriteEcho(str,INVALID_PLAYER_ID,KickMsgColor); Ban(targetid); return 1;}dcmd_outcar(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /outcar <playerid>",playerid,HelpMsgColor); return 1; } new str[MAX_STRING],targetid = strval(tmp); if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot throw from car offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } /*if (IsPlayerAdmin(targetid) || PlayerInfo[targetid][Admin] >= PlayerInfo[playerid][Admin]) { format(str,sizeof(str),"You cannot throw from car admins (%s (id: %d))",PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; }*/ RemovePlayerFromVehicle(targetid); format(str,sizeof(str),"%s (id: %d) thrown %s (id: %d) from car",PlayerInfo[playerid][Name],playerid,PlayerInfo[targetid][Name],targetid); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid && i != targetid) WriteEcho(str,i,AdminChatColor); format(str,sizeof(str),"You thrown %s (id: %d) from car",PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid); format(str,sizeof(str),"You thrown from car by %s (id: %d)",PlayerInfo[playerid][Name],playerid); WriteEcho(str,targetid); return 1;}dcmd_disarm(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /disarm <playerid>",playerid,HelpMsgColor); return 1; } new str[MAX_STRING],targetid = strval(tmp); if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot disarm offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } if (IsPlayerAdmin(targetid) || PlayerInfo[targetid][Admin] >= PlayerInfo[playerid][Admin]) { format(str,sizeof(str),"You cannot disarm admins (%s (id: %d))",PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } ResetPlayerWeapons(targetid); format(str,sizeof(str),"%s (id: %d) disarmed %s (id: %d)",PlayerInfo[playerid][Name],playerid,PlayerInfo[targetid][Name],targetid); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid && i != targetid) WriteEcho(str,i,AdminChatColor); format(str,sizeof(str),"You disarmed %s (id: %d)",PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid); format(str,sizeof(str),"You disarmed by %s (id: %d)",PlayerInfo[playerid][Name],playerid); WriteEcho(str,targetid); return 1;}dcmd_freeze(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /freeze <playerid>",playerid,HelpMsgColor); return 1; } new targetid = strval(tmp); /*if (targetid == playerid) { WriteEcho("You cannot freeze yourself",playerid,ErrorMsgColor); return 1; }*/ new str[MAX_STRING]; if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot freeze offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } /*if (IsPlayerAdmin(targetid) || PlayerInfo[targetid][Admin] >= PlayerInfo[playerid][Admin]) { format(str,sizeof(str),"You cannot freeze admins (%s (id: %d))",PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; }*/ TogglePlayerControllable(targetid,0); format(str,sizeof(str),"%s (id: %d) froze %s (id: %d)",PlayerInfo[playerid][Name],playerid,PlayerInfo[targetid][Name],targetid); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif WriteEcho(str,INVALID_PLAYER_ID,FreezeMsgColor); return 1;}dcmd_unfreeze(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /unfreeze <playerid>",playerid,HelpMsgColor); return 1; } new str[MAX_STRING],targetid = strval(tmp); if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot unfreeze offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } TogglePlayerControllable(targetid,1); format(str,sizeof(str),"%s (id: %d) unfroze %s (id: %d)",PlayerInfo[playerid][Name],playerid,PlayerInfo[targetid][Name],targetid); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif WriteEcho(str,INVALID_PLAYER_ID,FreezeMsgColor); return 1;}dcmd_locations(playerid,params[]) { #pragma unused params WriteEcho("Available teleport locations:",playerid); WriteEcho("Los Santos: 0) Groove Street; 1) Airport; 2) Highest Building; 3) Lighthouse;",playerid,HelpMsgColor); WriteEcho("San-Fierro: 4) Doherty; 5) Airport; 6) Highest Building; 7) Golden Gate;",playerid,HelpMsgColor); WriteEcho("Las Venturas: 8) Four Dragons; 9) Airport; 10) Highest Building;",playerid,HelpMsgColor); WriteEcho("Other: 11) Mountain Chilliad; 12) Abandoned Airstrip; 13) Area 69 Military Base",playerid,HelpMsgColor); return 1;}#define Locations 14enum LocationInfos { LocationName[24], Float:LocationX, Float:LocationY, Float:LocationZ}new LocationInfo[Locations][LocationInfos] = { {"LS Groove Street",2492.9375,-1670.4402,13.3359}, {"LS Airport",1925.1957,-2426.8733,13.5391}, {"LS Highest Building",1556.2386,-1357.8395,329.4544}, {"LS Lighthouse",154.0820,-1938.4050,3.7734}, {"SF Doherty",-2026.0696,175.2042,28.8359}, {"SF Airport",-1281.1655,-166.1917,14.1484}, {"SF Highest Building",-1753.8291,885.4835,295.8750}, {"SF Golden Gate",-2678.8230,1595.1827,217.2739}, {"LV Four Dragons",2030.2551,1007.9247,10.8203}, {"LV Airport",1525.6610,1594.5865,10.8203}, {"LV Highest Building",2057.1145,2435.5623,165.6172}, {"Mountain Chilliad",-2321.2866,-1637.9414,483.7031}, {"Abandoned Airstrip",324.9738,2520.6030,16.6942}, {"Area 69 Military Base",213.6413,1904.4032,17.6406}};dcmd_teleport(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /teleport <locationid> [playerid]",playerid,HelpMsgColor); return 1; } new str[MAX_STRING],location = strval(tmp); if (location < 0 || Locations <= location) { format(str,sizeof(str),"You cannot teleport to that location (%d)",location); WriteEcho(str,playerid,ErrorMsgColor); return 1; } new tmp2[MAX_STRING],targetid; tmp2 = strtok(params,idx); if (!strlen(tmp2)) targetid = playerid; else targetid = strval(tmp2); if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot teleport offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } if (!IsPlayerInAnyVehicle(targetid)) { SetPlayerInterior(targetid,0); SetPlayerPos(targetid,LocationInfo[location][LocationX],LocationInfo[location][LocationY],LocationInfo[location][LocationZ]); } else SetVehiclePos(GetPlayerVehicleID(targetid),LocationInfo[location][LocationX],LocationInfo[location][LocationY],LocationInfo[location][LocationZ]); if (targetid == playerid) { format(str,sizeof(str),"%s (id: %d) teleported to location %s (id: %d)",PlayerInfo[playerid][Name],playerid,LocationInfo[location][LocationName],location); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid) WriteEcho(str,i,AdminChatColor); format(str,sizeof(str),"You teleported to %s (id: %d)",LocationInfo[location][LocationName],location); WriteEcho(str,playerid); } else { format(str,sizeof(str),"%s (id: %d) teleported %s (id: %d) to location %s (id: %d)",PlayerInfo[playerid][Name],playerid,PlayerInfo[targetid][Name],targetid,LocationInfo[location][LocationName],location); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid && i != targetid) WriteEcho(str,i,AdminChatColor); format(str,sizeof(str),"You teleported %s (id: %d) to %s (id: %d)",PlayerInfo[targetid][Name],targetid,LocationInfo[location][LocationName],location); WriteEcho(str,playerid); format(str,sizeof(str),"You teleported by %s (id: %d) to %s (id: %d)",PlayerInfo[playerid][Name],playerid,LocationInfo[location][LocationName],location); WriteEcho(str,targetid); } return 1;}dcmd_goto(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /goto <playerid>",playerid,HelpMsgColor); return 1; } new targetid = strval(tmp); if (targetid == playerid) { WriteEcho("You cannot teleport to yourself",playerid,ErrorMsgColor); return 1; } new str[MAX_STRING]; if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot teleport to offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } new Float:x,Float:y,Float:z; GetPlayerPos(targetid,x,y,z); if (!IsPlayerInAnyVehicle(playerid)) { SetPlayerInterior(playerid,0); SetPlayerPos(playerid,x,y,z); } else SetVehiclePos(GetPlayerVehicleID(playerid),x,y,z); format(str,sizeof(str),"%s (id: %d) teleported to player %s (id: %d)",PlayerInfo[playerid][Name],playerid,PlayerInfo[targetid][Name],targetid); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid) WriteEcho(str,i,AdminChatColor); format(str,sizeof(str),"You teleported to %s (id: %d)",PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid); return 1;}dcmd_gethere(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /gethere <playerid>",playerid,HelpMsgColor); return 1; } new targetid = strval(tmp); if (targetid == playerid) { WriteEcho("You cannot teleport yourself to yourself",playerid,ErrorMsgColor); return 1; } new str[MAX_STRING]; if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot teleport offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } new Float:x,Float:y,Float:z; GetPlayerPos(playerid,x,y,z); if (!IsPlayerInAnyVehicle(targetid)) { SetPlayerInterior(targetid,0); SetPlayerPos(targetid,x,y,z); } else SetVehiclePos(GetPlayerVehicleID(targetid),x,y,z); format(str,sizeof(str),"%s (id: %d) teleported player %s (id: %d) to him",PlayerInfo[playerid][Name],playerid,PlayerInfo[targetid][Name],targetid); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid) WriteEcho(str,i,AdminChatColor); format(str,sizeof(str),"You teleported %s (id: %d) to yourself",PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid); return 1;}dcmd_tocar(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /tocar <vehicleid>",playerid,HelpMsgColor); return 1; } new str[MAX_STRING],vehicleid = strval(tmp); if (vehicleid < 1 || Vehicles < vehicleid) { format(str,sizeof(str),"You cannot teleport to that vehicle (%d)",vehicleid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } new Float:x,Float:y,Float:z; GetVehiclePos(vehicleid,x,y,z); if (!IsPlayerInAnyVehicle(playerid)) { SetPlayerInterior(playerid,0); SetPlayerPos(playerid,x+3,y+3,z); } else SetVehiclePos(GetPlayerVehicleID(playerid),x+3,y+3,z); format(str,sizeof(str),"%s (id: %d) teleported to vehicle (id: %d)",PlayerInfo[playerid][Name],playerid,vehicleid); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid) WriteEcho(str,i,AdminChatColor); format(str,sizeof(str),"You teleported vehicle (id: %d)",vehicleid); WriteEcho(str,playerid); return 1;}dcmd_givemoney(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /givemoney <playerid> <amount>",playerid,HelpMsgColor); return 1; } new str[MAX_STRING],targetid = strval(tmp); if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot give money to offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } new tmp2[MAX_STRING]; tmp2 = strtok(params,idx); if (!strlen(tmp2)) { WriteEcho("Syntax: /givemoney <playerid> <amount>",playerid,HelpMsgColor); return 1; } new amount = strval(tmp2); GiveMoney(targetid,amount); format(str,sizeof(str),"%s (id: %d) gave $%d to %s (id: %d)",PlayerInfo[playerid][Name],playerid,amount,PlayerInfo[targetid][Name],targetid); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid && i != targetid) WriteEcho(str,i,AdminChatColor); format(str,sizeof(str),"You gave $%d to %s (id: %d)",amount,PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid); format(str,sizeof(str),"You received $%d from %s (id: %d)",amount,PlayerInfo[playerid][Name],playerid); WriteEcho(str,targetid); return 1;}dcmd_setmoney(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /setmoney <playerid> <amount>",playerid,HelpMsgColor); return 1; } new str[MAX_STRING],targetid = strval(tmp); if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot set money to offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } new tmp2[MAX_STRING]; tmp2 = strtok(params,idx); if (!strlen(tmp2)) { WriteEcho("Syntax: /setmoney <playerid> <amount>",playerid,HelpMsgColor); return 1; } new amount = strval(tmp2); GiveMoney(targetid,-GetPlayerMoney(targetid)+amount); format(str,sizeof(str),"%s (id: %d) set money of %s (id: %d) to $%d",PlayerInfo[playerid][Name],playerid,PlayerInfo[targetid][Name],targetid,amount); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid && i != targetid) WriteEcho(str,i,AdminChatColor); format(str,sizeof(str),"You set money of %s (id: %d) to $%d",PlayerInfo[targetid][Name],targetid,amount); WriteEcho(str,playerid); format(str,sizeof(str),"%s (id: %d) set your money to $%d",PlayerInfo[playerid][Name],playerid,amount); WriteEcho(str,targetid); return 1;}dcmd_weaponids(playerid,params[]) { #pragma unused params WriteEcho("2) Golf Club; 3) Nitestick; 4) Knife; 5)Baseball Bat; 6) Shovel; 7) Pool Cue;",playerid,HelpMsgColor); WriteEcho("8) Katana; 9) Chainsaw; 10) Purple Dildo; 11) White Dildo; 12) Long Vibrator; 13) Vibrator;",playerid,HelpMsgColor); WriteEcho("14) Flowers; 15) Cane; 22) Pistol; 23) Silenced Pistol; 24) Desert Eagle;",playerid,HelpMsgColor); WriteEcho("25) Shotgun; 26) Sawnoff Shotgun; 27) Spas 12; 28) Micro Uzi; 29) MP5;",playerid,HelpMsgColor); WriteEcho("30) AK-47; 31) M4; 32) Tec-9; 33) Rifle; 37) Flamethrower; 38) Minigun;",playerid,HelpMsgColor); WriteEcho("39) Satchel; 40) Detonator; 41) Spray Can; 42) Fire Extinguisher; 43) Camera; 46) Parachute",playerid,HelpMsgColor); return 1;}dcmd_giveweapon(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /giveweapon <playerid> <weaponid> <ammo>",playerid,HelpMsgColor); return 1; } new str[MAX_STRING],targetid = strval(tmp); if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot give weapon to offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } new tmp2[MAX_STRING]; tmp2 = strtok(params,idx); if (!strlen(tmp2)) { WriteEcho("Syntax: /giveweapon <playerid> <weaponid> <ammo>",playerid,HelpMsgColor); return 1; } new weaponid = strval(tmp2); if (weaponid < 2 || 15 < weaponid < 22 || 33 < weaponid < 37 || 43 < weaponid < 46) { format(str,sizeof(str),"You cannot give that weapon (%d)",weaponid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } new tmp3[MAX_STRING]; tmp3 = strtok(params,idx); if (!strlen(tmp3)) { WriteEcho("Syntax: /giveweapon <playerid> <weaponid> <ammo>",playerid,HelpMsgColor); return 1; } new ammo = strval(tmp3); if (ammo < 0) { format(str,sizeof(str),"You cannot give that ammo (%d)",ammo); WriteEcho(str,playerid,ErrorMsgColor); return 1; } GivePlayerWeapon(targetid,weaponid,ammo); format(str,sizeof(str),"%s (id: %d) gave weapon %s (id: %d) (ammo: %d) to %s (id: %d)",PlayerInfo[playerid][Name],playerid,WeaponNames[weaponid],weaponid,PlayerInfo[targetid][Name],ammo,targetid); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid && i != targetid) WriteEcho(str,i,AdminChatColor); format(str,sizeof(str),"You gave weapon %s (id: %d) (ammo: %d) to %s (id: %d)",WeaponNames[weaponid],weaponid,ammo,PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid); format(str,sizeof(str),"%s (id: %d) gave you weapon %s (id: %d) (ammo: %d)",PlayerInfo[playerid][Name],playerid,WeaponNames[weaponid],weaponid,ammo); WriteEcho(str,targetid); return 1;}dcmd_hearall(playerid,params[]) { #pragma unused params if (!PlayerInfo[playerid][HearAll]) { PlayerInfo[playerid][HearAll] = true; WriteEcho("You can see all private messages and team chats now",playerid); } else { PlayerInfo[playerid][HearAll] = false; WriteEcho("You will not see other private messages and team chats anymore",playerid); } return 1;}dcmd_settime(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /worldtime <time>",playerid,HelpMsgColor); return 1; } new str[MAX_STRING],worldtime = strval(tmp); if (worldtime < 0 || 24 <= worldtime) { format(str,sizeof(str),"You cannot set that time (%d)",worldtime); WriteEcho(str,playerid,ErrorMsgColor); return 1; } #if defined TimeCycle WorldTime = worldtime; #endif SetWorldTime(worldtime); format(str,sizeof(str),"%s (id %d) changed time to %d:00",PlayerInfo[playerid][Name],playerid,worldtime); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid) WriteEcho(str,i,AdminChatColor); format(str,sizeof(str),"You changed game time to %d:00",worldtime); WriteEcho(str,playerid); return 1;}dcmd_rape(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /rape <playerid>",playerid,HelpMsgColor); return 1; } new str[MAX_STRING],targetid = strval(tmp); if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot rape offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } if (IsPlayerAdmin(targetid) || PlayerInfo[targetid][Admin] >= PlayerInfo[playerid][Admin]) { format(str,sizeof(str),"You cannot rape admins (%s (id: %d))",PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } SetPlayerHealth(targetid,0); format(str,sizeof(str),"%s (id: %d) raped %s (id: %d)",PlayerInfo[playerid][Name],playerid,PlayerInfo[targetid][Name],targetid); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid) WriteEcho(str,i,AdminChatColor); format(str,sizeof(str),"You raped %s (id: %d)",PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid); return 1;}dcmd_heal(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /heal <playerid>",playerid,HelpMsgColor); return 1; } new str[MAX_STRING],targetid = strval(tmp); if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot heal offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } SetPlayerHealth(targetid,100); format(str,sizeof(str),"%s (id: %d) healed %s (id: %d)",PlayerInfo[playerid][Name],playerid,PlayerInfo[targetid][Name],targetid); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid && i != targetid) WriteEcho(str,i,AdminChatColor); format(str,sizeof(str),"You healed %s (id: %d)",PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid); format(str,sizeof(str),"You healed by %s (id: %d)",PlayerInfo[playerid][Name],playerid); WriteEcho(str,targetid); return 1;}dcmd_godmode(playerid,params[]) { new tmp[MAX_STRING],idx; tmp = strtok(params,idx); if (!strlen(tmp)) { WriteEcho("Syntax: /godmode <playerid>",playerid,HelpMsgColor); return 1; } new str[MAX_STRING],targetid = strval(tmp); if (!IsPlayerConnected(targetid)) { format(str,sizeof(str),"You cannot make invincible offline players (%d)",targetid); WriteEcho(str,playerid,ErrorMsgColor); return 1; } SetPlayerHealth(targetid,100000); format(str,sizeof(str),"%s (id: %d) made %s (id: %d) invincible",PlayerInfo[playerid][Name],playerid,PlayerInfo[targetid][Name],targetid); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid && i != targetid) WriteEcho(str,i,AdminChatColor); format(str,sizeof(str),"%s (id: %d) is now invincible",PlayerInfo[targetid][Name],targetid); WriteEcho(str,playerid); format(str,sizeof(str),"%s (id: %d) made you invincible",PlayerInfo[playerid][Name],playerid); WriteEcho(str,targetid); return 1;}dcmd_globalsave(playerid,params[]) { #pragma unused params new str[MAX_STRING]; format(str,sizeof(str),"%s (id %d) called global save",PlayerInfo[playerid][Name],playerid); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid) WriteEcho(str,i,AdminChatColor); SaveAllPlayers(); WriteEcho("Global save done",playerid); return 1;}dcmd_gamemodeexit(playerid,params[]) { #pragma unused params new str[MAX_STRING]; format(str,sizeof(str),"%s (id %d) called gamemode exit",PlayerInfo[playerid][Name],playerid); WriteToLog(str); #if defined AdminsLog WriteToLog(str,AdminsLog); #endif for (new i=0;i<MAX_PLAYERS;i++) if (IsPlayerConnected(i) && (IsPlayerAdmin(i) || PlayerInfo[i][Admin] > 0) && i != playerid) WriteEcho(str,i,AdminChatColor); WriteEcho("Gamemode exiting...",playerid); GameModeExit(); return 1;}public OnPlayerCommandText(playerid,cmdtext[]) { if (!IsPlayerConnected(playerid)) return 0; if (strlen(cmdtext) > 64) { KickPlayer(playerid,"Crash attack"); return 0; } #if defined FloodInterval && defined FloodLines if (!IsPlayerAdmin(playerid) && PlayerInfo[playerid][Admin] < AdminLevelToIgnorePunishment) { PlayerInfo[playerid][Messages]++; if (PlayerInfo[playerid][Messages] > FloodLines) { PlayerInfo[playerid][Messages] = 0; KickPlayer(playerid,"Stop flooding"); return 0; } } #endif FixChars(cmdtext); #if defined CommandsLog new str[MAX_STRING]; format(str,sizeof(str),"%s (id: %d) typed command %s",PlayerInfo[playerid][Name],playerid,cmdtext); WriteToLog(str,CommandsLog); delete str; #endif dcmd(help,4,cmdtext); dcmd(h,1,cmdtext); dcmd(commands,8,cmdtext); dcmd(c,1,cmdtext); dcmd(register,8,cmdtext); dcmd(login,5,cmdtext); dcmd(l,1,cmdtext); dcmd(stats,5,cmdtext); dcmd(s,1,cmdtext); dcmd(query,5,cmdtext); dcmd(q,1,cmdtext); dcmd(ignore,6,cmdtext); if (dini_Exists(PlayerFile(PlayerInfo[playerid][Name])) && !PlayerInfo[playerid][Logged]) { WriteEcho("You must be logged in to use commands",playerid,ErrorMsgColor); WriteEcho("Identify yourself using /login command",playerid,ErrorMsgColor); return 1; } dcmd(changepassword,14,cmdtext); dcmd(weaponlist,10,cmdtext); dcmd(w,1,cmdtext); dcmd(buy,3,cmdtext); dcmd(b,1,cmdtext); dcmd(k,1,cmdtext); dcmd(send,4,cmdtext); dcmd(report,6,cmdtext); dcmd(countdown,9,cmdtext); if (IsPlayerAdmin(playerid)) PlayerInfo[playerid][Admin] = 10; if (dini_Exists(AdminsFile)) dcmd(alogin,6,cmdtext); if (PlayerInfo[playerid][Admin] > 0) { dcmd(ahelp,5,cmdtext); dcmd(acolor,6,cmdtext); dcmd(announce,8,cmdtext); dcmd(mute,4,cmdtext); dcmd(unmute,6,cmdtext); } if (PlayerInfo[playerid][Admin] > 1) { dcmd(kick,4,cmdtext); dcmd(ban,3,cmdtext); } if (PlayerInfo[playerid][Admin] > 2) { dcmd(outcar,6,cmdtext); dcmd(disarm,6,cmdtext); dcmd(freeze,6,cmdtext); dcmd(unfreeze,8,cmdtext); } if (PlayerInfo[playerid][Admin] > 3) { dcmd(locations,9,cmdtext); dcmd(teleport,8,cmdtext); dcmd(goto,4,cmdtext); dcmd(gethere,7,cmdtext); dcmd(tocar,5,cmdtext); } if (PlayerInfo[playerid][Admin] > 4) { dcmd(givemoney,9,cmdtext); dcmd(setmoney,8,cmdtext); } if (PlayerInfo[playerid][Admin] > 5) { dcmd(weaponids,9,cmdtext); dcmd(giveweapon,10,cmdtext); } if (PlayerInfo[playerid][Admin] > 6) { dcmd(hearall,7,cmdtext); dcmd(settime,7,cmdtext); } if (PlayerInfo[playerid][Admin] > 7) { dcmd(rape,4,cmdtext); dcmd(heal,4,cmdtext); dcmd(godmode,7,cmdtext); } if (PlayerInfo[playerid][Admin] > 8) { dcmd(globalsave,10,cmdtext); dcmd(gamemodeexit,12,cmdtext); } new str[MAX_STRING],cmd[MAX_STRING],idx; cmd = strtok(cmdtext,idx); format(str,sizeof(str),"There is no such command (%s)",cmd); WriteEcho(str,playerid,ErrorMsgColor); return 1;}