Advertisement
Guest User

MichiEXE's open world pvp script

a guest
Aug 24th, 2013
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 24.35 KB | None | 0 0
  1. #include <a_samp>
  2. #include <ocmd>
  3. #include <dini>
  4. #include <MD5>
  5.  
  6. //   DIALOGE
  7. #define DIALOG_REGISTER 1
  8. #define DIALOG_LOGIN 2
  9. #define DIALOG_RANGLIST1 3
  10. #define DIALOG_RANGLIST2 4
  11. #define DIALOG_RANGLIST3 5
  12.  
  13.  
  14. //   COLORS
  15. #define ROT 0xF50000FF
  16. #define ORANGE 0xFF6400FF
  17. #define GELB 0xFFF000FF
  18. #define GRÜN 0x00FF28FF
  19. #define WBLAU 0x0073FFFF
  20. #define HBLAU 0x00F5FFFF
  21. #define BLAU 0x0005FFFF
  22.  
  23.  
  24. new wetterid;
  25.  
  26. new WetterRandom[][] = {
  27. {32}, {42}, {9}
  28. };
  29.  
  30. forward WetterTimer();
  31.  
  32. main()
  33. {
  34.     print("\n GAMEMODE LOADED:");
  35.     print("Open world pvp by MichiEXE");
  36.     print("\n");
  37. }
  38.  
  39.  
  40. public OnGameModeInit()
  41. {
  42.     ShowPlayerMarkers(0);
  43.     WetterTimer();
  44.     SetTimer("WetterTimer", 420000, 1);
  45.     SetGameModeText("PVP 4.0");
  46.     AddPlayerClass(179, 1958.3783, 1343.1572, 15.3746, 269.1425, 23, 99999999, 0, 0, 18, 66);
  47.     return 1;
  48. }
  49.  
  50. public OnGameModeExit()
  51. {
  52.     return 1;
  53. }
  54.  
  55. public WetterTimer()
  56. {
  57.     new rand = random(sizeof(WetterRandom));
  58.     new stringw[16];
  59.     wetterid = WetterRandom[rand][0];
  60.     format(stringw, sizeof(stringw), "weather %d", wetterid);
  61.     SendRconCommand(stringw);
  62.     printf("Wetter ID: %d", wetterid);
  63.     return 1;
  64. }
  65.  
  66.  
  67. public OnPlayerRequestClass(playerid, classid)
  68. {
  69.     return 1;
  70. }
  71.  
  72. public OnPlayerConnect(playerid)
  73. {
  74.     SetPlayerSkillLevel(playerid,1,999);
  75.     SetPlayerSkillLevel(playerid,2,999);
  76.     SetPlayerSkillLevel(playerid,3,999);
  77.     SetPlayerSkillLevel(playerid,4,999);
  78.     SetPlayerSkillLevel(playerid,5,999);
  79.     SetPlayerSkillLevel(playerid,6,999);
  80.     SetPlayerSkillLevel(playerid,7,999);
  81.     SetPlayerSkillLevel(playerid,8,999);
  82.     SetPlayerSkillLevel(playerid,9,999);
  83.     SetPlayerSkillLevel(playerid,10,999);
  84.     if(IsPlayerNPC(playerid))return 1;
  85.     new Spielerdatei[64];
  86.     new name[MAX_PLAYER_NAME];
  87.     GetPlayerName(playerid,name,sizeof(name));
  88.     format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  89.     if(dini_Exists(Spielerdatei))
  90.     {
  91.         new wstring[128];
  92.         format(wstring,sizeof(wstring),"~g~Herzlich Willkommen! %s",SpielerName(playerid));
  93.         ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
  94.     }
  95.     else
  96.     {
  97.         new wstring[128];
  98.         format(wstring,sizeof(wstring),"~g~Herzlich Willkommen! %s",SpielerName(playerid));
  99.         ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
  100.     }
  101.     return 1;
  102. }
  103.  
  104. public OnPlayerDisconnect(playerid, reason)
  105. {
  106.     if(GetPVarInt(playerid,"loggedin")==1)
  107.     {
  108.         SpielerSpeichern(playerid);
  109.     }
  110.     return 1;
  111. }
  112.  
  113. public OnPlayerSpawn(playerid)
  114. {
  115.     switch(random(8))
  116.     {
  117.         case 0:
  118.         {
  119.             SetPlayerPos(playerid,854.7510,-1528.8744,13.3134);
  120.             SetPlayerSkin(playerid,293);
  121.         }
  122.         case 1:
  123.         {
  124.             SetPlayerPos(playerid,2348.9409,-2013.7266,13.5435);
  125.         }
  126.         case 2:
  127.         {
  128.             SetPlayerPos(playerid,2355.8218,-652.2814,128.0547);
  129.             SetPlayerSkin(playerid,292);
  130.         }
  131.         case 3:
  132.         {
  133.             SetPlayerPos(playerid,2135.2119,1139.2625,13.5114);
  134.         }
  135.         case 4:
  136.         {
  137.             SetPlayerPos(playerid,-1502.6747,1964.6270,48.4219);
  138.             SetPlayerSkin(playerid,250);
  139.         }
  140.         case 5:
  141.         {
  142.             SetPlayerPos(playerid,-2285.5442,3.9275,35.3203);
  143.         }
  144.         case 6:
  145.         {
  146.             SetPlayerPos(playerid,-1364.6809,-483.6778,14.1719);
  147.             SetPlayerSkin(playerid,272);
  148.         }
  149.         case 7:
  150.         {
  151.             SetPlayerPos(playerid,-1500.1915,-2414.3032,27.6496);
  152.         }
  153.         case 8:
  154.         {
  155.             SetPlayerPos(playerid,-32.7926,-2489.1541,36.6484);
  156.         }
  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.     return 1;
  179. }
  180.  
  181.  
  182.  
  183.  
  184. ocmd:setadmin(playerid,params[])
  185. {
  186.     if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Administrator.");
  187.     new pID, rank;
  188.     if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,ROT,"/setadmin [spieler] [level]");
  189.     if(rank<1||rank>2)return SendClientMessage(playerid,ROT,"Bitte einen gültigen Rang angeben.");
  190.     SetPVarInt(pID,"Adminlevel",rank);
  191.     SpielerSpeichern(pID);
  192.     return 1;
  193. }
  194.  
  195. ocmd:ranglist(playerid,params[])
  196. {
  197.     ShowPlayerDialog(playerid,DIALOG_RANGLIST1,DIALOG_STYLE_MSGBOX,"Ränge - Gast","Hier auf dem Server gibts es eine Gruppe für jeden.(Anfangs)\nDiese nennt sich 'Gast',und hat nur einige wenige Befehle.\nDiese könnt ihr mit /HELP sehen.\nDie Gruppe 'Gast' kann als 'Normale Spieler' angesehen werden.","Danke"," ");
  198.     return 1;
  199. }
  200.  
  201. ocmd:ban(playerid,params[])
  202. {
  203.     if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Administrator.");
  204.     new pID, reason[128],string[128];
  205.     if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,BLAU,"/ban [id] [grund]");
  206.     format(string,sizeof(string),"AdmCmd: %s wurde von %s gebannt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
  207.     SendClientMessageToAll(ROT,string);
  208.     SetPVarInt(pID,"Baned",1);
  209.     Kick(pID);
  210.     return 1;
  211. }
  212.  
  213. ocmd:kick(playerid,params[])
  214. {
  215.     new plid;
  216.     new grund[64];
  217.     new string[128];
  218.     if(IsPlayerConnected(plid))
  219.     {
  220.         if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Supporter.");
  221.         if(sscanf(params,"us",plid,grund))return SendClientMessage(playerid,BLAU,"Tippe: /kick [Id/Name][Grund]");
  222.         if(GetPVarInt(plid,"Adminlevel") > GetPVarInt(playerid,"Adminlevel")) return SendClientMessage(playerid,ROT,"Du hast noch nicht genügend Rechte.");
  223.         format(string,sizeof(string),"%s wurde von %s gekickt Grund: %s",SpielerName(plid),SpielerName(playerid),grund);
  224.         SendClientMessageToAll(ROT,string);
  225.         Kick(plid);
  226.     }
  227.     return 1;
  228. }
  229.  
  230. ocmd:nitro(playerid,params[])
  231. {
  232.     if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Supporter.");
  233.     {
  234.         new veh;
  235.         veh = GetPlayerVehicleID(playerid);
  236.         if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,ROT,"Du bist in keinem Fahrzeug.");
  237.         {
  238.              AddVehicleComponent(veh,1010);
  239.              SendClientMessage(playerid,WBLAU,"Füge Nitro zum Auto hinzu.");
  240.         }
  241.     }
  242.     return 1;
  243. }
  244.  
  245. ocmd:getip(playerid,params[])
  246. {
  247.     new plidip[128];
  248.     new plid;
  249.     new string[64];
  250.     if(IsPlayerConnected(plid))
  251.     {
  252.         if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Administrator.");
  253.         if(sscanf(params,"d",plid))return SendClientMessage(playerid,BLAU,"Tippe: /getip [Id/Name]");
  254.         if(GetPVarInt(plid,"Adminlevel") > GetPVarInt(playerid,"Adminlevel")) return SendClientMessage(playerid,ROT,"Du hast nicht genügend Rechte.");
  255.         GetPlayerIp(plid,plidip,sizeof(plidip));
  256.         format(string,sizeof(string),"IP: %s",plidip);
  257.         SendClientMessage(playerid,BLAU,string);
  258.     }
  259.     return 1;
  260. }
  261.  
  262. ocmd:freeze(playerid,params[])
  263. {
  264.     new plid;
  265.     new string[128];
  266.     if(IsPlayerConnected(plid))
  267.     {
  268.         if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,ROT,"**Du bist kein Supporter.");
  269.         if(sscanf(params,"u",plid))return SendClientMessage(playerid,BLAU,"Tippe: /freeze [Id/Name]");
  270.         if(GetPVarInt(plid,"Adminlevel") > GetPVarInt(playerid,"Adminlevel")) return SendClientMessage(playerid,ROT,"Das darfst du nicht tuen");
  271.         TogglePlayerControllable(plid, 0);
  272.         format(string,sizeof(string), "Admin %s hat dich gefreezet.",SpielerName(playerid));
  273.         SendClientMessage(plid,ROT,string);
  274.     }
  275.     return 1;
  276. }
  277.  
  278. ocmd:unfreeze(playerid,params[])
  279. {
  280.     new plid;
  281.     new string[128];
  282.     if(IsPlayerConnected(plid))
  283.     {
  284.         if(!isPlayerAnAdmin(playerid, 1))return SendClientMessage(playerid,ROT,"Du bist kein Supporter.");
  285.         if(sscanf(params,"u",plid))return SendClientMessage(playerid,BLAU,"Tippe: /unfreeze [Id/Name]");
  286.         TogglePlayerControllable(plid, 1);
  287.         format(string,sizeof(string), "Admin %s hat dich entfreezet.",SpielerName(playerid));
  288.         SendClientMessage(plid,WBLAU,string);
  289.     }
  290.     return 1;
  291. }
  292.  
  293. ocmd:warn(playerid,params[])
  294. {
  295.     new plid;
  296.     new grund[20];
  297.     new string[128];
  298.     if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Administrator.");
  299.     if(sscanf(params,"us",plid,grund))return SendClientMessage(playerid,BLAU,"Tippe: /warn [Id/Name][Grund]");
  300.     if(GetPVarInt(plid,"Adminlevel") > GetPVarInt(playerid,"Adminlevel")) return SendClientMessage(playerid,ROT,"Du hast noch nicht genügend Rechte.");
  301.     format(string,sizeof(string),"Admin %s hat dich gewarnt.Grund: %s",SpielerName(playerid),grund);
  302.     SendClientMessage(plid,ROT,string);
  303.     SetPVarInt(plid,"Warn",GetPVarInt(plid,"Warn")+1);
  304.     return 1;
  305.  
  306. }
  307.  
  308. ocmd:help(playerid,params[])
  309. {
  310.     SendClientMessage(playerid,ORANGE,"~~~~~~~~~~~~~~~~~~~~~ HILFE ~~~~~~~~~~~~~~~~~~~~~");
  311.     SendClientMessage(playerid,ROT,"INFORMATION/SYSTEM:");
  312.     SendClientMessage(playerid,BLAU," /sup = Öffnet ein Ticket,und meldet dieses einem Admin/Supporter.Dieser kümmert sich sofort darum.");
  313.     SendClientMessage(playerid,BLAU," /ranglist = Zeigt dir alle Ränge an.");
  314.     SendClientMessage(playerid,BLAU," /respawn = Tötet dich,und spawnt dich neu.");
  315.     SendClientMessage(playerid,BLAU," /serverinfo = Zeigt allgemeine Infos an.");
  316.     SendClientMessage(playerid,BLAU," /regeln = Zeigt die Regeln an.");
  317.     SendClientMessage(playerid,ROT,"SPIELER BEFEHLE:");
  318.     SendClientMessage(playerid,BLAU," /respawn = Tötet dich,und spawnt dich neu.");
  319.     SendClientMessage(playerid,BLAU," /");
  320.     return 1;
  321. }
  322.  
  323. ocmd:setarmour(playerid,params[])
  324. {
  325.     new plid;
  326.     new string[128];
  327.     if(IsPlayerConnected(plid))
  328.     {
  329.         if(!isPlayerAnAdmin(playerid, 1))return SendClientMessage(playerid,ROT,"Du bist kein Supporter.");
  330.         if(sscanf(params,"u",plid))return SendClientMessage(playerid,BLAU,"Tippe: /setarmour [Id/Name]");
  331.         SetPlayerArmour(plid,100);
  332.         format(string,sizeof(string), "Admin %s hat dir eine Schutzweste gegeben.",SpielerName(playerid));
  333.         SendClientMessage(plid,WBLAU,string);
  334.     }
  335.     return 1;
  336. }
  337.  
  338. ocmd:giveweapon(playerid,params[])
  339. {
  340.     new weid;
  341.     new munni;
  342.     new plid;
  343.     if(IsPlayerConnected(plid))
  344.     {
  345.         if(!isPlayerAnAdmin(playerid, 2))return SendClientMessage(playerid,ROT,"Du bist kein Administrator.");
  346.         if(sscanf(params,"udd",plid,weid,munni))return SendClientMessage(playerid,BLAU,"Tippe: /giveweapon [Id/Name] [WaffenId][Muni]");
  347.         GivePlayerWeapon(plid,weid,munni);
  348.     }
  349.     return 1;
  350. }
  351.  
  352. ocmd:sethealth(playerid,params[])
  353. {
  354.     new string[128];
  355.     new plid;
  356.     if(IsPlayerConnected(plid))
  357.     {
  358.         if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Supporter.");
  359.         if(sscanf(params,"u",plid))return SendClientMessage(playerid,BLAU,"Tippe: /sethealth [Id/Name]");
  360.         SetPlayerHealth(plid,100);
  361.         format(string,sizeof(string),"Admin %s hat dein Leben aufgefüllt.",SpielerName(playerid));
  362.     }
  363.     return 1;
  364. }
  365.  
  366. ocmd:car(playerid,params[])
  367. {
  368.     new rein;
  369.     new car;
  370.     new string[128];
  371.     if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Administrator.");
  372.     if(sscanf(params,"d",car))return SendClientMessage(playerid,BLAU,"Tippe: /car [CarId]");
  373.     if(car < 400 || car > 611)return SendClientMessage(playerid,ROT,"Ein Auto mit dieses ID gibt es nicht!");
  374.     new Float:x, Float:y, Float:z;
  375.     GetPlayerPos(playerid,x,y,z);
  376.     rein = CreateVehicle(car,x,y,z,0,0,0,99999999999999999999);
  377.     PutPlayerInVehicle(playerid,rein,0);
  378.     format(string,sizeof(string),"Du hast dir erfolgreich Car: %i ,gespawnt.",car);
  379.     SendClientMessage(playerid,WBLAU,string);
  380.     return 1;
  381. }
  382.  
  383. ocmd:broadcast(playerid,params[])
  384. {
  385.     new text[128];
  386.     if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Administrator.");
  387.     if(sscanf(params,"s",text))return SendClientMessage(playerid,BLAU,"Tippe: /broadcast [text]");
  388.     GameTextForAll(text,2000,3);
  389.     return 1;
  390. }
  391.  
  392.  
  393. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  394. {
  395.     return 1;
  396. }
  397.  
  398. public OnPlayerExitVehicle(playerid, vehicleid)
  399. {
  400.     return 1;
  401. }
  402.  
  403. public OnPlayerStateChange(playerid, newstate, oldstate)
  404. {
  405.     return 1;
  406. }
  407.  
  408. public OnPlayerEnterCheckpoint(playerid)
  409. {
  410.     return 1;
  411. }
  412.  
  413. public OnPlayerLeaveCheckpoint(playerid)
  414. {
  415.     return 1;
  416. }
  417.  
  418. public OnPlayerEnterRaceCheckpoint(playerid)
  419. {
  420.     return 1;
  421. }
  422.  
  423. public OnPlayerLeaveRaceCheckpoint(playerid)
  424. {
  425.     return 1;
  426. }
  427.  
  428. public OnRconCommand(cmd[])
  429. {
  430.     return 1;
  431. }
  432.  
  433. public OnPlayerRequestSpawn(playerid)
  434. {
  435.     return 1;
  436. }
  437.  
  438. public OnObjectMoved(objectid)
  439. {
  440.     return 1;
  441. }
  442.  
  443. public OnPlayerObjectMoved(playerid, objectid)
  444. {
  445.     return 1;
  446. }
  447.  
  448. public OnPlayerPickUpPickup(playerid, pickupid)
  449. {
  450.     return 1;
  451. }
  452.  
  453. public OnVehicleMod(playerid, vehicleid, componentid)
  454. {
  455.     return 1;
  456. }
  457.  
  458. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  459. {
  460.     return 1;
  461. }
  462.  
  463. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  464. {
  465.     return 1;
  466. }
  467.  
  468. public OnPlayerSelectedMenuRow(playerid, row)
  469. {
  470.     return 1;
  471. }
  472.  
  473. public OnPlayerExitedMenu(playerid)
  474. {
  475.     return 1;
  476. }
  477.  
  478. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  479. {
  480.     return 1;
  481. }
  482.  
  483. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  484. {
  485.     return 1;
  486. }
  487.  
  488. public OnRconLoginAttempt(ip[], password[], success)
  489. {
  490.     return 1;
  491. }
  492.  
  493. public OnPlayerUpdate(playerid)
  494. {
  495.     return 1;
  496. }
  497.  
  498. public OnPlayerStreamIn(playerid, forplayerid)
  499. {
  500.     return 1;
  501. }
  502.  
  503. public OnPlayerStreamOut(playerid, forplayerid)
  504. {
  505.     return 1;
  506. }
  507.  
  508. public OnVehicleStreamIn(vehicleid, forplayerid)
  509. {
  510.     return 1;
  511. }
  512.  
  513. public OnVehicleStreamOut(vehicleid, forplayerid)
  514. {
  515.     return 1;
  516. }
  517.  
  518. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  519. {
  520.     if(dialogid==DIALOG_LOGIN)
  521.     {
  522.         if(response==0)
  523.         {
  524.             SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
  525.             Kick(playerid);
  526.             return 1;
  527.         }
  528.         if(response==1)
  529.         {
  530.             if(!strlen(inputtext))
  531.             {
  532.                 SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
  533.                 ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
  534.                 return 1;
  535.             }
  536.             else
  537.             {
  538.                 Login(playerid,inputtext);
  539.                 return 1;
  540.             }
  541.         }
  542.     }
  543.     if(dialogid==DIALOG_REGISTER)
  544.     {
  545.         if(response==0)
  546.         {
  547.             SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
  548.             Kick(playerid);
  549.             return 1;
  550.         }
  551.         if(response==1)
  552.         {
  553.             if(!strlen(inputtext))
  554.             {
  555.                 SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
  556.                 ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
  557.                 return 1;
  558.             }
  559.             else
  560.             {
  561.                 Register(playerid,inputtext);
  562.                 return 1;
  563.             }
  564.         }
  565.     }
  566.     if(dialogid==DIALOG_RANGLIST1)
  567.     {
  568.         if(response==0)
  569.         {
  570.             ShowPlayerDialog(playerid,9999999999,DIALOG_STYLE_MSGBOX,"s","s","s","s");
  571.             return 1;
  572.         }
  573.         if(response==1)
  574.         {
  575.             ShowPlayerDialog(playerid,DIALOG_RANGLIST2,DIALOG_STYLE_MSGBOX,"Ränge - Supporter","Natürlich gibt es Spieler die Hilfe benötigen.Dazu haben wir unsere Supporter.\nSie leiten den Support und helfen so mit anderen Usern\nsich zurecht zu finden.\nDiese Gruppe hat nun einige neue Befehle,um Usern zu helfen.\nDiese Gruppe darf sich aber auch 'Besondere Items' cheaten,da sie-\num Usern zu Helfen,einige Resourcen benötigen.\nBefehle für Supporter mit /shelp  !","Danke"," ");
  576.             return 1;
  577.         }
  578.     }
  579.     if(dialogid==DIALOG_RANGLIST2)
  580.     {
  581.         if(response==0)
  582.         {
  583.             ShowPlayerDialog(playerid,9999999999,DIALOG_STYLE_MSGBOX,"s","s","s","s");
  584.             return 1;
  585.         }
  586.         if(response==1)
  587.         {
  588.             ShowPlayerDialog(playerid,DIALOG_RANGLIST3,DIALOG_STYLE_MSGBOX,"Ränge - Admin (Besitzer)","Es müssen ja auch sogenannte Besitzer / Leiter geben.\nDie Gruppe 'Admin' ist extra für diese gedacht.\nEigendlich ist/sind nur der Scripter/Besitzer selber Admin.\nAber auch enge Bekannte und bereits bekannte Community Mitglieder.\nDieser Rang hat also die Absolute 'Macht '.\nBefehle für Admins: /ahelp ","Danke"," ");
  589.             return 1;
  590.         }
  591.     }
  592.     if(dialogid==DIALOG_RANGLIST3)
  593.     {
  594.         if(response==0)
  595.         {
  596.             ShowPlayerDialog(playerid,9999999999,DIALOG_STYLE_MSGBOX,"s","s","s","s");
  597.             return 1;
  598.         }
  599.         if(response==1)
  600.         {
  601.             ShowPlayerDialog(playerid,9999999999,DIALOG_STYLE_MSGBOX,"s","s","s","s");
  602.             return 1;
  603.         }
  604.     }
  605.     return 1;
  606. }
  607.  
  608. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  609. {
  610.     return 1;
  611. }
  612.  
  613.  
  614.  
  615. // ******************************** STOCKS *************************************
  616. // *****************************************************************************
  617.  
  618.  
  619.  
  620. stock SpielerName(playerid)
  621. {
  622.     new name[MAX_PLAYER_NAME];
  623.     GetPlayerName(playerid,name,sizeof(name));
  624.     return name;
  625. }
  626.  
  627. stock Register(playerid,key[])
  628. {
  629.     new Spielerdatei[64];
  630.     new name[MAX_PLAYER_NAME];
  631.     GetPlayerName(playerid,name,sizeof(name));
  632.     format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  633.     dini_Create(Spielerdatei);
  634.     dini_Set(Spielerdatei,"Passwort",key);
  635.     SendClientMessage(playerid,BLAU,"Erfolgreich registriert.");
  636.     SetPlayerScore(playerid,0);
  637.     SetPVarInt(playerid,"loggedin",1);
  638.     return 1;
  639. }
  640.  
  641. stock Login(playerid,key[])
  642. {
  643.     new Spielerdatei[64];
  644.     new name[MAX_PLAYER_NAME];
  645.     GetPlayerName(playerid,name,sizeof(name));
  646.     format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  647.    
  648.     if(gettime()<dini_Int(Spielerdatei,"timeban"))
  649.     {
  650.         SendClientMessage(playerid,ROT,"Du bist noch gebannt. Komm später wieder.");
  651.         Kick(playerid);
  652.         return 1;
  653.     }
  654.    
  655.     if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
  656.     {
  657.         LoadAccount(playerid);
  658.         SendClientMessage(playerid,BLAU,"Erfolgreich eingeloggt.");
  659.         return 1;
  660.     }
  661.     else
  662.     {
  663.         SendClientMessage(playerid,BLAU,"Falsches Passwort.");
  664.         ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
  665.         return 1;
  666.     }
  667. }
  668.  
  669. stock LoadAccount(playerid)
  670. {
  671.     new Spielerdatei[64];
  672.     new name[MAX_PLAYER_NAME];
  673.     GetPlayerName(playerid,name,sizeof(name));
  674.     format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  675.     SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
  676.     SetPlayerHealth(playerid,dini_Float(Spielerdatei,"Gesundheit"));
  677.     GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
  678.     SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
  679.     SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
  680.     SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
  681.     if(GetPVarInt(playerid,"Baned")==1)
  682.     {
  683.         SendClientMessage(playerid,ROT,"Du bist vom Server gebannt.");
  684.         Kick(playerid);
  685.     }
  686.     if(GetPVarInt(playerid,"Warn")==3)
  687.     {
  688.         SendClientMessage(playerid,ROT,"Du hast 3 Verwarnungen und bis ab jetzt Gebannt!.");
  689.         Kick(playerid);
  690.     }
  691.     SetPVarInt(playerid,"loggedin",1);
  692.     return 1;
  693. }
  694.  
  695. stock SpielerSpeichern(playerid)
  696. {
  697.     if(GetPVarInt(playerid,"loggedin")==1)
  698.     {
  699.         new Spielerdatei[64];
  700.         new name[MAX_PLAYER_NAME];
  701.         GetPlayerName(playerid,name,sizeof(name));
  702.         format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  703.         dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
  704.         dini_FloatSet(Spielerdatei,"Gesundheit",GetPlayerHealth(playerid));
  705.         dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
  706.         dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
  707.         dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
  708.         dini_IntSet(Spielerdatei,"Muted",GetPVarInt(playerid,"Muted"));
  709.         dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
  710.         dini_IntSet(Spielerdatei,"timeban",GetPVarInt(playerid,"timeban"));
  711.     }
  712.     return 1;
  713. }
  714.  
  715.  
  716. stock isPlayerAnAdmin(playerid,rang)
  717. {
  718.     if(GetPVarInt(playerid,"Adminlevel")>=rang)return 1;
  719.     return 0;
  720. }
  721.  
  722.  
  723.  
  724. //  ***********************  SSCANF *************************
  725. //*************************************************************
  726.  
  727. stock sscanf(sstring[], format[], {Float,_}:...)
  728. {
  729.     #if defined isnull
  730.         if (isnull(sstring))
  731.     #else
  732.         if (sstring[0] == 0 || (sstring[0] == 1 && sstring[1] == 0))
  733.     #endif
  734.         {
  735.             return format[0];
  736.         }
  737.     #pragma tabsize 4
  738.     new
  739.         formatPos = 0,
  740.         sstringPos = 0,
  741.         paramPos = 2,
  742.         paramCount = numargs(),
  743.         delim = ' ';
  744.     while (sstring[sstringPos] && sstring[sstringPos] <= ' ')
  745.     {
  746.         sstringPos++;
  747.     }
  748.     while (paramPos < paramCount && sstring[sstringPos])
  749.     {
  750.         switch (format[formatPos++])
  751.         {
  752.             case '\0':
  753.             {
  754.                 return 0;
  755.             }
  756.             case 'i', 'd':
  757.             {
  758.                 new
  759.                     neg = 1,
  760.                     num = 0,
  761.                     ch = sstring[sstringPos];
  762.                 if (ch == '-')
  763.                 {
  764.                     neg = -1;
  765.                     ch = sstring[++sstringPos];
  766.                 }
  767.                 do
  768.                 {
  769.                     sstringPos++;
  770.                     if ('0' <= ch <= '9')
  771.                     {
  772.                         num = (num * 10) + (ch - '0');
  773.                     }
  774.                     else
  775.                     {
  776.                         return -1;
  777.                     }
  778.                 }
  779.                 while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
  780.                 setarg(paramPos, 0, num * neg);
  781.             }
  782.             case 'h', 'x':
  783.             {
  784.                 new
  785.                     num = 0,
  786.                     ch = sstring[sstringPos];
  787.                 do
  788.                 {
  789.                     sstringPos++;
  790.                     switch (ch)
  791.                     {
  792.                         case 'x', 'X':
  793.                         {
  794.                             num = 0;
  795.                             continue;
  796.                         }
  797.                         case '0' .. '9':
  798.                         {
  799.                             num = (num << 4) | (ch - '0');
  800.                         }
  801.                         case 'a' .. 'f':
  802.                         {
  803.                             num = (num << 4) | (ch - ('a' - 10));
  804.                         }
  805.                         case 'A' .. 'F':
  806.                         {
  807.                             num = (num << 4) | (ch - ('A' - 10));
  808.                         }
  809.                         default:
  810.                         {
  811.                             return -1;
  812.                         }
  813.                     }
  814.                 }
  815.                 while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
  816.                 setarg(paramPos, 0, num);
  817.             }
  818.             case 'c':
  819.             {
  820.                 setarg(paramPos, 0, sstring[sstringPos++]);
  821.             }
  822.             case 'f':
  823.             {
  824.  
  825.                 new changestr[16], changepos = 0, strpos = sstringPos;
  826.                 while(changepos < 16 && sstring[strpos] && sstring[strpos] != delim)
  827.                 {
  828.                     changestr[changepos++] = sstring[strpos++];
  829.                     }
  830.                 changestr[changepos] = '\0';
  831.                 setarg(paramPos,0,_:floatstr(changestr));
  832.             }
  833.             case 'p':
  834.             {
  835.                 delim = format[formatPos++];
  836.                 continue;
  837.             }
  838.             case '\'':
  839.             {
  840.                 new
  841.                     end = formatPos - 1,
  842.                     ch;
  843.                 while ((ch = format[++end]) && ch != '\'') {}
  844.                 if (!ch)
  845.                 {
  846.                     return -1;
  847.                 }
  848.                 format[end] = '\0';
  849.                 if ((ch = strfind(sstring, format[formatPos], false, sstringPos)) == -1)
  850.                 {
  851.                     if (format[end + 1])
  852.                     {
  853.                         return -1;
  854.                     }
  855.                     return 0;
  856.                 }
  857.                 format[end] = '\'';
  858.                 sstringPos = ch + (end - formatPos);
  859.                 formatPos = end + 1;
  860.             }
  861.             case 'u':
  862.             {
  863.                 new
  864.                     end = sstringPos - 1,
  865.                     id = 0,
  866.                     bool:num = true,
  867.                     ch;
  868.                 while ((ch = sstring[++end]) && ch != delim)
  869.                 {
  870.                     if (num)
  871.                     {
  872.                         if ('0' <= ch <= '9')
  873.                         {
  874.                             id = (id * 10) + (ch - '0');
  875.                         }
  876.                         else
  877.                         {
  878.                             num = false;
  879.                         }
  880.                     }
  881.                 }
  882.                 if (num && IsPlayerConnected(id))
  883.                 {
  884.                     setarg(paramPos, 0, id);
  885.                 }
  886.                 else
  887.                 {
  888.                     #if !defined foreach
  889.                         #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  890.                         #define __SSCANF_FOREACH__
  891.                     #endif
  892.                     sstring[end] = '\0';
  893.                     num = false;
  894.                     new
  895.                         name[MAX_PLAYER_NAME];
  896.                     id = end - sstringPos;
  897.                     foreach (Player, playerid)
  898.                     {
  899.                         GetPlayerName(playerid, name, sizeof (name));
  900.                         if (!strcmp(name, sstring[sstringPos], true, id))
  901.                         {
  902.                             setarg(paramPos, 0, playerid);
  903.                             num = true;
  904.                             break;
  905.                         }
  906.                     }
  907.                     if (!num)
  908.                     {
  909.                         setarg(paramPos, 0, INVALID_PLAYER_ID);
  910.                     }
  911.                     sstring[end] = ch;
  912.                     #if defined __SSCANF_FOREACH__
  913.                         #undef foreach
  914.                         #undef __SSCANF_FOREACH__
  915.                     #endif
  916.                 }
  917.                 sstringPos = end;
  918.             }
  919.             case 's', 'z':
  920.             {
  921.                 new
  922.                     i = 0,
  923.                     ch;
  924.                 if (format[formatPos])
  925.                 {
  926.                     while ((ch = sstring[sstringPos++]) && ch != delim)
  927.                     {
  928.                         setarg(paramPos, i++, ch);
  929.                     }
  930.                     if (!i)
  931.                     {
  932.                         return -1;
  933.                     }
  934.                 }
  935.                 else
  936.                 {
  937.                     while ((ch = sstring[sstringPos++]))
  938.                     {
  939.                         setarg(paramPos, i++, ch);
  940.                     }
  941.                 }
  942.                 sstringPos--;
  943.                 setarg(paramPos, i, '\0');
  944.             }
  945.             default:
  946.             {
  947.                 continue;
  948.             }
  949.         }
  950.         while (sstring[sstringPos] && sstring[sstringPos] != delim && sstring[sstringPos] > ' ')
  951.         {
  952.             sstringPos++;
  953.         }
  954.         while (sstring[sstringPos] && (sstring[sstringPos] == delim || sstring[sstringPos] <= ' '))
  955.         {
  956.             sstringPos++;
  957.         }
  958.         paramPos++;
  959.     }
  960.     do
  961.     {
  962.         if ((delim = format[formatPos++]) > ' ')
  963.         {
  964.             if (delim == '\'')
  965.             {
  966.                 while ((delim = format[formatPos++]) && delim != '\'') {}
  967.             }
  968.             else if (delim != 'z')
  969.             {
  970.                 return delim;
  971.             }
  972.         }
  973.     }
  974.     while (delim > ' ');
  975.     return 0;
  976. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement