Advertisement
Guest User

Untitled

a guest
May 5th, 2012
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.41 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(" IG event készítő by.: Mr. Gagi, magyarosítva: JBauer");
  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(" IG event készítő by.: Mr. Gagi, magyarosítva: JBauer");
  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, "~Idő: 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 befejezte a versenyt %d helyezéssel és nyert %d$-t",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, "Veh", EventVehID[playerid]);
  328. INI_WriteInt(File, "Weapon", 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, "Weapon", 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,"Válaszd ki az autót az eseményhez.");
  458. ShowPlayerDialog(playerid,DIALOG_EVENT+1,DIALOG_STYLE_INPUT,"Esemény név","Írd be az esemény nevét","Oké","Mégse");
  459. EventWithVeh[playerid] = true;
  460. }
  461. case 1://DM
  462. {
  463. SCM(playerid,-1,"Válaszd ki a fegyvert az eseményhez.");
  464. ShowPlayerDialog(playerid,DIALOG_EVENT+1,DIALOG_STYLE_INPUT,"Esemény név","Írd be az esemény nevét","Oké","Mégse");
  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,"Az esemény autója","Írd be az autó idjét","Oké","Mégse");
  476. }
  477. if(EventWithWep[playerid])
  478. {
  479. format(EventName[playerid],64,"%s",inputtext);
  480. ShowPlayerDialog(playerid,DIALOG_EVENT+3,DIALOG_STYLE_INPUT,"Az esemény fegyvere","Írd be a fegyver idjét","Oké","Mégse");
  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,"Nyomd le a BAL EGÉRGOMBOT, hogy beállítsd a cp-t. Ha befejezted írd be: /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,"Nyomd le a BAL EGÉRGOMBOT, hogy beállítsd a játékosok kezdő helyét. Ha befejezted írd be: /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," Esemény: %s elindult. Maradt %d másodperced a csatlakozásra. Írd be: /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," %d másodperced maradt, hogy csatlakozz",MAX_TIME/2);
  527. if(StartedEventTime == 5)
  528. {
  529. SendClientMessageToAll(-1,"Az esemény indul 5 másodperc múlva");
  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~GO GO GO!!!",3000,0);
  542. format(string,sizeof(string),"Idő: 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,"Hiba: "COL_WHITE"RCON adminnak kell lenned!");
  566. if(PlayerCreateEvent[playerid]) return SCM(playerid,COLOR_RED,"Hiba: "COL_WHITE"Már készítesz egy eseményt!");
  567. ShowPlayerDialog(playerid,DIALOG_EVENT,DIALOG_STYLE_LIST,"Esemény","Autókkal\nDM esemény fegyverekkel","Választ","Mégse");
  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,"Írd át a MAX_EVENTS-et az FS-ben.");
  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,"Hiba: "COL_WHITE"RCON adminnak kell lenned!");
  584. if(!PlayerCreateEvent[playerid]) return SCM(playerid,COLOR_RED,"Hiba: "COL_WHITE"Már készítesz egy eseményt!");
  585. SCM(playerid,-1,"Befejezted az esemény készítést.");
  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,"Hiba: "COL_WHITE"Nem vagy RCON admin!");
  606. if(StartedEvent == 0) return SCM(playerid,COLOR_RED,"Nincsen elindított esemény");
  607. if(Event[StartedEvent][WeapID] == 0) return SCM(playerid,COLOR_RED,"Hiba: "COL_WHITE"Nincsen elindítva DM esemény!");
  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,"Nincsen elindított esemény");
  628. if(StartedEventTime == 0) return SCM(playerid,COLOR_RED,"Már elkezdődött.");
  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),"Idő: 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,"Hiba: "COL_WHITE"RCON adminnak kell lenned!");
  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,"Események",string,"Indít","Mégse");
  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),"Idő: %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