Advertisement
Guest User

Untitled

a guest
Jun 16th, 2011
989
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 30.19 KB | None | 0 0
  1. //========================================================================================================//
  2. //========================================================================================================//
  3. //============================================ Grove Vs Vagos ============================================//
  4. //============================================ Gamemode ==================================================//
  5. //============================================ by WarF ===================================================//
  6. //========================================================================================================//
  7. //========================================================================================================//
  8. /*
  9.  
  10. ----------------- Version 0.1 ----------------- ----------------- ----------------- ----------------- ----------------- -----------------
  11. - 2 Teams ( Grove Street & Vagos )
  12. - Beide Teams besitzen eine eigene Base mit Fahrzeugen
  13. - Score/Punktezähler!
  14. - Server Textdraw unten Links!
  15. - Connect und Disconnect Nachrichten
  16. - Gangfight TIME --> Dauer 15 Minuten!
  17. - Waffenspawn beider Teams jeweils eine Deagle und M4
  18. - Bei KILL [ GANGZONEKILL] Funktion
  19. - Wetter System (verschiedenes Wetter in LS/SF/LV) mit Wechsel!
  20. - 1 nicht Offiziele Gangfight Zone! mit TeleportBefehl /gangfight
  21. Grove Spawn unv Vagos Gebiet Spawn ist Unterschiedlich!
  22. - GANGZONEKILLS sind überall machbar, nicht nur im Gebiet, das Gebiet dient dazu damit das ganze Schneller geht!
  23. - Die ersten Gang die 30 Kills erreicht gewinnt das Gangfight und der Server wird neu gestartet!
  24. ----------------- ----------------- ----------------- ----------------- ----------------- ----------------- -----------------
  25.  
  26. Version 0.2
  27. - Kills nur in der Zone machbar ( FERTIG )
  28. - Adminsystem ( FERTIG ) 5 Adminlevel
  29. - Login/Register System ( FERTIG )
  30. - Gangzonenen für die Basen und die Gangfightzone erstellt!
  31. - Während Gangfight blinkt die Gangfightzone!
  32. - Beim Kill geht man 10 Sekunden auf TV von dem du gekillt wurdest
  33. - /buy deagle/shotgun/messer/m4 Vorhanden!
  34.  
  35. ----------------- ----------------- ----------------- ----------------- ----------------- ----------------- -----------------*/
  36.  
  37. #include <a_samp>
  38. #include <ocmd>
  39. #include <dini>
  40.  
  41.  
  42. // ENUMS //
  43. enum sInfo
  44. {
  45. Adminlevel,
  46. Score,
  47. Banned,
  48. LoggedIn
  49. }
  50. new SpielerInfo[MAX_PLAYERS][sInfo];
  51.  
  52.  
  53. // DIALOGE //
  54. #define DIALOG_REGISTER 0
  55. #define DIALOG_LOGIN 1
  56.  
  57.  
  58. // FARBEN DEFINIERUNG //
  59. #define COLOR_LIGHTGREEN 0x9ACD32AA
  60. #define COLOR_YELLOW 0xFFFF00AA
  61. #define GREEN 0x21DD00FF
  62. #define GROVE_COLOR 0x00D900C8
  63. #define VAGOS_COLOR 0xFFC801C8
  64. #define COLOR_GREEN 0x008000FF
  65. #define COLOR_ORANGE 0xFF9900AA
  66. #define COLOR_RED2 0xFF0000FF
  67. #define COLOR_GRAD2 0xBFC0C2FF
  68. #define COLOR_LIGHTBLUE 0x33CCFFAA
  69. #define COLOR_WHITE 0xFFFFFFAA
  70. #define ROT 0xAA3333AA
  71.  
  72.  
  73. // TEAM / GANGS //
  74. static gTeam[MAX_PLAYERS];
  75. #define TEAM_GROVE 0
  76. #define TEAM_VAGOS 1
  77.  
  78. // VARIABLEN //
  79. new Grovescore;
  80. new Vagosscore;
  81.  
  82. // NEWS //
  83. new Text:Textdraw;
  84. new Text:scores;
  85. new DasWetter[3];
  86. new WetterRandomLS[] = { 1,2,3,15 };
  87. new WetterRandomSF[] = { 5,6,16 };
  88. new WetterRandomLV[] = { 1,2,3,4,5,18 };
  89. new GroveStreetBase;
  90. new VagosBase;
  91. new Gangfightzone;
  92. new KillerID[MAX_PLAYERS];
  93. new bool: SpielerTot[MAX_PLAYERS];
  94.  
  95. // GAMEMODE ZEIT --> Restart! //
  96. #define MAX_GM_TIME 900000 // 15 Minuten
  97.  
  98.  
  99. // FORWARDS //
  100. forward PunkteUpdate();
  101. forward PunkteCheck(playerid);
  102. forward SetupPlayerForClassSelection(playerid);
  103. forward KillUpdate(playerid);
  104. forward GameTime();
  105. forward Finish();
  106. forward Wetter();
  107. forward SetWetter();
  108. forward SendAdminMessage(color, string[]);
  109.  
  110. // STOCKS //
  111. stock Grove(playerid)
  112. {
  113. SetPlayerColor(playerid,GROVE_COLOR);
  114. }
  115. stock Vagos(playerid)
  116. {
  117. SetPlayerColor(playerid,VAGOS_COLOR);
  118. }
  119.  
  120.  
  121.  
  122.  
  123. stock strget(strx[], pos, search = ' ') {
  124. new arg, ret[128], idxx;
  125. for (new i = 0; i < strlen(strx); i++) {
  126. if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
  127. arg++;
  128. if (arg == pos + 1){
  129. ret[i-idxx] = EOS;
  130. return ret;
  131. } else if (arg == pos)
  132. idxx= i+1;
  133. }
  134. else if (arg == pos)
  135. ret[i - idxx] = strx[i];
  136. }
  137. return ret;
  138. }
  139.  
  140.  
  141. stock Register(playerid,key[])
  142. {
  143. new Spielerdatei[64];
  144. new name[MAX_PLAYER_NAME];
  145. GetPlayerName(playerid,name,sizeof(name));
  146. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",name);
  147. dini_Create(Spielerdatei);
  148. dini_Set(Spielerdatei,"Passwort",key);
  149. dini_IntSet(Spielerdatei,"Geld",50000);
  150. dini_IntSet(Spielerdatei,"Adminlevel",0);
  151. dini_IntSet(Spielerdatei,"Banned",0);
  152. SendClientMessage(playerid,COLOR_WHITE,"Du wurdest Erfolgreich registriert! Viel Spaß!");
  153. return 1;
  154. }
  155.  
  156. stock Login(playerid,key[])
  157. {
  158. new Spielerdatei[64];
  159. new name[MAX_PLAYER_NAME];
  160. GetPlayerName(playerid,name,sizeof(name));
  161. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",name);
  162. if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
  163. {
  164. if(SpielerInfo[playerid][Banned] == 1)
  165. {
  166. SendClientMessage(playerid, COLOR_RED2, "Dein Account wurde gebannt!");
  167. Kick(playerid);
  168. }
  169. SendClientMessage(playerid,COLOR_WHITE,"Du hast dich Erfolgreich eingeloggt!");
  170. SpielerInfo[playerid][LoggedIn] = 1;
  171. LoadAccount(playerid);
  172. return 1;
  173. }
  174. else
  175. {
  176. SendClientMessage(playerid,COLOR_LIGHTBLUE,"Passwort Falsch! Versuch es erneut!");
  177. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Passwort eingeben:","Einloggen","Abbrechen");
  178. return 1;
  179. }
  180. }
  181.  
  182. stock LoadAccount(playerid)
  183. {
  184. new Spielerdatei[64];
  185. new name[MAX_PLAYER_NAME];
  186. GetPlayerName(playerid,name,sizeof(name));
  187. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",name);
  188. SpielerInfo[playerid][Adminlevel]=dini_Int(Spielerdatei,"Adminlevel");
  189. SetPlayerScore(playerid,dini_Int(Spielerdatei,"Score"));
  190. SpielerInfo[playerid][Banned]=dini_Int(Spielerdatei,"Banned");
  191. SpielerInfo[playerid][LoggedIn]=dini_Int(Spielerdatei,"LoggedIn");
  192.  
  193. return 1;
  194. }
  195.  
  196. stock SpielerSpeichern(playerid)
  197. {
  198. new Spielerdatei[64];
  199. new name[MAX_PLAYER_NAME];
  200. GetPlayerName(playerid,name,sizeof(name));
  201. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",name);
  202. dini_IntSet(Spielerdatei,"Adminlevel",SpielerInfo[playerid][Adminlevel]);
  203. dini_IntSet(Spielerdatei,"Score",GetPlayerScore(playerid));
  204. dini_IntSet(Spielerdatei,"Banned",SpielerInfo[playerid][Banned]);
  205. dini_IntSet(Spielerdatei,"LoggedIn",SpielerInfo[playerid][LoggedIn]);
  206. return 1;
  207. }
  208.  
  209.  
  210.  
  211. stock sscanf(sstring[], format[], {Float,_}:...)
  212. {
  213. #if defined isnull
  214. if (isnull(sstring))
  215. #else
  216. if (sstring[0] == 0 || (sstring[0] == 1 && sstring[1] == 0))
  217. #endif
  218. {
  219. return format[0];
  220. }
  221. #pragma tabsize 4
  222. new
  223. formatPos = 0,
  224. sstringPos = 0,
  225. paramPos = 2,
  226. paramCount = numargs(),
  227. delim = ' ';
  228. while (sstring[sstringPos] && sstring[sstringPos] <= ' ')
  229. {
  230. sstringPos++;
  231. }
  232. while (paramPos < paramCount && sstring[sstringPos])
  233. {
  234. switch (format[formatPos++])
  235. {
  236. case '\0':
  237. {
  238. return 0;
  239. }
  240. case 'i', 'd':
  241. {
  242. new
  243. neg = 1,
  244. num = 0,
  245. ch = sstring[sstringPos];
  246. if (ch == '-')
  247. {
  248. neg = -1;
  249. ch = sstring[++sstringPos];
  250. }
  251. do
  252. {
  253. sstringPos++;
  254. if ('0' <= ch <= '9')
  255. {
  256. num = (num * 10) + (ch - '0');
  257. }
  258. else
  259. {
  260. return -1;
  261. }
  262. }
  263. while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
  264. setarg(paramPos, 0, num * neg);
  265. }
  266. case 'h', 'x':
  267. {
  268. new
  269. num = 0,
  270. ch = sstring[sstringPos];
  271. do
  272. {
  273. sstringPos++;
  274. switch (ch)
  275. {
  276. case 'x', 'X':
  277. {
  278. num = 0;
  279. continue;
  280. }
  281. case '0' .. '9':
  282. {
  283. num = (num << 4) | (ch - '0');
  284. }
  285. case 'a' .. 'f':
  286. {
  287. num = (num << 4) | (ch - ('a' - 10));
  288. }
  289. case 'A' .. 'F':
  290. {
  291. num = (num << 4) | (ch - ('A' - 10));
  292. }
  293. default:
  294. {
  295. return -1;
  296. }
  297. }
  298. }
  299. while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
  300. setarg(paramPos, 0, num);
  301. }
  302. case 'c':
  303. {
  304. setarg(paramPos, 0, sstring[sstringPos++]);
  305. }
  306. case 'f':
  307. {
  308.  
  309. new changestr[16], changepos = 0, strpos = sstringPos;
  310. while(changepos < 16 && sstring[strpos] && sstring[strpos] != delim)
  311. {
  312. changestr[changepos++] = sstring[strpos++];
  313. }
  314. changestr[changepos] = '\0';
  315. setarg(paramPos,0,_:floatstr(changestr));
  316. }
  317. case 'p':
  318. {
  319. delim = format[formatPos++];
  320. continue;
  321. }
  322. case '\'':
  323. {
  324. new
  325. end = formatPos - 1,
  326. ch;
  327. while ((ch = format[++end]) && ch != '\'') {}
  328. if (!ch)
  329. {
  330. return -1;
  331. }
  332. format[end] = '\0';
  333. if ((ch = strfind(sstring, format[formatPos], false, sstringPos)) == -1)
  334. {
  335. if (format[end + 1])
  336. {
  337. return -1;
  338. }
  339. return 0;
  340. }
  341. format[end] = '\'';
  342. sstringPos = ch + (end - formatPos);
  343. formatPos = end + 1;
  344. }
  345. case 'u':
  346. {
  347. new
  348. end = sstringPos - 1,
  349. id = 0,
  350. bool:num = true,
  351. ch;
  352. while ((ch = sstring[++end]) && ch != delim)
  353. {
  354. if (num)
  355. {
  356. if ('0' <= ch <= '9')
  357. {
  358. id = (id * 10) + (ch - '0');
  359. }
  360. else
  361. {
  362. num = false;
  363. }
  364. }
  365. }
  366. if (num && IsPlayerConnected(id))
  367. {
  368. setarg(paramPos, 0, id);
  369. }
  370. else
  371. {
  372. #if !defined foreach
  373. #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  374. #define __SSCANF_FOREACH__
  375. #endif
  376. sstring[end] = '\0';
  377. num = false;
  378. new
  379. name[MAX_PLAYER_NAME];
  380. id = end - sstringPos;
  381. foreach (Player, playerid)
  382. {
  383. GetPlayerName(playerid, name, sizeof (name));
  384. if (!strcmp(name, sstring[sstringPos], true, id))
  385. {
  386. setarg(paramPos, 0, playerid);
  387. num = true;
  388. break;
  389. }
  390. }
  391. if (!num)
  392. {
  393. setarg(paramPos, 0, INVALID_PLAYER_ID);
  394. }
  395. sstring[end] = ch;
  396. #if defined __SSCANF_FOREACH__
  397. #undef foreach
  398. #undef __SSCANF_FOREACH__
  399. #endif
  400. }
  401. sstringPos = end;
  402. }
  403. case 's', 'z':
  404. {
  405. new
  406. i = 0,
  407. ch;
  408. if (format[formatPos])
  409. {
  410. while ((ch = sstring[sstringPos++]) && ch != delim)
  411. {
  412. setarg(paramPos, i++, ch);
  413. }
  414. if (!i)
  415. {
  416. return -1;
  417. }
  418. }
  419. else
  420. {
  421. while ((ch = sstring[sstringPos++]))
  422. {
  423. setarg(paramPos, i++, ch);
  424. }
  425. }
  426. sstringPos--;
  427. setarg(paramPos, i, '\0');
  428. }
  429. default:
  430. {
  431. continue;
  432. }
  433. }
  434. while (sstring[sstringPos] && sstring[sstringPos] != delim && sstring[sstringPos] > ' ')
  435. {
  436. sstringPos++;
  437. }
  438. while (sstring[sstringPos] && (sstring[sstringPos] == delim || sstring[sstringPos] <= ' '))
  439. {
  440. sstringPos++;
  441. }
  442. paramPos++;
  443. }
  444. do
  445. {
  446. if ((delim = format[formatPos++]) > ' ')
  447. {
  448. if (delim == '\'')
  449. {
  450. while ((delim = format[formatPos++]) && delim != '\'') {}
  451. }
  452. else if (delim != 'z')
  453. {
  454. return delim;
  455. }
  456. }
  457. }
  458. while (delim > ' ');
  459.  
  460.  
  461. return 0;
  462. }
  463.  
  464.  
  465. //==========================================================================================================================================================
  466. //==========================================================================================================================================================
  467. //==========================================================================================================================================================
  468. //==========================================================================================================================================================
  469. //==========================================================================================================================================================
  470. //==========================================================================================================================================================
  471.  
  472.  
  473.  
  474.  
  475. public OnGameModeInit()
  476. {
  477. SetGameModeText("Grove Vs Vagos");
  478. AddPlayerClass(271,2495.4700,-1691.1353,14.7656,88.7245,24,999,31,1000,0,0); // Groveskin
  479. AddPlayerClass(108,2526.5800,-1033.9400,69.5800,255.1027,24,999,31,1000,0,0); // Vagosskin
  480.  
  481. Gangfightzone = GangZoneCreate(2382.454101, -1450.863281, 2574.454101, -1290.863281);
  482. VagosBase = GangZoneCreate(2457.985595, -1120.892456, 2593.985595, -984.892456);
  483. GroveStreetBase = GangZoneCreate(2408.423339, -1735.679077, 2560.423339, -1607.679077);
  484. // TIMER //
  485. SetTimer("Finish",600000,true);
  486. SetTimer("KillUpdate", 1000, true);
  487. SetTimer("PunkteUpdate", 1000, true);
  488. SetTimer("PunkteCheck", 1000, true);
  489. SetTimer("Wetter",900000, 1);
  490. SetTimer("SetWetter",1000, 1);
  491.  
  492. // SONSTIGES //
  493. ShowNameTags(1);
  494. SetWorldTime(0);
  495. UsePlayerPedAnims();
  496. ShowPlayerMarkers(0);
  497.  
  498. // TEXTDRAWS //
  499. Textdraw = TextDrawCreate(86.000000,427.000000,"Gangfight Version 0.1");
  500. TextDrawAlignment(Textdraw,2);
  501. TextDrawBackgroundColor(Textdraw,0x000000AA);
  502. TextDrawFont(Textdraw,2);
  503. TextDrawLetterSize(Textdraw,0.3000000,1.500000);
  504. TextDrawColor(Textdraw,0xffffffff);
  505. TextDrawSetOutline(Textdraw,1);
  506. TextDrawSetProportional(Textdraw,1);
  507. TextDrawSetShadow(Textdraw,1);
  508.  
  509.  
  510. // AUTOS //
  511. //-------------------------------------[Groove Autos]--------------------------------------------
  512. CreateVehicle(567,2499.7290,-1654.8717,13.3254,71.0974,86,86,600);
  513. CreateVehicle(521,2516.6213,-1662.9662,13.7545,90.7617,86,86,600);
  514. CreateVehicle(521,2516.5188,-1666.5355,13.7126,83.6155,86,86,600);
  515. CreateVehicle(521,2516.2712,-1672.2604,13.6695,63.1034,86,86,600);
  516. CreateVehicle(480,2508.1079,-1676.7578,13.3137,332.5577,86,86,600);
  517. CreateVehicle(560,2510.8142,-1686.6290,13.3836,46.0711,86,86,600);
  518. CreateVehicle(560,2490.7900,-1683.3960,13.2661,267.7853,86,86,600);
  519. CreateVehicle(560,2474.8696,-1691.6924,13.3387,358.5612,86,86,600);
  520. CreateVehicle(581,2528.3508,-1669.9441,14.7634,90.3716,86,86,600);
  521. CreateVehicle(581,2528.5940,-1669.9423,14.7675,90.3665,86,86,600);
  522. CreateVehicle(581,2528.4438,-1665.1663,14.7650,89.4413,86,86,600);
  523. CreateVehicle(581,2528.5955,-1667.4940,14.7663,91.0834,86,86,600);
  524.  
  525. //-------------------------------------[Vagos Autos]--------------------------------------------
  526. CreateVehicle(560,2530.3804,-1060.4600,69.2794,1.1289,6,6,600);
  527. CreateVehicle(560,2542.5305,-1033.3461,69.2811,179.9033,6,6,600);
  528. CreateVehicle(560,2551.0547,-1033.8213,69.2879,178.7793,6,6,600);
  529. CreateVehicle(480,2535.2632,-1035.0022,69.3542,178.9464,6,6,600);
  530. CreateVehicle(567,2543.4131,-1059.4493,69.4406,0.5185,6,6,600);
  531. CreateVehicle(461,2523.4219,-1036.8049,69.1395,181.9150,6,6,600);
  532. CreateVehicle(461,2521.9907,-1036.8163,69.1395,183.8141,6,6,600);
  533. CreateVehicle(461,2520.6208,-1036.8464,69.1593,183.9953,6,6,600);
  534. CreateVehicle(461,2519.1287,-1036.9431,69.1559,177.9429,6,6,600);
  535. CreateVehicle(461,2517.6431,-1036.8402,69.1237,175.1526,6,6,600);
  536. return 1;
  537. }
  538.  
  539.  
  540.  
  541.  
  542.  
  543. public OnPlayerRequestClass(playerid, classid)
  544. {
  545. SetupPlayerForClassSelection(playerid);
  546. switch (classid)
  547. {
  548. case 0:
  549. {
  550. GameTextForPlayer(playerid, "~g~Groves", 1200, 3);
  551. }
  552. case 1:
  553. {
  554. GameTextForPlayer(playerid, "~COLOR_YELLOW~Vagos", 1200, 3);
  555. }
  556. }
  557. return 1;
  558. }
  559.  
  560.  
  561.  
  562.  
  563. public OnPlayerConnect(playerid)
  564. {
  565. SendClientMessage(playerid, COLOR_YELLOW, "Bitte Warten...");
  566. new string[64];
  567. SendClientMessage(playerid, COLOR_LIGHTGREEN, " ");
  568. SendClientMessage(playerid, COLOR_LIGHTGREEN, " ");
  569. SendClientMessage(playerid, COLOR_LIGHTGREEN, " ");
  570. SendClientMessage(playerid, COLOR_LIGHTGREEN, " ");
  571. SendClientMessage(playerid, COLOR_LIGHTGREEN, " ");
  572. SendClientMessage(playerid, COLOR_LIGHTGREEN, " ");
  573. SendClientMessage(playerid, COLOR_LIGHTGREEN, " ");
  574. SendClientMessageToAll(0xFFFFFFAA,string);
  575. GameTextForPlayer(playerid,"~r~ Wilkommen waehle dein Team!",6000,5);
  576. new Spielerdatei[64];
  577. new name[MAX_PLAYER_NAME];
  578. GetPlayerName(playerid,name,sizeof(name));
  579. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",name);
  580. if(dini_Exists(Spielerdatei))
  581. {
  582. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"{FFCC33}Login","Passwort eingeben:","Einloggen","Abbrechen");
  583. }
  584. else
  585. {
  586. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"{FFCC33}Registrieren","Bitte gib dein gewünschtes Passwort ein:","Registrieren","Abbrechen");
  587. }
  588. if(IsPlayerConnected(playerid))
  589. {
  590. SendClientMessage(playerid, COLOR_LIGHTGREEN, "SERVER: Wilkommen auf dem Grove vs Vagos Server!");
  591. SendClientMessage(playerid, COLOR_LIGHTGREEN, "SERVER: Auf dem Server kannst du Fighten und durch Kills Punkte erzielen!");
  592. SendClientMessage(playerid, COLOR_LIGHTGREEN, "SERVER: Die erste Gang die 30 Punkte erzielt, gewinnt somit diese Runde!!");
  593. SendClientMessage(playerid, COLOR_LIGHTGREEN, "SERVER: Anschließend folgt ein kleiner Restart und es kann die nächste Runde beginnen!");
  594. SendClientMessage(playerid, COLOR_LIGHTGREEN, "SERVER: Wir wünschen dir viel Spaß!!");
  595. }
  596. return 1;
  597. }
  598.  
  599.  
  600. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  601. {
  602. if(dialogid == DIALOG_LOGIN)
  603. {
  604. if(response == 0)
  605. {
  606. SendClientMessage(playerid,ROT,"Du wurdest gekickt, da du dich nicht eingeloggt hast!");
  607. Kick(playerid);
  608. }
  609. if(response == 1)
  610. {
  611. if(!strlen(inputtext))
  612. {
  613. SendClientMessage(playerid,ROT,"Du hast nichts eingegeben!");
  614. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Passwort eingeben:","Einloggen","Abbrechen");
  615. }
  616. else
  617. {
  618. Login(playerid,inputtext);
  619. return 1;
  620. }
  621. }
  622. }
  623. if(dialogid == DIALOG_REGISTER)
  624. {
  625. if(response == 0)
  626. {
  627. SendClientMessage(playerid,COLOR_WHITE,"Du wurdest gekickt,da du dich nicht registriert hast!");
  628. Kick(playerid);
  629. }
  630. if(response == 1)
  631. {
  632. if(!strlen(inputtext))
  633. {
  634. SendClientMessage(playerid,COLOR_RED2,"Du hast nichts eingegeben!");
  635. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registration","Bitte gib dein gewünschtes Passwort ein:","Registrieren","Abbrechen");
  636. }
  637. else
  638. {
  639. Register(playerid,inputtext);
  640.  
  641. }
  642. }
  643. }
  644. return 1;
  645. }
  646.  
  647. public SendAdminMessage(color, string[])
  648. {
  649. for(new i = 0; i < MAX_PLAYERS; i++)
  650. {
  651. if(IsPlayerConnected(i))
  652. {
  653. if(SpielerInfo[i][Adminlevel] >= 1)
  654. {
  655. SendClientMessage(i, color, string);
  656. }
  657. }
  658. }
  659. }
  660.  
  661.  
  662.  
  663. public OnPlayerDisconnect(playerid, reason)
  664. {
  665. if(SpielerInfo[playerid][LoggedIn] == 1)
  666. {
  667. SpielerSpeichern(playerid);
  668. SpielerInfo[playerid][LoggedIn] = 0;
  669. }
  670. return 1;
  671. }
  672.  
  673.  
  674. public SetupPlayerForClassSelection(playerid)
  675. {
  676. SetPlayerInterior(playerid,11);
  677. SetPlayerPos(playerid,508.7362,-87.4335,998.9609);
  678. SetPlayerCameraPos(playerid,508.7362,-83.4335,998.9609);
  679. SetPlayerCameraLookAt(playerid,508.7362,-87.4335,998.9609);
  680. SetPlayerFacingAngle(playerid,0.0);
  681. new string[64], pName[MAX_PLAYER_NAME];
  682. GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
  683. format(string,sizeof string,"%s hat den Server betreten!",pName);
  684. }
  685.  
  686.  
  687.  
  688.  
  689. public OnPlayerSpawn(playerid)
  690. {
  691. GangZoneShowForPlayer(playerid, Gangfightzone, -66);
  692. GangZoneShowForPlayer(playerid, GroveStreetBase, 16711888);
  693. GangZoneShowForPlayer(playerid, VagosBase, -65332);
  694. GangZoneFlashForAll(Gangfightzone,COLOR_RED2);
  695. if(gTeam[playerid] == TEAM_GROVE)
  696. {
  697. GivePlayerWeapon(playerid,24,600);
  698. GivePlayerWeapon(playerid,31,999);
  699. SetPlayerTeam(playerid,0);
  700. Grove(playerid);
  701. SetPlayerInterior(playerid,0);
  702. TextDrawShowForPlayer(playerid, Textdraw);
  703. }
  704. else if(gTeam[playerid] == TEAM_VAGOS)
  705. {
  706. GivePlayerWeapon(playerid,24,600);
  707. GivePlayerWeapon(playerid,31,999);
  708. SetPlayerTeam(playerid,0);
  709. SetPlayerInterior(playerid,0);
  710. Vagos(playerid);
  711. TextDrawShowForPlayer(playerid, Textdraw);
  712. }
  713.  
  714. return 1;
  715. }
  716.  
  717.  
  718.  
  719.  
  720.  
  721. public OnPlayerDeath(playerid, killerid, reason)
  722. {
  723. if(IsPlayerInRangeOfPoint(playerid, 75.0, 2478.4541,-1370.8633,28.5406))
  724. {
  725. if(killerid == TEAM_VAGOS)
  726. {
  727. GameTextForPlayer(playerid, "~g~GANGZONE~r~KILL", 5000, 5);
  728. Vagosscore += 1;
  729. }
  730.  
  731. else if(killerid == TEAM_GROVE)
  732. {
  733. GameTextForPlayer(playerid, "~g~GANGZONE~r~KILL", 5000, 5);
  734. Grovescore += 1;
  735. return 1;
  736. }
  737. }
  738.  
  739. if(SpielerTot[playerid] == true)
  740. {
  741. SpielerTot[playerid] = false;
  742. if(KillerID[playerid] != INVALID_PLAYER_ID)
  743. TogglePlayerSpectating(playerid,1);
  744. PlayerSpectatePlayer(playerid,killerid);
  745. SetTimerEx("spawn",10000,1, "i", playerid);
  746. }
  747. else
  748. {
  749. TogglePlayerSpectating(playerid, 0);
  750. }
  751.  
  752. SendDeathMessage(killerid,playerid,reason);
  753. SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
  754. return 1;
  755. }
  756.  
  757.  
  758.  
  759.  
  760.  
  761. public OnPlayerCommandText(playerid, cmdtext[])
  762. {
  763. if (strcmp(cmdtext, "/buy deagle", true) == 0)
  764. {
  765. GivePlayerWeapon(playerid, WEAPON_DEAGLE, 999);
  766. GivePlayerMoney(playerid, -1000);
  767. return 1;
  768. }
  769.  
  770. if (strcmp(cmdtext, "/buy m4", true) == 0)
  771. {
  772. GivePlayerWeapon(playerid, WEAPON_M4, 999);
  773. GivePlayerMoney(playerid, -1000);
  774. return 1;
  775. }
  776.  
  777. if (strcmp(cmdtext, "/buy shotgun", true) == 0)
  778. {
  779. GivePlayerWeapon(playerid, WEAPON_SHOTGUN, 999);
  780. GivePlayerMoney(playerid, -1000);
  781. return 1;
  782. }
  783.  
  784. if (strcmp(cmdtext, "/buy messer", true) == 0)
  785. {
  786. GivePlayerWeapon(playerid, WEAPON_KNIFE, 1);
  787. GivePlayerMoney(playerid, -1000);
  788. return 1;
  789. }
  790.  
  791. if(!strcmp(cmdtext, "/ah", true))
  792. {
  793. SendClientMessage(playerid,ROT,"|===================Adminhelp===========================|!");
  794. SendClientMessage(playerid,COLOR_WHITE,"|Adminlevel 1 : /kick /admin /setweather /occ|!");
  795. SendClientMessage(playerid,COLOR_WHITE,"|Adminlevel 2/3/4 : /ban /setskin /veh /explode /getip|!");
  796. SendClientMessage(playerid,COLOR_WHITE,"|Adminlevel 5 : /makeadmin |!");
  797. SendClientMessage(playerid,ROT,"|=======================================================|!");
  798. return 1;
  799. }
  800.  
  801.  
  802.  
  803. if(!strcmp(cmdtext, "/gangfight", true))
  804. {
  805. if(gTeam[playerid] == TEAM_GROVE)
  806. {
  807. SetPlayerPos(playerid, 2478.4541,-1370.8633,28.5406);
  808. }
  809.  
  810. else if(gTeam[playerid] == TEAM_VAGOS)
  811. {
  812. SetPlayerPos(playerid, 2478.5095,-1351.6801,27.0582);
  813. }
  814. return 1;
  815. }
  816. return 0;
  817. }
  818.  
  819.  
  820.  
  821.  
  822. public PunkteUpdate()
  823. {
  824. new string[100];
  825. TextDrawHideForAll(Text:scores);
  826. format(string,sizeof(string),"~y~Vagos:%d ~w~--------~g~Grove:%d", Vagosscore,Grovescore);
  827. scores = TextDrawCreate(271.000000,400.000000,string);
  828. TextDrawTextSize(scores,200.000000,0.000000);
  829. TextDrawSetOutline(scores,1);
  830. TextDrawSetShadow(scores,1);
  831. TextDrawShowForAll(Text:scores);
  832. }
  833.  
  834.  
  835.  
  836.  
  837. public PunkteCheck(playerid)
  838. {
  839. if (Grovescore >= 30) {
  840. Grovescore = 0;
  841. Vagosscore = 0;
  842. GameTextForAll("~g~Grove haben Gewonnen",6000,5);
  843. SetPlayerHealth(playerid, 0);
  844. GangZoneStopFlashForAll(Gangfightzone);
  845. SetTimer("Finish",MAX_GM_TIME,true);
  846. }
  847.  
  848. if (Vagosscore >= 30) {
  849. Grovescore = 0;
  850. Vagosscore = 0;
  851. GameTextForAll("~y~Vagos haben Gewonnen",6000,5);
  852. SetPlayerHealth(playerid, 0);
  853. GangZoneStopFlashForAll(Gangfightzone);
  854. SetTimer("Finish",MAX_GM_TIME,true);
  855. }
  856. }
  857.  
  858.  
  859.  
  860. public Wetter()
  861. {
  862. DasWetter[0] = WetterRandomLS[random(sizeof(WetterRandomLS))];
  863. DasWetter[1] = WetterRandomSF[random(sizeof(WetterRandomSF))];
  864. DasWetter[2] = WetterRandomLV[random(sizeof(WetterRandomLV))];
  865. }
  866.  
  867. public SetWetter()
  868. {
  869. new Float:xx, Float:yy, Float:zz;
  870. for(new i=0; i< GetMaxPlayers(); i++)
  871. {
  872. if(IsPlayerConnected(i))
  873. {
  874. GetPlayerPos(i, xx, yy, zz);
  875. if((xx > -992.5172 && xx < 4000.0000) && (yy < 528.0000 && yy > -4000.0000)) //Los Santos
  876. {
  877. SetPlayerWeather(i, DasWetter[0]);
  878. }
  879. if((xx > -4000.0000 && xx< -992.5172) && (yy < 4000.0000 && yy > -4000.0000)) //San Fierro
  880. {
  881. SetPlayerWeather(i, DasWetter[1]);
  882. }
  883. if((xx > -992.5172 && xx< 4000.0000) && (yy < 4000.0000 && yy > 528.0000)) //Las Venturas
  884. {
  885. SetPlayerWeather(i, DasWetter[2]);
  886. }
  887. }
  888. }
  889. return 1;
  890. }
  891.  
  892.  
  893. public Finish()
  894. {
  895. SendRconCommand("gmx");
  896. return 1;
  897. }
  898.  
  899.  
  900.  
  901. ocmd:makeadmin(playerid,params[])
  902. {
  903. if(SpielerInfo[playerid][Adminlevel] == 5)
  904. {
  905. new pID, rank, string[128],string2[128],ziel[MAX_PLAYER_NAME],sender[MAX_PLAYER_NAME];
  906. GetPlayerName(pID,ziel,sizeof(ziel));
  907. GetPlayerName(playerid,sender,sizeof(sender));
  908. if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid, COLOR_GRAD2, "/makeadmin [ID/NAME] [Level 1-5]");
  909. SpielerInfo[pID][Adminlevel] = rank;
  910. format(string,sizeof(string),"Du wurdest zum Adminlevel %d ernannt! Glückwunsch!",rank);
  911. SendClientMessage(pID,COLOR_RED2,string);
  912. format(string2,sizeof(string2),"AdmCMD: %s hat %s Admin %d gegeben!!",sender,ziel,rank);
  913. print(string2);
  914. }
  915. else
  916. {
  917. SendClientMessage(playerid, COLOR_GRAD2, "Du bist kein Admin!");
  918. }
  919. return 1;
  920. }
  921. ocmd:kick(playerid,params[])
  922. {
  923. new name1[MAX_PLAYER_NAME], name2[MAX_PLAYER_NAME], pID, reason[128], string[128];
  924. if(SpielerInfo[playerid][Adminlevel] >= 1)
  925. {
  926. GetPlayerName(playerid,name1,sizeof(name1));
  927. GetPlayerName(pID,name2,sizeof(name2));
  928. if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid, COLOR_GRAD2, "/kick [ID/NAME] [GRUND]");
  929. format(string,sizeof(string),"AdmCmd: Spieler %s wurde von Admin %s gekickt. Grund: %s",name1,name2,reason);
  930. SendClientMessageToAll(COLOR_RED2,string);
  931. Kick(pID);
  932. }
  933. return 1;
  934. }
  935. ocmd:ban(playerid,params[])
  936. {
  937. new name1[MAX_PLAYER_NAME];
  938. new name2[MAX_PLAYER_NAME];
  939. if(SpielerInfo[playerid][Adminlevel]>=2)
  940. {
  941. new pID, reason[128], string[128];
  942. GetPlayerName(playerid,name1,sizeof(name1));
  943. GetPlayerName(pID,name2,sizeof(name2));
  944. if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid, COLOR_GRAD2, "/ban [ID/NAME] [GRUND]");
  945. format(string,sizeof(string),"AdmCmd: Spieler %s wurde von Admin %s gebannt. Grund: %s",name1,name2,reason);
  946. SendClientMessageToAll(COLOR_RED2,string);
  947. SpielerInfo[pID][Banned] = 1;
  948. Ban(pID);
  949. }
  950. else
  951. {
  952. SendClientMessage(playerid, COLOR_GRAD2,"Du bist kein Admin!");
  953. }
  954. return 1;
  955. }
  956. ocmd:setskin(playerid,params[])
  957. {
  958. new skinid1,pID,string[128];
  959. if(sscanf(params,"ud",pID,skinid1))return SendClientMessage(playerid, COLOR_GRAD2,"/setskin [PLAYERID] [SKINID]");
  960. if(SpielerInfo[playerid][Adminlevel] >= 2)
  961. {
  962. SetPlayerSkin(pID,skinid1);
  963. format(string,sizeof(string),"Ein Admin hat dir den Skin %d zugewiesen!",skinid1);
  964. SendClientMessage(pID,COLOR_ORANGE,string);
  965. }
  966. else
  967. {
  968. SendClientMessage(playerid, COLOR_GRAD2,"Du bist kein Admin!");
  969. }
  970. return 1;
  971. }
  972. ocmd:admin(playerid,params[])
  973. {
  974.  
  975. if(SpielerInfo[playerid][Adminlevel] >=1)
  976. {
  977. new name1[MAX_PLAYER_NAME];
  978. new nachricht,string[128];
  979. GetPlayerName(playerid,name1,sizeof(name1));
  980. if(sscanf(params,"s",nachricht))return SendClientMessage(playerid, COLOR_GRAD2,"/admin [TEXT]");
  981. format(string,sizeof(string),"[a]%s:%s",name1,nachricht);
  982. SendAdminMessage(COLOR_LIGHTBLUE, string);
  983. }
  984. else
  985. {
  986. SendClientMessage(playerid, COLOR_GRAD2, "Du bist kein Admin!");
  987. }
  988. return 1;
  989. }
  990. ocmd:veh(playerid,params[])
  991. {
  992. new Float:vehx,Float:vehy,Float:vehz;
  993. new vehid,cc1,cc2,string[128];
  994. if(sscanf(params,"iii",vehid,cc1,cc2))return SendClientMessage(playerid, COLOR_GRAD2,"INFO: /veh [VEHID] [COLOR 1] [COLOR 2]");
  995. if(SpielerInfo[playerid][Adminlevel] >= 2)
  996. {
  997. GetPlayerPos(playerid,vehx,vehy,vehz);
  998. AddStaticVehicle(vehid,vehx,vehy,vehz,3,cc1,cc2);
  999. format(string,sizeof(string),"Du hast das Auto mit der ID %d gespawnt!",vehid);
  1000. SendClientMessage(playerid,COLOR_GRAD2,string);
  1001. }
  1002. else
  1003. {
  1004. SendClientMessage(playerid, COLOR_GRAD2,"Du bist kein Admin");
  1005. }
  1006. return 1;
  1007. }
  1008. ocmd:setweather(playerid,params[])
  1009. {
  1010. new weatherid1,string[80];
  1011. if(sscanf(params,"i",weatherid1))return SendClientMessage(playerid, COLOR_GRAD2,"INFO: /setweather [WEATHERID]");
  1012. if(SpielerInfo[playerid][Adminlevel] >= 1)
  1013. {
  1014. SetWeather(weatherid1);
  1015. format(string,sizeof(string),"Du hast das Wetter in die ID %d geändert!",weatherid1);
  1016. SendClientMessage(playerid,COLOR_GRAD2,string);
  1017. }
  1018. else
  1019. {
  1020. SendClientMessage(playerid, COLOR_GRAD2,"Du bist kein Admin");
  1021. }
  1022. return 1;
  1023. }
  1024. ocmd:explode(playerid,params[])
  1025. {
  1026. new Float:pidx;
  1027. new Float:pidy;
  1028. new Float:pidz;
  1029. new pID;
  1030. if(sscanf(params,"u",pID))return SendClientMessage(playerid, COLOR_GRAD2, "INFO: /explode [PLAYERID]");
  1031. if(SpielerInfo[playerid][Adminlevel] >= 2)
  1032. {
  1033. GetPlayerPos(pID,pidx,pidy,pidz);
  1034. CreateExplosion(pidx,pidy,pidz,5,2);
  1035. SendClientMessage(pID,COLOR_ORANGE,"Ein Admin hat dich explodieren lassen!");
  1036. }
  1037. else
  1038. {
  1039. SendClientMessage(playerid, COLOR_GRAD2,"Du bist kein Admin!");
  1040. }
  1041. return 1;
  1042. }
  1043. ocmd:getip(playerid,params[])
  1044. {
  1045. new string[60],ziel[MAX_PLAYER_NAME],zielip[MAX_PLAYERS],pID;
  1046. if(sscanf(params,"u",pID))return SendClientMessage(playerid, COLOR_GRAD2,"INFO: /getip [PLAYERID/NAME]");
  1047. if(SpielerInfo[playerid][Adminlevel] >= 2)
  1048. {
  1049. GetPlayerName(pID,ziel,sizeof(ziel));
  1050. GetPlayerIp(pID,zielip,sizeof(zielip));
  1051. format(string,sizeof(string),"Name: %s IP: %s",ziel,zielip);
  1052. SendClientMessage(playerid,COLOR_WHITE,string);
  1053. }
  1054. else
  1055. {
  1056. SendClientMessage(playerid, COLOR_GRAD2,"Du bist kein Admin!");
  1057. }
  1058. return 1;
  1059. }
  1060. ocmd:ooc(playerid,params[])
  1061. {
  1062. new string[128],nachricht,sender[MAX_PLAYER_NAME];
  1063. if(sscanf(params,"s",nachricht))return SendClientMessage(playerid,COLOR_GRAD2,"INFO: /ooc [NACHRICHT]");
  1064. if(SpielerInfo[playerid][Adminlevel] > 1)
  1065. {
  1066. GetPlayerName(playerid, sender, sizeof(sender));
  1067. format(string,sizeof(string),"(( Admin: %s: %s ))",sender,nachricht);
  1068. SendClientMessageToAll(COLOR_WHITE,string);
  1069. }
  1070. else
  1071. {
  1072. SendClientMessage(playerid, COLOR_GRAD2,"Du bist kein Admin!");
  1073. }
  1074. return 1;
  1075. }
  1076.  
  1077.  
  1078. forward spawn(playerid);
  1079. public spawn(playerid)
  1080. {
  1081. TogglePlayerSpectating(playerid, 0);
  1082. }
  1083.  
  1084.  
  1085. #if defined FILTERSCRIPT
  1086. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement