Oblivion_UFF

event

Oct 17th, 2018
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.64 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3. #include <sscanf2>
  4. #include <streamer>
  5.  
  6. #define COLOR_RED 0xFF0000FF
  7. #define COLOR_GREEN 0x73FF00FF
  8. #define COLOR_LIGHTBLUE 0x33CCFFAA
  9. #define COLOR_ORANGE 0xFF9900AA
  10. #define yellow "{FFFF00}"
  11. #define white "{FFFFFF}"
  12. #define purple "{AAAAFF}"
  13.  
  14. new ename[128], prize, weapon, ammo, killer[MAX_PLAYERS], player[MAX_PLAYERS], gstring[128];
  15. new joinable=0;
  16. new locked=0;
  17. new joined[MAX_PLAYERS]=0;
  18. new targetid;
  19.  
  20. new vehName[][] =
  21. {
  22. "Landstalker","Bravura","Buffalo","Linerunner","Perennial","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus",
  23. "Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection",
  24. "Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie",
  25. "Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder",
  26. "Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider",
  27. "Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina",
  28. "Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood",
  29. "Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring Racer A","Hotring Racer B",
  30. "Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain",
  31. "Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
  32. "Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover",
  33. "Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A",
  34. "Monster B","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer",
  35. "Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer A","Emperor",
  36. "Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)",
  37. "Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B",
  38. "Stair Trailer","Boxville","Farm Plow","Utility Trailer"
  39. };
  40.  
  41.  
  42. public OnFilterScriptInit()
  43. {
  44. print("\n--------------------------------------");
  45. print(" SEF's event system by Victor ");
  46. print("--------------------------------------\n");
  47.  
  48. CreateDynamicObjects();
  49. joinable=0;
  50. locked=0;
  51. return 1;
  52. }
  53.  
  54.  
  55. public OnFilterScriptExit()
  56. {
  57. return 1;
  58. }
  59.  
  60. public OnPlayerConnect(playerid)
  61. {
  62. joined[playerid]=0;
  63. return 1;
  64. }
  65. public OnPlayerDeath(playerid, killerid, reason)
  66. {
  67. if(killerid != INVALID_PLAYER_ID)
  68. {
  69. if(joined[playerid] == 1)
  70. {
  71. joined[playerid] = 0;
  72. SetPlayerVirtualWorld(playerid, 0);
  73. SpawnPlayer(playerid);
  74. ResetPlayerWeapons(playerid);
  75. GameTextForPlayer(playerid, "~y~~h~ You have been eleminated!", 4000, 3);
  76. new gunname[32];
  77. GetWeaponName(reason,gunname,sizeof(gunname));
  78. GetPlayerName(killerid,killer,sizeof(killer));
  79. GetPlayerName(playerid,player,sizeof(player));
  80. format(gstring,sizeof(gstring),"{F0F0F0}[{FF000F}EVENT{F0F0F0}]{15D4ED} Player %s has eliminated %s with %s weapon",killer , player,gunname);
  81. SendClientMessage(killerid, -1 ,gstring);
  82. }
  83. }
  84. return 1;
  85. }
  86.  
  87. public OnPlayerSpawn(playerid)
  88. {
  89. return 1;
  90. }
  91.  
  92. CMD:startevent(playerid,params[])
  93. {
  94. new string[128]; new sstring[128];
  95. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,COLOR_RED,"Insufficient permissions");
  96. if(joinable ==1) return SendClientMessage(playerid,COLOR_RED,"[INFO] You can't start an event now! Someone else already did.");
  97. if(sscanf(params,"s[128]iiiiii",ename,prize,weapon,ammo))
  98. return SendClientMessage(playerid,COLOR_GREEN," USAGE: /startevent <event name> <prize> <weapon> <Ammo> ");
  99. if(weapon < 0 || weapon > 40) return SendClientMessage(playerid,COLOR_ORANGE,"What do you expect, a stick? Use weapon IDs within 0-40!");
  100.  
  101. format(string,128,""white"["purple"EVENT"white"] %s event has been started! Type /join to participate",ename);
  102. SendClientMessageToAll(COLOR_LIGHTBLUE,string);
  103. GameTextForAll(sstring,5000,5);
  104. joinable = 1;
  105. return 1;
  106. }
  107. CMD:join(playerid,params[])
  108. {
  109. new s[128];
  110. if(joinable == 0) return GameTextForPlayer(playerid, "~y~No event active!", 4000, 3);
  111.  
  112. if(locked==1)
  113. {
  114. format(s ,128,"[INFO] The event is currently locked by an administrator.",ename);
  115. SendClientMessage(playerid,COLOR_RED, s);
  116. return 1;
  117. }
  118.  
  119. if(joined[playerid]== 1) return SendClientMessage(playerid,COLOR_RED,"[INFO] You already joined the event, use /eleave to exit the event");
  120.  
  121. switch(random(8))
  122. {
  123. case 0: SetPlayerPos(playerid, 2324.5908,-799.2270,1014.8700);
  124. case 1: SetPlayerPos(playerid, 2330.6860,-809.7917,1014.8700);
  125. case 2: SetPlayerPos(playerid, 2308.7371,-818.5366,1014.8700);
  126. case 3: SetPlayerPos(playerid, 2301.8184,-809.3875,1014.8700);
  127. case 4: SetPlayerPos(playerid, 2299.6006,-793.0315,1014.8700);
  128. case 5: SetPlayerPos(playerid, 2314.1455,-784.6097,1014.8700);
  129. case 6: SetPlayerPos(playerid, 2332.6428,-786.8866,1014.8700);
  130. case 7: SetPlayerPos(playerid, 2339.7717,-798.5613,1014.8700);
  131. }
  132. ShowPlayerDialog(playerid, DIALOG_STYLE_MSGBOX, DIALOG_STYLE_MSGBOX, ""yellow"SEF "white":: Event", ""white"Welcome to event world!\n{FF0000}Please follow all staff instructions or you will be removed!\n"white"Use /echat to talk to everyone in the event!", "OK", "");
  133. ResetPlayerWeapons(playerid);
  134. GivePlayerWeapon(playerid, weapon, ammo);
  135. SetPlayerVirtualWorld(playerid, 15);
  136. joined[playerid]= 1;
  137. return 1;
  138. }
  139. CMD:eventwinner(playerid,params[])
  140. {
  141. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,COLOR_RED,"insufficient permissions");
  142. if(joinable==0) return GameTextForPlayer(playerid, "~y~no event active!", 4000, 3);
  143. if(sscanf(params,"u",targetid)) return SendClientMessage(playerid,COLOR_GREEN,"Usage: /eventwin <playerid/nick>");
  144. if(targetid==INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,"[ERROR] Player not connected!");
  145. if(joined[targetid]== 0) return SendClientMessage(playerid,COLOR_RED,"[INFO] You can't give the reward to a person who never joined the event!");
  146.  
  147. new pname[MAX_PLAYER_NAME];
  148. GetPlayerName(targetid,pname,MAX_PLAYER_NAME);
  149. new str[128];
  150. format(str,128,"{F0F0F0}[{FF000F}EVENT{F0F0F0}]{15D4ED} %s won the %s Event! {FFE600}Prize: $%d!",pname,ename,prize);
  151. SendClientMessageToAll(COLOR_GREEN,str);
  152. GameTextForPlayer(targetid, "~p~congratulations!~n~~w~you have won the event!", 4000, 3);
  153. SetPlayerPos(targetid, -1504.1189,1373.8723,3.7998);
  154. SetPlayerVirtualWorld(targetid, 0);
  155. ResetPlayerWeapons(targetid);
  156. GivePlayerMoney(targetid, prize);
  157. return 1;
  158. }
  159. CMD:elock(playerid,params[])
  160. {
  161. new i;
  162. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,COLOR_RED,"insufficient permissions");
  163. if(joinable==0) return GameTextForPlayer(playerid, "~y~no event active!", 4000, 3);
  164. if(sscanf(params,"i",i)) return SendClientMessage(playerid,COLOR_GREEN,"USAGE: /levent <0/1>");
  165. if(i< 0 || i > 1) return SendClientMessage(playerid,COLOR_GREEN,"USAGE: /levent <0/1>");
  166. locked = i;
  167. switch(i)
  168. {
  169. case 0: GameTextForPlayer(playerid, "~y~event:~n~~g~opened", 4000, 3);
  170. case 1: GameTextForPlayer(playerid, "~y~event:~n~~r~closed", 4000, 3);
  171. }
  172. return 1;
  173. }
  174. CMD:eleave(playerid)
  175. {
  176. if(joined[playerid] == 0) return SendClientMessage(playerid,COLOR_RED,"[INFO] You need to be in event to use this command");
  177. joined[playerid] = 0;
  178. SetPlayerVirtualWorld(playerid, 0);
  179. SpawnPlayer(playerid);
  180. ResetPlayerWeapons(playerid);
  181. GameTextForPlayer(playerid, "~y~~h~ You have left the event", 4000, 3);
  182. return 1;
  183. }
  184.  
  185. CMD:evehicle(playerid, params[]) return cmd_eveh(playerid, params);
  186. CMD:eveh(playerid, params[])
  187. {
  188. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,COLOR_RED,"insufficient permissions");
  189.  
  190. if(joinable==0) return GameTextForPlayer(playerid, "~y~no event active!", 4000, 3);
  191.  
  192. new sVehicle[32], spawnModel;
  193. if(sscanf(params, "s[32]", sVehicle))
  194. {
  195. SendClientMessage(playerid,COLOR_GREEN, "/eveh <vehicle name/ID>");
  196. return 1;
  197. }
  198.  
  199. if(!IsNumeric(sVehicle))
  200. {
  201. spawnModel = GetVehicleModelIDFromName(sVehicle);
  202. }
  203. else spawnModel = strval(sVehicle);
  204.  
  205. if(spawnModel < 400 || spawnModel > 611)
  206. {
  207. return SendClientMessage(playerid,COLOR_RED, "You entered an invalid vehicle name!");
  208. }
  209. new Float:POS[3], Float:A;
  210. GetPlayerPos(playerid, POS[0], POS[1], POS[2]);
  211. new veh;
  212. veh = CreateVehicle(spawnModel, POS[0], POS[1], POS[2]+2, A, -1, -1, -1);
  213. SetVehicleVirtualWorld(veh, GetPlayerVirtualWorld(playerid));
  214. return 1;
  215. }
  216. CreateDynamicObjects()
  217. {
  218. CreateDynamicObject(3998, 2333.07935, -838.78949, 1000.62671, 0.00000, 0.00000, 0.00000);
  219. CreateDynamicObject(3998, 2307.48804, -838.78949, 1000.62671, 0.00000, 0.00000, 0.00000);
  220. CreateDynamicObject(3998, 2307.48804, -817.24768, 1000.62671, 0.00000, 0.00000, 0.00000);
  221. CreateDynamicObject(3998, 2307.48804, -795.79657, 1000.62671, 0.00000, 0.00000, 0.00000);
  222. CreateDynamicObject(3998, 2307.48804, -774.22021, 1000.62671, 0.00000, 0.00000, 0.00000);
  223. CreateDynamicObject(3998, 2333.07935, -817.24768, 1000.62671, 0.00000, 0.00000, 0.00000);
  224. CreateDynamicObject(3998, 2333.07935, -795.79657, 1000.62671, 0.00000, 0.00000, 0.00000);
  225. CreateDynamicObject(3998, 2333.07935, -774.22021, 1000.62671, 0.00000, 0.00000, 0.00000);
  226. CreateDynamicObject(3998, 2307.32788, -840.87219, 1000.62671, 0.00000, 0.00000, 180.00000);
  227. CreateDynamicObject(3998, 2332.94238, -840.87219, 1000.62671, 0.00000, 0.00000, 180.00000);
  228. CreateDynamicObject(3578, 2320.24365, -856.26172, 1013.09497, 0.00000, 0.00000, 90.00000);
  229. CreateDynamicObject(3578, 2320.24365, -845.97919, 1013.09497, 0.00000, 0.00000, 90.00000);
  230. CreateDynamicObject(3578, 2320.24365, -835.70203, 1013.09497, 0.00000, 0.00000, 90.00000);
  231. CreateDynamicObject(3578, 2320.24365, -758.84912, 1013.09497, 0.00000, 0.00000, 90.00000);
  232. CreateDynamicObject(3578, 2320.24365, -769.13281, 1013.09497, 0.00000, 0.00000, 90.00000);
  233. CreateDynamicObject(3578, 2320.24365, -779.41919, 1013.09497, 0.00000, 0.00000, 90.00000);
  234. CreateDynamicObject(4642, 2320.25220, -805.84778, 1012.18280, 0.00000, 0.00000, 0.00000);
  235. CreateDynamicObject(8843, 2320.45166, -805.85663, 1013.88330, 0.00000, 0.00000, 90.00000);
  236. CreateDynamicObject(8843, 2320.21826, -805.92047, 1013.88330, 0.00000, 0.00000, 0.00000);
  237. }
  238.  
  239. IsNumeric(const string[])
  240. {
  241. for(new i = 0, j = strlen(string); i < j; i++)
  242. {
  243. if (string[i] > '9' || string[i] < '0') return 0;
  244. }
  245. return 1;
  246. }
  247.  
  248. stock GetVehicleModelIDFromName(vname[])
  249. {
  250. for(new ii = 0; ii < 211; ii++)
  251. {
  252. if(strfind(vehName[ii], vname, true) != -1 )
  253. return ii + 400;
  254. }
  255. return -1;
  256. }
Add Comment
Please, Sign In to add comment