Advertisement
Guest User

UC by Dominik. V2

a guest
Apr 21st, 2012
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 36.51 KB | None | 0 0
  1. /*
  2. Useful Commands by Dominik.
  3.  
  4.  
  5. 1.
  6. F:Was ist dieses FilterScript
  7.  
  8. A: Einige Pawn Funktion sind Ingame ausführbar.
  9.    CreateVehicle, Create3DTextLabel, RepairVehicle usw ...
  10.    Das ganze ist natürlich noch nicht annähernd fertig, da ich erst eine Katergorie (Vehicles) gemacht habe.
  11.    Im laufe der Zeit werden Viele Updates Folgen.
  12.    
  13. 2.
  14. F: Darf ich dieses Filterscript editieren?
  15.  
  16. A:  Ja,
  17.     Solange du die Credits und Copyrights nicht entferntst ist es OK.
  18.    
  19. 3.
  20. F:  Darf ich dieses Filterscript verkaufen?
  21.  
  22. A:  Nein,
  23.     Es wurde kostenlos bereit gestellt und soll von niemandem verkauft werden!
  24.  
  25.  
  26.  
  27. Befehle:
  28.  
  29. /uccredits
  30. /SendPlayerMessageToPlayer [playerid][text]
  31. /Create3DTextLabel [text][distance]
  32. /CreateVehicle [vehicleid][color1][color2]
  33. /DestroyVehicle [vehicleid]
  34. /AddVehicleComponent [vehicleid][component]
  35. /RemoveVehicleComponent [vehicleid][component]
  36. /ChangeVehicleColor [vehicleid][color1][color2]
  37. /ChangeVehiclePaintJob [vehicleid][paintjob]
  38. /GetPlayerVehicleid [playerid]
  39. /GetVehicleHealth [vehicleid]
  40. /GetVehiclePos [vehicleid]
  41. /GetVehicleVirtualWorld [vehicleid]
  42. /GetVehicleZAngle [vehicleid]
  43. /RemovePlayerFromVehicle [vehicleid]
  44. /AttachTrailerToVehicle [trailerid][vehicleid]
  45. /DetachTrailerFromVehicle [trailerid][vehicleid]
  46. /GetVehicleDamageStatus [vehicleid]
  47. /LinkVehicleToInterior [vehicleid][interior]
  48. /PutPlayerInVehicle [playerid][vehicleid][sitz]
  49. /RepairVehicle [vehicleid]
  50. /PlayerSpectateVehicle [playerid][vehicleid]
  51. /SetVehicleToRespawn [vehicleid]
  52. /SetVehicleVelocity [vehicleid][x][y][z]
  53. /SetVehicleVirtualWorld [vehicleid][virtualworld]
  54. /SetVehicleZAngle [vehicleid][zangle]
  55.  
  56.  
  57. Update 1:
  58. /GetPlayerArmour [playerid]
  59. /GivePlayerArmour [playerid][anzahl]
  60. /SetPlayerArmour [playerid][anzahl]
  61. /GameTextForAll [text][zeit][schriftart]
  62. /GameTextForPlayer [playerid][text][zeit][schriftart]
  63. /GangZoneCreate [minx][miny][maxx][maxy]
  64. /GetMaxPlayers []
  65. /GetNetworkStats []
  66. /GetObjectPos [objectid]
  67. /SetObjectPos [objectid][x][y][z]
  68. /GetObjectRot [objectid]
  69. /SetObjectRot [objectid][x][y][z]
  70. /GetPlayerAmmo [playerid]
  71. /SetPlayerAmmo [playerid][weaponid][muni]
  72. /GetPlayerColor [playerid]
  73. */
  74. #define FILTERSCRIPT
  75.  
  76. #include <a_samp>
  77. #include <zcmd>
  78.  
  79. #if defined FILTERSCRIPT
  80.  
  81. //Farben
  82. #define GRÜN 0x23FF00FF
  83. #define ROT 0xE10000FF
  84. #define ORANGE 0xFF8200FF
  85. #define SCHWARZ 0x141414FF
  86. #define WEISS 0xFFFFFFFF
  87. #define TRANSPARENT 0xB0C4DEFF
  88. #define BLAU 0x0A00FFFF
  89. //-----------
  90.  
  91. native IsValidVehicle(vehicleid);
  92.  
  93. public OnFilterScriptInit()
  94. {
  95.     print("\n--------------------------------------");
  96.     print(" UsefulCommands by Dominik. loaded ...");
  97.     print("--------------------------------------\n");
  98.     return 1;
  99. }
  100.  
  101. public OnFilterScriptExit()
  102. {
  103.     return 1;
  104. }
  105. #endif
  106. //Befehle
  107. CMD:uccredits(playerid)
  108. {
  109.     SendClientMessage(playerid,ORANGE,"|===============|Credits|===============|");
  110.     SendClientMessage(playerid,WEISS, "Dominik.: Scripting");
  111.     SendClientMessage(playerid,WEISS, "Zeex: zcmd");
  112.     SendClientMessage(playerid,WEISS, "SA:MP Team: Wiki & a_samp");
  113.     SendClientMessage(playerid,WEISS, "BlackAce: Problemlösung");
  114.     SendClientMessage(playerid,WEISS, "Alex \"Y_Less\" Cole: sscanf");
  115.     SendClientMessage(playerid,ORANGE,"|===============|Credits|===============|");
  116.     return 1;
  117. }
  118. CMD:SendPlayerMessageToPlayer(playerid,params[])
  119. {
  120.     if(IsPlayerAdmin(playerid))
  121.     {
  122.         new giveplayerid;
  123.         new playertext[128];
  124.         if(sscanf(params,"us",giveplayerid,playertext)) return SendClientMessage(playerid,ROT,"Verwendung: /SendPlayerMessageToPlayer [playerid][text]");
  125.         if(IsPlayerConnected(giveplayerid))
  126.         {
  127.             new stringtogiveplayerid[150];
  128.             new giveplayername[MAX_PLAYER_NAME];
  129.             GetPlayerName(giveplayerid,giveplayername,sizeof(giveplayername));
  130.             format(stringtogiveplayerid,150,"Nachricht von %s: %s",spielername(playerid),playertext);
  131.             SendPlayerMessageToPlayer(giveplayerid,playerid,stringtogiveplayerid);
  132.             return 1;
  133.         }
  134.         else
  135.         {
  136.             return SendClientMessage(playerid,ROT,"Die angegebene SpielerID ist ungültig!");
  137.         }
  138.     }
  139.     else
  140.     {
  141.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  142.     }
  143. }
  144. CMD:Create3DTextLabel(playerid,params[])
  145. {
  146.     if(IsPlayerAdmin(playerid))
  147.     {
  148.         new text3d[128];
  149.         new distance;
  150.         if(sscanf(params,"si",text3d,distance)) return SendClientMessage(playerid,ROT,"Verwendung: /Create3DTextLabel [text][distanz]");
  151.         if(distance > 0)
  152.         {
  153.             new Float:X,Float:Y,Float:Z;
  154.             GetPlayerPos(playerid,X,Y,Z);
  155.             Create3DTextLabel(text3d,WEISS,X,Y,Z,distance,GetPlayerVirtualWorld(playerid));
  156.             SendClientMessage(playerid,GRÜN,"Erfolgreich erstellt!");
  157.             return 1;
  158.         }
  159.         else
  160.         {
  161.             return SendClientMessage(playerid,ROT,"Die Distanz muss über 0 sein!");
  162.         }
  163.     }
  164.     else
  165.     {
  166.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  167.     }
  168. }
  169. CMD:CreateVehicle(playerid,params[])
  170. {
  171.     if(IsPlayerAdmin(playerid))
  172.     {
  173.         new vehicleid, color1, color2;
  174.         if(sscanf(params,"ddd",vehicleid,color1,color2)) return SendClientMessage(playerid,ROT,"Verwendung: /CreateVehicle [vehicleid][color1][color2]");
  175.         if(vehicleid > 399 || vehicleid < 612)
  176.         {
  177.             if(color1 < 255 || color2 < 255)
  178.             {
  179.                 new Float:X,Float:Y,Float:Z,Float:A;
  180.                 GetPlayerPos(playerid,X,Y,Z);
  181.                 GetPlayerFacingAngle(playerid,A);
  182.                 CreateVehicle(vehicleid,X,Y,Z,A,color1,color2,-1);
  183.                 SendClientMessage(playerid,GRÜN,"Fahrzeug erfolgreich erstellt!");
  184.                 return 1;
  185.             }
  186.             else
  187.             {
  188.                 return SendClientMessage(playerid,ROT,"Eine der angegebenen Farben ist ungültig (0-255)");
  189.             }
  190.         }
  191.         else
  192.         {
  193.             return SendClientMessage(playerid,ROT,"Ungültige Fahrzeug ID!");
  194.         }
  195.     }
  196.     else
  197.     {
  198.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  199.     }
  200. }
  201. CMD:DestroyVehicle(playerid,params[])
  202. {
  203.     if(IsPlayerAdmin(playerid))
  204.     {
  205.         new vehicleid;
  206.         if(sscanf(params,"d",vehicleid)) return SendClientMessage(playerid,ROT,"Verwendung: /DestroyVehicle [vehicleid]");
  207.         if(IsValidVehicle(vehicleid))
  208.         {
  209.             DestroyVehicle(vehicleid);
  210.             SendClientMessage(playerid,GRÜN,"Fahrzeug erfolgreich zerstört!");
  211.             return 1;
  212.         }
  213.         else
  214.         {
  215.             return SendClientMessage(playerid,ROT,"Das angegebene Fahrzeug existiert nicht!");
  216.         }
  217.     }
  218.     else
  219.     {
  220.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  221.     }
  222. }
  223. CMD:AddVehicleComponent(playerid,params[])
  224. {
  225.     if(IsPlayerAdmin(playerid))
  226.     {
  227.         new vehicleid;
  228.         new component;
  229.         if(sscanf(params,"dd",vehicleid,component)) return SendClientMessage(playerid,ROT,"Verwendung: /AddVehicleComponent [vehicleid][component]");
  230.         if(IsValidVehicle(vehicleid))
  231.         {
  232.             AddVehicleComponent(vehicleid,component);
  233.             SendClientMessage(playerid,GRÜN,"Fahrzeug erfolgreich modifiziert!");
  234.             return 1;
  235.         }
  236.         else
  237.         {
  238.             return SendClientMessage(playerid,ROT,"Das angegebene Fahrzeug existiert nicht!");
  239.         }
  240.     }
  241.     else
  242.     {
  243.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  244.     }
  245. }
  246. CMD:RemoveVehicleComponent(playerid,params[])
  247. {
  248.     if(IsPlayerAdmin(playerid))
  249.     {
  250.         new vehicleid, component;
  251.         if(sscanf(params,"dd",vehicleid,component)) return SendClientMessage(playerid,ROT,"Verwendung: /RemoveVehicleComponent [vehicleid][component]");
  252.         if(IsValidVehicle(vehicleid))
  253.         {
  254.             RemoveVehicleComponent(vehicleid,component);
  255.             SendClientMessage(playerid,GRÜN,"Modifizierung erfolgreich entfernt!");
  256.             return 1;
  257.         }
  258.         else
  259.         {
  260.             return SendClientMessage(playerid,ROT,"Das angegebene Fahrzeug existiert nicht!");
  261.         }
  262.     }
  263.     else
  264.     {
  265.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  266.     }
  267. }
  268. CMD:ChangeVehicleColor(playerid,params[])
  269. {
  270.     if(IsPlayerAdmin(playerid))
  271.     {
  272.         new vehicleid,color1,color2;
  273.         if(sscanf(params,"ddd",vehicleid,color1,color2)) return SendClientMessage(playerid,ROT,"Verwendung: /ChangeVehicleColor [vehicleid][color1][color2]");
  274.         if(color1 < 255 || color2 < 255)
  275.         {
  276.             if(IsValidVehicle(vehicleid))
  277.             {
  278.                 ChangeVehicleColor(vehicleid,color1,color2);
  279.                 SendClientMessage(playerid,GRÜN,"Farbe erfolgreich geändert!");
  280.                 return 1;
  281.             }
  282.             else
  283.             {
  284.                 return SendClientMessage(playerid,ROT,"Das angegebene Fahrzeug existiert nicht!");
  285.             }
  286.         }
  287.         else
  288.         {
  289.             return SendClientMessage(playerid,ROT,"Ungültiger FarbCode!");
  290.         }
  291.     }
  292.     else
  293.     {
  294.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  295.     }
  296. }
  297. CMD:ChangeVehiclePaintJob(playerid,params[])
  298. {
  299.     if(IsPlayerAdmin(playerid))
  300.     {
  301.         new paintjob, vehicleid;
  302.         if(sscanf(params,"dd",vehicleid,paintjob)) return SendClientMessage(playerid,ROT,"Verwendung: /ChangeVehiclePaintJob [vehicleid][paintjob]");
  303.         if(IsValidVehicle(vehicleid))
  304.         {
  305.             ChangeVehiclePaintjob(vehicleid,paintjob);
  306.             SendClientMessage(playerid,GRÜN,"Paintjob erfolgreich geändert!");
  307.             return 1;
  308.         }
  309.         else
  310.         {
  311.             return SendClientMessage(playerid,ROT,"Das angegebene Fahrzeug existiert nicht!");
  312.         }
  313.     }
  314.     else
  315.     {
  316.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  317.     }
  318. }
  319. CMD:GetPlayerVehicleID(playerid,params[])
  320. {
  321.     if(IsPlayerAdmin(playerid))
  322.     {
  323.         new checkid;
  324.         if(sscanf(params,"u",checkid)) return SendClientMessage(playerid,ROT,"Verwendung: /GetPlayerVehicleID [vehicleid]");
  325.         new string[64];
  326.         format(string,64,"playerid %d ist derzeit im Fahrzeug mit der ID %d",checkid,GetPlayerVehicleID(checkid));
  327.         SendClientMessage(playerid,ORANGE,string);
  328.         return 1;
  329.     }
  330.     else
  331.     {
  332.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  333.     }
  334. }
  335. CMD:GetVehicleHealth(playerid,params[])
  336. {
  337.     if(IsPlayerAdmin(playerid))
  338.     {
  339.         new vehicleid;
  340.         new Float:health;
  341.         if(sscanf(params,"d",vehicleid)) return SendClientMessage(playerid,ROT,"Verwendung: /GetVehicleHealth [vehicleid]");
  342.         if(IsValidVehicle(vehicleid))
  343.         {
  344.             new string[64];
  345.             GetVehicleHealth(vehicleid,health);
  346.             format(string,64,"HP des Fahrzeuges %d: %d",vehicleid,health);
  347.             SendClientMessage(playerid,ORANGE,string);
  348.             return 1;
  349.         }
  350.         else
  351.         {
  352.             return SendClientMessage(playerid,ROT,"Das angegebene Fahrzeug existiert nicht!");
  353.         }
  354.     }
  355.     else
  356.     {
  357.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  358.     }
  359. }
  360. CMD:GetVehiclePos(playerid,params[])
  361. {
  362.     if(IsPlayerAdmin(playerid))
  363.     {
  364.         new vehicleid;
  365.         new Float:X,Float:Y,Float:Z;
  366.         if(sscanf(params,"d",vehicleid)) return SendClientMessage(playerid,ROT,"Verwendung: /GetVehiclePos [vehicleid]");
  367.         if(IsValidVehicle(vehicleid))
  368.         {
  369.             new string[64];
  370.             GetVehiclePos(vehicleid,X,Y,Z);
  371.             format(string,64,"Position des Fahrzeuges %d: %0.f %0.f %0.f",vehicleid,X,Y,Z);
  372.             SendClientMessage(playerid,ORANGE,string);
  373.             return 1;
  374.         }
  375.         else
  376.         {
  377.             return SendClientMessage(playerid,ROT,"Das angegebene Fahrzeug existiert nicht!");
  378.         }
  379.     }
  380.     else
  381.     {
  382.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  383.     }
  384. }
  385. CMD:GetVehicleVirtualWorld(playerid,params[])
  386. {
  387.     if(IsPlayerAdmin(playerid))
  388.     {
  389.         new vehicleid;
  390.         if(sscanf(params,"d",vehicleid)) return SendClientMessage(playerid,ROT,"Verwendung: /GetVehicleVirtualWorld [vehicleid]");
  391.         if(IsValidVehicle(vehicleid))
  392.         {
  393.             new string[64];
  394.             format(string,64,"Virtuelle Welt des Fahrzeuges %d: %d",vehicleid,GetVehicleVirtualWorld(playerid));
  395.             SendClientMessage(playerid,ORANGE,string);
  396.             return 1;
  397.         }
  398.         else
  399.         {
  400.             return SendClientMessage(playerid,ROT,"Das angegebene Fahrzeug existiert nicht!");
  401.         }
  402.     }
  403.     else
  404.     {
  405.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  406.     }
  407. }
  408. CMD:GetVehicleZAngle(playerid,params[])
  409. {
  410.     if(IsPlayerAdmin(playerid))
  411.     {
  412.         new vehicleid;
  413.         new Float:ZAngle;
  414.         if(sscanf(params,"d",vehicleid)) return SendClientMessage(playerid,ROT,"Verwendung: /GetVehicleZAngle [vehicleid]");
  415.         if(IsValidVehicle(vehicleid))
  416.         {
  417.             new string[64];
  418.             GetVehicleZAngle(vehicleid,ZAngle);
  419.             format(string,64,"ZAngle des Fahrzeuges %d: %0.f ",vehicleid,ZAngle);
  420.             SendClientMessage(playerid,ORANGE,string);
  421.             return 1;
  422.         }
  423.         else
  424.         {
  425.             return SendClientMessage(playerid,ROT,"Das angegebene Fahrzeug existiert nicht!");
  426.         }
  427.     }
  428.     else
  429.     {
  430.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  431.     }
  432. }
  433. CMD:RemovePlayerFromVehicle(playerid,params[])
  434. {
  435.     if(IsPlayerAdmin(playerid))
  436.     {
  437.         new giveplayerid;
  438.         if(sscanf(params,"u",giveplayerid)) return SendClientMessage(playerid,ROT,"Verwendung: /RemovePlayerFromVehicle [playerid]");
  439.         if(IsPlayerConnected(giveplayerid))
  440.         {
  441.             if(IsPlayerInAnyVehicle(giveplayerid))
  442.             {
  443.                 new string[64];
  444.                 new giveplayername[24];
  445.                 new getstring[64];
  446.                 GetPlayerName(giveplayerid,giveplayername,24);
  447.                 format(string,64,"%s (%d) erfolgreich vom Fahrzeug entfernet!",giveplayername,giveplayerid);
  448.                 format(getstring,64,"%s (%d) hat dich aus deinem Fahrzeug geschmissen!",spielername(playerid),playerid);
  449.                 SendClientMessage(playerid,ORANGE,string);
  450.                 SendClientMessage(playerid,ROT,getstring);
  451.                 return 1;
  452.             }
  453.             else
  454.             {
  455.                 return SendClientMessage(playerid,ROT,"Der Spieler sitzt in keinem Fahrzeug!");
  456.             }
  457.         }
  458.         else
  459.         {
  460.             return SendClientMessage(playerid,ROT,"Ungültige SpielerID!");
  461.         }
  462.     }
  463.     else
  464.     {
  465.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  466.     }
  467. }
  468. CMD:AttachTrailerToVehicle(playerid,params[])
  469. {
  470.     if(IsPlayerAdmin(playerid))
  471.     {
  472.         new vehicleid, trailerid;
  473.         if(sscanf(params,"dd",trailerid,vehicleid)) return SendClientMessage(playerid,ROT,"Verwendung: /AttachTrailerToVehicle [trailerid][vehicleid]");
  474.         if(IsValidVehicle(trailerid))
  475.         {
  476.             if(IsValidVehicle(vehicleid))
  477.             {
  478.                 new string[64];
  479.                 format(string,64,"Du hast erfolgreich den Anhänger %d an das Fahrzeug %d gesetzt!",vehicleid,trailerid);
  480.                 AttachTrailerToVehicle(trailerid,vehicleid);
  481.                 SendClientMessage(playerid,GRÜN,string);
  482.                 return 1;
  483.             }
  484.             else
  485.             {
  486.                 return SendClientMessage(playerid,ROT,"Das angegebene Fahrzeug existiert nicht!");
  487.             }
  488.         }
  489.         else
  490.         {
  491.             return SendClientMessage(playerid,ROT,"Der angegebene Anhänger existiert nicht!");
  492.         }
  493.     }
  494.     else
  495.     {
  496.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  497.     }
  498. }
  499. CMD:DetachTrailerFromVehicle(playerid,params[])
  500. {
  501.     if(IsPlayerAdmin(playerid))
  502.     {
  503.         new vehicleid, trailerid;
  504.         if(sscanf(params,"dd",trailerid,vehicleid)) return SendClientMessage(playerid,ROT,"Verwendung: /DetachTrailerFromVehicle [trailerid][vehicleid]");
  505.         if(IsValidVehicle(trailerid))
  506.         {
  507.             if(IsValidVehicle(vehicleid))
  508.             {
  509.                 if(IsTrailerAttachedToVehicle(vehicleid))
  510.                 {
  511.                     new string[64];
  512.                     format(string,64,"Du hast erfolgreich den Anhänger %d vom Fahrzeug %d entfernt!",vehicleid,trailerid);
  513.                     AttachTrailerToVehicle(trailerid,vehicleid);
  514.                     SendClientMessage(playerid,GRÜN,string);
  515.                     return 1;
  516.                 }
  517.                 else
  518.                 {
  519.                     return SendClientMessage(playerid,ROT,"Der Anhänger ist nicht am angegebenen Fahrzeug!");
  520.                 }
  521.             }
  522.             else
  523.             {
  524.                 return SendClientMessage(playerid,ROT,"Das angegebene Fahrzeug existiert nicht!");
  525.             }
  526.         }
  527.         else
  528.         {
  529.             return SendClientMessage(playerid,ROT,"Der angegebene Anhänger existiert nicht!");
  530.         }
  531.     }
  532.     else
  533.     {
  534.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  535.     }
  536. }
  537. CMD:GetVehicleDamageStatus(playerid,params[])
  538. {
  539.     if(IsPlayerAdmin(playerid))
  540.     {
  541.         new vehicleid;
  542.         new platten, tueren, lichter, reifen;
  543.         if(sscanf(params,"d",vehicleid)) return SendClientMessage(playerid,ROT,"Verwendung: /GetVehicleDamageStatus [vehicleid]");
  544.         if(IsValidVehicle(vehicleid))
  545.         {
  546.             GetVehicleDamageStatus(vehicleid,platten,tueren,lichter,reifen);
  547.             new string[100];
  548.             format(string,100,"Status: [Vehicleid] : %d - [Platten] : %d - [Tueren] : %d - [Lichter] : %d - [Reifen] : %d",vehicleid,platten,tueren,lichter,reifen);
  549.             SendClientMessage(playerid,ORANGE,string);
  550.             return 1;
  551.         }
  552.         else
  553.         {
  554.             return SendClientMessage(playerid,ROT,"Das angegebene Fahrzeug existiert nicht!");
  555.         }
  556.     }
  557.     else
  558.     {
  559.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  560.     }
  561. }
  562. CMD:LinkVehicleToInterior(playerid,params[])
  563. {
  564.     if(IsPlayerAdmin(playerid))
  565.     {
  566.         new vehicleid,interiorid;
  567.         if(sscanf(params,"dd",vehicleid,interiorid)) return SendClientMessage(playerid,ROT,"Verwendung: /LinkVehicleToInterior [vehicleid][interior]");
  568.         if(IsValidVehicle(vehicleid))
  569.         {
  570.             if(interiorid < 19)
  571.             {
  572.                 LinkVehicleToInterior(vehicleid,interiorid);
  573.                 SendClientMessage(playerid,GRÜN,"Fahrzeug erfolgreich in den gewünschten Interior teleportiert!");
  574.                 return 1;
  575.             }
  576.             else
  577.             {
  578.                 return SendClientMessage(playerid,ROT,"Ungültige InteriorID!");
  579.             }
  580.         }
  581.         else
  582.         {
  583.             return SendClientMessage(playerid,ROT,"Das angegebene Fahrzeug existiert nicht!");
  584.         }
  585.     }
  586.     else
  587.     {
  588.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  589.     }
  590. }
  591. CMD:PutPlayerInVehicle(playerid,params[])
  592. {
  593.     if(IsPlayerAdmin(playerid))
  594.     {
  595.         new giveplayerid,vehicleid,sitz;
  596.         if(sscanf(params,"udd",giveplayerid,vehicleid,sitz)) return SendClientMessage(playerid,ROT,"Verwendung: /PutPlayerInVehicle [playerid][vehicleid][sitz(0-4)]");
  597.         if(IsPlayerConnected(giveplayerid))
  598.         {
  599.             if(IsValidVehicle(vehicleid))
  600.             {
  601.                 if(sitz < 5)
  602.                 {
  603.                     new string[64];
  604.                     PutPlayerInVehicle(giveplayerid,vehicleid,sitz);
  605.                     format(string,64,"Du hast ID %d erfolgreich in das Fahrzeug %d auf den Sitz %d getan!",giveplayerid,vehicleid,sitz);
  606.                     SendClientMessage(playerid,GRÜN,string);
  607.                     return 1;
  608.                 }
  609.                 else
  610.                 {
  611.                     return SendClientMessage(playerid,ROT,"Der Sitz muss zwischen 0 und 4 liegen!");
  612.                 }
  613.             }
  614.             else
  615.             {
  616.                 return SendClientMessage(playerid,ROT,"Das angegebene Fahrzeug existiert nicht!");
  617.             }
  618.         }
  619.         else
  620.         {
  621.             return SendClientMessage(playerid,ROT,"Ungültige SpielerID!");
  622.         }
  623.     }
  624.     else
  625.     {
  626.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  627.     }
  628. }
  629. CMD:RepairVehicle(playerid,params[])
  630. {
  631.     if(IsPlayerAdmin(playerid))
  632.     {
  633.         new vehicleid;
  634.         if(sscanf(params,"d",vehicleid)) return SendClientMessage(playerid,ROT,"Verwendung: /RepairVehicle [vehicleid]");
  635.         if(IsValidVehicle(vehicleid))
  636.         {
  637.             RepairVehicle(vehicleid);
  638.             SendClientMessage(playerid,GRÜN,"Fahrzeug erfolgreich repariert!");
  639.             return 1;
  640.         }
  641.         else
  642.         {
  643.             return SendClientMessage(playerid,ROT,"Das angegebene Fahrzeug existiert nicht!");
  644.         }
  645.     }
  646.     else
  647.     {
  648.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  649.     }
  650. }
  651. CMD:PlayerSpectateVehicle(playerid,params[])
  652. {
  653.     if(IsPlayerAdmin(playerid))
  654.     {
  655.         new giveplayerid, vehicleid;
  656.         if(sscanf(params,"ud",giveplayerid,vehicleid)) return SendClientMessage(playerid,ROT,"Verwendung: /PlayerSpectateVehicle [playerid][vehicleid]");
  657.         if(IsPlayerConnected(giveplayerid))
  658.         {
  659.             if(IsValidVehicle(vehicleid))
  660.             {
  661.                 new string[64];
  662.                 TogglePlayerSpectating(giveplayerid,1);
  663.                 PlayerSpectateVehicle(giveplayerid,vehicleid,SPECTATE_MODE_NORMAL);
  664.                 format(string,64,"ID %d beobachtet nun das Fahrzeug %d",giveplayerid,vehicleid);
  665.                 SendClientMessage(playerid,ORANGE,string);
  666.                 return 1;
  667.             }
  668.             else
  669.             {
  670.                 return SendClientMessage(playerid,ROT,"Das angegebene Fahrzeug existiert nicht!");
  671.             }
  672.         }
  673.         else
  674.         {
  675.             return SendClientMessage(playerid,ROT,"Ungültige SpielerID");
  676.         }
  677.     }
  678.     else
  679.     {
  680.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  681.     }
  682. }
  683. CMD:SetVehicleToRespawn(playerid,params[])
  684. {
  685.     if(IsPlayerAdmin(playerid))
  686.     {
  687.         new vehicleid;
  688.         if(sscanf(params,"d",vehicleid)) return SendClientMessage(playerid,ROT,"Verwendung: /SetVehicleToRespawn [vehicleid]");
  689.         if(IsValidVehicle(vehicleid))
  690.         {
  691.             SetVehicleToRespawn(vehicleid);
  692.             SendClientMessage(playerid,GRÜN,"Fahrzeug erfolgreich Respawnt!");
  693.             return 1;
  694.         }
  695.         else
  696.         {
  697.             return SendClientMessage(playerid,ROT,"Das angegebene Fahrzeug existiert nicht!");
  698.         }
  699.     }
  700.     else
  701.     {
  702.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  703.     }
  704. }
  705. CMD:SetVehicleVelocity(playerid,params[])
  706. {
  707.     if(IsPlayerAdmin(playerid))
  708.     {
  709.         new vehicleid;
  710.         new Float:x,Float:y,Float:z;
  711.         if(sscanf(params,"dfff",vehicleid,x,y,z)) return SendClientMessage(playerid,ROT,"Verwendung: /SetVehicleVelocity [vehicleid][X][Y][Z]");
  712.         if(IsValidVehicle(vehicleid))
  713.         {
  714.             new string[100];
  715.             SetVehicleVelocity(vehicleid,x,y,z);
  716.             format(string,100,"Die Geschwindigkeit (Velocity) des Fahrzeuges %d wurde auf %0.f %0.f %0.f gesetzt!",vehicleid,x,y,z);
  717.             SendClientMessage(playerid,ROT,string);
  718.             return 1;
  719.         }
  720.         else
  721.         {
  722.             return SendClientMessage(playerid,ROT,"Das angegebene Fahrzeug existiert nicht!");
  723.         }
  724.     }
  725.     else
  726.     {
  727.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  728.     }
  729. }
  730. CMD:SetVehicleVirtualWorld(playerid,params[])
  731. {
  732.     if(IsPlayerAdmin(playerid))
  733.     {
  734.         new vehicleid, vw;
  735.         if(sscanf(params,"dd",vehicleid,vw)) return SendClientMessage(playerid,ROT,"Verwendung: /SetVehicleVirtualWorld [vehicleid][virtualworld]");
  736.         if(IsValidVehicle(vehicleid))
  737.         {
  738.             new string[64];
  739.             SetVehicleVirtualWorld(vehicleid,vw);
  740.             format(string,64,"Du hast die VirtualWorld des Fahrzeuges %d auf %d gesetzt!",vehicleid,vw);
  741.             SendClientMessage(playerid,ORANGE,string);
  742.             return 1;
  743.         }
  744.         else
  745.         {
  746.             return SendClientMessage(playerid,ROT,"Das angegebene Fahrzeug existiert nicht!");
  747.         }
  748.     }
  749.     else
  750.     {
  751.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  752.     }
  753. }
  754. CMD:SetVehicleZAngle(playerid,params[])
  755. {
  756.     if(IsPlayerAdmin(playerid))
  757.     {
  758.         new vehicleid;
  759.         new Float:ZAngle;
  760.         if(sscanf(params,"df",vehicleid,ZAngle)) return SendClientMessage(playerid,ROT,"Verwendung: /SetVehicleZAngle [vehicleid][zangle]");
  761.         if(IsValidVehicle(vehicleid))
  762.         {
  763.             new string[64];
  764.             SetVehicleZAngle(vehicleid,ZAngle);
  765.             format(string,64,"Neues ZAngle von Fahrzeug %d: %0.f",vehicleid,ZAngle);
  766.             SendClientMessage(playerid,ORANGE,string);
  767.             return 1;
  768.         }
  769.         else
  770.         {
  771.             return SendClientMessage(playerid,ROT,"Das angegebene Fahrzeug existiert nicht!");
  772.         }
  773.     }
  774.     else
  775.     {
  776.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  777.     }
  778. }
  779. CMD:GetPlayerArmour(playerid,params[])
  780. {
  781.     if(IsPlayerAdmin(playerid))
  782.     {
  783.         new getplayerid;
  784.        
  785.         if(sscanf(params,"u",getplayerid)) return SendClientMessage(playerid,ROT,"Verwendung: /GetPlayerArmour [playerid]");
  786.         if(IsPlayerConnected(getplayerid))
  787.         {
  788.             new Float:ruestung;
  789.             new string[64];
  790.             GetPlayerArmour(playerid,ruestung);
  791.             format(string,64,"Ruestung von ID %d: %0.f",getplayerid,ruestung);
  792.             SendClientMessage(playerid,ORANGE,string);
  793.             return 1;
  794.         }
  795.         else
  796.         {
  797.             return SendClientMessage(playerid,ROT,"Ungültige SpielerID!");
  798.         }
  799.     }
  800.     else
  801.     {
  802.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  803.     }
  804. }
  805. CMD:GivePlayerArmour(playerid,params[])
  806. {
  807.     if(IsPlayerAdmin(playerid))
  808.     {
  809.         new giveplayerid, anzahl;
  810.         if(sscanf(params,"ud",giveplayerid,anzahl)) return SendClientMessage(playerid,ROT,"Verwendung: /GivePlayerArmour [playerid][anzahl]");
  811.         if(IsPlayerConnected(giveplayerid))
  812.         {
  813.             new Float:ruestung;
  814.             new string[64];
  815.             SetPlayerArmour(playerid,GetPlayerArmour(playerid,ruestung) + anzahl);
  816.             format(string,64,"Du hast ID %d %d Ruestung gegeben!",giveplayerid,ruestung);
  817.             SendClientMessage(playerid,ORANGE,string);
  818.             return 1;
  819.         }
  820.         else
  821.         {
  822.             return SendClientMessage(playerid,ROT,"Ungültige SpielerID!");
  823.         }
  824.     }
  825.     else
  826.     {
  827.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  828.     }
  829. }
  830. CMD:SetPlayerArmour(playerid,params[])
  831. {
  832.     if(IsPlayerAdmin(playerid))
  833.     {
  834.         new giveplayerid, anzahl;
  835.         if(sscanf(params,"ud",giveplayerid,anzahl)) return SendClientMessage(playerid,ROT,"Verwendung: /SetPlayerArmour [playerid][anzahl]");
  836.         if(IsPlayerConnected(giveplayerid))
  837.         {
  838.             new string[64];
  839.             SetPlayerArmour(playerid,anzahl);
  840.             format(string,64,"Du hast die Ruestung von ID %d auf %d gesetzt!",giveplayerid,anzahl);
  841.             SendClientMessage(playerid,ORANGE,string);
  842.             return 1;
  843.         }
  844.         else
  845.         {
  846.             return SendClientMessage(playerid,ROT,"Ungültige SpielerID!");
  847.         }
  848.     }
  849.     else
  850.     {
  851.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  852.     }
  853. }
  854. CMD:GameTextForAll(playerid,params[])
  855. {
  856.     if(IsPlayerAdmin(playerid))
  857.     {
  858.         new text[64];
  859.         new time, style;
  860.         if(sscanf(params,"sdd",text,time,style)) return SendClientMessage(playerid,ROT,"Verwendung: /GameTextForAll [text][zeit][schriftart]");
  861.         if(style < 7)
  862.         {
  863.             GameTextForAll(text,time,style);
  864.             return 1;
  865.         }
  866.         else
  867.         {
  868.             return SendClientMessage(playerid,ROT,"Die Schriftart muss zwischen 0 und 6 liegen!");
  869.         }
  870.     }
  871.     else
  872.     {
  873.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  874.     }
  875. }
  876. CMD:GameTextForPlayer(playerid,params[])
  877. {
  878.     if(IsPlayerAdmin(playerid))
  879.     {
  880.         new text[64];
  881.         new sendplayerid,time,style;
  882.         if(sscanf(params,"usdd",sendplayerid,text,time,style)) return SendClientMessage(playerid,ROT,"/GameTextForPlayer [playerid][text][zeit][schriftart]");
  883.         if(IsPlayerConnected(sendplayerid))
  884.         {
  885.             if(style < 7)
  886.             {
  887.                 GameTextForPlayer(sendplayerid,text,time,style);
  888.                 SendClientMessage(playerid,GRÜN,"Nachricht erfolgreich versendet!");
  889.                 return 1;
  890.             }
  891.             else
  892.             {
  893.                 return SendClientMessage(playerid,ROT,"Die Schriftart muss zwischen 0 und 6 liegen!");
  894.             }
  895.         }
  896.         else
  897.         {
  898.             return SendClientMessage(playerid,ROT,"Ungültige SpielerID!");
  899.         }
  900.     }
  901.     else
  902.     {
  903.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  904.     }
  905. }
  906. CMD:GangZoneCreate(playerid,params[])
  907. {
  908.     if(IsPlayerAdmin(playerid))
  909.     {
  910.         new minx, miny;
  911.         new maxx, maxy;
  912.         new string[100];
  913.         if(sscanf(params,"ffff",minx,miny,maxx,maxy)) return SendClientMessage(playerid,ROT,"Verwendung: /GangZoneCreate [minx][miny][maxx][maxy]");
  914.         GangZoneCreate(minx,miny,maxx,maxy);
  915.         format(string,64,"Gangzone erstellt! [minx] = %f - [miny] = %f - [maxx] = %f - [maxy] = %f",minx,miny,maxx,maxy);
  916.         SendClientMessage(playerid,ORANGE,string);
  917.         return 1;
  918.     }
  919.     else
  920.     {
  921.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  922.     }
  923. }
  924. CMD:GetMaxPlayers(playerid)
  925. {
  926.     if(IsPlayerAdmin(playerid))
  927.     {
  928.         new string[64];
  929.         format(string,64,"Slots auf diesem Server:",GetMaxPlayers());
  930.         SendClientMessage(playerid,ORANGE,string);
  931.         return 1;
  932.     }
  933.     else
  934.     {
  935.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  936.     }
  937. }
  938. CMD:GetNetworkStats(playerid)
  939. {
  940.     new string[401];
  941.     GetNetworkStats(string,401);
  942.     SendClientMessage(playerid,ORANGE,string);
  943.     return 1;
  944. }
  945. CMD:GetObjectPos(playerid,params[])
  946. {
  947.     if(IsPlayerAdmin(playerid))
  948.     {
  949.         new objectid;
  950.         new Float:x,Float:y,Float:z;
  951.         if(sscanf(params,"d",objectid)) return SendClientMessage(playerid,ROT,"Verwendung: /GetObjectPos [objectid]");
  952.         GetObjectPos(objectid,x,y,z);
  953.         new string[100];
  954.         format(string,100,"Position des Objektes %d : %f %f %f",objectid,x,y,z);
  955.         return 1;
  956.     }
  957.     else
  958.     {
  959.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  960.     }
  961. }
  962. CMD:SetObjectPos(playerid,params[])
  963. {
  964.     if(IsPlayerAdmin(playerid))
  965.     {
  966.         new objectid;
  967.         new Float:x,Float:y,Float:z;
  968.         if(sscanf(params,"dfff",objectid,x,y,z)) return SendClientMessage(playerid,ROT,"Verwendung: /SetObjectPos [objectid][x][y][z]");
  969.         SetObjectPos(objectid,x,y,z);
  970.         new string[100];
  971.         format(string,100,"Du hast die Position des Objektes %d folgendermaßen geändert: X: %f Y: %f Z: %f",objectid,x,y,z);
  972.         SendClientMessage(playerid,ORANGE,string);
  973.         return 1;
  974.     }
  975.     else
  976.     {
  977.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  978.     }
  979. }
  980. CMD:GetObjectRot(playerid,params[])
  981. {
  982.     if(IsPlayerAdmin(playerid))
  983.     {
  984.         new objectid;
  985.         new Float:x,Float:y,Float:z;
  986.         if(sscanf(params,"d",objectid)) return SendClientMessage(playerid,ROT,"Verwendung: /GetObjectRot [objectid]");
  987.         GetObjectRot(objectid,x,y,z);
  988.         new string[100];
  989.         format(string,100,"Rotation des Objektes %d : Xrotation: %f Yrotation: %f Zrotation: %f",objectid,x,y,z);
  990.         return 1;
  991.     }
  992.     else
  993.     {
  994.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  995.     }
  996. }
  997. CMD:SetObjectRot(playerid,params[])
  998. {
  999.     if(IsPlayerAdmin(playerid))
  1000.     {
  1001.         new objectid;
  1002.         new Float:x,Float:y,Float:z;
  1003.         if(sscanf(params,"dfff",objectid,x,y,z)) return SendClientMessage(playerid,ROT,"Verwendung: /SetObjectRot [objectid][x][y][z]");
  1004.         SetObjectRot(objectid,x,y,z);
  1005.         new string[100];
  1006.         format(string,100,"Du hast die Ratation des Objektes %d folgendermaßen geändert: RotX: %f RotY: %f RotZ: %f",objectid,x,y,z);
  1007.         SendClientMessage(playerid,ORANGE,string);
  1008.         return 1;
  1009.     }
  1010.     else
  1011.     {
  1012.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  1013.     }
  1014. }
  1015. CMD:GetPlayerAmmo(playerid,params[])
  1016. {
  1017.     if(IsPlayerAdmin(playerid))
  1018.     {
  1019.         new getplayerid;
  1020.         if(sscanf(params,"d",getplayerid)) return SendClientMessage(playerid,ROT,"Verwendung: /GetPlayerAmmo [playerid]");
  1021.         if(IsPlayerConnected(getplayerid))
  1022.         {
  1023.             new string[100];
  1024.             format(string,100,"Munition der derzeitigen Waffe der SpielerID %d: %d",getplayerid,GetPlayerAmmo(playerid));
  1025.             SendClientMessage(playerid,ORANGE,string);
  1026.             return 1;
  1027.         }
  1028.         else
  1029.         {
  1030.             return SendClientMessage(playerid,ROT,"Ungültige SpielerID!");
  1031.         }
  1032.     }
  1033.     else
  1034.     {
  1035.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  1036.     }
  1037. }
  1038. CMD:SetPlayerAmmo(playerid,params[])
  1039. {
  1040.     if(IsPlayerAdmin(playerid))
  1041.     {
  1042.         new setplayerid, weaponid, muni;
  1043.         if(sscanf(params,"udd",setplayerid,weaponid,muni)) return SendClientMessage(playerid,ROT,"Verwendung: /SetPlayerAmmo [playerid][weaponid][muni]");
  1044.         if(IsPlayerConnected(setplayerid))
  1045.         {
  1046.             if(weaponid < 47)
  1047.             {
  1048.                 new string[64];
  1049.                 SetPlayerAmmo(setplayerid,weaponid,muni);
  1050.                 format(string,64,"Du hast der SpielerID %d erfolgreich die Munition der Waffe %d auf %d gesetzt!",setplayerid,weaponid,muni);
  1051.                 SendClientMessage(playerid,ROT,string);
  1052.                 return 1;
  1053.             }
  1054.             else
  1055.             {
  1056.                 return SendClientMessage(playerid,ROT,"Die WaffenID muss zwischen 0 und 46 sein!");
  1057.             }
  1058.         }
  1059.         else
  1060.         {
  1061.             return SendClientMessage(playerid,ROT,"Ungültige SpielerID!");
  1062.         }
  1063.        
  1064.     }
  1065.     else
  1066.     {
  1067.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  1068.     }
  1069. }
  1070. CMD:GetPlayerColor(playerid,params[])
  1071. {
  1072.     if(IsPlayerAdmin(playerid))
  1073.     {
  1074.         new getplayerid;
  1075.         if(sscanf(params,"u",getplayerid)) return SendClientMessage(playerid,ROT,"Verwendung: /GetPlayerColor [playerid]");
  1076.         if(IsPlayerConnected(getplayerid))
  1077.         {
  1078.             new string[64];
  1079.             format(string,64,"Dies ist die Farbe von ID %d: %s",getplayerid,GetPlayerColor(getplayerid));
  1080.             SendClientMessage(playerid,ORANGE,string);
  1081.             return 1;
  1082.         }
  1083.         else
  1084.         {
  1085.             return SendClientMessage(playerid,ROT,"Ungültige SpielerID!");
  1086.         }
  1087.     }
  1088.     else
  1089.     {
  1090.         return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  1091.     }
  1092. }
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.    
  1099.    
  1100. stock spielername(playerid)
  1101. {
  1102.     new playername[MAX_PLAYER_NAME];
  1103.     GetPlayerName(playerid,playername,sizeof(playername));
  1104.     return playername;
  1105. }
  1106.  
  1107.  
  1108.  
  1109. stock sscanf(string[], format[], {Float,_}:...)
  1110. {
  1111.     #if defined isnull
  1112.         if (isnull(string))
  1113.     #else
  1114.         if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  1115.     #endif
  1116.         {
  1117.             return format[0];
  1118.         }
  1119.     #pragma tabsize 4
  1120.     new
  1121.         formatPos = 0,
  1122.         stringPos = 0,
  1123.         paramPos = 2,
  1124.         paramCount = numargs(),
  1125.         delim = ' ';
  1126.     while (string[stringPos] && string[stringPos] <= ' ')
  1127.     {
  1128.         stringPos++;
  1129.     }
  1130.     while (paramPos < paramCount && string[stringPos])
  1131.     {
  1132.         switch (format[formatPos++])
  1133.         {
  1134.             case '\0':
  1135.             {
  1136.                 return 0;
  1137.             }
  1138.             case 'i', 'd':
  1139.             {
  1140.                 new
  1141.                     neg = 1,
  1142.                     num = 0,
  1143.                     ch = string[stringPos];
  1144.                 if (ch == '-')
  1145.                 {
  1146.                     neg = -1;
  1147.                     ch = string[++stringPos];
  1148.                 }
  1149.                 do
  1150.                 {
  1151.                     stringPos++;
  1152.                     if ('0' <= ch <= '9')
  1153.                     {
  1154.                         num = (num * 10) + (ch - '0');
  1155.                     }
  1156.                     else
  1157.                     {
  1158.                         return -1;
  1159.                     }
  1160.                 }
  1161.                 while ((ch = string[stringPos]) > ' ' && ch != delim);
  1162.                 setarg(paramPos, 0, num * neg);
  1163.             }
  1164.             case 'h', 'x':
  1165.             {
  1166.                 new
  1167.                     num = 0,
  1168.                     ch = string[stringPos];
  1169.                 do
  1170.                 {
  1171.                     stringPos++;
  1172.                     switch (ch)
  1173.                     {
  1174.                         case 'x', 'X':
  1175.                         {
  1176.                             num = 0;
  1177.                             continue;
  1178.                         }
  1179.                         case '0' .. '9':
  1180.                         {
  1181.                             num = (num << 4) | (ch - '0');
  1182.                         }
  1183.                         case 'a' .. 'f':
  1184.                         {
  1185.                             num = (num << 4) | (ch - ('a' - 10));
  1186.                         }
  1187.                         case 'A' .. 'F':
  1188.                         {
  1189.                             num = (num << 4) | (ch - ('A' - 10));
  1190.                         }
  1191.                         default:
  1192.                         {
  1193.                             return -1;
  1194.                         }
  1195.                     }
  1196.                 }
  1197.                 while ((ch = string[stringPos]) > ' ' && ch != delim);
  1198.                 setarg(paramPos, 0, num);
  1199.             }
  1200.             case 'c':
  1201.             {
  1202.                 setarg(paramPos, 0, string[stringPos++]);
  1203.             }
  1204.             case 'f':
  1205.             {
  1206.  
  1207.                 new changestr[16], changepos = 0, strpos = stringPos;
  1208.                 while(changepos < 16 && string[strpos] && string[strpos] != delim)
  1209.                 {
  1210.                     changestr[changepos++] = string[strpos++];
  1211.                     }
  1212.                 changestr[changepos] = '\0';
  1213.                 setarg(paramPos,0,_:floatstr(changestr));
  1214.             }
  1215.             case 'p':
  1216.             {
  1217.                 delim = format[formatPos++];
  1218.                 continue;
  1219.             }
  1220.             case '\'':
  1221.             {
  1222.                 new
  1223.                     end = formatPos - 1,
  1224.                     ch;
  1225.                 while ((ch = format[++end]) && ch != '\'') {}
  1226.                 if (!ch)
  1227.                 {
  1228.                     return -1;
  1229.                 }
  1230.                 format[end] = '\0';
  1231.                 if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  1232.                 {
  1233.                     if (format[end + 1])
  1234.                     {
  1235.                         return -1;
  1236.                     }
  1237.                     return 0;
  1238.                 }
  1239.                 format[end] = '\'';
  1240.                 stringPos = ch + (end - formatPos);
  1241.                 formatPos = end + 1;
  1242.             }
  1243.             case 'u':
  1244.             {
  1245.                 new
  1246.                     end = stringPos - 1,
  1247.                     id = 0,
  1248.                     bool:num = true,
  1249.                     ch;
  1250.                 while ((ch = string[++end]) && ch != delim)
  1251.                 {
  1252.                     if (num)
  1253.                     {
  1254.                         if ('0' <= ch <= '9')
  1255.                         {
  1256.                             id = (id * 10) + (ch - '0');
  1257.                         }
  1258.                         else
  1259.                         {
  1260.                             num = false;
  1261.                         }
  1262.                     }
  1263.                 }
  1264.                 if (num && IsPlayerConnected(id))
  1265.                 {
  1266.                     setarg(paramPos, 0, id);
  1267.                 }
  1268.                 else
  1269.                 {
  1270.                     #if !defined foreach
  1271.                         #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  1272.                         #define __SSCANF_FOREACH__
  1273.                     #endif
  1274.                     string[end] = '\0';
  1275.                     num = false;
  1276.                     new
  1277.                         name[MAX_PLAYER_NAME];
  1278.                     id = end - stringPos;
  1279.                     foreach (Player, playerid)
  1280.                     {
  1281.                         GetPlayerName(playerid, name, sizeof (name));
  1282.                         if (!strcmp(name, string[stringPos], true, id))
  1283.                         {
  1284.                             setarg(paramPos, 0, playerid);
  1285.                             num = true;
  1286.                             break;
  1287.                         }
  1288.                     }
  1289.                     if (!num)
  1290.                     {
  1291.                         setarg(paramPos, 0, INVALID_PLAYER_ID);
  1292.                     }
  1293.                     string[end] = ch;
  1294.                     #if defined __SSCANF_FOREACH__
  1295.                         #undef foreach
  1296.                         #undef __SSCANF_FOREACH__
  1297.                     #endif
  1298.                 }
  1299.                 stringPos = end;
  1300.             }
  1301.             case 's', 'z':
  1302.             {
  1303.                 new
  1304.                     i = 0,
  1305.                     ch;
  1306.                 if (format[formatPos])
  1307.                 {
  1308.                     while ((ch = string[stringPos++]) && ch != delim)
  1309.                     {
  1310.                         setarg(paramPos, i++, ch);
  1311.                     }
  1312.                     if (!i)
  1313.                     {
  1314.                         return -1;
  1315.                     }
  1316.                 }
  1317.                 else
  1318.                 {
  1319.                     while ((ch = string[stringPos++]))
  1320.                     {
  1321.                         setarg(paramPos, i++, ch);
  1322.                     }
  1323.                 }
  1324.                 stringPos--;
  1325.                 setarg(paramPos, i, '\0');
  1326.             }
  1327.             default:
  1328.             {
  1329.                 continue;
  1330.             }
  1331.         }
  1332.         while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  1333.         {
  1334.             stringPos++;
  1335.         }
  1336.         while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  1337.         {
  1338.             stringPos++;
  1339.         }
  1340.         paramPos++;
  1341.     }
  1342.     do
  1343.     {
  1344.         if ((delim = format[formatPos++]) > ' ')
  1345.         {
  1346.             if (delim == '\'')
  1347.             {
  1348.                 while ((delim = format[formatPos++]) && delim != '\'') {}
  1349.             }
  1350.             else if (delim != 'z')
  1351.             {
  1352.                 return delim;
  1353.             }
  1354.         }
  1355.     }
  1356.     while (delim > ' ');
  1357.     return 0;
  1358. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement