Advertisement
Guest User

ClanWar

a guest
Jan 22nd, 2010
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.95 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #pragma dynamic 8192
  4.  
  5. #define FARBE_CLAN1 FARBE_ROT
  6. #define FARBE_CLAN2 FARBE_BLAU
  7.  
  8. #define FARBE_ROT 0xFF0000FF
  9. #define FARBE_GRAU 0xAFAFAFFF
  10. #define FARBE_GELB 0xFFFF00FF
  11. #define FARBE_WEI� 0xFFFFFFFF
  12. #define FARBE_BLAU 0x0000BBFF
  13. #define FARBE_MAGENTA 0xFF00FFFF
  14. #define FARBE_LIMEGRUEN 0x32CD32FF
  15.  
  16. #define MAPNAME "ClanWar" // �ndere hier den Mapnamen!
  17.  
  18. new TeamScore[2];
  19. new TotalTeamScore[2];
  20. new Chatverbot[MAX_PLAYERS];
  21. new TeamTode[MAX_PLAYERS];
  22. new ClanWarStart;
  23. new Text:ScoreAnzeige;
  24. new Text:Uhr;
  25. new Round;
  26. new MaximaleKills;
  27. new MaximaleRunden;
  28. new Clan1[MAX_PLAYER_NAME];
  29. new Clan2[MAX_PLAYER_NAME];
  30. new Waffen[3];
  31. new WafffenMunition[3];
  32.  
  33. forward ZeigeSpielerAdminBefehle(playerid);
  34. forward RemoveSpectatersFromBattlefield();
  35. forward SetScoreData();
  36. forward Reset();
  37. forward EndClanwar();
  38. forward ClanwarEinstellungenSpeichern();
  39. forward EinstellungenClanwar();
  40.  
  41. main()
  42. {
  43. Credits();
  44. }
  45.  
  46. public OnGameModeInit()
  47. {
  48. SendRconCommand("mapname "MAPNAME"");
  49.  
  50. EinstellungenClanwar();
  51. AddPlayerClassEx(2,223,2642.9819,1774.8007,18.8092,90,43,100000,0,0,0,0); //
  52. AddPlayerClassEx(2,29,2642.9819,1774.8007,18.8092,90,43,100000,0,0,0,0); //
  53. AddPlayerClassEx(2,217,2642.9819,1774.8007,18.8092,90,43,100000,0,0,0,0); //
  54.  
  55. AddPlayerClassEx(0,114,2642.9819,1774.8007,18.8092,90,Waffen[0],WafffenMunition[0],Waffen[1],WafffenMunition[1],Waffen[2],WafffenMunition[2]); //
  56. AddPlayerClassEx(0,115,2642.9819,1774.8007,18.8092,90,Waffen[0],WafffenMunition[0],Waffen[1],WafffenMunition[1],Waffen[2],WafffenMunition[2]); //
  57. AddPlayerClassEx(0,116,2642.9819,1774.8007,18.8092,90,Waffen[0],WafffenMunition[0],Waffen[1],WafffenMunition[1],Waffen[2],WafffenMunition[2]); //
  58.  
  59. AddPlayerClassEx(1,108,2642.9819,1774.8007,18.8092,90,Waffen[0],WafffenMunition[0],Waffen[1],WafffenMunition[1],Waffen[2],WafffenMunition[2]); //
  60. AddPlayerClassEx(1,109,2642.9819,1774.8007,18.8092,90,Waffen[0],WafffenMunition[0],Waffen[1],WafffenMunition[1],Waffen[2],WafffenMunition[2]); //
  61. AddPlayerClassEx(1,110,2642.9819,1774.8007,18.8092,90,Waffen[0],WafffenMunition[0],Waffen[1],WafffenMunition[1],Waffen[2],WafffenMunition[2]); //
  62.  
  63. UsePlayerPedAnims();
  64.  
  65. Uhr = TextDrawCreate(560.000000,3.000000,"_");
  66. TextDrawAlignment(Uhr,0);
  67. TextDrawBackgroundColor(Uhr,0x000000ff);
  68. TextDrawFont(Uhr,3);
  69. TextDrawLetterSize(Uhr,0.599999,3.599998);
  70. TextDrawColor(Uhr,0xffffffff);
  71. TextDrawSetOutline(Uhr,1);
  72. TextDrawSetProportional(Uhr,1);
  73. TextDrawSetShadow(Uhr,1);
  74. UhrSync();
  75.  
  76. SetTimer("UhrSync", 60*1000, true);
  77. SetTimer("Credits", 5000,1);
  78.  
  79. ScoreAnzeige=TextDrawCreate(319.000000,427.000000,"~w~Runde 0 / 0 Siege: ~r~0~w~ : ~b~0 ~w~Punkte: ~r~0~w~ : ~b~0");
  80. TextDrawUseBox(ScoreAnzeige,1);
  81. TextDrawBoxColor(ScoreAnzeige,0x00000099);
  82. TextDrawTextSize(ScoreAnzeige,640.000000,651.000000);
  83. TextDrawAlignment(ScoreAnzeige,2);
  84. TextDrawBackgroundColor(ScoreAnzeige,0x000000ff);
  85. TextDrawFont(ScoreAnzeige,0);
  86. TextDrawLetterSize(ScoreAnzeige,0.299999,1.200000);
  87. TextDrawColor(ScoreAnzeige,0xffffffff);
  88. TextDrawSetOutline(ScoreAnzeige,1);
  89. TextDrawSetProportional(ScoreAnzeige,1);
  90. TextDrawSetShadow(ScoreAnzeige,1);
  91. TextDrawShowForAll(ScoreAnzeige);
  92. SetNameTagDrawDistance(200.0);
  93. ShowPlayerMarkers(false);
  94. DisableInteriorEnterExits();
  95. SetTimer("RemoveSpectatersFromBattlefield",1000,1);
  96. return 1;
  97. }
  98.  
  99. public OnGameModeExit()
  100. {
  101. SendRconCommand("mapname "MAPNAME"");
  102. return 1;
  103. }
  104.  
  105. public OnPlayerRequestClass(playerid, classid)
  106. {
  107. SetPlayerPos(playerid, 2646.6465,1825.2240,28.2165);
  108. SetPlayerFacingAngle(playerid,270);
  109. SetPlayerCameraPos(playerid, 2651.1404,1824.7266,30.3539);
  110. SetPlayerCameraLookAt(playerid,2646.6465,1825.2240,29.2165);
  111. SetPlayerColor(playerid,FARBE_WEI�);
  112. new string[64];
  113. switch (GetPlayerTeam(playerid))
  114. {
  115. case 0:
  116. {
  117. format(string,sizeof(string),"~w~Clan: ~r~%s",Clan1);
  118. }
  119. case 1:
  120. {
  121. format(string,sizeof(string),"~w~Clan: ~b~%s",Clan2);
  122. }
  123. case 2:
  124. {
  125. format(string,sizeof(string),"~y~Zuschauer");
  126. }
  127. }
  128. GameTextForPlayer(playerid,string, 1000, 4);
  129. return 1;
  130. }
  131.  
  132. public OnPlayerRequestSpawn(playerid)
  133. {
  134. return 1;
  135. }
  136.  
  137. public OnPlayerConnect(playerid)
  138. {
  139. new string[128];
  140. format(string, sizeof(string), "��� %s [ID: %d] hat den Clanwar & Trainserver Server betreten.", PlayerName(playerid),playerid);
  141. for(new i=0;i<MAX_PLAYERS;i++)
  142. {
  143. if(IsPlayerConnected(i) && i!=playerid)
  144. {
  145. SendClientMessage(i,FARBE_GRAU, string);
  146. }
  147. }
  148. new IP[16];
  149. GetPlayerIp(playerid, IP, sizeof(IP));
  150. format(string, sizeof(string), "*** IP: %s", IP);
  151. for(new i=0;i<MAX_PLAYERS;i++) if(IsPlayerConnected(i) && IsPlayerAdmin(i) && i!=playerid) SendClientMessage(i,FARBE_GRAU,string);
  152. Chatverbot[playerid]=0;
  153. TeamTode[playerid]=0;
  154. TextDrawShowForPlayer(playerid,ScoreAnzeige);
  155. SetPlayerWorldBounds(playerid,2655.1851,2539.3096,1921.5702,1637.5656);
  156. TextDrawShowForPlayer(playerid,Uhr);
  157.  
  158. SendClientMessage(playerid,FARBE_ROT,"��� Server Befehle ���");
  159. SendClientMessage(playerid,FARBE_GELB,"/hilfe | /credits");
  160. SendClientMessage(playerid,FARBE_GELB,"Admin: /cmds");
  161. return 1;
  162. }
  163.  
  164. public OnPlayerDisconnect(playerid, reason)
  165. {
  166. new string[128];
  167. switch(reason)
  168. {
  169. case 0:
  170. {
  171. format(string, sizeof(string), "��� %s hat den Clanwar & Trainserver verlassen. [�Crash�]", PlayerName(playerid));
  172. SendClientMessageToAll(FARBE_GRAU, string);
  173. }
  174. case 1:
  175. {
  176. format(string, sizeof(string), "��� %s hat den Clanwar & Trainserver verlassen.", PlayerName(playerid));
  177. SendClientMessageToAll(FARBE_GRAU, string);
  178. }
  179. case 2:
  180. {
  181. format(string, sizeof(string), "��� %s hat den Clanwar & Trainserver verlassen. [�Kick/Ban�]", PlayerName(playerid));
  182. SendClientMessageToAll(FARBE_GRAU, string);
  183. }
  184. }
  185. return 1;
  186. }
  187.  
  188. public OnPlayerSpawn(playerid)
  189. {
  190. if(GetPlayerTeam(playerid)==2)
  191. {
  192. SetPlayerColor(playerid,FARBE_GELB);
  193. SetPlayerHealth(playerid,100000);
  194. }
  195.  
  196. if(GetPlayerTeam(playerid)==0)
  197. {
  198. if(!ClanWarStart) TogglePlayerControllable(playerid,false);
  199. SetPlayerColor(playerid,FARBE_CLAN1);
  200. SetPlayerPos(playerid,2601.6855-playerid,1884.4614,10.8203);
  201. SetPlayerFacingAngle(playerid,180);
  202. SetPlayerArmour(playerid,100);
  203. SetPlayerHealth(playerid,100);
  204. }
  205.  
  206. if(GetPlayerTeam(playerid)==1)
  207. {
  208. if(!ClanWarStart) TogglePlayerControllable(playerid,false);
  209. SetPlayerColor(playerid,FARBE_CLAN2);
  210. SetPlayerPos(playerid,2621.7854+playerid,1662.6602,10.82034);
  211. SetPlayerFacingAngle(playerid,0);
  212. SetPlayerArmour(playerid,100);
  213. SetPlayerHealth(playerid,100);
  214. }
  215.  
  216. SetCameraBehindPlayer(playerid);
  217. SetPlayerWorldBounds(playerid,2655.1851,2539.3096,1921.5702,1637.5656);
  218. return 1;
  219. }
  220.  
  221. public OnPlayerDeath(playerid, killerid, reason)
  222. {
  223. new string[256];
  224.  
  225. if(killerid == INVALID_PLAYER_ID)
  226. {
  227. SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
  228. }
  229. else
  230. {
  231. SendDeathMessage(killerid,playerid,reason);
  232. if(!ClanWarStart) return 1;
  233. if(GetPlayerTeam(playerid)!=2 && GetPlayerTeam(playerid)!=GetPlayerTeam(killerid) && GetPlayerTeam(killerid)!=2)
  234. {
  235. SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
  236. TeamScore[GetPlayerTeam(killerid)]++;
  237. if(TeamScore[GetPlayerTeam(killerid)]==MaximaleKills)
  238. {
  239. TotalTeamScore[GetPlayerTeam(killerid)]++;
  240. ClanwarEinstellungenSpeichern();
  241. Reset();
  242. Round++;
  243. SetScoreData();
  244. if(Round>MaximaleRunden) return EndClanwar();
  245. for(new i=0;i<MAX_PLAYERS;i++) if(IsPlayerConnected(i)) TogglePlayerControllable(i,true);
  246. format(string,sizeof(string),"~w~Runde ~g~%d ~w~wird gestartet!",Round);
  247. GameTextForAll(string,0,1);
  248. }
  249. }
  250. else if(GetPlayerTeam(killerid)==GetPlayerTeam(playerid))
  251. {
  252. TeamScore[GetPlayerTeam(killerid)]-=1;
  253. SendClientMessage(killerid,FARBE_LIMEGRUEN,"Teamkill ist nicht erlaubt! [-1 Score]");
  254. }
  255. SetScoreData();
  256. }
  257. return 1;
  258. }
  259.  
  260. public OnPlayerCommandText(playerid, cmdtext[])
  261. {
  262. new cmd[64],idx;
  263. cmd = strtok(cmdtext, idx);
  264.  
  265. if(strcmp("/kill",cmd,true)==0)
  266. {
  267. if(GetPlayerTeam(playerid)!=2) return 0;
  268. SetPlayerHealth(playerid,0);
  269. return 1;
  270. }
  271.  
  272. if(strcmp("/cmds",cmd,true)==0)
  273. {
  274. if(!IsPlayerAdmin(playerid))
  275. {
  276. ZeigeSpielerAdminBefehle(playerid);
  277. } else {
  278. SendClientMessage(playerid,FARBE_ROT,"� Du bist kein Administrator!");
  279. }
  280. return 1;
  281. }
  282.  
  283. if(strcmp("/freezeall", cmd,true) == 0)
  284. {
  285. if(!IsPlayerAdmin(playerid))
  286. {
  287. for(new i=0;i<MAX_PLAYERS;i++)
  288. {
  289. if(IsPlayerConnected(i) && GetPlayerTeam(i)!=2)TogglePlayerControllable(i,false);
  290. }
  291. SendClientMessageToAll(FARBE_LIMEGRUEN,"� Alle wurden gefreezt!");
  292. }
  293. else
  294. {
  295. SendClientMessage(playerid,FARBE_ROT,"� Du bist kein Administrator!");
  296. }
  297. return 1;
  298. }
  299.  
  300. if(strcmp("/unfreezeall", cmd,true) == 0)
  301. {
  302. if(!IsPlayerAdmin(playerid))
  303. {
  304. for(new i=0;i<MAX_PLAYERS;i++)
  305. {
  306. if(IsPlayerConnected(i) && GetPlayerTeam(i)!=2)TogglePlayerControllable(i,true);
  307. }
  308. SendClientMessageToAll(FARBE_LIMEGRUEN,"� Alle wurden entfreezt!");
  309. }
  310. else
  311. {
  312. SendClientMessage(playerid,FARBE_ROT,"� Du bist kein Administrator!");
  313. }
  314. return 1;
  315. }
  316.  
  317. if(strcmp(cmd,"/force",true)==0)
  318. {
  319. if(!IsPlayerAdmin(playerid))
  320. {
  321. new tmp[64],id;
  322. tmp=strtok(cmdtext,idx);
  323. if(!strlen(tmp)) return 0;
  324. id=strval(tmp);
  325. SetPlayerHealth(id,0);
  326. ForceClassSelection(id);
  327. }
  328. else
  329. {
  330. SendClientMessage(playerid,FARBE_ROT,"� Du bist kein Administrator!");
  331. }
  332. return 1;
  333. }
  334.  
  335. if(strcmp(cmd,"/spawn",true)==0)
  336. {
  337. if(!IsPlayerAdmin(playerid))
  338. {
  339. new tmp[64],id;
  340. tmp=strtok(cmdtext,idx);
  341. if(!strlen(tmp)) return 0;
  342. id=strval(tmp);
  343. SpawnPlayer(id);
  344. }
  345. else
  346. {
  347. SendClientMessage(playerid,FARBE_ROT,"� Du bist kein Administrator!");
  348. }
  349. return 1;
  350. }
  351.  
  352. if(strcmp(cmd,"/kick",true)==0)
  353. {
  354. if(!IsPlayerAdmin(playerid))
  355. {
  356. new tmp[64],id;
  357. tmp=strtok(cmdtext,idx);
  358. if(!strlen(tmp)) return 0;
  359. id=strval(tmp);
  360. printf("%s gekickt von %s",PlayerName(id),PlayerName(playerid));
  361. Kick(id);
  362. }
  363. else
  364. {
  365. SendClientMessage(playerid,FARBE_ROT,"� Du bist kein Administrator!");
  366. }
  367. return 1;
  368. }
  369.  
  370. if(strcmp(cmd,"/ban",true)==0)
  371. {
  372. if(!IsPlayerAdmin(playerid))
  373. {
  374. new tmp[64],id;
  375. tmp=strtok(cmdtext,idx);
  376. if(!strlen(tmp)) return 0;
  377. id=strval(tmp);
  378. printf("%s gebannt von %s",PlayerName(id),PlayerName(playerid));
  379. Ban(id);
  380. }
  381. else
  382. {
  383. SendClientMessage(playerid,FARBE_ROT,"� Du bist kein Administrator!");
  384. }
  385. return 1;
  386. }
  387.  
  388. if(strcmp(cmd,"/freeze",true)==0)
  389. {
  390. if(!IsPlayerAdmin(playerid))
  391. {
  392. new tmp[64],id;
  393. tmp=strtok(cmdtext,idx);
  394. if(!strlen(tmp)) return 0;
  395. id=strval(tmp);
  396. TogglePlayerControllable(id,false);
  397. new string[128];
  398. format(string,sizeof(string),"� %s gefreezt.",PlayerName(id));
  399. SendClientMessage(playerid,FARBE_LIMEGRUEN,string);
  400. }
  401. else
  402. {
  403. SendClientMessage(playerid,FARBE_ROT,"� Du bist kein Administrator!");
  404. }
  405. return 1;
  406. }
  407.  
  408. if(strcmp(cmd,"/unfreeze",true)==0)
  409. {
  410. if(!IsPlayerAdmin(playerid))
  411. {
  412. new tmp[64],id;
  413. tmp=strtok(cmdtext,idx);
  414. if(!strlen(tmp)) return 0;
  415. id=strval(tmp);
  416. TogglePlayerControllable(id,true);
  417. new string[128];
  418. format(string,sizeof(string),"� %s entfreezt.",PlayerName(id));
  419. SendClientMessage(playerid,FARBE_LIMEGRUEN,string);
  420. }
  421. else
  422. {
  423. SendClientMessage(playerid,FARBE_ROT,"� Du bist kein Administrator!");
  424. }
  425. return 1;
  426. }
  427.  
  428. if(strcmp(cmd,"/hdf",true)==0)
  429. {
  430. if(!IsPlayerAdmin(playerid))
  431. {
  432. new tmp[64],id;
  433. tmp=strtok(cmdtext,idx);
  434. if(!strlen(tmp)) return 0;
  435. id=strval(tmp);
  436. Chatverbot[id]=1;
  437. new string[128];
  438. format(string,sizeof(string),"� %s auf HDF-Liste gesetzt.",PlayerName(id));
  439. SendClientMessage(playerid,FARBE_LIMEGRUEN,string);
  440. }
  441. else
  442. {
  443. SendClientMessage(playerid,FARBE_ROT,"� Du bist kein Administrator!");
  444. }
  445. return 1;
  446. }
  447.  
  448. if(strcmp(cmd,"/unhdf",true)==0)
  449. {
  450. if(!IsPlayerAdmin(playerid))
  451. {
  452. new tmp[64],id;
  453. tmp=strtok(cmdtext,idx);
  454. if(!strlen(tmp)) return 0;
  455. id=strval(tmp);
  456. Chatverbot[id]=0;
  457. new string[128];
  458. format(string,sizeof(string),"� %s von HDF-Liste entfernt.",PlayerName(id));
  459. SendClientMessage(playerid,FARBE_LIMEGRUEN,string);
  460. }
  461. else
  462. {
  463. SendClientMessage(playerid,FARBE_ROT,"� Du bist kein Administrator!");
  464. }
  465. return 1;
  466. }
  467.  
  468. if(strcmp(cmd,"/startcw",true)==0)
  469. {
  470. new y,m,d;
  471. getdate(y,m,d);
  472. if(!IsPlayerAdmin(playerid))
  473. {
  474. if(ClanWarStart)return 0;
  475. ClanWarStart=1;
  476. Round=1;
  477. TotalTeamScore[0]=0;
  478. TotalTeamScore[1]=0;
  479. Reset();
  480. SendClientMessageToAll(FARBE_LIMEGRUEN,"� Clanwar wird gestartet, loading files....");
  481. new string[256];
  482. format(string,sizeof(string),"~w~Runde ~g~%d ~w~wird gestartet!",Round);
  483. GameTextForAll(string,0,1);
  484. SetScoreData();
  485. }
  486. else
  487. {
  488. SendClientMessage(playerid,FARBE_ROT,"� Du bist kein Administrator!");
  489. }
  490. return 1;
  491. }
  492.  
  493. if(strcmp(cmd,"/endcw",true)==0)
  494. {
  495. if(!IsPlayerAdmin(playerid))
  496. {
  497. if(!ClanWarStart)return 0;
  498. ClanwarEinstellungenSpeichern();
  499. EndClanwar();
  500. }
  501. else
  502. {
  503. SendClientMessage(playerid,FARBE_ROT,"� Du bist kein Administrator!");
  504. }
  505. return 1;
  506. }
  507.  
  508. if(strcmp(cmd,"/reset",true)==0)
  509. {
  510. if(!IsPlayerAdmin(playerid))
  511. {
  512. if(!ClanWarStart)return 0;
  513. Reset();
  514. SetScoreData();
  515. new string[128];
  516. format(string,sizeof(string),"~w~Runde ~g~%d ~w~wird neugestartet!",Round);
  517. GameTextForAll(string,0,1);
  518. }
  519. else
  520. {
  521. SendClientMessage(playerid,FARBE_ROT,"� Du bist kein Administrator!");
  522. }
  523. return 1;
  524. }
  525.  
  526. if(strcmp(cmd,"/credits",true)==0)
  527. {
  528. SendClientMessage(playerid,FARBE_GELB,"��� Server Credits ���");
  529. SendClientMessage(playerid,FARBE_LIMEGRUEN,"� Markus Schneider (Scripter)");
  530. SendClientMessage(playerid,FARBE_LIMEGRUEN,"� Double_O_$even (Scripter)");
  531. return 1;
  532. }
  533.  
  534. if(strcmp(cmd,"/hilfe",true)==0)
  535. {
  536. SendClientMessage(playerid,FARBE_GELB,"��� Server Hilfe ���");
  537. SendClientMessage(playerid,FARBE_LIMEGRUEN,"� Herzlich Willkommen auf unserem ClanWar Server.");
  538. SendClientMessage(playerid,FARBE_LIMEGRUEN,"� Mit /credits kannst du die Ersteller des Scripts sehen.");
  539. SendClientMessage(playerid,FARBE_LIMEGRUEN,"� Bei fragen wende dich an einen Administrator!");
  540. return 1;
  541. }
  542.  
  543. if(IsPlayerAdmin(playerid)) return ZeigeSpielerAdminBefehle(playerid);
  544. return SendClientMessage(playerid,FARBE_GELB,"� Dieser Befehl existiert nicht!");
  545. }
  546.  
  547. public OnPlayerText(playerid,text[])
  548. {
  549. if(Chatverbot[playerid]) return 0;
  550. if(text[0]=='!')
  551. {
  552. new string[128];
  553. switch (GetPlayerTeam(playerid))
  554. {
  555. case 0:
  556. {
  557. format(string,sizeof(string),"[�Clanchat�] %s sagt: � %s",PlayerName(playerid),text[1]);
  558. for(new i=0;i<MAX_PLAYERS;i++)
  559. if(IsPlayerConnected(i))
  560. if(GetPlayerTeam(i)==0)
  561. SendClientMessage(i,FARBE_CLAN1,string);
  562. return 0;
  563. }
  564. case 1:
  565. {
  566. format(string,sizeof(string),"[�Clanchat�] %s sagt: � %s",PlayerName(playerid),text[1]);
  567. for(new i=0;i<MAX_PLAYERS;i++)
  568. if(IsPlayerConnected(i))
  569. if(GetPlayerTeam(i)==1)
  570. SendClientMessage(i,FARBE_CLAN2,string);
  571. return 0;
  572. }
  573. case 2:
  574. {
  575. format(string,sizeof(string),"[�Zuschauerchat�] %s sagt: � %s",PlayerName(playerid),text[1]);
  576. for(new i=0;i<MAX_PLAYERS;i++)
  577. if(IsPlayerConnected(i))
  578. if(GetPlayerTeam(i)==2)
  579. SendClientMessage(i,FARBE_GELB,string);
  580. return 0;
  581. }
  582. }
  583. }
  584. return 1;
  585. }
  586.  
  587. stock PlayerName(playerid)
  588. {
  589. new name[255];
  590. GetPlayerName(playerid, name, 255);
  591. return name;
  592. }
  593.  
  594. public SetScoreData()
  595. {
  596. new string[128];
  597. format(string,sizeof(string),"~w~Runde %d / %d Siege: ~r~%s %d~w~ : ~b~%s %d ~w~Punkte: ~r~%d~w~ : ~b~%d",Round,MaximaleRunden,Clan1,TotalTeamScore[0],Clan2,TotalTeamScore[1],TeamScore[0],TeamScore[1]);
  598. TextDrawSetString(ScoreAnzeige,string);
  599. return 1;
  600. }
  601.  
  602. public Reset()
  603. {
  604. TeamScore[0]=0;
  605. TeamScore[1]=0;
  606. for(new i=0;i<MAX_PLAYERS;i++)
  607. {
  608. if(IsPlayerConnected(i))
  609. {
  610. SetPlayerScore(i,0);
  611. TeamTode[i]=0;
  612. if(GetPlayerTeam(i)!=2)SpawnPlayer(i);
  613. }
  614. }
  615. return 1;
  616. }
  617.  
  618. public EndClanwar()
  619. {
  620. ClanWarStart=0;
  621. Round=0;
  622. Reset();
  623. new string[128];
  624. new Color;
  625. if(TotalTeamScore[0]>TotalTeamScore[1])
  626. {
  627. format(string,sizeof(string),"��� %s hat den Clanwar gewonnen! ���",Clan1);
  628. Color=FARBE_CLAN1;
  629. }
  630. else if(TotalTeamScore[0]<TotalTeamScore[1])
  631. {
  632. format(string,sizeof(string),"��� %s hat den Clanwar gewonnen! ���",Clan2);
  633. Color=FARBE_CLAN2;
  634. }
  635. else
  636. {
  637. format(string,sizeof(string),"��� Kein Clan hat den Clanwar gewonnen! Es steht unentschieden! ���");
  638. Color=FARBE_LIMEGRUEN;
  639. }
  640. SendClientMessageToAll(Color,string);
  641. SetScoreData();
  642. TotalTeamScore[0]=0;
  643. TotalTeamScore[1]=0;
  644. return 1;
  645. }
  646.  
  647. public ClanwarEinstellungenSpeichern()
  648. {
  649. new File:SaveFile,string[256],y,m,d;
  650. getdate(y,d,m);
  651. SaveFile=fopen("Einstellungen.clanwar",io_append);
  652. format(string,sizeof(string),"== Clanwardaten vom Clanwar '%s' Vs. '%s' vom %d.%d.%d, Runde %d ==\n",Clan1,Clan2,d,m,y,Round);
  653. fwrite(SaveFile,string);
  654. format(string,sizeof(string),"Siege bis zu dieser Runde: %s: %d, %s: %d\n",Clan1,TotalTeamScore[0],Clan2,TotalTeamScore[1]);
  655. fwrite(SaveFile,string);
  656. fwrite(SaveFile,"___________________________________________________\n\n");
  657. format(string,sizeof(string),"Daten von Clan '%s':\n Gesamtpunkte dieser Runde: %d\nSpielerdaten:\n",Clan1,TeamScore[0]);
  658. fwrite(SaveFile,string);
  659. for(new i=0;i<MAX_PLAYERS;i++)
  660. {
  661. if(IsPlayerConnected(i) && GetPlayerTeam(i)==0)
  662. {
  663. format(string,sizeof(string),"- %s: Kills: %d, TeamTode: %d, Punkte: %d\n",PlayerName(i),GetPlayerScore(i)+TeamTode[i],TeamTode[i],GetPlayerScore(i));
  664. fwrite(SaveFile,string);
  665. }
  666. }
  667. fwrite(SaveFile,"___________________________________________________\n\n");
  668. format(string,sizeof(string),"Daten von Clan '%s':\n Gesamtpunkte dieser Runde: %d\nSpielerdaten:\n",Clan2,TeamScore[1]);
  669. fwrite(SaveFile,string);
  670. for(new i=0;i<MAX_PLAYERS;i++)
  671. {
  672. if(IsPlayerConnected(i) && GetPlayerTeam(i)==1)
  673. {
  674. format(string,sizeof(string),"- %s: Kills: %d, TeamTode: %d, Punkte: %d\n",PlayerName(i),GetPlayerScore(i)+TeamTode[i],TeamTode[i],GetPlayerScore(i));
  675. fwrite(SaveFile,string);
  676. }
  677. }
  678. fwrite(SaveFile,"===================================================\n\n\n\n");
  679. fclose(SaveFile);
  680. return 1;
  681. }
  682.  
  683. public EinstellungenClanwar()
  684. {
  685. new string[256];
  686. new File:CfgFile;
  687. CfgFile=fopen("CFG.clanwar",io_read);
  688. fread(CfgFile,string,sizeof(string));
  689. fclose(CfgFile);
  690. printf("Konfiguriere Clanwar...\n");
  691. format(Clan1,sizeof(Clan1),"%s",PointOverString(string,0,','));
  692. format(Clan2,sizeof(Clan2),"%s",PointOverString(string,1,','));
  693. MaximaleKills=strval(PointOverString(string,2,','));
  694. MaximaleRunden=strval(PointOverString(string,3,','));
  695. Waffen[0]=strval(PointOverString(string,4,','));
  696. WafffenMunition[0]=strval(PointOverString(string,5,','));
  697. Waffen[1]=strval(PointOverString(string,6,','));
  698. WafffenMunition[1]=strval(PointOverString(string,7,','));
  699. Waffen[2]=strval(PointOverString(string,8,','));
  700. WafffenMunition[2]=strval(PointOverString(string,9,','));
  701. format(string,sizeof(string),"%s Vs. %s",Clan1,Clan2);
  702. printf("+-- '%s' Vs. '%s' --+\n| Max. Kills=%d |\n| Max. Runden=%d |\n+-----------------------------------+",Clan1,Clan2,MaximaleKills,MaximaleRunden);
  703. SetGameModeText(string);
  704. return 1;
  705. }
  706.  
  707. public RemoveSpectatersFromBattlefield()
  708. {
  709. new Float:x,Float:y,Float:z;
  710. #pragma unused x
  711. #pragma unused y
  712. for(new i=0;i<MAX_PLAYERS;i++)
  713. {
  714. if(IsPlayerConnected(i) && GetPlayerTeam(i)==2 && GetPlayerState(i)!=PLAYER_STATE_WASTED)
  715. {
  716. GetPlayerPos(i,x,y,z);
  717. if(z<13 && z>9) SpawnPlayer(i);
  718. }
  719. }
  720. return 1;
  721. }
  722.  
  723. public ZeigeSpielerAdminBefehle(playerid)
  724. {
  725. SendClientMessage(playerid,FARBE_MAGENTA,"Admincommands: /(un)freezeall, /force ID, /spawn ID");
  726. SendClientMessage(playerid,FARBE_MAGENTA,"/(un)freeze ID, /(un)hdf ID, /kick ID, /ban ID");
  727. SendClientMessage(playerid,FARBE_MAGENTA,"/startcw, /endcw, /reset");
  728. return 1;
  729. }
  730.  
  731. forward UhrSync();
  732. public UhrSync()
  733. {
  734. new str[32];
  735. new hour, minute, second;
  736. gettime(hour,minute,second);
  737. format(str,sizeof(str),"%02d:%02d",hour,minute);
  738. TextDrawSetString(Uhr, str);
  739. SetWorldTime(hour);
  740. }
  741.  
  742. forward Credits();
  743. public Credits()
  744. {
  745. print("� Credits:");
  746. print("� Markus Schneider & Double-O-$even");
  747. return 1;
  748. }
  749.  
  750. stock PointOverString(string[], argument, schar)
  751. {
  752. new length = strlen(string), arg, result[128], index;
  753. for (new i = 0; i < length; i++)
  754. {
  755. if (string[i] == schar || i == length || string[i + 1] == 10)
  756. {
  757. arg++;
  758. if (arg == argument + 1)
  759. {
  760. result[i-index] = EOS;
  761. return result;
  762. }
  763. else if (arg == argument)
  764. index = i+1;
  765. }
  766. else if (arg == argument)
  767. result[i - index] = string[i];
  768. }
  769. return result;
  770. }
  771.  
  772. strtok(const string[], &index)
  773. {
  774. new length = strlen(string);
  775. while ((index < length) && (string[index] <= ' '))
  776. {
  777. index++;
  778. }
  779.  
  780. new offset = index;
  781. new result[20];
  782. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  783. {
  784. result[index - offset] = string[index];
  785. index++;
  786. }
  787. result[index - offset] = EOS;
  788. return result;
  789. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement