Advertisement
Guest User

Untitled

a guest
Aug 21st, 2014
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.15 KB | None | 0 0
  1. /*
  2. |||0.3z||| V1.0
  3. |=====================================================================
  4. |DvH = Deathmatch von AlphaX aka. Hashtag |
  5. |Features [Das FAST kein DMArena filterscript hat]: |
  6. | |
  7. |-Speichern / Laden System |
  8. |-Objekte werden nur bei /dm erstellt und auch NUR für den Spieler. |
  9. |-Der Spieler wird in eine Virtuelle Welt gesezt |
  10. |-/exitdm löscht wieder alle Objekte für den Spieler |
  11. | |
  12. | |
  13. |Alles von mir [AlphaX aka. Hashtag] gescriptet! |
  14. |Getestet! Voll Funktionsfähig! |
  15. | |
  16. |~~~~~~~~~~~~~~ERREICHBARKEIT~~~~~~~~~~~~~~ |
  17. | |
  18. |Skype: thomastheassasin |
  19. |Anfrage nur mit der Beschreibung: Wegen DvH |
  20. | |
  21. |© Copyright 2014 |
  22. ======================================================================
  23.  
  24. Es werden IMMER weitere Versionen folgen [im Breadfish auf dem gleichen Link]!
  25. BItte den Timer drin lassen!
  26.  
  27. Das oben !muss! stehen bleiben!
  28. */
  29.  
  30. #include <a_samp>
  31. #include <Dini>
  32.  
  33. #define DMDIALOG 1
  34. #define CreateACC 2
  35.  
  36. //Allgemeine Arena Objekte
  37.  
  38. new A1[MAX_PLAYERS];//Allgemeine Arena Objekte
  39.  
  40. forward HalbeStunde();//timer
  41.  
  42. enum DeathmatchPlayerDateien
  43. {
  44. DMArena
  45. };
  46.  
  47. new DPA[MAX_PLAYERS][DeathmatchPlayerDateien];
  48.  
  49. #if defined FILTERSCRIPT
  50.  
  51. public OnFilterScriptInit()
  52. {
  53. print("\n--------------------------------------");
  54. print(" DvH von Hashtag\n ");
  55. print("--------------------------------------\n");
  56. //TIMER
  57. SetTimer("HalbeStunde",1800000,true);
  58. //Timer
  59. return 1;
  60. }
  61.  
  62. public OnFilterScriptExit()
  63. {
  64. return 1;
  65. }
  66.  
  67. #endif
  68.  
  69. //===================TIMERMSG======================
  70. public HalbeStunde()
  71. {
  72. new string[128];
  73. format(string,sizeof(string),"Das /dm Script von AlphaX aka. Hashtag");
  74. }
  75. //==============================================
  76. public OnGameModeExit()
  77. {
  78. return 1;
  79. }
  80.  
  81. public OnPlayerConnect(playerid)
  82. {
  83. SetPVarInt(playerid,"DMArena",0); // Hier setzen wir, dass der spieler in keiner Arena ist!
  84. SetPlayerVirtualWorld(playerid,0); // setzt den Player in die Standart world
  85. ShowPlayerDialog(playerid,2,DIALOG_STYLE_MSGBOX,"DMArena Abfrage","Hiermit bestätigst du das ein Account für die DMArena\nAbfrage eingerichtet werden soll!","OK","OK");
  86. return 1;
  87. }
  88.  
  89. public OnPlayerDisconnect(playerid, reason)
  90. {
  91. SetPVarInt(playerid,"DMArena",0); // Hier setzen wir, dass der spieler in keiner Arena ist!
  92. return 1;
  93. }
  94.  
  95. public OnPlayerSpawn(playerid)
  96. {
  97. return 1;
  98. }
  99.  
  100. public OnPlayerDeath(playerid, killerid, reason)
  101. {
  102. return 1;
  103. }
  104.  
  105. public OnVehicleSpawn(vehicleid)
  106. {
  107. return 1;
  108. }
  109.  
  110. public OnVehicleDeath(vehicleid, killerid)
  111. {
  112. return 1;
  113. }
  114.  
  115. public OnPlayerText(playerid, text[])
  116. {
  117. return 1;
  118. }
  119.  
  120. public OnPlayerCommandText(playerid, cmdtext[])
  121. {
  122. if (strcmp("/dm", cmdtext, true, 10) == 0)
  123. {
  124. ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Deathmatch Möglichkeiten","Deagle + Shotgun\nMP5 + Schalldämpfer Pistole","Porten","Abbrechen"); //Die Deathmatch auswahl möglichkeiten
  125. return 1;
  126. }
  127. if (strcmp("/exitdm", cmdtext, true, 10) == 0)
  128. {
  129. if(DPA[playerid][DMArena] == 1)
  130. {
  131. SetPlayerPos(playerid,1214.8384,-892.5712,42.9138);// spawn nach /exitdm
  132. DestroyPlayerObject(playerid,A1[playerid]); //löscht die erstellten Deathmatch Objekte
  133. DPA[playerid][DMArena] = 0;
  134. SetPlayerVirtualWorld(playerid,0);
  135. ResetPlayerWeapons(playerid);
  136. return 1;
  137. }
  138. else
  139. {
  140. SendClientMessage(playerid,0xFF0000FF,"Du bist in keiner Arena");
  141. }
  142. }
  143. return 0;
  144. }
  145.  
  146. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  147. {
  148. return 1;
  149. }
  150.  
  151. public OnPlayerExitVehicle(playerid, vehicleid)
  152. {
  153. return 1;
  154. }
  155.  
  156. public OnPlayerStateChange(playerid, newstate, oldstate)
  157. {
  158. return 1;
  159. }
  160.  
  161. public OnPlayerEnterCheckpoint(playerid)
  162. {
  163. return 1;
  164. }
  165.  
  166. public OnPlayerLeaveCheckpoint(playerid)
  167. {
  168. return 1;
  169. }
  170.  
  171. public OnPlayerEnterRaceCheckpoint(playerid)
  172. {
  173. return 1;
  174. }
  175.  
  176. public OnPlayerLeaveRaceCheckpoint(playerid)
  177. {
  178. return 1;
  179. }
  180.  
  181. public OnRconCommand(cmd[])
  182. {
  183. return 1;
  184. }
  185.  
  186. public OnPlayerRequestSpawn(playerid)
  187. {
  188. return 1;
  189. }
  190.  
  191. public OnObjectMoved(objectid)
  192. {
  193. return 1;
  194. }
  195.  
  196. public OnPlayerObjectMoved(playerid, objectid)
  197. {
  198. return 1;
  199. }
  200.  
  201. public OnPlayerPickUpPickup(playerid, pickupid)
  202. {
  203. return 1;
  204. }
  205.  
  206. public OnVehicleMod(playerid, vehicleid, componentid)
  207. {
  208. return 1;
  209. }
  210.  
  211. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  212. {
  213. return 1;
  214. }
  215.  
  216. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  217. {
  218. return 1;
  219. }
  220.  
  221. public OnPlayerSelectedMenuRow(playerid, row)
  222. {
  223. return 1;
  224. }
  225.  
  226. public OnPlayerExitedMenu(playerid)
  227. {
  228. return 1;
  229. }
  230.  
  231. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  232. {
  233. return 1;
  234. }
  235.  
  236. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  237. {
  238. return 1;
  239. }
  240.  
  241. public OnRconLoginAttempt(ip[], password[], success)
  242. {
  243. return 1;
  244. }
  245.  
  246. public OnPlayerUpdate(playerid)
  247. {
  248. return 1;
  249. }
  250.  
  251. public OnPlayerStreamIn(playerid, forplayerid)
  252. {
  253. return 1;
  254. }
  255.  
  256. public OnPlayerStreamOut(playerid, forplayerid)
  257. {
  258. return 1;
  259. }
  260.  
  261. public OnVehicleStreamIn(vehicleid, forplayerid)
  262. {
  263. return 1;
  264. }
  265.  
  266. public OnVehicleStreamOut(vehicleid, forplayerid)
  267. {
  268. return 1;
  269. }
  270.  
  271. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  272. {
  273. if(dialogid == 1) //DIALOG
  274. {
  275. if(response) //Porten Button
  276. {
  277. if(listitem == 0)
  278. {
  279. SetPlayerPos(playerid, 2589.6694,1896.2098,11.0312); //die Position des DM 1
  280. SendClientMessage(playerid,0x00B000FF,"Zum Deathmatch teleportiert! /exitdm zum Verlassen!"); //Die Nachricht
  281. GivePlayerWeapon(playerid, 24, 999); //Deagle
  282. DPA[playerid][DMArena] = 0;
  283. GivePlayerWeapon(playerid, 25, 150); //Shotgun
  284. SetPlayerVirtualWorld(playerid,2);
  285. SendClientMessage(playerid,0x00B000FF,"Deathmatch gescriptet von AlphaX aka. Hashtag"); //copyright
  286.  
  287. //Objekte die nur für den Spieler erstellt werden, das heist wenn man dort normal hinfährt sieht man die Objekte NICHT! Nur wen man /dm macht und diese Arena auswählt
  288. A1[playerid] = CreatePlayerObject(playerid,987,2625.8999000,1844.6000000,10.0000000,0.0000000,0.0000000,0.0000000); //object(elecfence_bar) (1)
  289. A1[playerid] = CreatePlayerObject(playerid,987,2614.3999000,1845.0000000,10.0000000,0.0000000,0.0000000,0.0000000); //object(elecfence_bar) (2)
  290. A1[playerid] = CreatePlayerObject(playerid,987,2603.3999000,1845.0000000,10.0000000,0.0000000,0.0000000,0.0000000); //object(elecfence_bar) (3)
  291. A1[playerid] = CreatePlayerObject(playerid,987,2592.3999000,1845.0000000,10.0000000,0.0000000,0.0000000,0.0000000); //object(elecfence_bar) (4)
  292. A1[playerid] = CreatePlayerObject(playerid,987,2580.1001000,1846.2000000,10.0000000,0.0000000,0.0000000,354.0000000); //object(elecfence_bar) (5)
  293. A1[playerid] = CreatePlayerObject(playerid,987,2569.5000000,1846.8000000,10.0000000,0.0000000,0.0000000,0.0000000); //object(elecfence_bar) (6)
  294. A1[playerid] = CreatePlayerObject(playerid,987,2569.5000000,1845.8000000,10.0000000,0.0000000,0.0000000,0.0000000); //object(elecfence_bar) (7)
  295. A1[playerid] = CreatePlayerObject(playerid,987,2561.3000000,1846.4000000,10.0000000,0.0000000,0.0000000,0.0000000); //object(elecfence_bar) (8)
  296. A1[playerid] = CreatePlayerObject(playerid,987,2553.6001000,1846.5000000,10.0000000,0.0000000,0.0000000,0.0000000); //object(elecfence_bar) (9)
  297. A1[playerid] = CreatePlayerObject(playerid,987,2551.3000000,1847.0000000,10.0000000,0.0000000,0.0000000,356.0000000); //object(elecfence_bar) (10)
  298. A1[playerid] = CreatePlayerObject(playerid,987,2630.1001000,1844.3000000,10.0000000,0.0000000,0.0000000,0.0000000); //object(elecfence_bar) (11)
  299. A1[playerid] = CreatePlayerObject(playerid,2932,2587.5000000,1867.0000000,11.3000000,0.0000000,0.0000000,270.0000000); //object(kmb_container_blue) (1)
  300. A1[playerid] = CreatePlayerObject(playerid,2932,2609.0000000,1867.0000000,11.3000000,0.0000000,0.0000000,270.0000000); //object(kmb_container_blue) (2)
  301. A1[playerid] = CreatePlayerObject(playerid,2932,2598.5000000,1875.9000000,11.3000000,0.0000000,0.0000000,270.0000000); //object(kmb_container_blue) (3)
  302. A1[playerid] = CreatePlayerObject(playerid,2932,2615.8999000,1886.1000000,11.3000000,0.0000000,0.0000000,270.0000000); //object(kmb_container_blue) (4)
  303. A1[playerid] = CreatePlayerObject(playerid,2932,2623.3000000,1869.6000000,11.3000000,0.0000000,0.0000000,270.0000000); //object(kmb_container_blue) (5)
  304. A1[playerid] = CreatePlayerObject(playerid,2932,2626.2000000,1880.5000000,11.3000000,0.0000000,0.0000000,270.0000000); //object(kmb_container_blue) (6)
  305. A1[playerid] = CreatePlayerObject(playerid,2932,2585.5000000,1881.6000000,11.3000000,0.0000000,352.0000000,270.0000000); //object(kmb_container_blue) (7)
  306. A1[playerid] = CreatePlayerObject(playerid,2932,2575.7000000,1872.4000000,11.3000000,0.0000000,351.9960000,270.0000000); //object(kmb_container_blue) (8)
  307. A1[playerid] = CreatePlayerObject(playerid,2932,2597.3999000,1856.4000000,11.3000000,0.0000000,351.9960000,270.0000000); //object(kmb_container_blue) (9)
  308. A1[playerid] = CreatePlayerObject(playerid,2932,2616.8999000,1857.5000000,11.3000000,0.0000000,351.9960000,270.0000000); //object(kmb_container_blue) (10)
  309. A1[playerid] = CreatePlayerObject(playerid,2932,2580.1001000,1857.2000000,11.3000000,0.0000000,351.9960000,270.0000000); //object(kmb_container_blue) (11)
  310. A1[playerid] = CreatePlayerObject(playerid,2932,2580.1006000,1857.2002000,11.3000000,0.0000000,351.9960000,270.0000000); //object(kmb_container_blue) (12)
  311. return 1;
  312. }
  313. if(listitem == 1)
  314. {
  315. SetPlayerPos(playerid,153.8197,1845.6820,17.6406); //army Area ;)
  316. SendClientMessage(playerid,0x00B000FF,"Zum Deathmatch teleportiert! /exitdm zum Verlassen! Viel Spaß");
  317. SendClientMessage(playerid,0x00B000FF,"Deathmatch gescriptet von AlphaX aka. Hashtag"); //COPYRIGHT!
  318. GivePlayerWeapon(playerid, 23, 999); //Schalld.Pistole
  319. DPA[playerid][DMArena] = 0;
  320. GivePlayerWeapon(playerid, 29, 150); //MP5
  321. SetPlayerVirtualWorld(playerid,3);
  322. return 1;
  323. }
  324. }
  325. else //anderer Button
  326. {
  327. SendClientMessage(playerid,0xDB0000FF,"System verlassen");
  328. return 1;
  329. }
  330. }
  331. if(dialogid == 2)
  332. {
  333. new DPAACC[128]; //Spielerdatei
  334. new name[MAX_PLAYER_NAME+1];
  335. GetPlayerName(playerid, name, sizeof(name));
  336. format(DPAACC,sizeof(DPAACC),"/DPA/%s.ini",name);
  337. if(response)
  338. {
  339. if(!dini_Exists(DPAACC))
  340. {
  341. dini_Create(DPAACC);
  342. dini_IntSet(DPAACC,"DMArena",0);
  343. DPASpeichern(playerid);
  344. }
  345. else
  346. {
  347. SendClientMessage(playerid,0x00FF00FF,"Dein DM Account wurde gefunden! :)");
  348. }
  349. }
  350. else
  351. {
  352. if(!dini_Exists(DPAACC))
  353. {
  354. dini_Create(DPAACC);
  355. dini_IntSet(DPAACC,"DMArena",0);
  356. DPASpeichern(playerid);
  357. }
  358. else
  359. {
  360. SendClientMessage(playerid,0x00FF00FF,"Dein DM Account wurde gefunden! :)");
  361. }
  362. }
  363. }
  364. return 1;
  365. }
  366.  
  367. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  368. {
  369. return 1;
  370. }
  371.  
  372. stock DPALaden(playerid)
  373. {
  374. new DPAACC[128]; //Wie immer
  375. new name[MAX_PLAYER_NAME+1];
  376. GetPlayerName(playerid, name, sizeof(name));
  377. format(DPAACC,sizeof(DPAACC),"/Accounts/%s.ini",name);
  378. SetPVarInt(playerid,"DMArena",dini_Int(DPAACC,"DMArena"));
  379. return 1;
  380. }
  381.  
  382. stock DPASpeichern(playerid)
  383. {
  384. new DPAACC[128]; //Spielerdatei
  385. new name[MAX_PLAYER_NAME+1];
  386. GetPlayerName(playerid, name, sizeof(name));
  387. format(DPAACC,sizeof(DPAACC),"/DPA/%s.ini",name);
  388. dini_IntSet(DPAACC,"DMArena",GetPVarInt(playerid,"DMArena"));
  389. return 1;
  390. }
  391.  
  392. //SSCANF
  393. stock sscanf(string[], format[], {Float,_}:...)
  394. {
  395. #if defined isnull
  396. if (isnull(string))
  397. #else
  398. if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  399. #endif
  400. {
  401. return format[0];
  402. }
  403. #pragma tabsize 4
  404. new
  405. formatPos = 0,
  406. stringPos = 0,
  407. paramPos = 2,
  408. paramCount = numargs(),
  409. delim = ' ';
  410. while (string[stringPos] && string[stringPos] <= ' ')
  411. {
  412. stringPos++;
  413. }
  414. while (paramPos < paramCount && string[stringPos])
  415. {
  416. switch (format[formatPos++])
  417. {
  418. case '\0':
  419. {
  420. return 0;
  421. }
  422. case 'i', 'd':
  423. {
  424. new
  425. neg = 1,
  426. num = 0,
  427. ch = string[stringPos];
  428. if (ch == '-')
  429. {
  430. neg = -1;
  431. ch = string[++stringPos];
  432. }
  433. do
  434. {
  435. stringPos++;
  436. if ('0' <= ch <= '9')
  437. {
  438. num = (num * 10) + (ch - '0');
  439. }
  440. else
  441. {
  442. return -1;
  443. }
  444. }
  445. while ((ch = string[stringPos]) > ' ' && ch != delim);
  446. setarg(paramPos, 0, num * neg);
  447. }
  448. case 'h', 'x':
  449. {
  450. new
  451. num = 0,
  452. ch = string[stringPos];
  453. do
  454. {
  455. stringPos++;
  456. switch (ch)
  457. {
  458. case 'x', 'X':
  459. {
  460. num = 0;
  461. continue;
  462. }
  463. case '0' .. '9':
  464. {
  465. num = (num << 4) | (ch - '0');
  466. }
  467. case 'a' .. 'f':
  468. {
  469. num = (num << 4) | (ch - ('a' - 10));
  470. }
  471. case 'A' .. 'F':
  472. {
  473. num = (num << 4) | (ch - ('A' - 10));
  474. }
  475. default:
  476. {
  477. return -1;
  478. }
  479. }
  480. }
  481. while ((ch = string[stringPos]) > ' ' && ch != delim);
  482. setarg(paramPos, 0, num);
  483. }
  484. case 'c':
  485. {
  486. setarg(paramPos, 0, string[stringPos++]);
  487. }
  488. case 'f':
  489. {
  490.  
  491. new changestr[16], changepos = 0, strpos = stringPos;
  492. while(changepos < 16 && string[strpos] && string[strpos] != delim)
  493. {
  494. changestr[changepos++] = string[strpos++];
  495. }
  496. changestr[changepos] = '\0';
  497. setarg(paramPos,0,_:floatstr(changestr));
  498. }
  499. case 'p':
  500. {
  501. delim = format[formatPos++];
  502. continue;
  503. }
  504. case '\'':
  505. {
  506. new
  507. end = formatPos - 1,
  508. ch;
  509. while ((ch = format[++end]) && ch != '\'') {}
  510. if (!ch)
  511. {
  512. return -1;
  513. }
  514. format[end] = '\0';
  515. if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  516. {
  517. if (format[end + 1])
  518. {
  519. return -1;
  520. }
  521. return 0;
  522. }
  523. format[end] = '\'';
  524. stringPos = ch + (end - formatPos);
  525. formatPos = end + 1;
  526. }
  527. case 'u':
  528. {
  529. new
  530. end = stringPos - 1,
  531. id = 0,
  532. bool:num = true,
  533. ch;
  534. while ((ch = string[++end]) && ch != delim)
  535. {
  536. if (num)
  537. {
  538. if ('0' <= ch <= '9')
  539. {
  540. id = (id * 10) + (ch - '0');
  541. }
  542. else
  543. {
  544. num = false;
  545. }
  546. }
  547. }
  548. if (num && IsPlayerConnected(id))
  549. {
  550. setarg(paramPos, 0, id);
  551. }
  552. else
  553. {
  554. #if !defined foreach
  555. #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  556. #define __SSCANF_FOREACH__
  557. #endif
  558. string[end] = '\0';
  559. num = false;
  560. new
  561. name[MAX_PLAYER_NAME];
  562. id = end - stringPos;
  563. foreach (Player, playerid)
  564. {
  565. GetPlayerName(playerid, name, sizeof (name));
  566. if (!strcmp(name, string[stringPos], true, id))
  567. {
  568. setarg(paramPos, 0, playerid);
  569. num = true;
  570. break;
  571. }
  572. }
  573. if (!num)
  574. {
  575. setarg(paramPos, 0, INVALID_PLAYER_ID);
  576. }
  577. string[end] = ch;
  578. #if defined __SSCANF_FOREACH__
  579. #undef foreach
  580. #undef __SSCANF_FOREACH__
  581. #endif
  582. }
  583. stringPos = end;
  584. }
  585. case 's', 'z':
  586. {
  587. new
  588. i = 0,
  589. ch;
  590. if (format[formatPos])
  591. {
  592. while ((ch = string[stringPos++]) && ch != delim)
  593. {
  594. setarg(paramPos, i++, ch);
  595. }
  596. if (!i)
  597. {
  598. return -1;
  599. }
  600. }
  601. else
  602. {
  603. while ((ch = string[stringPos++]))
  604. {
  605. setarg(paramPos, i++, ch);
  606. }
  607. }
  608. stringPos--;
  609. setarg(paramPos, i, '\0');
  610. }
  611. default:
  612. {
  613. continue;
  614. }
  615. }
  616. while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  617. {
  618. stringPos++;
  619. }
  620. while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  621. {
  622. stringPos++;
  623. }
  624. paramPos++;
  625. }
  626. do
  627. {
  628. if ((delim = format[formatPos++]) > ' ')
  629. {
  630. if (delim == '\'')
  631. {
  632. while ((delim = format[formatPos++]) && delim != '\'') {}
  633. }
  634. else if (delim != 'z')
  635. {
  636. return delim;
  637. }
  638. }
  639. }
  640. while (delim > ' ');
  641. return 0;
  642. }
  643.  
  644. // strget
  645. stock strget(strx[], pos, search = ' ') {
  646. new arg, ret[128], idxx;
  647. for (new i = 0; i < strlen(strx); i++) {
  648. if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
  649. arg++;
  650. if (arg == pos + 1){
  651. ret[i-idxx] = EOS;
  652. return ret;
  653. } else if (arg == pos)
  654. idxx= i+1;
  655. }
  656. else if (arg == pos)
  657. ret[i - idxx] = strx[i];
  658. }
  659. return ret;
  660. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement