Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2017
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 20.38 KB | None | 0 0
  1. #include <a_samp>
  2. #include <sscanf2>
  3. #include <YSI/y_ini>
  4. #include <YSI\y_commands>
  5. #include <streamer>
  6. #include <foreach>
  7. #pragma tabsize 0
  8.  
  9. #define SCM     SendClientMessage
  10. #define COLOR_RED     0xD62F4E
  11. #define COL_LIGHTBLUE "{1BD3E0}"
  12. #define COL_RED       "{D62F4E}"
  13. #define COL_ORANGE    "{E09B1B}"
  14. #define COL_WHITE     "{FFFFFF}"
  15. #define DIALOG_EVENT   1093
  16. #define EVENT_FILE      "Events/%d.ini"
  17. #define MAX_EVENTS      20
  18. #define MAX_CP        50
  19. #define MAX_TIME      15
  20. new bool:False = false, _S_T_R_[128];
  21. #define SendFormatMSG(%0,%1,%2,%3)\
  22.         do{\
  23.             format(_S_T_R_, sizeof (_S_T_R_), (%2), %3);\
  24.             SendClientMessage((%0),(%1), _S_T_R_);\
  25.         }\
  26.         while (False)
  27. #define SendFormatMSGToAll(%1,%2,%3)\
  28.         do{\
  29.             format(_S_T_R_, sizeof (_S_T_R_), (%2), %3);\
  30.             SendClientMessageToAll((%1), _S_T_R_);\
  31.         }\
  32.         while (False)
  33. #define randomEx(%0,%1)             (random((%1) - (%0)) + (%0))
  34.  
  35. new
  36.     EventName[MAX_PLAYERS][64],
  37.     EventCP[MAX_PLAYERS],
  38.     EventID[MAX_PLAYERS],
  39.     PlayerCP[MAX_PLAYERS],
  40.     EventVehID[MAX_PLAYERS],
  41.     PlayerVeh[MAX_PLAYERS],
  42.     bool:PlayerWork[MAX_PLAYERS],
  43.     bool:PlayerCreateEvent[MAX_PLAYERS],
  44.     bool:EventWithVeh[MAX_PLAYERS],
  45.     bool:EventWithWep[MAX_PLAYERS],
  46.     EventWeapID[MAX_PLAYERS],
  47.     Text:Event0[MAX_PLAYERS],
  48.     StartedEvent,
  49.     Timer,
  50.     StartedEventTime,
  51.     Position,
  52.     WithWeap[MAX_PLAYERS],
  53.     PlayerTime[MAX_PLAYERS],
  54.     Float:PlayerPos[MAX_PLAYERS][3],
  55.     PlayerPosInt[MAX_PLAYERS],
  56.     PlayerPosVW[MAX_PLAYERS];
  57.  
  58. enum jo
  59. {
  60.     Float:TCPX,
  61.     Float:TCPY,
  62.     Float:TCPZ,
  63.     Float:TCPA,
  64.     Name[64],
  65.     VehID,
  66.     MaxCP,
  67.     WeapID
  68. }
  69. new Event[MAX_EVENTS][jo];
  70.  
  71. enum ev
  72. {
  73.     Float:CPX,
  74.     Float:CPY,
  75.     Float:CPZ,
  76. }
  77. new CheckPoint[MAX_EVENTS][MAX_CP][ev];
  78.  
  79. public OnFilterScriptInit()
  80. {
  81. print("\n--------------------------------------");
  82. print(" HAVE FUN WITH THIS FS!");
  83. print("--------------------------------------\n");
  84. SetTimer("Time",1000,true);
  85. for(new i = 1; i<=MAX_EVENTS;i++)
  86. {
  87. new gFile[35];
  88. format(gFile, 35, EVENT_FILE ,i);
  89. INI_ParseFile(gFile, "LoadEvent", .bExtra = true, .extra = i);
  90. }
  91. return 1;
  92. }
  93.  
  94. public OnFilterScriptExit()
  95. {
  96.     return 1;
  97. }
  98.  
  99.  
  100. main()
  101. {
  102.     print("\n----------------------------------");
  103.     print(" HAVE FUN WITH THIS FS!");
  104.     print("----------------------------------\n");
  105. }
  106.  
  107.  
  108. public OnGameModeInit()
  109. {
  110. return 1;
  111. }
  112.  
  113. public OnGameModeExit()
  114. {
  115.     return 1;
  116. }
  117.  
  118. public OnPlayerRequestClass(playerid, classid)
  119. {
  120.     return 1;
  121. }
  122.  
  123. public OnPlayerConnect(playerid)
  124. {
  125. Event0[playerid] = TextDrawCreate(55.000000, 247.000000, "~Time: 2:50:3~n~CP: ~r~1/50");
  126. TextDrawBackgroundColor(Event0[playerid], 255);
  127. TextDrawFont(Event0[playerid], 2);
  128. TextDrawLetterSize(Event0[playerid], 0.210000, 1.099999);
  129. TextDrawColor(Event0[playerid], -16711681);
  130. TextDrawSetOutline(Event0[playerid], 1);
  131. TextDrawSetProportional(Event0[playerid], 1);
  132. return 1;
  133. }
  134.  
  135. public OnPlayerDisconnect(playerid, reason)
  136. {
  137.     TextDrawDestroy(Event0[playerid]);
  138.     return 1;
  139. }
  140.  
  141. public OnPlayerSpawn(playerid)
  142. {
  143.     return 1;
  144. }
  145.  
  146. public OnPlayerDeath(playerid, killerid, reason)
  147. {
  148.     return 1;
  149. }
  150.  
  151. public OnVehicleSpawn(vehicleid)
  152. {
  153.     return 1;
  154. }
  155.  
  156. public OnVehicleDeath(vehicleid, killerid)
  157. {
  158.     return 1;
  159. }
  160.  
  161. public OnPlayerText(playerid, text[])
  162. {
  163.     return 1;
  164. }
  165. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  166. {
  167.     return 1;
  168. }
  169.  
  170. public OnPlayerExitVehicle(playerid, vehicleid)
  171. {
  172.     return 1;
  173. }
  174.  
  175. public OnPlayerStateChange(playerid, newstate, oldstate)
  176. {
  177.     return 1;
  178. }
  179.  
  180. public OnPlayerEnterCheckpoint(playerid)
  181. {
  182.     return 1;
  183. }
  184.  
  185. public OnPlayerLeaveCheckpoint(playerid)
  186. {
  187.     return 1;
  188. }
  189.  
  190. public OnPlayerEnterRaceCheckpoint(playerid)
  191. {
  192. new cpid = PlayerCP[playerid];
  193. new nextcpid = PlayerCP[playerid]+1;
  194. new eventid = StartedEvent;
  195. if(cpid >= 2)
  196. {
  197. if(GetPlayerVehicleID(playerid) == PlayerVeh[playerid])
  198. {
  199. PlayerCP[playerid]++;
  200. if(CheckPoint[eventid][nextcpid][CPX] == 0.0 && CheckPoint[eventid][nextcpid][CPY] == 0)//Last Checkpoint
  201. {
  202. new string[128],Price;
  203. Position++;
  204. switch(Position)
  205. {
  206.     case 1: Price = randomEx(7000,9000);
  207.     case 2: Price = randomEx(5000,7000);
  208.     case 3: Price = randomEx(3000,5000);
  209. }
  210. GivePlayerMoney(playerid,Price);
  211. format(string,128,"%s hat das Rennen beendet und hat $%d bekommen.",GetName(playerid),Position,Price);
  212. SendClientMessageToAll(-1,string);
  213. PlayerCP[playerid] = 0;
  214. DestroyVehicle(PlayerVeh[playerid]);
  215. DisablePlayerRaceCheckpoint(playerid);
  216. PlayerWork[playerid] = false;
  217. SetPlayerPos(playerid,PlayerPos[playerid][0],PlayerPos[playerid][1],PlayerPos[playerid][2]);
  218. SetPlayerInterior(playerid,PlayerPosInt[playerid]);
  219. SetPlayerVirtualWorld(playerid,PlayerPosVW[playerid]);
  220. TextDrawHideForPlayer(playerid,Event0[playerid]);
  221. if(Position == 3)
  222. {
  223. foreach(Player, i)
  224. {
  225. if(PlayerCP[i] > 0)
  226. {
  227. PlayerCP[i] = 0;
  228. DestroyVehicle(PlayerVeh[i]);
  229. DisablePlayerRaceCheckpoint(i);
  230. StartedEvent = 0;
  231. SetPlayerPos(i,PlayerPos[i][0],PlayerPos[i][1],PlayerPos[i][2]);
  232. SetPlayerInterior(i,PlayerPosInt[i]);
  233. SetPlayerVirtualWorld(i,PlayerPosVW[i]);
  234. TextDrawHideForPlayer(i,Event0[i]);
  235. }
  236. }
  237. }
  238. return 1;
  239. }
  240. if(nextcpid != Event[eventid][MaxCP]) SetPlayerRaceCheckpoint(playerid,0,CheckPoint[eventid][nextcpid][CPX],CheckPoint[eventid][nextcpid][CPY],CheckPoint[eventid][nextcpid][CPZ],CheckPoint[eventid][nextcpid+1][CPX],CheckPoint[eventid][nextcpid+1][CPY],CheckPoint[eventid][nextcpid+1][CPZ],5.0);
  241. else SetPlayerRaceCheckpoint(playerid,1,CheckPoint[eventid][nextcpid][CPX],CheckPoint[eventid][nextcpid][CPY],CheckPoint[eventid][nextcpid][CPZ],CheckPoint[eventid][nextcpid][CPX],CheckPoint[eventid][nextcpid][CPY],CheckPoint[eventid][nextcpid][CPZ],5.0);
  242.  
  243. }
  244. }
  245. return 1;
  246. }
  247.  
  248. public OnPlayerLeaveRaceCheckpoint(playerid)
  249. {
  250.     return 1;
  251. }
  252.  
  253. public OnRconCommand(cmd[])
  254. {
  255.     return 1;
  256. }
  257.  
  258. public OnPlayerRequestSpawn(playerid)
  259. {
  260.     return 1;
  261. }
  262.  
  263. public OnObjectMoved(objectid)
  264. {
  265.     return 1;
  266. }
  267.  
  268. public OnPlayerObjectMoved(playerid, objectid)
  269. {
  270.     return 1;
  271. }
  272.  
  273. public OnPlayerPickUpPickup(playerid, pickupid)
  274. {
  275.     return 1;
  276. }
  277.  
  278. public OnVehicleMod(playerid, vehicleid, componentid)
  279. {
  280.     return 1;
  281. }
  282.  
  283. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  284. {
  285.     return 1;
  286. }
  287.  
  288. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  289. {
  290.     return 1;
  291. }
  292.  
  293. public OnPlayerSelectedMenuRow(playerid, row)
  294. {
  295.     return 1;
  296. }
  297.  
  298. public OnPlayerExitedMenu(playerid)
  299. {
  300.     return 1;
  301. }
  302.  
  303. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  304. {
  305.     return 1;
  306. }
  307. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  308. {
  309.     if(newkeys == KEY_FIRE)
  310.     {
  311.     if(PlayerCreateEvent[playerid] && EventWithVeh[playerid])
  312.     {
  313.     if(EventCP[playerid] == 1)
  314.     {
  315.         new dFile[32],Float:Pos[4];
  316.         GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
  317.         GetPlayerFacingAngle(playerid,Pos[3]);
  318.         format(dFile, 35, EVENT_FILE, EventID[playerid]);
  319.         new
  320.             INI:File = INI_Open(dFile);
  321.  
  322.             INI_WriteString(File, "Name", EventName[playerid]);
  323.             INI_WriteFloat(File, "TCPX", Pos[0]);
  324.             INI_WriteFloat(File, "TCPY", Pos[1]);
  325.             INI_WriteFloat(File, "TCPZ", Pos[2]);
  326.             INI_WriteFloat(File, "TCPA", Pos[3]);
  327.             INI_WriteInt(File, "Cars", EventVehID[playerid]);
  328.             INI_WriteInt(File, "Waffen", 0);
  329.             INI_Close(File);
  330.             format(Event[EventID[playerid]][Name],64,"%s",EventName[playerid]);
  331.             Event[EventID[playerid]][TCPX] = Pos[0];
  332.             Event[EventID[playerid]][TCPY] = Pos[1];
  333.             Event[EventID[playerid]][TCPZ] = Pos[2];
  334.             Event[EventID[playerid]][TCPA] = Pos[3];
  335.             Event[EventID[playerid]][VehID] = EventVehID[playerid];
  336.             Event[EventID[playerid]][WeapID] = 0;
  337.             EventCP[playerid]++;
  338.     }
  339.     else if(EventCP[playerid] > 1)
  340.     {
  341.         new dFile[32],Float:Pos[3],string[6];
  342.         GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
  343.         format(dFile, 35, EVENT_FILE, EventID[playerid]);
  344.  
  345.         new
  346.             INI:File = INI_Open(dFile);
  347.  
  348.             format(string,6,"CPX%d",EventCP[playerid]);
  349.             INI_WriteFloat(File, string, Pos[0]);
  350.             CheckPoint[EventID[playerid]][EventCP[playerid]][CPX] = Pos[0];
  351.  
  352.             format(string,6,"CPY%d",EventCP[playerid]);
  353.             INI_WriteFloat(File, string, Pos[1]);
  354.             CheckPoint[EventID[playerid]][EventCP[playerid]][CPY] = Pos[1];
  355.  
  356.             format(string,6,"CPZ%d",EventCP[playerid]);
  357.             INI_WriteFloat(File, string, Pos[2]);
  358.             CheckPoint[EventID[playerid]][EventCP[playerid]][CPZ] = Pos[2];
  359.  
  360.             INI_Close(File);
  361.             EventCP[playerid]++;
  362.     }
  363.     }
  364. //==============DM EVent
  365.     if(PlayerCreateEvent[playerid])
  366.     {
  367.     if(PlayerCreateEvent[playerid] && EventWithWep[playerid])
  368.     {
  369.     if(EventCP[playerid] == 1)
  370.     {
  371.         new dFile[32],Float:Pos[4];
  372.         GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
  373.         GetPlayerFacingAngle(playerid,Pos[3]);
  374.         format(dFile, 35, EVENT_FILE, EventID[playerid]);
  375.         new
  376.             INI:File = INI_Open(dFile);
  377.  
  378.             INI_WriteString(File, "Name", EventName[playerid]);
  379.             INI_WriteInt(File, "Waffe", EventWeapID[playerid]);
  380.             INI_Close(File);
  381.             format(Event[EventID[playerid]][Name],64,"%s",EventName[playerid]);
  382.             Event[EventID[playerid]][WeapID] = EventWeapID[playerid];
  383.             EventCP[playerid]++;
  384.     }
  385.     if(EventCP[playerid] > 1)
  386.     {
  387.         new dFile[32],Float:Pos[3],string[6];
  388.         GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
  389.         format(dFile, 35, EVENT_FILE, EventID[playerid]);
  390.  
  391.         new
  392.             INI:File = INI_Open(dFile);
  393.  
  394.             format(string,6,"CPX%d",EventCP[playerid]);
  395.             INI_WriteFloat(File, string, Pos[0]);
  396.             CheckPoint[EventID[playerid]][EventCP[playerid]][CPX] = Pos[0];
  397.  
  398.             format(string,6,"CPY%d",EventCP[playerid]);
  399.             INI_WriteFloat(File, string, Pos[1]);
  400.             CheckPoint[EventID[playerid]][EventCP[playerid]][CPY] = Pos[1];
  401.  
  402.             format(string,6,"CPZ%d",EventCP[playerid]);
  403.             INI_WriteFloat(File, string, Pos[2]);
  404.             CheckPoint[EventID[playerid]][EventCP[playerid]][CPZ] = Pos[2];
  405.  
  406.             INI_Close(File);
  407.             EventCP[playerid]++;
  408.     }
  409.     }
  410.     }
  411.     }
  412.     return 1;
  413. }
  414.  
  415. public OnRconLoginAttempt(ip[], password[], success)
  416. {
  417.     return 1;
  418. }
  419.  
  420. public OnPlayerUpdate(playerid)
  421. {
  422.  
  423.     return 1;
  424. }
  425.  
  426. public OnPlayerStreamIn(playerid, forplayerid)
  427. {
  428.     return 1;
  429. }
  430.  
  431. public OnPlayerStreamOut(playerid, forplayerid)
  432. {
  433.     return 1;
  434. }
  435.  
  436. public OnVehicleStreamIn(vehicleid, forplayerid)
  437. {
  438.     return 1;
  439. }
  440.  
  441. public OnVehicleStreamOut(vehicleid, forplayerid)
  442. {
  443.     return 1;
  444. }
  445.  
  446. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  447. {
  448. switch(dialogid)
  449. {
  450.     case DIALOG_EVENT:
  451.         {
  452.         if(!response) return 1;
  453.         switch(listitem)
  454.             {
  455.                 case 0://Sa
  456.                     {
  457.                     SCM(playerid,-1,"Du hast das Race-Event gewählt.");
  458.                     ShowPlayerDialog(playerid,DIALOG_EVENT+1,DIALOG_STYLE_INPUT,"Event Name","Event Name","Ok","Schliessen");
  459.                     EventWithVeh[playerid] = true;
  460.                     }
  461.                 case 1://DM
  462.                     {
  463.                     SCM(playerid,-1,"Du hast das DM/Waffen Event gewählt.");
  464.                     ShowPlayerDialog(playerid,DIALOG_EVENT+1,DIALOG_STYLE_INPUT,"Event Name","Event Name","Ok","Schliessen");
  465.                     EventWithWep[playerid] = true;
  466.                     }
  467.             }
  468.         }
  469.     case DIALOG_EVENT+1:
  470.     {
  471.     if(!response) return 1;
  472.         if(EventWithVeh[playerid])
  473.         {
  474.         format(EventName[playerid],64,"%s",inputtext);
  475.         ShowPlayerDialog(playerid,DIALOG_EVENT+2,DIALOG_STYLE_INPUT,"Event Fahrzeug","Fahrzeug ID","Ok","Schliessen");
  476.         }
  477.         if(EventWithWep[playerid])
  478.         {
  479.         format(EventName[playerid],64,"%s",inputtext);
  480.         ShowPlayerDialog(playerid,DIALOG_EVENT+3,DIALOG_STYLE_INPUT,"Event Waffe","Waffen ID","Ok","Schliessen");
  481.         }
  482.     }
  483.     case DIALOG_EVENT+2:
  484.     {
  485.     if(!response) return 1;
  486.         if(EventWithVeh[playerid])
  487.         {
  488.         EventCP[playerid] = 1;
  489.         EventVehID[playerid] = strval(inputtext);
  490.         SCM(playerid,-1,"Benutze >LINKS-KLICK< um einen Checkpoint zu erstellen. Wenn du fertig bist, nutze: /finishcevent");
  491.         }
  492.     }
  493.     case DIALOG_EVENT+3:
  494.     {
  495.     if(!response) return 1;
  496.     EventWeapID[playerid] = strval(inputtext);
  497.     EventCP[playerid] = 1;
  498.     SCM(playerid,-1,"Benutze >LINKS-KLICK< um den Event-Spawn zu setzen. Wenn du fertig bist, nutze: /finishcevent");
  499.         new dFile[32];
  500.         format(dFile, 35, EVENT_FILE, EventID[playerid]);
  501.         new
  502.             INI:File = INI_Open(dFile);
  503.  
  504.             INI_WriteString(File, "Name", EventName[playerid]);
  505.             INI_WriteInt(File, "Weapon", EventWeapID[playerid]);
  506.             INI_Close(File);
  507.             format(Event[EventID[playerid]][Name],64,"%s",EventName[playerid]);
  508.             Event[EventID[playerid]][WeapID] = EventWeapID[playerid];
  509.             EventCP[playerid]++;
  510.     }
  511.     case DIALOG_EVENT+4:
  512.     {
  513.     if(!response) return 1;
  514.     StartedEvent = strval(inputtext);
  515.     StartedEventTime = MAX_TIME;
  516.     SendFormatMSGToAll(-1,"Ein %s Event wurde gestartet, Du hast %d Sekunden um beizutreten. Benutze: /join",Event[strval(inputtext)][Name],MAX_TIME);
  517.     Timer = SetTimer("EventTime",1000,true);
  518.     }
  519. }
  520. return 1;
  521. }
  522. forward EventTime();
  523. public EventTime()
  524. {
  525. StartedEventTime--;
  526. if(StartedEventTime == MAX_TIME/2) SendFormatMSGToAll(-1,"Du hast noch %d Sekunden um dem Event beizutreten!",MAX_TIME/2);
  527. if(StartedEventTime == 5)
  528. {
  529. SendClientMessageToAll(-1,"Das Event beginnt in 5 Sekunden!");
  530. }
  531. if(StartedEventTime == 0)
  532. {
  533. foreach(Player, i)
  534. {
  535. if(PlayerCP[i] > 0)
  536. {
  537. new string[128];
  538. PlayerTime[i] = 0;
  539. SetPlayerRaceCheckpoint(i,0,CheckPoint[StartedEvent][PlayerCP[i]][CPX],CheckPoint[StartedEvent][PlayerCP[i]][CPY],CheckPoint[StartedEvent][PlayerCP[i]][CPZ],CheckPoint[StartedEvent][PlayerCP[i]+1][CPX],CheckPoint[StartedEvent][PlayerCP[i]+1][CPY],CheckPoint[StartedEvent][PlayerCP[i]+1][CPZ],5.0);
  540. TogglePlayerControllable(i,true);
  541. GameTextForPlayer(i,"~g~LOS! LOS! LOS!!!",3000,0);
  542. format(string,sizeof(string),"Zeit: 00:00~n~CP: ~r~%d/%d",PlayerCP[i]-1,Event[StartedEvent][MaxCP]);
  543. TextDrawSetString(Event0[i],string);
  544. PutPlayerInVehicle(i,PlayerVeh[i],0);
  545. KillTimer(Timer);
  546. }
  547. if(Event[StartedEvent][WeapID] != 0 && WithWeap[i] == 1)
  548. {
  549. GameTextForPlayer(i,"~g~GO GO GO!!!",3000,0);
  550. TogglePlayerControllable(i,true);
  551. KillTimer(Timer);
  552. }
  553. }
  554. }
  555. }
  556. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  557. {
  558.     return 1;
  559. }
  560. YCMD:createevent(playerid,params[],help)
  561. {
  562. #pragma unused help
  563. #pragma unused params
  564. new dFile[32];
  565. if(!IsPlayerAdmin(playerid)) return SCM(playerid,COLOR_RED,"ERROR: "COL_WHITE"Du musst als RCON-Admin eingeloggt sein!");
  566. if(PlayerCreateEvent[playerid]) return SCM(playerid,COLOR_RED,"ERROR: "COL_WHITE"Du machst derzeit schon ein Event!");
  567. ShowPlayerDialog(playerid,DIALOG_EVENT,DIALOG_STYLE_LIST,"Event-Menu","Mit Fahrzeugen\nDM Event mit Waffen","Waehlen","Schliessen");
  568. PlayerCreateEvent[playerid] = true;
  569. EventID[playerid] = 1;
  570. for(new id = 1; id <= MAX_EVENTS;id++)
  571. {
  572. format(dFile, 35, EVENT_FILE, id);
  573. if(fexist(dFile)) EventID[playerid]++;
  574. if(EventID[playerid] > MAX_EVENTS) return SCM(playerid,-1,"Change MAX_EVENTS in FS.");
  575. }
  576. return 1;
  577. }
  578. YCMD:finishcevent(playerid,params[],help)
  579. {
  580. #pragma unused help
  581. #pragma unused params
  582. new dFile[32];
  583. if(!IsPlayerAdmin(playerid)) return SCM(playerid,COLOR_RED,"ERROR: "COL_WHITE"Du musst als RCON-Admin eingeloggt sein!");
  584. if(!PlayerCreateEvent[playerid]) return SCM(playerid,COLOR_RED,"ERROR: "COL_WHITE"Du erstellst derzeit kein Event!");
  585. SCM(playerid,-1,"Du hast das Event fertiggestellt.");
  586. PlayerCreateEvent[playerid] = false;
  587. if(EventWithVeh[playerid] || EventWithWep[playerid])
  588. {
  589.         format(dFile, 32, EVENT_FILE, EventID[playerid]);
  590.  
  591.         new
  592.             INI:File = INI_Open(dFile);
  593.  
  594.             INI_WriteInt(File, "MaxCP", EventCP[playerid]-1);
  595.             Event[EventID[playerid]][MaxCP] = EventCP[playerid]-1;
  596.  
  597.             INI_Close(File);
  598. }
  599. return 1;
  600. }
  601. YCMD:finishdmevent(playerid,params[],help)
  602. {
  603. #pragma unused help
  604. #pragma unused params
  605. if(!IsPlayerAdmin(playerid)) return SCM(playerid,COLOR_RED,"ERROR: "COL_WHITE"Du musst als RCON-Admin eingeloggt sein!");
  606. if(StartedEvent == 0) return SCM(playerid,COLOR_RED,"Derzeit ist kein Event in Planung.");
  607. if(Event[StartedEvent][WeapID] == 0) return SCM(playerid,COLOR_RED,"ERROR: "COL_WHITE"Es wurde kein Deathmatch-Event gestartet!");
  608. foreach(Player, i)
  609. {
  610. if(WithWeap[i] == 1)
  611. {
  612. WithWeap[i] = 0;
  613. SetPlayerAmmo(i,Event[StartedEvent][WeapID],0);
  614. SetPlayerPos(i,PlayerPos[i][0],PlayerPos[i][1],PlayerPos[i][2]);
  615. SetPlayerInterior(i,PlayerPosInt[i]);
  616. SetPlayerVirtualWorld(i,PlayerPosVW[i]);
  617. }
  618. }
  619. StartedEvent = 0;
  620. return 1;
  621. }
  622. YCMD:join(playerid,params[],help)
  623. {
  624. #pragma unused help
  625. #pragma unused params
  626. new string[128];
  627. if(StartedEvent == 0) return SCM(playerid,COLOR_RED,"Derzeit ist kein Event in Planung.");
  628. if(StartedEventTime == 0) return SCM(playerid,COLOR_RED,"Die Zeit zum beitreten des Event's ist vorbei!");
  629. new Float:Pos[3]; GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
  630. if(Event[StartedEvent][WeapID] == 0)
  631. {
  632. Event[StartedEvent][TCPX] -= (6 * floatsin(-Event[StartedEvent][TCPA], degrees));
  633. Event[StartedEvent][TCPY] -= (6 * floatcos(-Event[StartedEvent][TCPA], degrees));
  634. printf("%f",Event[StartedEvent][TCPX]);
  635. PlayerCP[playerid] = 2;
  636. PlayerTime[playerid] = 0;
  637. if(Event[StartedEvent][VehID] != 0) { PlayerVeh[playerid] = CreateVehicle(Event[StartedEvent][VehID],Event[StartedEvent][TCPX],Event[StartedEvent][TCPY],Event[StartedEvent][TCPZ],Event[StartedEvent][TCPA],random(128),random(128),3600);}
  638. SetPlayerPos(playerid,Event[StartedEvent][TCPX],Event[StartedEvent][TCPY],Event[StartedEvent][TCPZ]);
  639. PutPlayerInVehicle(playerid,PlayerVeh[playerid],0);
  640. PlayerPos[playerid][0] = Pos[0];
  641. PlayerPos[playerid][1] = Pos[1];
  642. PlayerPos[playerid][2] = Pos[2];
  643. PlayerPosInt[playerid] = GetPlayerInterior(playerid);
  644. PlayerPosVW[playerid] = GetPlayerVirtualWorld(playerid);
  645. format(string,sizeof(string),"Time: 00:00~n~CP: ~r~%d/%d",PlayerCP[playerid]-1,Event[StartedEvent][MaxCP]);
  646. TextDrawSetString(Event0[playerid],string);
  647. TextDrawShowForPlayer(playerid,Event0[playerid]);
  648. TogglePlayerControllable(playerid,false);
  649. }
  650. if(Event[StartedEvent][WeapID] != 0)
  651. {
  652. new cp = randomEx(2,Event[StartedEvent][MaxCP]);
  653. SetPlayerPos(playerid,CheckPoint[StartedEvent][cp][CPX],CheckPoint[StartedEvent][cp][CPY],CheckPoint[StartedEvent][cp][CPZ]);
  654. GivePlayerWeapon(playerid,Event[StartedEvent][WeapID],999);
  655. PlayerPos[playerid][0] = Pos[0];
  656. PlayerPos[playerid][1] = Pos[1];
  657. PlayerPos[playerid][2] = Pos[2];
  658. PlayerPosInt[playerid] = GetPlayerInterior(playerid);
  659. PlayerPosVW[playerid] = GetPlayerVirtualWorld(playerid);
  660. TogglePlayerControllable(playerid,false);
  661. WithWeap[playerid] = 1;
  662. }
  663. return 1;
  664. }
  665. YCMD:startevent(playerid,params[],help)
  666. {
  667. #pragma unused help
  668. #pragma unused params
  669. if(!IsPlayerAdmin(playerid)) return SCM(playerid,COLOR_RED,"ERROR: "COL_WHITE"Du musst als RCON-Admin eingeloggt sein!");
  670. new exist[32],string[256],e[2];
  671.         for(new i = 1; i <= MAX_EVENTS; i++)
  672.         {
  673.         format(exist, sizeof(exist), EVENT_FILE, i);
  674.                 if(fexist(exist))
  675.                         {
  676.                                 new a[12];
  677.                                 valstr(a, i);
  678.                                 strcat(string, a);
  679.                                 strcat(string, ") ID: ");
  680.                                 format(e,2,"%d",i);
  681.                                 strcat(string, e);
  682.                                 strcat(string, " | ");
  683.                                 strcat(string, Event[i][Name]);
  684.                                 strcat(string, "\n");
  685.                         }
  686.         }
  687. ShowPlayerDialog(playerid,DIALOG_EVENT+4,DIALOG_STYLE_INPUT,"Event-Menu",string,"Auswaehlen","Schliessen");
  688. return 1;
  689. }
  690. stock GetName(playerid)
  691. {
  692.     new
  693.         pName[MAX_PLAYER_NAME];
  694.  
  695.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  696.     return pName;
  697. }
  698. //Load
  699. forward LoadEvent(id, name[], value[]);
  700. public LoadEvent(id, name[], value[])
  701. {
  702.     new string[6];
  703.     INI_String("Name", Event[id][Name],64);
  704.     INI_Float("TCPX", Event[id][TCPX]);
  705.     INI_Float("TCPY", Event[id][TCPY]);
  706.     INI_Float("TCPZ", Event[id][TCPZ]);
  707.     INI_Float("TCPA", Event[id][TCPA]);
  708.     INI_Int("Veh", Event[id][VehID]);
  709.     INI_Int("Weapon", Event[id][WeapID]);
  710.     for(new i = 2;i <= MAX_CP;i++)
  711.     {
  712.     format(string,6,"CPX%d",i);
  713.     INI_Float(string, CheckPoint[id][i][CPX]);
  714.     format(string,6,"CPY%d",i);
  715.     INI_Float(string, CheckPoint[id][i][CPY]);
  716.     format(string,6,"CPZ%d",i);
  717.     INI_Float(string, CheckPoint[id][i][CPZ]);
  718.     }
  719.     INI_Int("MaxCP", Event[id][MaxCP]);
  720.     return 1;
  721. }
  722. forward Time();
  723. public Time()
  724. {
  725. foreach(Player, i)
  726. {
  727. if(PlayerCP[i] > 0 && StartedEventTime == 0)
  728. {
  729. PlayerTime[i]++;
  730. new Min=floatround(PlayerTime[i]/60);
  731. new Sec=PlayerTime[i]-(Min*60);
  732. new string[128];
  733. format(string,sizeof(string),"Zeit: %02d:%02d~n~CP: ~r~%d/%d",Min,Sec,PlayerCP[i]-1,Event[StartedEvent][MaxCP]);
  734. TextDrawSetString(Event0[i],string);
  735. }
  736. }
  737. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement