mskamilor

LRAS by mskamilor

Feb 1st, 2012
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.22 KB | None | 0 0
  1. /*==============================================================================
  2. Copyright (c) 2012-2013
  3. mskamilor
  4.  
  5.  
  6. LRAS - Login Register Admin System by mskamilor
  7.  
  8. V.0.1
  9.  
  10. - Login/Register
  11. - (TAB) Mini Admin Panel
  12. - stats
  13. - Administatoren Namen
  14.  
  15. V.0.2
  16.  
  17. - Support System
  18.  
  19. =========================
  20. Befehle V.0.1:
  21.  
  22. - Spec,Specoff
  23. - Ban
  24. - Kick
  25. - Fixveh
  26. - Cveh
  27. - Makeadmin
  28. - Heal
  29. - Kill
  30. - mute
  31. - unmute
  32. - muteall
  33. - unmuteall
  34.  
  35. V.0.2
  36.  
  37. - c
  38. - explode
  39. - aduty
  40. - support
  41. - annehmen
  42. - close
  43.  
  44. ===============================================================================*/
  45.  
  46.  
  47. #include <a_samp>
  48. #include <dini>
  49. #include <ocmd>
  50.  
  51. #define COLOR_RED 0xAA3333AA
  52. #define COLOR_WHITE 0xFFFFFFFF
  53. #define hellblau 0xFFFFFF
  54. #define BLAU 0xFFFFFF
  55.  
  56. #define DIALOG_REGISTER 1
  57. #define DIALOG_LOGIN 2
  58. #define DIALOG_AH 3
  59. #define DIALOG_STATS 4
  60. #define DIALOG_PANEL 5
  61.  
  62. #define Adminlevel1 "Supporter" // die Namem können belibig geändert werden
  63. #define Adminlevel2 "Admin"
  64. #define Adminlevel3 "Super Admin"
  65. #define Adminlevel4 "Server Manager"
  66. #define Adminlevel5 "Server Owner"
  67.  
  68. #define SLOT 50 // HIER IMMER DIE DERZEITIGE SOLTS ANZAHL EINGEBEN
  69.  
  70. new bool:MuteNET[SLOT];
  71. new
  72. Mut,
  73. MutTime,
  74. StrMut[100],
  75. PlayerName[MAX_PLAYER_NAME],
  76. PlayerName2[MAX_PLAYER_NAME];
  77.  
  78. new Ticket[MAX_PLAYERS];
  79. new Support[MAX_PLAYERS];
  80. new InSup[MAX_PLAYERS];
  81. new ADuty[MAX_PLAYERS];
  82.  
  83. forward UnMute(playerid);
  84.  
  85.  
  86. main()
  87. {
  88. print("\n----------------------------------");
  89. print(" LRAS by mskamilor");
  90. print("----------------------------------\n");
  91. }
  92.  
  93. public OnFilterScriptInit()
  94. {
  95. return 1;
  96. }
  97.  
  98. public OnFilterScriptExit()
  99. {
  100. return 1;
  101. }
  102.  
  103. public OnPlayerRequestClass(playerid, classid)
  104. {
  105. return 1;
  106. }
  107.  
  108. public OnPlayerConnect(playerid)
  109. {
  110. for(new i=0; i<10; i++) SendClientMessage(playerid,COLOR_WHITE,"");
  111. new Datei[64];
  112. new name[MAX_PLAYER_NAME];
  113. GetPlayerName(playerid,name,sizeof(name));
  114. format(Datei,sizeof(Datei),"/%s.txt",name);
  115. if(dini_Exists(Datei))
  116. {
  117. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","{FFFFFF}Dein {FF8A05}Account {FFFFFF}wurde gefunden.\nDu kannst dich nun mit deinen Passwort einlogen{FF8A05}:","Login","Abbrechen");
  118. }
  119. else
  120. {
  121. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrieren","{FF8A05}Willkommen\n{FFFFFF}schön das du unseren Server gefunden hast\nWir sind ein Freeroam\nAlso ist hier alles außer Cheats erlaubt\n\n\nViel Spaß wünscht ihnen das {FF8A05}Team","Register","Abbrechen");
  122. }
  123. SetPVarInt(playerid,"spect",-1);
  124. SetPVarInt(playerid,"spec",-1);
  125. MuteNET[playerid] = false;
  126. if(IsAdmin(playerid,1))
  127. {
  128. ADuty[playerid] =0;
  129. }
  130. InSup[playerid] = 0;
  131. Support[playerid] = 0;
  132. Ticket[playerid] = 0;
  133. return 1;
  134. }
  135.  
  136. public OnPlayerDisconnect(playerid, reason)
  137. {
  138. if(GetPVarInt(playerid,"loggedin")==1)
  139. {
  140. SpielerSpeichern(playerid);
  141. }
  142. if(GetPVarInt(playerid,"spect")!=-1)
  143. {
  144. TogglePlayerSpectating(GetPVarInt(playerid,"spect"),0);
  145. SetCameraBehindPlayer(GetPVarInt(playerid,"spect"));
  146. SetPVarInt(GetPVarInt(playerid,"spect"),"spec",-1);
  147. }
  148. else if(GetPVarInt(playerid,"spec")!=-1)SetPVarInt(GetPVarInt(playerid,"spec"),"spec",-1);
  149. InSup[playerid] = 0;
  150. Support[playerid] = 0;
  151. Ticket[playerid] = 0;
  152. ADuty[playerid] = 0;
  153. return 1;
  154. }
  155.  
  156. public OnPlayerSpawn(playerid)
  157. {
  158. return 1;
  159. }
  160.  
  161. public OnPlayerDeath(playerid, killerid, reason)
  162. {
  163. return 1;
  164. }
  165.  
  166. public OnVehicleSpawn(vehicleid)
  167. {
  168. return 1;
  169. }
  170.  
  171. public OnVehicleDeath(vehicleid, killerid)
  172. {
  173. return 1;
  174. }
  175.  
  176. public OnPlayerText(playerid, text[])
  177. {
  178. if(MuteNET[playerid] == true)
  179. {
  180. SendClientMessage(playerid,COLOR_RED,"Du bist gemutet und kannst nicht reden!");
  181. return 0;
  182. }
  183. if(InSup[playerid] == 1)
  184. {
  185. for(new i=0; i<GetMaxPlayers(); i++)
  186. {
  187. if(Support[i] == playerid)
  188. {
  189. new str[128];
  190. format(str,sizeof(str),"%s: %s",SpielerName(playerid),text);
  191. SendClientMessage(i,COLOR_RED,str);
  192. }
  193. }
  194. }
  195. return 1;
  196. }
  197.  
  198. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  199. {
  200. return 1;
  201. }
  202.  
  203. public OnPlayerExitVehicle(playerid, vehicleid)
  204. {
  205. return 1;
  206. }
  207.  
  208. public OnPlayerStateChange(playerid, newstate, oldstate)
  209. {
  210. if(GetPVarInt(playerid,"spect")!=-1)
  211. {
  212. switch(newstate)
  213. {
  214. case 0,1,7,8: PlayerSpectatePlayer(GetPVarInt(playerid,"spect"),playerid);
  215. case 2,3:PlayerSpectateVehicle(GetPVarInt(playerid,"spect"),GetPlayerVehicleID(playerid));
  216. case 9:
  217. {
  218. SetPVarInt(GetPVarInt(playerid,"spect"),"spec",-1);
  219. TogglePlayerSpectating(GetPVarInt(playerid,"spect"),0);
  220. SetCameraBehindPlayer(GetPVarInt(playerid,"spect"));
  221. }
  222. }
  223. }
  224. return 1;
  225. }
  226.  
  227. public OnPlayerEnterCheckpoint(playerid)
  228. {
  229. return 1;
  230. }
  231.  
  232. public OnPlayerLeaveCheckpoint(playerid)
  233. {
  234. return 1;
  235. }
  236.  
  237. public OnPlayerEnterRaceCheckpoint(playerid)
  238. {
  239. return 1;
  240. }
  241.  
  242. public OnPlayerLeaveRaceCheckpoint(playerid)
  243. {
  244. return 1;
  245. }
  246.  
  247. public OnRconCommand(cmd[])
  248. {
  249. return 1;
  250. }
  251.  
  252. public OnPlayerRequestSpawn(playerid)
  253. {
  254. return 1;
  255. }
  256.  
  257. public OnObjectMoved(objectid)
  258. {
  259. return 1;
  260. }
  261.  
  262. public OnPlayerObjectMoved(playerid, objectid)
  263. {
  264. return 1;
  265. }
  266.  
  267. public OnPlayerPickUpPickup(playerid, pickupid)
  268. {
  269. return 1;
  270. }
  271.  
  272. public OnVehicleMod(playerid, vehicleid, componentid)
  273. {
  274. return 1;
  275. }
  276.  
  277. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  278. {
  279. return 1;
  280. }
  281.  
  282. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  283. {
  284. return 1;
  285. }
  286.  
  287. public OnPlayerSelectedMenuRow(playerid, row)
  288. {
  289. return 1;
  290. }
  291.  
  292. public OnPlayerExitedMenu(playerid)
  293. {
  294. return 1;
  295. }
  296.  
  297. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  298. {
  299. return 1;
  300. }
  301.  
  302. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  303. {
  304. return 1;
  305. }
  306.  
  307. public OnRconLoginAttempt(ip[], password[], success)
  308. {
  309. return 1;
  310. }
  311.  
  312. public OnPlayerUpdate(playerid)
  313. {
  314. return 1;
  315. }
  316.  
  317. public OnPlayerStreamIn(playerid, forplayerid)
  318. {
  319. return 1;
  320. }
  321.  
  322. public OnPlayerStreamOut(playerid, forplayerid)
  323. {
  324. return 1;
  325. }
  326.  
  327. public OnVehicleStreamIn(vehicleid, forplayerid)
  328. {
  329. return 1;
  330. }
  331.  
  332. public OnVehicleStreamOut(vehicleid, forplayerid)
  333. {
  334. return 1;
  335. }
  336. new plID;
  337. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  338. {
  339. if(dialogid==DIALOG_LOGIN)
  340. {
  341. if(response==0)
  342. {
  343. SendClientMessage(playerid,COLOR_WHITE,"Du hast den Vorgang abgebrochen.");
  344. Kick(playerid);
  345. return 1;
  346. }
  347. if(response==1)
  348. {
  349. if(!strlen(inputtext))
  350. {
  351. SendClientMessage(playerid,COLOR_WHITE,"Das Passwort war nicht lang genug.");
  352. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","{FFFFFF}Du hast nix eingegeben\n\nVersuche es erneut:","Login","Abbrechen");
  353. return 1;
  354. }
  355. else
  356. {
  357. Login(playerid,inputtext);
  358. return 1;
  359. }
  360. }
  361. }
  362. if(dialogid==DIALOG_REGISTER)
  363. {
  364. if(response==0)
  365. {
  366. SendClientMessage(playerid,COLOR_WHITE,"Du hast den Vorgang abgebrochen.");
  367. Kick(playerid);
  368. return 1;
  369. }
  370. if(response==1)
  371. {
  372. if(!strlen(inputtext))
  373. {
  374. SendClientMessage(playerid,COLOR_WHITE,"Das Passwort war nicht lang genug.");
  375. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrieren","{FFFFFF}Du hast nix eingegeben\n\nVersuche es erneut:","Register","Abbrechen");
  376. return 1;
  377. }
  378. else
  379. {
  380. Register(playerid,inputtext);
  381. return 1;
  382. }
  383. }
  384. if(dialogid == DIALOG_PANEL)
  385. {
  386. if(listitem==0)
  387. {
  388. SendClientMessage(plID,COLOR_RED,"Du wurdest Gebannt"),Ban(plID);
  389. }
  390. if(listitem==1)
  391. {
  392. SendClientMessage(plID,COLOR_RED,"Du wurdest Gekickt"),Kick(plID);
  393. }
  394. if(listitem==2)
  395. {
  396. new Float:x,Float:y,Float:z;
  397. GetPlayerPos(plID,x,y,z);
  398. SetPlayerPos(playerid,x,y,z);
  399. }
  400. if(listitem==3)
  401. {
  402. new Float:x,Float:y,Float:z;
  403. GetPlayerPos(playerid,x,y,z);
  404. SetPlayerPos(plID,x,y,z);
  405. }
  406. if(listitem==4)
  407. {
  408. new Float:x,Float:y,Float:z;
  409. GetPlayerPos(plID,x,y,z);
  410. CreateExplosion(x,y,z,0,20);
  411. }
  412. }
  413. return 1;
  414. }
  415. return 1;
  416. }
  417.  
  418. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  419. {
  420. plID=clickedplayerid;
  421. if(!IsAdmin(playerid,2))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
  422. ShowPlayerDialog(playerid,DIALOG_PANEL,DIALOG_STYLE_LIST,"Admin Panel","Ban\nKick\nGo to\nGet here\nExplode\n","Weahlen","Abbrechen");
  423. return 1;
  424. }
  425. ocmd:stats(playerid,params[])
  426. {
  427. new string[124];
  428. new adminlevel[124];
  429. switch(GetPVarInt(playerid,"Adminlevel"))
  430. {
  431. case 1:{adminlevel=Adminlevel1;}
  432. case 2:{adminlevel=Adminlevel2;}
  433. case 3:{adminlevel=Adminlevel3;}
  434. case 4:{adminlevel=Adminlevel4;}
  435. case 5:{adminlevel=Adminlevel5;}
  436. }
  437. format(string,sizeof(string),"{FFFFFF}Name: %s\n\n{FF805A}Score: %i\n\n{FF8A05}Adminlevel: %s",SpielerName(playerid),GetPlayerScore(playerid),adminlevel);
  438. ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Stats",string,"OK","");
  439. return 1;
  440. }
  441. ocmd:fixveh(playerid,params[])
  442. {
  443. if(IsAdmin(playerid,2))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
  444. new Vehicle;
  445. Vehicle = GetPlayerVehicleID(playerid);
  446. SetVehicleHealth(Vehicle,100);
  447. SendClientMessage(playerid,hellblau,"Fahrzeug erfolgreich gehealt.");
  448. return 1;
  449. }
  450. ocmd:cveh(playerid,params[])
  451. {
  452. if(IsAdmin(playerid,3))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
  453. new vID,cID,cID2;
  454. new Float:X,Float:Y,Float:Z;
  455. GetPlayerPos(playerid,X,Y,Z);
  456. if(sscanf(params,"iii",vID,cID,cID2))return SendClientMessage(playerid,COLOR_RED,"Benutze /cveh [vID][cID][cID2]");
  457. CreateVehicle(vID,X,Y,Z,0,cID,cID2,-1);
  458. SendClientMessage(playerid,hellblau,"Fahrzeug erfolgreich erstellt.");
  459. return 1;
  460. }
  461. ocmd:makeadmin(playerid,params[])
  462. {
  463. if(IsAdmin(playerid,5))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
  464. new pID,rank;
  465. new string[124];
  466. new adminlevel[124];
  467. if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,COLOR_RED,"Benutze /makeadmin [playerid][alevel]");
  468. if(rank<1||rank>5)return SendClientMessage(playerid,COLOR_RED,"Bitte Gültigen Rang angeben.");
  469. SpielerSpeichern(pID);
  470. SetPVarInt(pID,"Adminlevel",rank);
  471. switch(GetPVarInt(playerid,"Adminlevel"))
  472. {
  473. case 1:{adminlevel=Adminlevel1;}
  474. case 2:{adminlevel=Adminlevel2;}
  475. case 3:{adminlevel=Adminlevel3;}
  476. case 4:{adminlevel=Adminlevel4;}
  477. case 5:{adminlevel=Adminlevel5;}
  478. }
  479. format(string,sizeof(string),"%s Wurde zum %s ernannt",SpielerName(pID),adminlevel);
  480. SendClientMessage(playerid,COLOR_RED,string);
  481. SendClientMessage(pID,COLOR_RED,string);
  482. return 1;
  483. }
  484. ocmd:ban(playerid,params[])
  485. {
  486. if(IsAdmin(playerid,2))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
  487. new reason[124],pID,string[124];
  488. if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,COLOR_RED,"Benutze /ban [playerid] [grund]");
  489. format(string,sizeof(string),"Admcmd: %s wurde von %s gebannt. Mit dem Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
  490. SetPVarInt(pID,"Baned",1);
  491. Kick(pID);
  492. SendClientMessageToAll(COLOR_RED,string);
  493. return 1;
  494. }
  495. ocmd:kick(playerid,params[])
  496. {
  497. if(IsAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
  498. new reason[124],pID,string[124];
  499. if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,COLOR_RED,"Benutze /kick [playerid][grund]");
  500. format(string,sizeof(string),"Admcmd: %s wurde von %s gekickt. Mit dem Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
  501. SendClientMessageToAll(COLOR_RED,string);
  502. Kick(pID);
  503. return 1;
  504. }
  505. ocmd:spec(playerid, params[])
  506. {
  507. if(IsAdmin(playerid,1))return SendClientMessage(playerid,0xFF0000AA,"Du bist kein Admin");
  508. if(!strlen(params))return SendClientMessage(playerid,0xFFFFFFAA,"/spec [id]");
  509. new giveid=strval(params);
  510. if(!IsPlayerConnected(giveid) || giveid==playerid)return SendClientMessage(playerid,0xFF0000AA,"Falsche ID");
  511. TogglePlayerSpectating(playerid,1);
  512. switch(GetPlayerState(giveid))
  513. {
  514. case 2,3:PlayerSpectateVehicle(playerid,GetPlayerVehicleID(giveid));
  515. case 0,1,7,8,4:PlayerSpectatePlayer(playerid,giveid);
  516. case 9:return SendClientMessage(playerid,0x00CC00AA,"Diesen Spieler kannst du nicht specen");
  517. }
  518. SendClientMessage(playerid,0x00CC00AA,"Benutze /specoff wenn du den Spec modus verlassen willst");
  519. SetPVarInt(playerid,"spect",giveid);
  520. SetPVarInt(giveid,"spec",playerid);
  521. return 1;
  522. }
  523. ocmd:specoff(playerid, params[])
  524. {
  525. #pragma unused params
  526. TogglePlayerSpectating(playerid,0);
  527. SetCameraBehindPlayer(playerid);
  528. if(GetPVarInt(playerid,"spec")!=-1)SetPVarInt(GetPVarInt(playerid,"spec"),"spect",-1);
  529. SetPVarInt(playerid,"spec",-1);
  530. return 1;
  531. }
  532. ocmd:heal(playerid,params[])
  533. {
  534. new pID,HP,str[200];
  535. if(IsAdmin(playerid,2))return SendClientMessage(playerid,COLOR_RED,"du bist kein Admin");
  536. if(sscanf(params,"ud",pID,HP))return SendClientMessage(playerid,COLOR_RED,"/heal [ID] [HP]");
  537. if(HP<0||HP>100)return SendClientMessage(playerid,COLOR_RED,"Num ab 0 bis 100 möglich");
  538. SetPlayerHealth(pID,HP);
  539. format(str,sizeof(str),"Du hast das HP von %s auf %d eingestellt",SpielerName(pID),HP);
  540. SendClientMessage(playerid,COLOR_RED,str);
  541. return 1;
  542. }
  543. ocmd:kill(playerid,params[])
  544. {
  545. new pID,str[100],str2[100];
  546. if(IsAdmin(playerid,2))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
  547. if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_RED,"/kill [ID]");
  548. SetPlayerHealth(pID,0);
  549. format(str,sizeof(str),"Du hast den Spieler %s Getötet",SpielerName(pID));
  550. SendClientMessage(playerid,COLOR_RED,str);
  551. format(str,sizeof(str2),"Du wurdest durch den Admin: %s Getötet",SpielerName(playerid));
  552. SendClientMessage(pID,COLOR_RED,str2);
  553. return 1;
  554. }
  555. ocmd:mute(playerid, params[])
  556. {
  557. if(IsAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
  558. if(sscanf(params,"ud",Mut,MutTime))return SendClientMessage(playerid,COLOR_RED,"/Mute [ID] [Sekunden]");
  559. if(!IsPlayerConnected(Mut))return SendClientMessage(playerid,COLOR_RED,"Falsche ID");
  560. if(MuteNET[Mut] == true)return SendClientMessage(playerid,COLOR_RED,"Dieser Spieler ist schon gemutet");
  561. if(MutTime < 2 || MutTime > 900000)return SendClientMessage(playerid,COLOR_RED,"/Mute [ID] [2 - 900000]");
  562. MuteNET[Mut] = true;
  563. SetTimerEx("UnMute",MutTime*1000,0,"d",Mut);
  564. GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
  565. GetPlayerName(Mut, PlayerName2, sizeof(PlayerName2));
  566. format(StrMut, sizeof(StrMut), "Admin: %s Hat den Spieler: %s für %d sekunden gemutet ", PlayerName, PlayerName2, MutTime*1000);
  567. SendClientMessageToAll(COLOR_RED, StrMut);
  568. SendClientMessage(Mut,COLOR_RED, "Du wurdest gemutet");
  569. return 1;
  570. }
  571.  
  572. ocmd:unmute(playerid, params[])
  573. {
  574. if(IsAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
  575. if(sscanf(params,"u",Mut))return SendClientMessage(playerid,COLOR_RED,"/UnMute [ID]");
  576. if(IsPlayerConnected(Mut))return SendClientMessage(playerid,COLOR_RED,"Falsche ID");
  577. if(IsPlayerConnected(playerid == Mut))return SendClientMessage(playerid,COLOR_RED,"Du kannst dich selber nicht unmuten");
  578. if(MuteNET[Mut] == false)return SendClientMessage(playerid,COLOR_RED,"dieser Spieler ist nicht gemutet");
  579. MuteNET[Mut] = false;
  580. GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
  581. GetPlayerName(Mut, PlayerName2, sizeof(PlayerName2));
  582. format(StrMut, sizeof(StrMut), "Admin: %s Hat den Spieler: %s Unmutet", PlayerName, PlayerName2);
  583. SendClientMessageToAll(COLOR_RED, StrMut);
  584. return 1;
  585. }
  586. ocmd:muteall(playerid, params[])
  587. {
  588. if(IsAdmin(playerid,2))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
  589. for(new i, g = GetMaxPlayers(); i < g; i++)
  590. {
  591. if(IsPlayerConnected(i))
  592. {
  593. MuteNET[i] = true;
  594. }
  595. }
  596. GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
  597. format(StrMut, sizeof(StrMut), "Admin: %s Hat alle gemutet", PlayerName);
  598. SendClientMessageToAll(COLOR_RED, StrMut);
  599. return 1;
  600. }
  601.  
  602. ocmd:unmuteall(playerid, params[])
  603. {
  604. if(IsAdmin(playerid,2))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
  605. for(new i, g = GetMaxPlayers(); i < g; i++)
  606. {
  607. if(IsPlayerConnected(i))
  608. {
  609. MuteNET[i] = false;
  610. }
  611. }
  612. GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
  613. format(StrMut, sizeof(StrMut), "Admin: %s hat alle ungemutet", PlayerName);
  614. SendClientMessageToAll(COLOR_RED, StrMut);
  615. return 1;
  616. }
  617. ocmd:c(playerid,params[])
  618. {
  619. if(IsAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
  620. for(new i=0; i<30; i++) SendClientMessageToAll(COLOR_WHITE,"");
  621. SendClientMessageToAll(COLOR_WHITE,"Ein Administrator hat den Chat gecleart");
  622. return 1;
  623. }
  624. ocmd:explode(playerid,params[])
  625. {
  626. new Float:x,Float:y,Float:z,pID;
  627. if(IsAdmin(playerid,2))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
  628. if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_RED,"/explode [ID]");
  629. GetPlayerPos(pID,x,y,z);
  630. CreateExplosion(x,y,z,0,20);
  631. SendClientMessage(pID,COLOR_WHITE,"Du wurdest durch einen Administrator Explodiert");
  632. return 1;
  633. }
  634. ocmd:aduty(playerid,params[])
  635. {
  636. if(IsAdmin(playerid,1))return SendClientMessage(playerid,COLOR_WHITE,"Du bist kein Admin");
  637. if(ADuty[playerid] == 0)
  638. {
  639. new str[128];
  640. format(str,sizeof(str),"%s hat sich als Supporter angemeldet. Du kannst ihn mit /support erreichen!",SpielerName(playerid));
  641. SendClientMessageToAll(hellblau,str);
  642. ADuty[playerid] =1;
  643. }
  644. else
  645. {
  646. new str2[128];
  647. format(str2,sizeof(str2),"%s hat sich als Supporter abgemeldet",SpielerName(playerid));
  648. SendClientMessageToAll(hellblau,str2);
  649. ADuty[playerid] =0;
  650. }
  651. return 1;
  652. }
  653. ocmd:support(playerid, params[])
  654. {
  655. new string[128],text[128];
  656. if(sscanf(params,"s",text))return SendClientMessage(playerid,COLOR_RED,"Verwende /support [Text/Frage]");
  657. if(Ticket[playerid] == 1)return SendClientMessage(playerid,COLOR_RED,"Du hast bereits einem Supporter geschrieben");
  658. for(new i=0; i<GetMaxPlayers(); i++)
  659. {
  660. if(ADuty[i] == 1)
  661. {
  662. format(string,sizeof(string),"%s(ID:%d) hat ein Support geschrieben. Text: %s",SpielerName(playerid),playerid,text);
  663. SendClientMessage(i,COLOR_RED,string);
  664. Ticket[playerid] = 1;
  665. }
  666. else if(ADuty[i] == 0)
  667. {
  668. SendClientMessage(playerid,COLOR_RED,"Es ist kein Supporter anwesend!");
  669. }
  670. }
  671. return 0;
  672. }
  673. ocmd:annehmen(playerid, params[])
  674. {
  675. new id;
  676. if(IsAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
  677. if(sscanf(params,"i",id))return SendClientMessage(playerid,COLOR_RED,"/annehmen [PlayerID]");
  678. if(Ticket[id] == 1)
  679. {
  680. new Name[MAX_PLAYER_NAME], string[128];
  681. GetPlayerName(playerid,Name,sizeof(Name));
  682. format(string,sizeof(string),"Der Supporter %s hat dein Support angenommen. Du kannst nun mit ihm schreiben!",SpielerName(playerid));
  683. SendClientMessage(id,COLOR_RED,string);
  684. InSup[id] = 1;
  685. InSup[playerid] = 1;
  686. Support[id] = playerid;
  687. Support[playerid] = id;
  688. Ticket[id] = 0;
  689.  
  690. }
  691. return 1;
  692. }
  693. ocmd:close(playerid ,params[])
  694. {
  695. if(IsAdmin(playerid,1))
  696. {
  697. if(InSup[playerid] == 1)
  698. {
  699. for(new i=0; i<GetMaxPlayers(); i++)
  700. {
  701. if(Support[i] == playerid)
  702. {
  703. SendClientMessage(i,COLOR_RED,"Der Supporter hat den Support beendet");
  704. SendClientMessage(playerid,COLOR_RED,"Supportchat geschlossen!");
  705. InSup[i] = 0,Support[i] = 0;
  706. InSup[playerid] = 0,Support[playerid] =0;
  707. return 1;
  708. }
  709. }
  710. }
  711. }
  712. return 1;
  713. }
  714. ocmd:ah(playerid,params[])
  715. {
  716. if(IsAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
  717. ShowPlayerDialog(playerid,DIALOG_AH,DIALOG_STYLE_MSGBOX,"Admin Hilfe","{FFFFFF}/kick - Spieler kicken\n/fixveh - Fahrzeug reperieren\n/ban - Spieler Banen\n/cveh - Fahrzeug spawnen\n/spec - Einen Spieler beobachten\n/makeadmin - Einen Spieler zum Admin machen\n/heal - HP einstellen\n/kill - Spieler töten\n/mute - Spieler Muten\n/unmute - Spieler Unmuten\n/muteall - Alle muten\n/unmuteall - Alle unmuten\n/c - Chat löschen","OK","");
  718. return 1;
  719. }
  720.  
  721. /* STOCKS BZW. PUBLICS */
  722. stock SpielerName(playerid)
  723. {
  724. new name[MAX_PLAYER_NAME];
  725. GetPlayerName(playerid,name,sizeof(name));
  726. return name;
  727. }
  728.  
  729. stock Register(playerid,key[])
  730. {
  731. new Spielerdatei[64];
  732. new name[MAX_PLAYER_NAME];
  733. GetPlayerName(playerid,name,sizeof(name));
  734. format(Spielerdatei,sizeof(Spielerdatei),"/%s.txt",name);
  735. dini_Create(Spielerdatei);
  736. dini_Set(Spielerdatei,"Passwort",key);
  737. SetPlayerScore(playerid,1);
  738. SetPVarInt(playerid,"loggedin",1);
  739. return 1;
  740. }
  741.  
  742. stock Login(playerid,key[])
  743. {
  744. new Spielerdatei[64];
  745. new name[MAX_PLAYER_NAME];
  746. GetPlayerName(playerid,name,sizeof(name));
  747. format(Spielerdatei,sizeof(Spielerdatei),"/%s.txt",name);
  748. if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
  749. {
  750. LoadAccount(playerid);
  751. SendClientMessage(playerid,COLOR_RED,"Erfolgreich eingeloggt.");
  752. return 1;
  753. }
  754. else
  755. {
  756. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","{FFFFFF}Du hast ein Falsches Passwort angegeben.\n\nVersuche es erneut:","Login","Abbrechen");
  757. return 1;
  758. }
  759. }
  760.  
  761. stock LoadAccount(playerid)
  762. {
  763. new Spielerdatei[64];
  764. new name[MAX_PLAYER_NAME];
  765. GetPlayerName(playerid,name,sizeof(name));
  766. format(Spielerdatei,sizeof(Spielerdatei),"/%s.txt",name);
  767. SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
  768. SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
  769. if(GetPVarInt(playerid,"Baned")==1)
  770. {
  771. SendClientMessage(playerid,COLOR_RED,"Du bist vom Server gebannt.");
  772. Kick(playerid);
  773. }
  774. SetPVarInt(playerid,"loggedin",1);
  775. return 1;
  776. }
  777.  
  778. stock SpielerSpeichern(playerid)
  779. {
  780. if(GetPVarInt(playerid,"loggedin")==1)
  781. {
  782. new Spielerdatei[64];
  783. new name[MAX_PLAYER_NAME];
  784. GetPlayerName(playerid,name,sizeof(name));
  785. format(Spielerdatei,sizeof(Spielerdatei),"/%s.txt",name);
  786. dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
  787. dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
  788. }
  789. return 1;
  790. }
  791. stock IsAdmin(playerid,rank)
  792. {
  793. if(GetPVarInt(playerid,"Adminlevel")<=rank)return 1;
  794. return 0;
  795. }
  796.  
  797. stock sscanf(sstring[], format[], {Float,_}:...)
  798. {
  799. #if defined isnull
  800. if (isnull(sstring))
  801. #else
  802. if (sstring[0] == 0 || (sstring[0] == 1 && sstring[1] == 0))
  803. #endif
  804. {
  805. return format[0];
  806. }
  807. #pragma tabsize 4
  808. new
  809. formatPos = 0,
  810. sstringPos = 0,
  811. paramPos = 2,
  812. paramCount = numargs(),
  813. delim = ' ';
  814. while (sstring[sstringPos] && sstring[sstringPos] <= ' ')
  815. {
  816. sstringPos++;
  817. }
  818. while (paramPos < paramCount && sstring[sstringPos])
  819. {
  820. switch (format[formatPos++])
  821. {
  822. case '\0':
  823. {
  824. return 0;
  825. }
  826. case 'i', 'd':
  827. {
  828. new
  829. neg = 1,
  830. num = 0,
  831. ch = sstring[sstringPos];
  832. if (ch == '-')
  833. {
  834. neg = -1;
  835. ch = sstring[++sstringPos];
  836. }
  837. do
  838. {
  839. sstringPos++;
  840. if ('0' <= ch <= '9')
  841. {
  842. num = (num * 10) + (ch - '0');
  843. }
  844. else
  845. {
  846. return -1;
  847. }
  848. }
  849. while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
  850. setarg(paramPos, 0, num * neg);
  851. }
  852. case 'h', 'x':
  853. {
  854. new
  855. num = 0,
  856. ch = sstring[sstringPos];
  857. do
  858. {
  859. sstringPos++;
  860. switch (ch)
  861. {
  862. case 'x', 'X':
  863. {
  864. num = 0;
  865. continue;
  866. }
  867. case '0' .. '9':
  868. {
  869. num = (num << 4) | (ch - '0');
  870. }
  871. case 'a' .. 'f':
  872. {
  873. num = (num << 4) | (ch - ('a' - 10));
  874. }
  875. case 'A' .. 'F':
  876. {
  877. num = (num << 4) | (ch - ('A' - 10));
  878. }
  879. default:
  880. {
  881. return -1;
  882. }
  883. }
  884. }
  885. while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
  886. setarg(paramPos, 0, num);
  887. }
  888. case 'c':
  889. {
  890. setarg(paramPos, 0, sstring[sstringPos++]);
  891. }
  892. case 'f':
  893. {
  894.  
  895. new changestr[16], changepos = 0, strpos = sstringPos;
  896. while(changepos < 16 && sstring[strpos] && sstring[strpos] != delim)
  897. {
  898. changestr[changepos++] = sstring[strpos++];
  899. }
  900. changestr[changepos] = '\0';
  901. setarg(paramPos,0,_:floatstr(changestr));
  902. }
  903. case 'p':
  904. {
  905. delim = format[formatPos++];
  906. continue;
  907. }
  908. case '\'':
  909. {
  910. new
  911. end = formatPos - 1,
  912. ch;
  913. while ((ch = format[++end]) && ch != '\'') {}
  914. if (!ch)
  915. {
  916. return -1;
  917. }
  918. format[end] = '\0';
  919. if ((ch = strfind(sstring, format[formatPos], false, sstringPos)) == -1)
  920. {
  921. if (format[end + 1])
  922. {
  923. return -1;
  924. }
  925. return 0;
  926. }
  927. format[end] = '\'';
  928. sstringPos = ch + (end - formatPos);
  929. formatPos = end + 1;
  930. }
  931. case 'u':
  932. {
  933. new
  934. end = sstringPos - 1,
  935. id = 0,
  936. bool:num = true,
  937. ch;
  938. while ((ch = sstring[++end]) && ch != delim)
  939. {
  940. if (num)
  941. {
  942. if ('0' <= ch <= '9')
  943. {
  944. id = (id * 10) + (ch - '0');
  945. }
  946. else
  947. {
  948. num = false;
  949. }
  950. }
  951. }
  952. if (num && IsPlayerConnected(id))
  953. {
  954. setarg(paramPos, 0, id);
  955. }
  956. else
  957. {
  958. #if !defined foreach
  959. #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  960. #define __SSCANF_FOREACH__
  961. #endif
  962. sstring[end] = '\0';
  963. num = false;
  964. new
  965. name[MAX_PLAYER_NAME];
  966. id = end - sstringPos;
  967. foreach (Player, playerid)
  968. {
  969. GetPlayerName(playerid, name, sizeof (name));
  970. if (!strcmp(name, sstring[sstringPos], true, id))
  971. {
  972. setarg(paramPos, 0, playerid);
  973. num = true;
  974. break;
  975. }
  976. }
  977. if (!num)
  978. {
  979. setarg(paramPos, 0, INVALID_PLAYER_ID);
  980. }
  981. sstring[end] = ch;
  982. #if defined __SSCANF_FOREACH__
  983. #undef foreach
  984. #undef __SSCANF_FOREACH__
  985. #endif
  986. }
  987. sstringPos = end;
  988. }
  989. case 's', 'z':
  990. {
  991. new
  992. i = 0,
  993. ch;
  994. if (format[formatPos])
  995. {
  996. while ((ch = sstring[sstringPos++]) && ch != delim)
  997. {
  998. setarg(paramPos, i++, ch);
  999. }
  1000. if (!i)
  1001. {
  1002. return -1;
  1003. }
  1004. }
  1005. else
  1006. {
  1007. while ((ch = sstring[sstringPos++]))
  1008. {
  1009. setarg(paramPos, i++, ch);
  1010. }
  1011. }
  1012. sstringPos--;
  1013. setarg(paramPos, i, '\0');
  1014. }
  1015. default:
  1016. {
  1017. continue;
  1018. }
  1019. }
  1020. while (sstring[sstringPos] && sstring[sstringPos] != delim && sstring[sstringPos] > ' ')
  1021. {
  1022. sstringPos++;
  1023. }
  1024. while (sstring[sstringPos] && (sstring[sstringPos] == delim || sstring[sstringPos] <= ' '))
  1025. {
  1026. sstringPos++;
  1027. }
  1028. paramPos++;
  1029. }
  1030. do
  1031. {
  1032. if ((delim = format[formatPos++]) > ' ')
  1033. {
  1034. if (delim == '\'')
  1035. {
  1036. while ((delim = format[formatPos++]) && delim != '\'') {}
  1037. }
  1038. else if (delim != 'z')
  1039. {
  1040. return delim;
  1041. }
  1042. }
  1043. }
  1044. while (delim > ' ');
  1045. return 0;
  1046. }
  1047.  
  1048. public UnMute(playerid)
  1049. {
  1050. if(MuteNET[playerid] == true)
  1051. {
  1052. MuteNET[playerid] = false;
  1053. SendClientMessage(playerid,COLOR_RED,"Du bist nicht mehr gemutet");
  1054. }
  1055. return 1;
  1056. }
Advertisement
Add Comment
Please, Sign In to add comment