Advertisement
Guest User

Selfmade100.pwn

a guest
Mar 1st, 2012
665
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 29.22 KB | None | 0 0
  1. // Selfmade Deathmatch by Tim
  2. // Aufgaben die noch zu Erledigen sind :
  3. // /minigun
  4. // /sniper
  5. // /deathmatch2
  6. // Mehr Dialoge einbauen
  7.  
  8. // Copyright darf man nicht Rausnehmen..
  9. // Das Script wurde von TimPhillip geschrieben!
  10.  
  11. #include <a_samp>
  12. #include <dini>
  13. #include <ocmd>
  14.  
  15. // Farben Define
  16. #define drot 0x9B0000FF
  17. #define weiß 0xFAFAFAFF
  18. #define blau 0x0069FFFF
  19. #define gelb 0xFFFA00FF
  20. #define türkis 0x00FFFAFF
  21. #define orange 0xFF9600FF
  22. #define grün 0x00FF1EFF
  23. #define rot 0xFF1E00FF
  24. #define BLAU 0x0087FFFF
  25. #define ROT 0xE10000FF
  26. #define GRAU 0xAFAFAFAA
  27. #define dgelb 0xFFD200FF
  28. #define dweiß 0xDCDCDCFF
  29.  
  30. // Dialoge Define
  31. #define DIALOG_REGISTER 1
  32. #define DIALOG_LOGIN 2
  33. #define DIALOG_STATS 3
  34. #define DIALOG_SHOWSTATS 4
  35. #define DIALOG_DM
  36. #define DIALOG_WILKOMMEN
  37.  
  38. //Textdraws
  39. new Text:Textdraw0;
  40.  
  41. //New's
  42. // Autom. Server Nachricht
  43. forward nachricht();
  44.  
  45. main()
  46. {
  47.     print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
  48.     print("Real German Deathmatch ~ TimPhillip");
  49.     print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
  50. }
  51.  
  52. public OnGameModeInit()
  53. {
  54.     SetGameModeText("German Deathmatch");
  55.     UsePlayerPedAnims();
  56.  
  57.     //Skins + Spawns der Skins
  58.     AddPlayerClass(111,1481.1576,-1768.3936,18.7958,359.7202,0,0,0,0,0,0); // Gangster 1
  59.     AddPlayerClass(112,1481.1576,-1768.3936,18.7958,359.7202,0,0,0,0,0,0); // Gangster 2
  60.     AddPlayerClass(113,1481.1576,-1768.3936,18.7958,359.7202,0,0,0,0,0,0); // Gangster 3
  61.     AddPlayerClass(280,1481.1576,-1768.3936,18.7958,359.7202,0,0,0,0,0,0); // Polizei 1
  62.     AddPlayerClass(285,1481.1576,-1768.3936,18.7958,359.7202,0,0,0,0,0,0); // Polizei 2
  63.     AddPlayerClass(286,1481.1576,-1768.3936,18.7958,359.7202,0,0,0,0,0,0); // Polizei 3
  64.  
  65.     //Autos + Spawn der Autos
  66.     AddStaticVehicle(422,1498.4655,-1737.3971,13.4473,267.3472,2,2);
  67.     AddStaticVehicle(422,1467.5043,-1736.5729,13.4531,269.0175,2,2);
  68.     AddStaticVehicle(422,1498.4655,-1737.3971,13.4473,267.3472,2,2); // car1
  69.     AddStaticVehicle(422,1467.5043,-1736.5729,13.4531,269.0175,2,2); // car2
  70.     AddStaticVehicle(522,1192.7188,-1707.4191,12.9548,89.7764,2,2); // nrg500
  71.     AddStaticVehicle(544,1084.2340,-1567.0023,13.6947,90.7673,4,4); // feuerwehr
  72.     AddStaticVehicle(522,1553.9781,-1597.7025,13.0953,272.4099,2,2); // nrg500-2
  73.    
  74.     // Ab hier kommen Textdraws!
  75.     Textdraw0 = TextDrawCreate(616.000000, 421.000000, "Forum ist noch in Aufbau ~");
  76.     TextDrawAlignment(Textdraw0, 3);
  77.     TextDrawBackgroundColor(Textdraw0, 255);
  78.     TextDrawFont(Textdraw0, 1);
  79.     TextDrawLetterSize(Textdraw0, 0.500000, 1.100000);
  80.     TextDrawColor(Textdraw0, -65281);
  81.     TextDrawSetOutline(Textdraw0, 0);
  82.     TextDrawSetProportional(Textdraw0, 1);
  83.     TextDrawSetShadow(Textdraw0, 1);
  84.     SetTimer("nachricht",30000,true);
  85.     return 1;
  86. }
  87.  
  88. public OnGameModeExit()
  89. {
  90.     return 1;
  91. }
  92.  
  93. public OnPlayerRequestClass(playerid, classid)
  94. {
  95.     SetPlayerPos(playerid, 1996.5294,-798.8030,132.6216);
  96.     SetPlayerCameraPos(playerid, 1996.1730,-800.8784,132.2459);
  97.     SetPlayerCameraLookAt(playerid, 1996.1909,-800.5237,132.3108);
  98.     return 1;
  99. }
  100.  
  101. public OnPlayerConnect(playerid)
  102. {
  103.     SendClientMessage(playerid,weiß,"Wilkommen auf RealGermanDeathmatch.");
  104.     if(IsPlayerNPC(playerid))return 1;
  105.     new Spielerdatei[64];
  106.     new name[MAX_PLAYER_NAME];
  107.     GetPlayerName(playerid,name,sizeof(name));
  108.     format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  109.     if(dini_Exists(Spielerdatei))
  110.     {
  111.         ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Real German Deathmatch","Dein Account wurde Gefunden, bitte gib dein Passwort ein:","Login","Abbrechen");
  112.     }
  113.     else
  114.     {
  115.         ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Real German Deathmatch","Bitte gib dein gewünschtes Passwort ein:","Registrieren","Abbrechen");
  116.     }
  117.     TextDrawShowForPlayer(playerid, Textdraw0);
  118.     return 1;
  119. }
  120.  
  121. public OnPlayerDisconnect(playerid, reason)
  122. {
  123.     if(GetPVarInt(playerid,"loggedin")==1)
  124.     {
  125.         SpielerSpeichern(playerid);
  126.     }
  127.     return 1;
  128. }
  129.  
  130. public OnPlayerDeath(playerid, killerid, reason)
  131. {
  132.     SetPlayerScore(killerid, GetPlayerScore(killerid)+1);
  133.     SetPVarInt(killerid, "Kills", GetPVarInt(killerid, "Kills") + 1);
  134.     SetPVarInt(playerid, "Tode", GetPVarInt(playerid, "Tode") + 1);
  135.     new zufall1 = random(3000);
  136.     SetPVarInt(playerid, "Geld", GetPVarInt(playerid, "Geld") - zufall1);
  137.     SendDeathMessage(killerid, playerid, reason);
  138.     return 1;
  139. }
  140.  
  141. public OnVehicleSpawn(vehicleid)
  142. {
  143.     return 1;
  144. }
  145.  
  146. public OnVehicleDeath(vehicleid,killerid)
  147. {
  148.     new Float:Pos[3];
  149.     GetVehiclePos(vehicleid,Pos[0],Pos[1],Pos[2]);
  150.     SetVehicleToRespawn(vehicleid);
  151.     return 1;
  152. }
  153.  
  154. public OnPlayerText(playerid, text[])
  155. {
  156.     return 1;
  157. }
  158.  
  159. public OnPlayerCommandText(playerid, cmdtext[])
  160. {
  161.  
  162.     if (strcmp("/dm", cmdtext, true, 10) == 0)
  163.        {
  164.         SetPlayerPos(playerid,589.5043,869.9966,-42.4973);
  165.         SetPlayerFacingAngle(playerid,272.3372);
  166.         ResetPlayerWeapons(playerid);
  167.         GivePlayerWeapon(playerid, 24, 999);
  168.         SetPlayerArmour(playerid, 20);
  169.         SetPlayerHealth(playerid, 200);
  170.         return 1;
  171.     }
  172.    
  173.     if (strcmp("/help", cmdtext, true, 10) == 0)
  174.     {
  175.         SendClientMessage(playerid,türkis,"Hilfe System");
  176.         SendClientMessage(playerid,weiß,"Allgemein: /serverinfo /waffen /stats /showstats");
  177.         SendClientMessage(playerid,weiß,"Teleport: /dm /mcdm ");
  178.         return 1;
  179.     }
  180.  
  181.     if (strcmp("/serverinfo", cmdtext, true, 10) == 0)
  182.     {
  183.         SendClientMessage(playerid,blau,"~~~ Informationen zum Server ~~~");
  184.         SendClientMessage(playerid,gelb,"Serverowner : TimPhillip");
  185.         return 1;
  186.     }
  187.    
  188.     if (strcmp("/mcdm", cmdtext, true, 10) == 0)
  189.     {
  190.         SendClientMessage(playerid,blau,"Du hast dich Erfolgreich zum Mount Chilliad Deathmatch teleportiert.");
  191.         SendClientMessage(playerid,drot,"In Bearbeitung");
  192.         GivePlayerWeapon(playerid, 24, 999);
  193.         GivePlayerWeapon(playerid, 25, 999);
  194.         GivePlayerWeapon(playerid, 31, 999);
  195.         GivePlayerWeapon(playerid, 32, 999);
  196.         return 1;
  197.     }
  198.  
  199.     if (strcmp("/waffen", cmdtext, true, 10) == 0)
  200.     {
  201.         if (GetPlayerMoney(playerid) >= 5000)
  202.         {
  203.             GivePlayerMoney(playerid,-5000);
  204.             GivePlayerWeapon(playerid, 8, 1);
  205.             GivePlayerWeapon(playerid, 24, 999);
  206.             GivePlayerWeapon(playerid, 25, 999);
  207.             GivePlayerWeapon(playerid, 31, 999);
  208.             GivePlayerWeapon(playerid, 32, 999);
  209.             GivePlayerWeapon(playerid, 1, 1);
  210.             SendClientMessage(playerid,blau,"Du hast dir für 5000$ Erfolgreich Waffen gekauft!");
  211.             return 1;
  212.         }
  213.         else
  214.         {
  215.             SendClientMessage(playerid,drot,"Du besitzt nicht genug Geld!");
  216.             return 1;
  217.         }
  218.     }
  219.     if(strcmp(cmdtext,"/ahelp",true)==0 || strcmp(cmdtext,"/ah",true)==0)
  220.     {
  221.         if(IsPlayerConnected(playerid))
  222.         {
  223.             if(isPlayerAnAdmin(playerid,1))
  224.             {
  225.                 SendClientMessage(playerid,türkis,"Admin Hilfe System");
  226.                 SendClientMessage(playerid,weiß,"Supporter: /kick | /tban | /tv | /tvo /a | /go ");
  227.             }
  228.             if(isPlayerAnAdmin(playerid,2))
  229.             {
  230.                 SendClientMessage(playerid,weiß,"Administrator: /ban | /warn | /veh | /delveh | /setskin");
  231.             }
  232.             if(isPlayerAnAdmin(playerid,3))
  233.             {
  234.                 SendClientMessage(playerid,weiß,"Serverowner: /setadmin | /sethp | /setarmor | /takemoney | /givemoney | /setkills");
  235.             }
  236.             return 1;
  237.         }
  238.         return 1;
  239.     }
  240.     if(strcmp(cmdtext,"/stats",true)==0)
  241. {
  242.     new string[128];
  243.     new string2[128];
  244.     //1 reihe
  245.     format(string2,sizeof(string2),"===========================================================");
  246.     format(string,sizeof(string),"~~~~~~~~~~~~~~~~~~~~~~\n\n\n\nInformationen\n[Name: %s]\n[Kills: %i]\n[Tode: %i]\n[Adminlevel: %i]\n[Warns: %i]\n\n\n\n~~~~~~~~~~~~~~~~~~~~~~",SpielerName(playerid),GetPlayerScore(playerid),GetPVarInt(playerid,"Tode"),GetPVarInt(playerid,"Adminlevel"),GetPVarInt(playerid,"Warn"));
  247.     ShowPlayerDialog(playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX, "Informationen", string, "Schließen", "");
  248.     return 1;
  249. }
  250.     return SendClientMessage(playerid,drot,"Der Befehl wurde nicht Gefunden. ~ Benutze /help");
  251. }
  252.  
  253. /*OCMD Befehle*/
  254. ocmd:setadmin(playerid,params[])
  255. {
  256.     if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,rot,"Du bist kein Admin.");
  257.     new pID, rank,string[128];
  258.     if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,drot,"SERVER: /setadmin [ID/Name] [Rank 0-3]");
  259.     if(rank<0||rank>3)return SendClientMessage(playerid,ROT,"Bitte gültigen Rang angeben.");
  260.     SetPVarInt(pID,"Adminlevel",rank);
  261.     format(string,sizeof(string),"Info: Du wurdest von Admin %s zum Admin gemacht.",SpielerName(playerid),SpielerName(pID));
  262.     SendClientMessage(pID,ROT,string);
  263.     SpielerSpeichern(pID);
  264.     return 1;
  265. }
  266.  
  267. ocmd:setskin(playerid,params[])
  268. {
  269.     new skinid1,pID,string[128];
  270.     if(!isPlayerAnAdmin(playerid,3)) return SendClientMessage(playerid, rot, "Du bist kein Admin.");
  271.     if(sscanf(params,"ud",pID,skinid1))return SendClientMessage(playerid, drot,"SERVER: /setskin [ID/Name] [Skin ID]");
  272.     SetPlayerSkin(pID,skinid1);
  273.     format(string,sizeof(string),"Administrator %s hat dir den Skin %d zugewiesen!",SpielerName(playerid),skinid1);
  274.     SendClientMessage(pID,rot,string);
  275.     return 1;
  276. }
  277.  
  278. ocmd:kick(playerid,params[])
  279. {
  280.     if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,rot,"Du bist kein Admin.");
  281.     new pID,grund[128],string[128];
  282.     if(sscanf(params,"ud",pID,grund))return SendClientMessage(playerid,rot,"SERVER: /kick [ID/Name] [Grund]");
  283.     format(string,sizeof(string),"Info: Spieler %s wurde gekickt von %s | Grund: %s",SpielerName(pID),SpielerName(playerid),grund);
  284.     SendClientMessageToAll(drot,string);
  285.     Kick(pID);
  286.     return 1;
  287. }
  288.  
  289. ocmd:showstats(playerid,params[])
  290. {
  291.     new pID,string[164],string2[128];
  292.     if(sscanf(params,"u",pID))return SendClientMessage(playerid,drot,"SERVER: /showstats [Name/ID]");
  293.     format(string,sizeof(string),"~~~~~~~~~~~~~~~~~~~~~~\n\n\n\n[Name: %s]\n[Kills: %i]\n[Tode: %i]\n[Adminlevel: %i]\n[Warns: %i]\n\n\n\n~~~~~~~~~~~~~~~~~~~~~~",SpielerName(pID),GetPlayerScore(pID),GetPVarInt(pID,"Tode"),GetPVarInt(pID,"Adminlevel"),GetPVarInt(pID,"Warn"));
  294.     ShowPlayerDialog(playerid, DIALOG_SHOWSTATS, DIALOG_STYLE_MSGBOX, "Informationen", string, "Schließen", "");
  295.     format(string2,sizeof(string2),"Du guckst von %s die Stats an.",SpielerName(pID));
  296.     SendClientMessage(playerid,weiß,string2);
  297.     return 1;
  298. }
  299.  
  300. ocmd:go(playerid,params[])
  301. {
  302.     if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Info: Du bist kein Admin!");
  303.     {
  304.         new pID,string[128],string2[128];
  305.         if(sscanf(params,"u",pID))return SendClientMessage(playerid,drot,"SERVER: /go [ID/Name]");
  306.         new Float:x, Float:y, Float:z;
  307.         new car = GetPlayerVehicleID(playerid);
  308.         GetPlayerPos(pID,x,y,z);
  309.         SetPlayerInterior(playerid,GetPlayerInterior(pID));
  310.         SetPlayerPos(playerid,x+2,y+2,z+2);
  311.         if(IsPlayerInAnyVehicle(playerid))
  312.         {
  313.             SetVehiclePos(GetPlayerVehicleID(playerid), x+2, y+2, z+2);
  314.             PutPlayerInVehicle(playerid,car,0);
  315.         }
  316.         {
  317.         format(string,128,"Du hast dich zu %s teleportiert.",SpielerName(pID));
  318.         format(string2,128,"%s hat sich zu dir teleportiert.",SpielerName(playerid));
  319.         SendClientMessage(pID,dweiß,string2);
  320.         SendClientMessage(playerid,dweiß,string);
  321.         }
  322.     }
  323.     return 1;
  324. }
  325.  
  326. ocmd:ban(playerid,params[])
  327. {
  328.     if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du hast nicht die benötigten Rechte.");
  329.     new pID, reason[128],string[128];
  330.     if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,drot,"SERVER: /ban [ID/Name] [Grund]");
  331.     format(string,sizeof(string),"Info: Spieler %s wurde gebannt von %s | Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
  332.     SendClientMessageToAll(drot,string);
  333.     SetPVarInt(pID,"Baned",1);
  334.     Kick(pID);
  335.     return 1;
  336. }
  337.  
  338. ocmd:tban(playerid,params[])
  339. {
  340.     if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Du hast nicht die benötigten Rechte.");
  341.     new pID, time, grund[128];
  342.     if(sscanf(params,"uis",pID,time,grund))return SendClientMessage(playerid,drot,"SERVER: /tban [ID/Name] [Zeit] [Grund]");
  343.     if(IsPlayerConnected(pID))
  344.     {
  345.         if(time>0&&time<1000)
  346.         {
  347.             new string[128];
  348.             format(string,sizeof(string),"Info: Spieler %s wurde von Admin %s für %i Stunden gebannt | Grund: %s",SpielerName(pID),SpielerName(playerid),time,grund);
  349.             SendClientMessageToAll(ROT,string);
  350.             new wert;
  351.  
  352.             wert=gettime()+(60*60*time);
  353.  
  354.             SetPVarInt(pID,"timeban",wert);
  355.  
  356.             Kick(pID);
  357.             return 1;
  358.         }
  359.         SendClientMessage(playerid,drot,"SERVER: Falsche Zeit Angabe!");
  360.         return 1;
  361.     }
  362.     SendClientMessage(playerid,drot,"SERVER: Dieser Spieler ist nicht Online.");
  363.     return 1;
  364. }
  365.  
  366. ocmd:warn(playerid,params[])
  367. {
  368.     if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du hast nicht die benötigten Rechte.");
  369.     new pID, grund[64], string[128];
  370.     if(sscanf(params,"us",pID,grund))return SendClientMessage(playerid,drot,"SERVER: /warn [ID/Name] [Grund]");
  371.     format(string,sizeof(string),"Info: Spieler %s wurde verwarnt von %s | Grund: %s",SpielerName(pID),SpielerName(playerid),grund);
  372.    
  373.     SendClientMessageToAll(ROT,string);
  374.     SetPVarInt(pID,"Warn",GetPVarInt(pID,"Warn")+1);
  375.     if(GetPVarInt(playerid,"Warn")==3)
  376.     {
  377.         SendClientMessage(playerid,drot,"Du hast %i von 3 Warns, du wurdest Gekickt!"),GetPVarInt(playerid,"Warn");
  378.         Kick(pID);
  379.     }
  380.     return 1;
  381. }
  382.  
  383. ocmd:sethp(playerid,params[])
  384. {
  385.     if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Du hast nicht die benötigten Rechte.");
  386.     new pID,zahl,string[128];
  387.     if(sscanf(params,"ui",pID,zahl))return SendClientMessage(playerid,drot,"SERVER: /sethp [ID/Name] [Anzahl]");
  388.     format(string,sizeof(string),"Info: Admin %s hat dein Leben auf %i gesetzt.",SpielerName(playerid),zahl);
  389.     SendClientMessage(playerid,drot,string);
  390.     SetPlayerHealth(playerid,zahl);
  391.     return 1;
  392. }
  393.  
  394. ocmd:setarmor(playerid,params[])
  395. {
  396.     if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Du hast nicht die benötigten Rechte.");
  397.     new pID,zahl,string[128];
  398.     if(sscanf(params,"ui",pID,zahl))return SendClientMessage(playerid,drot,"SERVER: /setarmor [ID/Name] [Anzahl]");
  399.     format(string,sizeof(string),"Info: Admin %s hat deine Rüstung auf %i gesetzt.",SpielerName(playerid),zahl);
  400.     SendClientMessage(playerid,drot,string);
  401.     SetPlayerArmour(playerid,zahl);
  402.     return 1;
  403. }
  404.  
  405. ocmd:setkills(playerid,params[])
  406. {
  407.     if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Du hast nicht die benötigten Rechte.");
  408.     new pID,score;
  409.     if(sscanf(params,"dd",pID,score))return SendClientMessage(playerid,drot,"SERVER: /setkills [ID/Name] [Zahl]");
  410.     SetPlayerScore(pID,score);
  411.     return 1;
  412. }
  413.  
  414. ocmd:givemoney(playerid,params[])
  415. {
  416.     if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Du hast nicht die benötigten Rechte.");
  417.     new pID,Money;
  418.     if(sscanf(params,"dd",pID,Money))return SendClientMessage(playerid,drot,"SERVER: /givemoney [ID] [Betrag]");
  419.     GivePlayerMoney(pID,Money);
  420.     return 1;
  421. }
  422.  
  423. ocmd:takemoney(playerid,params[])
  424. {
  425.     if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Du hast nicht die benötigten Rechte.");
  426.     new pID,Money;
  427.     if(sscanf(params,"dd",pID,Money))return SendClientMessage(playerid,drot,"SERVER: /takemoney [ID/Name] [Betrag]");
  428.     GivePlayerMoney(pID,-Money);
  429.     return 1;
  430. }
  431.  
  432. ocmd:tv(playerid, params[])
  433. {
  434.     if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Du hast nicht die benötigten Rechte.");
  435.     new id;
  436.     if(sscanf(params, "u", id)) return SendClientMessage(playerid,drot,"SERVER: /tv [ID/Name]");
  437.     {
  438.         new str[128];
  439.         TogglePlayerSpectating(playerid, 1);
  440.         PlayerSpectatePlayer(playerid, id);
  441.         format(str, sizeof(str), "Du beobachtest nun %s", SpielerName(id));
  442.         SendClientMessage(playerid, 0xFFFFFF, str);
  443.     }
  444.     return 1;
  445. }
  446.  
  447. ocmd:veh(playerid,params[])
  448. {
  449.     if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Info: Du bist kein Admin");
  450.     {
  451.         new Float:x, Float:y, Float:z;
  452.         new Text3D:supportveh[MAX_VEHICLES];
  453.         new c1,c2,vid;
  454.         if(sscanf(params,"iii",vid,c1,c2))return SendClientMessage(playerid,drot,"SERVER: /veh [CarID] [Farbe1] [Farbe2]");
  455.         {
  456.             if(vid<402||vid>603)return SendClientMessage(playerid,ROT,"Ungültige Fahrzeug-ID.");
  457.             {
  458.                 GetPlayerPos(playerid,x,y,z);
  459.                 new car;
  460.                 SetVehicleNumberPlate(car = CreateVehicle(vid,x,y,z,3,c1,c2,-1),"Support");
  461.                 PutPlayerInVehicle(playerid,car,0);
  462.                 SendClientMessage(playerid,rot,"Du hast ein Supporter Mobil gespawnt.");
  463.                 supportveh[car] = Create3DTextLabel("Supporter Mobil", blau,0.0,0.0,0.0,30.0,0,1);
  464.                 Attach3DTextLabelToVehicle(supportveh[car],car,0.0,0.0,2.0);
  465.                 return 1;
  466.             }
  467.         }
  468.     }
  469. }
  470.  
  471. ocmd:delveh(playerid,params[])
  472. {
  473.     if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,drot,"SERVER: Du bist kein Admin");
  474.     {
  475.         new currentveh;
  476.         currentveh = GetPlayerVehicleID(playerid);
  477.         DestroyVehicle(currentveh);
  478.         return 1;
  479.     }
  480.    
  481. }
  482. ocmd:tvo(playerid, params[])
  483. {
  484.     if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Du hast nicht die benötigten Rechte.");
  485.     TogglePlayerSpectating(playerid, 0);
  486.     SetCameraBehindPlayer(playerid);
  487.     SendClientMessage(playerid, 0xFFFFFF, "Du beobachtest niemanden mehr");
  488.     return 1;
  489. }
  490.  
  491. ocmd:a(playerid,params[])
  492. {
  493.     new string[128], text[128];
  494.     if(sscanf(params,"s",text))return SendClientMessage(playerid,ROT,"SERVER: /a [Text]");
  495.     for(new i = 0; i < MAX_PLAYERS; i++)
  496.     {
  497.         if(IsPlayerConnected(i))
  498.         {
  499.             if(isPlayerAnAdmin(playerid,1))
  500.             {
  501.                 format(string,sizeof(string),"Admin %s sagt: %s",SpielerName(i),text);
  502.                 SendClientMessage(playerid,dgelb,string);
  503.             }
  504.         }
  505.         return 1;
  506.     }
  507.     return 1;
  508. }
  509.  
  510. /*OCMD ENDE*/
  511.  
  512. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  513. {
  514.     return 1;
  515. }
  516.  
  517. public OnPlayerExitVehicle(playerid, vehicleid)
  518. {
  519.     return 1;
  520. }
  521.  
  522. public OnPlayerStateChange(playerid, newstate, oldstate)
  523. {
  524.     return 1;
  525. }
  526.  
  527. public OnPlayerEnterCheckpoint(playerid)
  528. {
  529.     return 1;
  530. }
  531.  
  532. public OnPlayerLeaveCheckpoint(playerid)
  533. {
  534.     return 1;
  535. }
  536.  
  537. public OnPlayerEnterRaceCheckpoint(playerid)
  538. {
  539.     return 1;
  540. }
  541.  
  542. public OnPlayerLeaveRaceCheckpoint(playerid)
  543. {
  544.     return 1;
  545. }
  546.  
  547. public OnRconCommand(cmd[])
  548. {
  549.     return 1;
  550. }
  551.  
  552. public OnPlayerRequestSpawn(playerid)
  553. {
  554.     return 1;
  555. }
  556.  
  557. public OnObjectMoved(objectid)
  558. {
  559.     return 1;
  560. }
  561.  
  562. public OnPlayerObjectMoved(playerid, objectid)
  563. {
  564.     return 1;
  565. }
  566.  
  567. public OnPlayerPickUpPickup(playerid, pickupid)
  568. {
  569.     return 1;
  570. }
  571.  
  572. public OnVehicleMod(playerid, vehicleid, componentid)
  573. {
  574.     return 1;
  575. }
  576.  
  577. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  578. {
  579.     return 1;
  580. }
  581.  
  582. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  583. {
  584.     return 1;
  585. }
  586.  
  587. public OnPlayerSelectedMenuRow(playerid, row)
  588. {
  589.     return 1;
  590. }
  591.  
  592. public OnPlayerExitedMenu(playerid)
  593. {
  594.     return 1;
  595. }
  596.  
  597. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  598. {
  599.     return 1;
  600. }
  601.  
  602. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  603. {
  604.     return 1;
  605. }
  606.  
  607. public OnRconLoginAttempt(ip[], password[], success)
  608. {
  609.     return 1;
  610. }
  611.  
  612. public OnPlayerUpdate(playerid)
  613. {
  614.     return 1;
  615. }
  616.  
  617. public OnPlayerStreamIn(playerid, forplayerid)
  618. {
  619.     return 1;
  620. }
  621.  
  622. public OnPlayerStreamOut(playerid, forplayerid)
  623. {
  624.     return 1;
  625. }
  626.  
  627. public OnVehicleStreamIn(vehicleid, forplayerid)
  628. {
  629.     return 1;
  630. }
  631.  
  632. public OnVehicleStreamOut(vehicleid, forplayerid)
  633. {
  634.     return 1;
  635. }
  636.  
  637. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  638. {
  639.     if(dialogid==DIALOG_LOGIN)
  640.     {
  641.         if(response==0)
  642.         {
  643.             SendClientMessage(playerid,weiß,"Du hast den Vorgang abgebrochen.");
  644.             Kick(playerid);
  645.             return 1;
  646.         }
  647.         if(response==1)
  648.         {
  649.             if(!strlen(inputtext))
  650.             {
  651.                 SendClientMessage(playerid,drot,"Das eingebende Passwort war nicht lang genug.");
  652.                 ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
  653.                 return 1;
  654.             }
  655.             else
  656.             {
  657.                 Login(playerid,inputtext);
  658.                 return 1;
  659.             }
  660.         }
  661.     }
  662.     if(dialogid==DIALOG_REGISTER)
  663.     {
  664.         if(response==0)
  665.         {
  666.             SendClientMessage(playerid,drot,"Du hast den Registrierungs Vorgang abgebrochen.");
  667.             SendClientMessage(playerid,drot,"Du wurdest vom Server gekickt.");
  668.             Kick(playerid);
  669.             return 1;
  670.         }
  671.         if(response==1)
  672.         {
  673.             if(!strlen(inputtext))
  674.             {
  675.                 SendClientMessage(playerid,drot,"Das eingebende Passwort war nicht lang genug.");
  676.                 ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
  677.                 return 1;
  678.             }
  679.             else
  680.             {
  681.                 Register(playerid,inputtext);
  682.                 return 1;
  683.             }
  684.         }
  685.     }
  686.     return 1;
  687. }
  688.  
  689. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  690. {
  691.     return 1;
  692. }
  693.  
  694. stock GetAdminName(playerid)
  695. {
  696.     switch(GetPVarInt(playerid,"Adminlevel"))
  697.     {
  698.         case 0:{adminname="Spieler";}
  699.         case 1:{adminname="Supporter";}
  700.         case 2:{adminname="Administrator";}
  701.         case 3:{adminname="Projektleitung";}
  702.     }
  703. }
  704.  
  705. stock SpielerName(playerid)
  706. {
  707.     new name[MAX_PLAYER_NAME];
  708.     GetPlayerName(playerid,name,sizeof(name));
  709.     return name;
  710. }
  711.  
  712. stock Register(playerid,key[])
  713. {
  714.     new Spielerdatei[64];
  715.     new name[MAX_PLAYER_NAME];
  716.     GetPlayerName(playerid,name,sizeof(name));
  717.     format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  718.     dini_Create(Spielerdatei);
  719.     dini_Set(Spielerdatei,"Passwort",key);
  720.     SendClientMessage(playerid,weiß,"Du hast dich auf Real German Deathmatch erfolgreich Registriert.");
  721.     SetPlayerScore(playerid,0);
  722.     SetPVarInt(playerid,"loggedin",1);
  723.     return 1;
  724. }
  725.  
  726. stock Login(playerid,key[])
  727. {
  728.     new Spielerdatei[64];
  729.     new name[MAX_PLAYER_NAME];
  730.     GetPlayerName(playerid,name,sizeof(name));
  731.     format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  732.  
  733.     if(gettime()<dini_Int(Spielerdatei,"timeban"))
  734.     {
  735.         SendClientMessage(playerid,drot,"Dein Timeban ist noch nicht Aufgehoben. Komm später vorbei!");
  736.         Kick(playerid);
  737.         return 1;
  738.     }
  739.  
  740.     if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
  741.     {
  742.         LoadAccount(playerid);
  743.         SendClientMessage(playerid,BLAU,"Du hast dich Erfolgreich auf Real German Deathmatch eingeloggt.");
  744.         return 1;
  745.     }
  746.     else
  747.     {
  748.         SendClientMessage(playerid,drot,"Du hast ein falsches Passwort eingeben!");
  749.         ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde Gefunden, gib dein Passwort ein!","Login","Abbrechen");
  750.         return 1;
  751.     }
  752. }
  753.  
  754. stock LoadAccount(playerid)
  755. {
  756.     new Spielerdatei[64];
  757.     new name[MAX_PLAYER_NAME];
  758.     GetPlayerName(playerid,name,sizeof(name));
  759.     format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  760.     SetPlayerScore(playerid,dini_Int(Spielerdatei,"Kills"));
  761.     GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
  762.     SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
  763.     SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
  764.     SetPVarInt(playerid,"Warn",dini_Int(Spielerdatei,"Warn"));
  765.     SetPVarInt(playerid,"Kills",dini_Int(Spielerdatei,"Kills"));
  766.     SetPVarInt(playerid,"Tode",dini_Int(Spielerdatei,"Tode"));
  767.     if(GetPVarInt(playerid,"Baned")==1)
  768.     {
  769.         SendClientMessage(playerid,ROT,"Du bist vom Server gebannt.");
  770.         Kick(playerid);
  771.     }
  772.     if(GetPVarInt(playerid,"Warn")==3)
  773.     {
  774.         SendClientMessage(playerid,ROT,"Du hast nun 3 Warns. Du wurdest gekickt / gebannt.");
  775.         Kick(playerid);
  776.     }
  777.     SetPVarInt(playerid,"loggedin",1);
  778.     return 1;
  779. }
  780.  
  781. stock SpielerSpeichern(playerid)
  782. {
  783.     if(GetPVarInt(playerid,"loggedin")==1)
  784.     {
  785.         new Spielerdatei[64];
  786.         new name[MAX_PLAYER_NAME];
  787.         GetPlayerName(playerid,name,sizeof(name));
  788.         format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  789.         dini_IntSet(Spielerdatei,"Kills",GetPlayerScore(playerid));
  790.         dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
  791.         dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
  792.         dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
  793.         dini_IntSet(Spielerdatei,"timeban",GetPVarInt(playerid,"timeban"));
  794.         dini_IntSet(Spielerdatei,"Warn",GetPVarInt(playerid,"Warn"));
  795.         dini_IntSet(Spielerdatei,"Kills",GetPVarInt(playerid,"Kills"));
  796.         dini_IntSet(Spielerdatei,"Tode",GetPVarInt(playerid,"Tode"));
  797.     }
  798.     return 1;
  799. }
  800.  
  801. stock isPlayerAnAdmin(playerid,rang)
  802. {
  803.     if(GetPVarInt(playerid,"Adminlevel")>=rang)return 1;
  804.     return 0;
  805. }
  806.  
  807. stock sscanf(sstring[], format[], {Float,_}:...)
  808. {
  809.     #if defined isnull
  810.         if (isnull(sstring))
  811.     #else
  812.         if (sstring[0] == 0 || (sstring[0] == 1 && sstring[1] == 0))
  813.     #endif
  814.         {
  815.             return format[0];
  816.         }
  817.     #pragma tabsize 4
  818.     new
  819.         formatPos = 0,
  820.         sstringPos = 0,
  821.         paramPos = 2,
  822.         paramCount = numargs(),
  823.         delim = ' ';
  824.     while (sstring[sstringPos] && sstring[sstringPos] <= ' ')
  825.     {
  826.         sstringPos++;
  827.     }
  828.     while (paramPos < paramCount && sstring[sstringPos])
  829.     {
  830.         switch (format[formatPos++])
  831.         {
  832.             case '\0':
  833.             {
  834.                 return 0;
  835.             }
  836.             case 'i', 'd':
  837.             {
  838.                 new
  839.                     neg = 1,
  840.                     num = 0,
  841.                     ch = sstring[sstringPos];
  842.                 if (ch == '-')
  843.                 {
  844.                     neg = -1;
  845.                     ch = sstring[++sstringPos];
  846.                 }
  847.                 do
  848.                 {
  849.                     sstringPos++;
  850.                     if ('0' <= ch <= '9')
  851.                     {
  852.                         num = (num * 10) + (ch - '0');
  853.                     }
  854.                     else
  855.                     {
  856.                         return -1;
  857.                     }
  858.                 }
  859.                 while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
  860.                 setarg(paramPos, 0, num * neg);
  861.             }
  862.             case 'h', 'x':
  863.             {
  864.                 new
  865.                     num = 0,
  866.                     ch = sstring[sstringPos];
  867.                 do
  868.                 {
  869.                     sstringPos++;
  870.                     switch (ch)
  871.                     {
  872.                         case 'x', 'X':
  873.                         {
  874.                             num = 0;
  875.                             continue;
  876.                         }
  877.                         case '0' .. '9':
  878.                         {
  879.                             num = (num << 4) | (ch - '0');
  880.                         }
  881.                         case 'a' .. 'f':
  882.                         {
  883.                             num = (num << 4) | (ch - ('a' - 10));
  884.                         }
  885.                         case 'A' .. 'F':
  886.                         {
  887.                             num = (num << 4) | (ch - ('A' - 10));
  888.                         }
  889.                         default:
  890.                         {
  891.                             return -1;
  892.                         }
  893.                     }
  894.                 }
  895.                 while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
  896.                 setarg(paramPos, 0, num);
  897.             }
  898.             case 'c':
  899.             {
  900.                 setarg(paramPos, 0, sstring[sstringPos++]);
  901.             }
  902.             case 'f':
  903.             {
  904.  
  905.                 new changestr[16], changepos = 0, strpos = sstringPos;
  906.                 while(changepos < 16 && sstring[strpos] && sstring[strpos] != delim)
  907.                 {
  908.                     changestr[changepos++] = sstring[strpos++];
  909.                     }
  910.                 changestr[changepos] = '\0';
  911.                 setarg(paramPos,0,_:floatstr(changestr));
  912.             }
  913.             case 'p':
  914.             {
  915.                 delim = format[formatPos++];
  916.                 continue;
  917.             }
  918.             case '\'':
  919.             {
  920.                 new
  921.                     end = formatPos - 1,
  922.                     ch;
  923.                 while ((ch = format[++end]) && ch != '\'') {}
  924.                 if (!ch)
  925.                 {
  926.                     return -1;
  927.                 }
  928.                 format[end] = '\0';
  929.                 if ((ch = strfind(sstring, format[formatPos], false, sstringPos)) == -1)
  930.                 {
  931.                     if (format[end + 1])
  932.                     {
  933.                         return -1;
  934.                     }
  935.                     return 0;
  936.                 }
  937.                 format[end] = '\'';
  938.                 sstringPos = ch + (end - formatPos);
  939.                 formatPos = end + 1;
  940.             }
  941.             case 'u':
  942.             {
  943.                 new
  944.                     end = sstringPos - 1,
  945.                     id = 0,
  946.                     bool:num = true,
  947.                     ch;
  948.                 while ((ch = sstring[++end]) && ch != delim)
  949.                 {
  950.                     if (num)
  951.                     {
  952.                         if ('0' <= ch <= '9')
  953.                         {
  954.                             id = (id * 10) + (ch - '0');
  955.                         }
  956.                         else
  957.                         {
  958.                             num = false;
  959.                         }
  960.                     }
  961.                 }
  962.                 if (num && IsPlayerConnected(id))
  963.                 {
  964.                     setarg(paramPos, 0, id);
  965.                 }
  966.                 else
  967.                 {
  968.                     #if !defined foreach
  969.                         #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  970.                         #define __SSCANF_FOREACH__
  971.                     #endif
  972.                     sstring[end] = '\0';
  973.                     num = false;
  974.                     new
  975.                         name[MAX_PLAYER_NAME];
  976.                     id = end - sstringPos;
  977.                     foreach (Player, playerid)
  978.                     {
  979.                         GetPlayerName(playerid, name, sizeof (name));
  980.                         if (!strcmp(name, sstring[sstringPos], true, id))
  981.                         {
  982.                             setarg(paramPos, 0, playerid);
  983.                             num = true;
  984.                             break;
  985.                         }
  986.                     }
  987.                     if (!num)
  988.                     {
  989.                         setarg(paramPos, 0, INVALID_PLAYER_ID);
  990.                     }
  991.                     sstring[end] = ch;
  992.                     #if defined __SSCANF_FOREACH__
  993.                         #undef foreach
  994.                         #undef __SSCANF_FOREACH__
  995.                     #endif
  996.                 }
  997.                 sstringPos = end;
  998.             }
  999.             case 's', 'z':
  1000.             {
  1001.                 new
  1002.                     i = 0,
  1003.                     ch;
  1004.                 if (format[formatPos])
  1005.                 {
  1006.                     while ((ch = sstring[sstringPos++]) && ch != delim)
  1007.                     {
  1008.                         setarg(paramPos, i++, ch);
  1009.                     }
  1010.                     if (!i)
  1011.                     {
  1012.                         return -1;
  1013.                     }
  1014.                 }
  1015.                 else
  1016.                 {
  1017.                     while ((ch = sstring[sstringPos++]))
  1018.                     {
  1019.                         setarg(paramPos, i++, ch);
  1020.                     }
  1021.                 }
  1022.                 sstringPos--;
  1023.                 setarg(paramPos, i, '\0');
  1024.             }
  1025.             default:
  1026.             {
  1027.                 continue;
  1028.             }
  1029.         }
  1030.         while (sstring[sstringPos] && sstring[sstringPos] != delim && sstring[sstringPos] > ' ')
  1031.         {
  1032.             sstringPos++;
  1033.         }
  1034.         while (sstring[sstringPos] && (sstring[sstringPos] == delim || sstring[sstringPos] <= ' '))
  1035.         {
  1036.             sstringPos++;
  1037.         }
  1038.         paramPos++;
  1039.     }
  1040.     do
  1041.     {
  1042.         if ((delim = format[formatPos++]) > ' ')
  1043.         {
  1044.             if (delim == '\'')
  1045.             {
  1046.                 while ((delim = format[formatPos++]) && delim != '\'') {}
  1047.             }
  1048.             else if (delim != 'z')
  1049.             {
  1050.                 return delim;
  1051.             }
  1052.         }
  1053.     }
  1054.     while (delim > ' ');
  1055.     return 0;
  1056. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement