FamiliaSAMP

FILTERSCRIPT - Sistema de Evento v1.1 [FAMILIASAMP.COM]

Feb 19th, 2016
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.02 KB | None | 0 0
  1. #define FILTERSCRIPT
  2. #include <a_samp>
  3. #include <zcmd>
  4. #include <sscanf2>
  5. #include <Ldudb>
  6.  
  7.  
  8. public OnFilterScriptInit()
  9. {
  10. print("\n--------------------------------------");
  11. print("~'BlueSeas'['EventSystem']'");
  12. print("--------------------------------------\n");
  13. return 1;
  14. }
  15.  
  16. enum pInfo {
  17. pEventor,
  18. pE,
  19. };
  20. new PlayerInfo[MAX_PLAYERS][pInfo];
  21.  
  22. new eheadline[50];
  23. new ereward;
  24. new eweapx;
  25. new PlayerEventWatching[MAX_PLAYERS];
  26. new eammox;
  27. new eavailable=0;
  28. new sevent=0;
  29. new targetid;
  30. new bool:InEvent[MAX_PLAYERS];
  31. new PlayerParticipated[MAX_PLAYERS]=0;
  32.  
  33.  
  34.  
  35. #define COLOR_RED 0x0000BBAA
  36.  
  37.  
  38. public OnPlayerConnect(playerid)
  39. {
  40. InEvent[playerid] = 0;
  41. return 1;
  42. }
  43.  
  44.  
  45. public OnPlayerDeath(playerid, killerid, reason)
  46. {
  47. SetPlayerScore(killerid, GetPlayerScore(killerid)+1);
  48. SetPlayerScore(playerid, GetPlayerScore(killerid)-1);
  49. SetPlayerPos(playerid,-1662.9398,-163.1523,15.8525);
  50. ResetPlayerWeapons(playerid);
  51. SetPlayerVirtualWorld(playerid, 0);
  52. return 1;
  53. }
  54.  
  55. CMD:ewinner(playerid,params[])
  56. {
  57. if(PlayerInfo[playerid][pEventor])
  58. {
  59.  
  60. if(eavailable==0) return SendClientMessage(playerid,COLOR_RED,"[ServerBoT]:{FFFFFF}There's no event in the current time!");
  61. if(PlayerParticipated[targetid]==0) return SendClientMessage(playerid,COLOR_RED,"[ServerBoT]:{FFFFFF}This player you mentioned wasnt even in the event!");
  62. if(sscanf(params,"u",targetid)) return SendClientMessage(playerid,COLOR_RED,"[Context]:{FFFFFF} /ewinner [ID/PlayerName].");
  63. if(targetid==INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,"[ServerBoT]:{FFFFFF}There's no such player in the server! ");
  64. else
  65. {
  66. new a7a[MAX_PLAYER_NAME];
  67. GetPlayerName(playerid,a7a,MAX_PLAYER_NAME);
  68. new str[128];
  69. format(str,128,"[Event]{FFFFFF}'%s' has won the event '%s' and received $%d!",a7a,eheadline,ereward);
  70. SendClientMessageToAll(COLOR_RED,str);
  71. SendClientMessage(targetid,COLOR_RED,"[Event]{FFFFFF}Congratulations, you have earned your prize now, thanks for participating!");
  72. new string[64];
  73. format(string,64,"Congratulations!",eheadline);
  74. GameTextForPlayer(targetid,string,5,5000);
  75. GivePlayerMoney(targetid,ereward);
  76. eavailable=0;
  77. new st[128];
  78. format(st,128,"[Event]{FFFFFF}The event '%s' is ended!",eheadline);
  79. SendClientMessageToAll(COLOR_RED,st);
  80. SetPlayerPos(playerid,-1662.9398,-163.1523,15.8525);
  81. SetPlayerPos(targetid,-1662.9398,-163.1523,15.8525);
  82. ResetPlayerWeapons(playerid);
  83. ResetPlayerWeapons(targetid);
  84. SetPlayerInterior(playerid, 0);
  85. }
  86. }
  87. return 1;
  88. }
  89.  
  90.  
  91.  
  92.  
  93. forward CountDown(playerid, seconds);
  94. public CountDown(playerid, seconds)
  95. {
  96. new string[256];
  97. if(seconds > 0)
  98. {
  99. new Float:X, Float:Y, Float:Z;
  100. GetPlayerPos(playerid, X, Y, Z);
  101. PlayerPlaySound(playerid, 1056, X, Y, Z);
  102. format(string, sizeof(string), "~R~%d", seconds);
  103. GameTextForPlayer(playerid, string, 1000, 3);
  104. seconds = seconds -1;
  105. SetTimerEx("CountDown", 1000, 0, "ii", playerid, seconds);
  106. return 1;
  107. }
  108. if(seconds == 0)
  109. {
  110. new Float:X, Float:Y, Float:Z;
  111. GetPlayerPos(playerid, X, Y, Z);
  112. PlayerPlaySound(playerid, 1057, X, Y, Z);
  113. GameTextForPlayer(playerid, "~G~Start!!!", 1000, 3);
  114. TogglePlayerControllable(playerid, 1);
  115. return 1;
  116. }
  117. return 1;
  118. }
  119.  
  120. CMD:eannounce(playerid,params[])
  121. {
  122. if(PlayerInfo[playerid][pEventor])
  123. {
  124. new string[128];
  125. if(InEvent[playerid] == 1)
  126. {
  127. SendClientMessage(playerid,COLOR_RED,"[ServerBoT]{FFFFFF}Event has already started!");
  128. return 1;
  129. }
  130. if(eavailable==0) return SendClientMessage(playerid,COLOR_RED,"[ServerBoT]{FFFFFF}There's/'re no events running now!");
  131. else
  132. {
  133. format(string,128,"[Event]{FFFFFF}'%s' event is going to start! Try /ejoin to join the event and have fun [Reward is: '%d']",eheadline,ereward);
  134. SendClientMessageToAll(COLOR_RED,string);
  135. }
  136. }
  137. return 1;
  138. }
  139.  
  140.  
  141.  
  142. CMD:cevent(playerid,params[])
  143. {
  144. if(PlayerInfo[playerid][pEventor])
  145. {
  146. new string[128]; new sstring[128];
  147. if(eavailable==1) return SendClientMessage(playerid,COLOR_RED,"[ServerBoT]{FFFFFF}There is already an event running right now!");
  148. if(sscanf(params,"s[128]iiiiii",eheadline,eweapx,eammox,ereward))
  149. return SendClientMessage(playerid,COLOR_RED,"[Context]:{FFFFFF} /cevent [Event name] [Weapon] [Ammo] [Reward]");
  150. if(eweapx > 39 || eweapx < 0) return SendClientMessage(playerid,COLOR_RED,"[ServerBoT]{FFFFFF}You've to put a valid weapon id (0/38)! ");
  151. else
  152. {
  153.  
  154.  
  155. format(string,128,"'%s' has been started as an event! Use /ejoin to join the fun!",eheadline);
  156. format(sstring,128,"~n~%s ~w~has been started!~w~Use ~g~/join to join the fun!",eheadline);
  157. SendClientMessageToAll(COLOR_RED,string);
  158. GameTextForAll(sstring,5000,5);
  159. eavailable=1;
  160. new Float:p1; new Float:p2; new Float:p3;
  161. GetPlayerPos(playerid,p1,p2,p3);
  162. SetPVarFloat(playerid,"locx",p1);
  163. SetPVarFloat(playerid,"locy",p2);
  164. SetPVarFloat(playerid,"locz",p3);
  165. SetPlayerVirtualWorld(playerid, 3);
  166. }
  167. }
  168. return 1;
  169. }
  170.  
  171. CMD:ejoin(playerid,params[])
  172. {
  173.  
  174. new string[128];
  175.  
  176. if(eavailable==0) return SendClientMessage(playerid,COLOR_RED,"[ServerBoT]{FFFFFF}There's/'re no events running now!");
  177. if(sevent==1)
  178. {
  179. format(string,128,"[ServerBoT]{FFFFFF}Event is already started, very late!");
  180. SendClientMessage(playerid,COLOR_RED,string);
  181. return 1;
  182. }
  183.  
  184. if(PlayerParticipated[playerid]==1) return SendClientMessage(playerid,COLOR_RED,"[ServerBoT]{FFFFFF}You've already joined the event!");
  185. if (IsPlayerConnected(playerid))
  186. {
  187. SetPlayerPos(playerid,GetPVarFloat(playerid, "locx"),GetPVarFloat(playerid, "locy"),GetPVarFloat(playerid, "locz"));
  188. new a7a[MAX_PLAYER_NAME];
  189. GetPlayerName(playerid,a7a,MAX_PLAYER_NAME);
  190. format(string,128,"[Event]{FFFFFF}'%s' has joined the event '%s'!",a7a,eheadline);
  191. SendClientMessageToAll(COLOR_RED,string);
  192.  
  193.  
  194. PlayerParticipated[playerid]=1;
  195. SetPlayerVirtualWorld(playerid, 3);
  196. PlayerInfo[playerid][pE];
  197. ResetPlayerWeapons(targetid);
  198. }
  199. return 1;
  200. }
  201.  
  202.  
  203. CMD:sevent(playerid,params[]) {
  204. if(PlayerInfo[playerid][pEventor])
  205. {
  206. new eid = PlayerInfo[playerid][pE], string[128];
  207. if(eavailable==0) return SendClientMessage(playerid,COLOR_RED,"[ServerBoT]{FFFFFF}There is no event currently!");
  208. else
  209. {
  210. GivePlayerWeapon(playerid,eweapx,eammox);
  211. SetPlayerHealth(playerid, 100);
  212. SetPlayerArmour(playerid, 100);
  213. SetPlayerHealth(eid, 100);
  214. SetPlayerArmour(eid, 100);
  215. TogglePlayerControllable(playerid, 0);
  216. TogglePlayerControllable(eid, 0);
  217. CountDown(playerid, 3);
  218. CountDown(eid, 3);
  219. InEvent[playerid] = true;
  220. format(string,128,"[Event]{FFFFFF}'%s' event has been started now!!",eheadline);
  221. SendClientMessageToAll(COLOR_RED,string);
  222. }
  223. }
  224. return 1;
  225. }
  226.  
  227.  
  228. CMD:eventors(playerid, params[])
  229. {
  230. SendClientMessage(playerid, COLOR_RED, " ");
  231. SendClientMessage(playerid, COLOR_RED, "{000033}___________ |- {FFFFFF}Events Management{000033} -| ___________");
  232. SendClientMessage(playerid, COLOR_RED, " ");
  233. new count = 0;
  234. for(new i = 0; i < MAX_PLAYERS; i++)
  235. {
  236. if(!IsPlayerConnected(i)) continue;
  237. if(!PlayerInfo[i][pEventor]) continue;
  238. new string[128], playername[MAX_PLAYER_NAME];
  239. GetPlayerName(i, playername, sizeof(playername));
  240. switch(PlayerInfo[i][pEventor])
  241. {
  242. case 1: format(string, sizeof(string), "{00FFFF}%s (ID:%i) - Rank: %d | Events Planner |", playername, i, PlayerInfo[i][pEventor]);
  243. case 2: format(string, sizeof(string), "{CC33CC}%s (ID:%i) - Rank: %d | Events Supervisor |", playername, i, PlayerInfo[i][pEventor]);
  244. case 3: format(string, sizeof(string), "{FF0066}%s (ID:%i) - Rank: %d | Events Manager |", playername, i, PlayerInfo[i][pEventor]);
  245. default: continue;
  246. }
  247. SendClientMessage(playerid, COLOR_RED, string);
  248. count++;
  249. }
  250. if(!count) SendClientMessage(playerid, COLOR_RED, " {FFFFFF}No online events management!");
  251. SendClientMessage(playerid, COLOR_RED, "{000033}_____________________________________________");
  252. return 1;
  253. }
  254.  
  255.  
  256.  
  257. CMD:seteventor(playerid,params[])
  258. {
  259. if(PlayerInfo[playerid][pEventor] >= 3 || IsPlayerAdmin(playerid)) {
  260. new tmp [256];
  261. new tmp2[256];
  262. new Index;
  263. new targetid;
  264. new level;
  265. tmp = strtok(params,Index);
  266. tmp2 = strtok(params,Index);
  267. if(sscanf(params, "ig", targetid, level)) return ShowPlayerDialog(playerid, 5, DIALOG_STYLE_MSGBOX, "-Syntax", "/Seteventor [Playerid] [Rank (1/3)] \n Function: Changing the player's Event rank status from a value to another", "Exit", "");
  268. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  269. player1 = strval(tmp);
  270. if(sscanf(params, "ig", targetid, level)) return ShowPlayerDialog(playerid, 5, DIALOG_STYLE_MSGBOX, "-Syntax", " /Seteventor [Playerid] [Rank (1/3)] \n\n Function: Changing the player's Event rank status from a value to another", "Exit", "");
  271. level = strval(tmp2);
  272.  
  273. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID)
  274. if(level > 3) return SendClientMessage(playerid,COLOR_RED,"ERROR: Incorrect Rank");
  275. if(level == PlayerInfo[player1][pEventor]) return ShowPlayerDialog(playerid, 5, DIALOG_STYLE_MSGBOX, "Error", "That player has the same rank, try another one", "Exit", "");
  276.  
  277. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  278. new year,month,day; getdate(year, month, day); new hour,minute,second; gettime(hour,minute,second);
  279.  
  280. if(level > 0) format(string,sizeof(string),"{CC0000}[News]:{00CCFF} Event's manager %s has set your Event rank Status to Rank %d",adminname, level);
  281. else format(string,sizeof(string),"{CC0000}[News]:{00CCFF} Event's manager %s has set your Event rank Status to Rank %d",adminname, level);
  282. SendClientMessage(player1,COLOR_RED,string);
  283.  
  284. if(level > PlayerInfo[player1][pEventor]) GameTextForPlayer(player1,"~g~Promoted", 2000, 3);
  285. else GameTextForPlayer(player1,"~g~Demoted", 2000, 3);
  286.  
  287. format(string,sizeof(string),"{CC0000}[INFO]: {00CCFF}You have changed %s's Rank status to %d/%d/%d at %d:%d:%d Successfuly", playername, level, day, month, year, hour, minute, second); SendClientMessage(playerid,COLOR_RED,string);
  288. format(string,sizeof(string),"Event's manager %s has made %s Rank %d on %d/%d/%d at %d:%d:%d = = =",adminname, playername, level, day, month, year, hour, minute, second);
  289. PlayerInfo[player1][pEventor] = level;
  290. return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  291.  
  292. }
  293. else return ShowPlayerDialog(playerid, 333, DIALOG_STYLE_MSGBOX, "-Error", "|- You ain't commissioned to use this command, please be careful -|", "Exit", "");
  294. }
  295.  
  296.  
  297. CMD:eventlist(playerid,params[])
  298. {
  299. new count = 0, string[2500], a7a[MAX_PLAYER_NAME];
  300.  
  301. for(new i = 0; i < MAX_PLAYERS; i++)
  302. {
  303. if (GetPlayerName(i, a7a,sizeof(a7a)))
  304. {
  305. if(InEvent[i] == 1)
  306. {
  307. format(string, sizeof(string), "%sPlayer: {FF0000}%s, {FF0000}ID: {FFFFFF}%d\n",
  308. string, a7a, i);
  309. count++;
  310. }
  311. }
  312. }
  313. if (count == 0)
  314. {
  315. SendClientMessage(playerid, COLOR_RED, "[ServerBoT]{FFFFFF} There's no any current event!");
  316.  
  317. }
  318. else ShowPlayerDialog(playerid,837,DIALOG_STYLE_LIST,"-Event List",string,"Exit","");
  319. return 1;
  320. }
  321.  
  322.  
  323.  
  324.  
  325.  
  326. //Blue Seas Event's System, v.1, Wait v.2 sooner!
Add Comment
Please, Sign In to add comment