Advertisement
Guest User

BSTDM, EVENTS SYSTEM!

a guest
Feb 16th, 2016
427
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 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!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement