Advertisement
TrieL

Event System!

Mar 26th, 2017
345
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.80 KB | None | 0 0
  1. CMD:makeevent(playerid, params[]) {
  2. if(PlayerInfo[playerid][LoggedIn] == 0) return SendClientMessage(playerid, white, "ERRRO: You need to be logged in to use this command!");
  3. if(PlayerInfo[playerid][Level] >= 2) {
  4. new ename[128], eprice, eweapon, WeapName[32], string[256], Float:x, Float:y, Float:z;
  5. if(ServerInfo[Event] == 1) return SendClientMessage(playerid, white, "ERROR: There is already an event in process!");
  6. if(sscanf(params,"s[128]ii",ename,eprice,eweapon)) return SendClientMessage(playerid, red, "Usage: /makeevent [Event Name] [Price] [Weapon ID/Name]!");
  7. if(!IsValidWeapon(eweapon)) return SendClientMessage(playerid,white,"ERROR: Invalid weapon ID");
  8. if(0 > eprice || eprice > 1000000) return SendClientMessage(playerid, white, "ERROR: Value of price should be at least [0-1000000]!");
  9. PlayerInfo[playerid][ECREATOR] = 1;
  10. GetPlayerPos(playerid, x, y, z);
  11. eInfo[ex] = x;
  12. eInfo[ey] = y;
  13. eInfo[ez] = z;
  14. GetWeaponName(eweapon,WeapName,32);
  15. format(eInfo[weaponname], 128, "%s", WeapName);
  16. format(eInfo[eventname],128,"%s",ename);
  17. format(eInfo[eventcreator],128,"%s", pName(playerid));
  18. eInfo[price] = eprice;
  19. eInfo[weapon] = eweapon;
  20. eInfo[world] = GetPlayerVirtualWorld(playerid);
  21. eInfo[interior] = GetPlayerInterior(playerid);
  22. ServerInfo[Event] = 1;
  23. format(string, sizeof string, "{FF0000}[Event]:{C0C0C0}Administrator %s has started a new event | Event Name : %s | Price : %d | Usage: /ejoin to join!", pName(playerid), ename, eprice);
  24. SendClientMessageToAll(red, string);
  25. format(string, sizeof string, "~g~Event '%s' will start ~w~/ejoin and join!", ename);
  26. GameTextForAll(string, 4000, 3);
  27. } else return SendClientMessage(playerid, red, "ERROR: You should be at least +2 adminstrator to use this command!");
  28. return 1;
  29. }
  30. CMD:ejoin(playerid, params[]) {
  31. if(PlayerInfo[playerid][LoggedIn] == 0) return SendClientMessage(playerid, white, "ERROR: You need to be logged in to use this commnad!");
  32. if(ServerInfo[Event] == 0) return SendClientMessage(playerid, white, "ERROR: There is no event in process!");
  33. if(PlayerInfo[playerid][EJOIN] == 1) return SendClientMessage(playerid, white, "ERROR: You're already in an event!");
  34. if(ServerInfo[ESTARTED] == 1) return SendClientMessage(playerid, white, "ERROR: Event is already started you're too late maybe next time :)");
  35. new string[128]; format(string, sizeof string, "{F81414}[INFO] - {835C3B}%s has joined the event! /ejoin and join!", pName(playerid));
  36. SendClientMessageToAll(green, string);
  37. PlayerInfo[playerid][EJOIN] = 1; ResetPlayerWeapons(playerid);
  38. SetPlayerPos(playerid, eInfo[ex], eInfo[ey], eInfo[ez]);
  39. SetPlayerVirtualWorld(playerid, eInfo[world]);
  40. SetPlayerInterior(playerid, eInfo[interior]);
  41. return 1;
  42. }
  43. CMD:eleave(playerid, params[]) {
  44. if(PlayerInfo[playerid][LoggedIn] == 0) return SendClientMessage(playerid, white, "ERROR: You need to be logged in to use this commnad!");
  45. if(ServerInfo[Event] == 0) return SendClientMessage(playerid, white, "ERROR: There is no event in process!");
  46. if(ServerInfo[ESTARTED] == 1) return SendClientMessage(playerid, white, "ERROR: You can not leave event when It's started!");
  47. if(PlayerInfo[playerid][ECREATOR] == 1) return SendClientMessage(playerid, white, "ERROR: You're event creator you can not leave event before ending it!");
  48. if(PlayerInfo[playerid][EJOIN] == 0) return SendClientMessage(playerid, white, "ERROR: You are not joined any event yet!");
  49. new string[128]; format(string, sizeof string, "{F81414}[INFO] - {FF0000}%s has left the event!", pName(playerid));
  50. SendClientMessageToAll(red, string);
  51. PlayerInfo[playerid][EJOIN] = 0;
  52. PlayerInfo[playerid][ELEAVE] = 1;
  53. SpawnPlayer(playerid);
  54. return 1;
  55. }
  56. CMD:sevent(playerid, params[]) {
  57. if(PlayerInfo[playerid][LoggedIn] == 0) return SendClientMessage(playerid, white, "ERROR: You need to be logged in to use this commnad!");
  58. if(ServerInfo[Event] == 0) return SendClientMessage(playerid, red, "ERROR: There is no event in process to get started!");
  59. if(PlayerInfo[playerid][ECREATOR] == 1) {
  60. if(ServerInfo[ESTARTED] == 1) return SendClientMessage(playerid, white, "ERROR: The event is already started!");
  61. new string[128]; format(string, sizeof string, "Event | %s | is started now!", eInfo[eventname]);
  62. SendClientMessageToAll(0xFB0000AA, string);
  63. SetTimer("Estart", 1000, 0);
  64. SetTimer("eFive", 3000, 0);
  65. SetTimer("eFour", 4000, 0);
  66. SetTimer("eThree", 5000, 0);
  67. SetTimer("eTwo", 6000, 0);
  68. SetTimer("eOne", 7000, 0);
  69. SetTimer("eGo", 8000, 0);
  70. ServerInfo[ESTARTED] = 1;
  71. } else return SendClientMessage(playerid, red, "ERROR: The only event-creator who can start the event!");
  72. return 1;
  73. }
  74.  
  75. CMD:ewin(playerid, params[]) {
  76. if(PlayerInfo[playerid][LoggedIn] == 0) return SendClientMessage(playerid, white, "ERROR: You need to be logged in to use this commnad!");
  77. if(ServerInfo[Event] == 0) return SendClientMessage(playerid, white, "ERROR: There is no event in process!");
  78. if(PlayerInfo[playerid][ECREATOR] == 0) return SendClientMessage(playerid, white, "Usage: /ewin [playerid]");
  79. if(ServerInfo[ESTARTED] == 0) return SendClientMessage(playerid, white, "ERROR: There is not event started yet to decide about the winner!");
  80. if(isnull(params)) return SendClientMessage(playerid, white, "Usage: /ewin [PlayerId]");
  81. new string[128], player1, wname[MAX_PLAYER_NAME]; player1 = strval(params);
  82. if(ServerInfo[Event] == 0) return SendClientMessage(playerid, white, "ERROR: There is no event in process yet to decide about the winner!");
  83. if(ServerInfo[EWINNER] == 1) return SendClientMessage(playerid, white, "ERROR: Event winner has been choosen already!");
  84. GivePlayerMoney(player1, eInfo[price]);
  85. ServerInfo[EWINNER] = 1;
  86. GetPlayerName(player1, wname, sizeof(wname));
  87. format(eInfo[winner],128,"%s",wname);
  88. format(string, sizeof string, "{FF0000}[INFO] - {C0C0C0}| %s | has won '%s' event! | Price : %d |", pName(player1), eInfo[eventname], eInfo[price]);
  89. SendClientMessageToAll(red, string);
  90. format(string, sizeof string, " ~r~'%s' has won '%s' event! ~b~ Price: '$%d'!", pName(player1), eInfo[eventname], eInfo[price]);
  91. for(new i = 0; i < MAX_PLAYERS; i++) if(PlayerInfo[i][EJOIN] == 1) GameTextForAll(string, 4000, 3);
  92. return 1;
  93. }
  94. CMD:eevent(playerid, params[]) {
  95. if(PlayerInfo[playerid][LoggedIn] == 0) return SendClientMessage(playerid, white, "ERROR: You need to be logged in to use this command!");
  96. if(ServerInfo[Event] == 0) return SendClientMessage(playerid, white, "ERROR: There is no event in process!");
  97. if(PlayerInfo[playerid][ECREATOR] == 0) return SendClientMessage(playerid, white, "ERROR: Only creator of this event can use this command!");
  98. if(ServerInfo[EWINNER] == 0) return SendClientMessage(playerid, white, "ERROR: You must choose winner with /ewin before ending event!");
  99. new string[128]; format(string, sizeof string, "{FF0000}[INFO]: {C0C0C0}Event '%s' is ended now | Winner : %s |", eInfo[eventname], eInfo[winner]);
  100. SendClientMessageToAll(red, string);
  101. format(string, sizeof string, "~r~ event '%s' has been ended now! ~w~winner : '%s'!", eInfo[eventname], eInfo[winner]);
  102. ServerInfo[Event] = 0;
  103. ServerInfo[EWINNER] = 0;
  104. ServerInfo[ESTARTED] = 0;
  105. PlayerInfo[playerid][ECREATOR] = 0;
  106. for(new i = 0; i < MAX_PLAYERS; i++)
  107. {
  108. if(PlayerInfo[i][ELEAVE] == 1) {
  109. PlayerInfo[i][ELEAVE] = 0;
  110. }
  111. if(PlayerInfo[i][EJOIN] == 1) {
  112. GameTextForPlayer(i, string, 4000, 3);
  113. PlayerInfo[i][EJOIN] = 0;
  114. SetPlayerVirtualWorld(i, 0);
  115. SetPlayerInterior(i, 0);
  116. SpawnPlayer(i);
  117. }
  118. }
  119. return 1;
  120. }
  121. CMD:einfo(playerid, params[]) {
  122. if(PlayerInfo[playerid][LoggedIn] == 0) return SendClientMessage(playerid, red, "ERROR: You need to be logged in to use this command!");
  123. new string[512],joinedp,leftp;
  124. for(new i = 0; i < MAX_PLAYERS; i++)
  125. {
  126. if(IsPlayerConnected(i) && PlayerInfo[i][EJOIN] == 1) joinedp++;
  127. if(IsPlayerConnected(i) && PlayerInfo[i][ELEAVE] == 1) leftp++;
  128. }
  129. if(ServerInfo[Event] == 0)
  130. format(string, sizeof string, "{C0C0C0} There is no event in process!");
  131. ShowPlayerDialog(playerid, 91, DIALOG_STYLE_MSGBOX, "INFO", string, "Ok", "Cancle");
  132. if(ServerInfo[Event] == 1)
  133. format(string, sizeof string, "{FF0000}Event Creator: {C0C0C0}%s\n{FF0000}Event Name: {C0C0C0}%s\n{FF0000}Price: {C0C0C0}%d\n{FF0000}Weapon: {C0C0C0}%s[%d]\n{FF0000}World: {C0C0C0}%d\n{FF0000}Interior: {C0C0C0}%d\n{FF0000}Total Current Players In Event: {C0C0C0}%d\n{FF0000}Total Left Players From Event: {C0C0C0}%d",
  134. eInfo[eventcreator], eInfo[eventname], eInfo[price], eInfo[weaponname], eInfo[weapon], eInfo[world], eInfo[interior],joinedp,leftp);
  135. ShowPlayerDialog(playerid, 90, DIALOG_STYLE_MSGBOX, "INFO", string, "OK", "Cancle");
  136. return 1;
  137. }
  138. CMD:eannounce(playerid, params[]) {
  139. if(PlayerInfo[playerid][LoggedIn] == 0) return SendClientMessage(playerid, white, "ERROR: You need to be logged in to use this command!");
  140. if(ServerInfo[Event] == 0) return SendClientMessage(playerid, white, "ERROR: There is no event in process!");
  141. if(PlayerInfo[playerid][ECREATOR] == 0) return SendClientMessage(playerid, white, "ERROR: Who made this event can use this command else!");
  142. if(isnull(params)) return SendClientMessage(playerid, white, "Usage: /Eannouce [Text]");
  143. for(new i = 0; i < MAX_PLAYERS; i++) if(PlayerInfo[i][EJOIN] == 1) GameTextForPlayer(i, params, 4000, 3);
  144. return 1;
  145. }
  146. CMD:ekick(playerid, params[]) {
  147. if(PlayerInfo[playerid][LoggedIn] == 0) return SendClientMessage(playerid, white, "ERROR: You need be logged in to use this command!");
  148. if(ServerInfo[Event] == 0) return SendClientMessage(playerid, white, "ERROR: There is no event in process to kick players from it!");
  149. if(PlayerInfo[playerid][ECREATOR] == 0) return SendClientMessage(playerid, white, "ERROR: Who made this event can use this command else!");
  150. new player1, kreason[128], string[128];
  151. if(sscanf(params,"is",player1,kreason)) return SendClientMessage(playerid, white, "Usage: /ekick [playerid] [reason]");
  152. if(PlayerInfo[player1][EJOIN] == 0) return SendClientMessage(playerid, white, "ERROR: This player is not even in event!");
  153. format(string, sizeof string, "[INFO] - %s has been kicked from event by %s | [Reason: %s] |", pName(player1), pName(playerid), kreason);
  154. SendClientMessageToAll(red, string);
  155. PlayerInfo[player1][EJOIN] = 0;
  156. SpawnPlayer(player1);
  157. return 1;
  158. }
  159. CMD:ehelp(playerid, params[]) {
  160. if(PlayerInfo[playerid][LoggedIn] == 0) return SendClientMessage(playerid, red, "ERROR: You need to be logged in to use this command!");
  161. ShowPlayerDialog(playerid, 92, DIALOG_STYLE_MSGBOX, "Event Help", "/makeevent ( For admin level 2+ to make event\n /sevent ( For starting the event!)\n /ewin ( For choosing event winner! )\n/eevent ( To end event! )\n/einfo( It shows Event INFO! )\n /eannounce ( Announce for event only )\n /ekick ( Kick players out of the event )\n|- Scripted By TrieL -|", "Alright", "");
  162. return 1;
  163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement