Guest User

Script

a guest
Jul 31st, 2014
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 67.79 KB | None | 0 0
  1. //Script by Splexlps
  2. //Selfmade.
  3.  
  4. //Includ
  5. #include <a_samp>
  6. #include <a_mysql>
  7. #include <ocmd>
  8. //#include <dini>
  9. #include <foXban>
  10. #include <sscanf>
  11. #include <time>
  12. #include <water>
  13. #include <desk>
  14. //#include <AC>
  15.  
  16.  
  17. //defines
  18. //Define mysql
  19.  
  20. #define DB_HOST "5.62.120.15"
  21. #define DB_NAME "ni122612_2_DB"
  22. #define DB_NUTZERNAME "ni122612_2_DB"
  23. #define DB_PASSWORD "RfiznLOj"
  24. /*
  25. #define DB_HOST "127.0.0.1"
  26. #define DB_NAME "ni122612_2_DB"
  27. #define DB_NUTZERNAME "root"
  28. #define DB_PASSWORD ""
  29. */
  30. //new dbhandle
  31. //mysql-ende
  32. //Register-Login defines
  33. #define DIALOG_REGISTER_MYSQL 1
  34. #define DIALOG_LOGIN_MYSQL 2
  35. //Register-Login defines ende
  36. //Admin klickt auf einen Player
  37. #define DIALOG_CLICK_FROM_ADMIN 3
  38. #define DIALOG_KICKINPUT 4
  39. #define DIALOG_BANINPUT 5
  40. #define DIALOG_TBANZEITINPUT 6
  41. #define DIALOG_TBANGRUNDINPUT 7
  42. #define DIALOG_ADMIN_TP 8
  43. #define DIALOG_BANKMENU 9
  44. //allgemeine systeme
  45. #define SCM SendClientMessage
  46. #define SCMA SendClientMessageToAll
  47. #define MAX_STREAM_NAME_DISTANCE 17.5
  48. //ende
  49.  
  50. //Farben
  51. #define CL_WHITE 0xFFFFFFFF
  52. #define CL_GRAU 0xB4B4B4FF
  53. #define CL_KNALLROT 0xD70000FF
  54. #define CL_DGRÜN 0x55FF00FF
  55. #define CL_HROT 0xFF0073FF
  56. #define CL_GELB 0xFFFA00FF
  57. #define CL_HGRÜN 0x00FFB4FF
  58.  
  59. #define CL_VIP 0xFF8200FF
  60. #define CL_SC_ORANGE 0xFFFA00FF
  61. #define CL_ANSAGE_ADMINS 0xDC00FFFF
  62. #define CL_ADMINCHAT 0xFF3C00FF
  63.  
  64. //Farben ende
  65. //new´s
  66. new dbhandle;
  67. new clickedid[MAX_PLAYERS];
  68. new gBadName[] = {
  69. "[GRP]",
  70. "scheissserver",
  71. "",
  72. "Nils",
  73. "Sonny",
  74. "Kempfer",
  75. "24hero",
  76. "",
  77. "server",
  78. "[FUN4RL]",
  79. "nix",
  80. "trojana",
  81. "Virus",
  82. "GRP",
  83. "lol",
  84. "scheiss",
  85. "[",
  86. "]",
  87. "User",
  88. "VIP",
  89. "Supporter",
  90. "Moderator",
  91. "Super-Moderator",
  92. "Administrator",
  93. "Server Manager",
  94. "stelv. Projektleitung",
  95. "Projektleitung"};
  96. //restart
  97. new GLOBAL_RESTART_TIMER=0;
  98. //LS-PD-Tor oben
  99. new LSPD_TOR;
  100. //CNN Tor
  101. new CNN_TOR;
  102. //Registrierung an/aus
  103. new register_status = 1;
  104. //3DTextLabels
  105. new Text3D:aDuty[MAX_PLAYERS];
  106. //spectate
  107. new Spectatestatus[MAX_PLAYERS];
  108. //introstatus
  109. new introstatus;
  110. // Uhr & Datum Textdraw's
  111. new Text: Clock, Text: Date;
  112. //new´s ende
  113. //forwards
  114. forward UserCheck(playerid);
  115. forward RestartTimer(playerid);
  116. forward PasswordCheck(playerid);
  117. forward clock();
  118. forward check3();
  119. //forward Background();
  120. //forward BackgroundTimer();
  121. forward KickTimer(playerid);
  122. forward stopintro(playerid);
  123. forward Lebensystem();
  124. forward PlayerCarsLoad(playerid);
  125. forward CarSavedDB(insertid);
  126. //forwards ende
  127. //enums
  128. enum playerInfo{
  129.     eingeloggt,
  130.     db_id,
  131.     level,
  132.     geld,
  133.     bankgeld,
  134.     skin,
  135.     //adminstrativ
  136.     baned,
  137.     alevel,
  138.     aduty
  139.     //Fraktionen
  140.     //XYZ
  141. }
  142. enum buildingsEnum{
  143.     Float:b_x,
  144.     Float:b_y,
  145.     Float:b_z,
  146.     Float:b_ix,
  147.     Float:b_iy,
  148.     Float:b_iz,
  149.     b_interior
  150. }
  151. enum carInfo{
  152.     SID,
  153.     DB_ID,
  154.     modelID,
  155.     besitzer[MAX_PLAYER_NAME],
  156.     Float:carx,
  157.     Float:cary,
  158.     Float:carz,
  159.     Float:carrota,
  160.     kennzeichen[128],
  161.     Farbe1,
  162.     Farbe2,
  163.     respawnt
  164.    
  165. }
  166. new sInfo[MAX_PLAYERS][playerInfo];
  167.  
  168. new cInfo[MAX_PLAYERS][carInfo];
  169. new bInfo[][buildingsEnum] = {
  170. //{243.0825,-178.3224,1.5822,285.3642,-41.5576,1001.5156,1},      //Ammunation
  171. //{212.1142,-202.1886,1.5781,372.4523,-133.5244,1001.4922,5},//Pizzaladen
  172. //{X,Y,Z,XI,YI,ZI,Interior}
  173. {1368.9996,-1279.7084,13.5469,285.3843,-41.7290,1001.5156,1},//LS-Ammu
  174. {1006.3157,-3964.0361,2.7000,1710.433715,-1669.379272,20.225049,18},//Adminbase Interior
  175. //{},//Bankmenu i
  176. {1459.4253,-1009.9205,26.8438,2315.952880,-1.618174,26.742187,0},//Bank LS
  177. {}
  178. };
  179. //enums ende
  180.  
  181.  
  182. static const a_rang[][] =
  183. {"User",
  184. "VIP",
  185. "Supporter",
  186. "Moderator",
  187. "Super-Moderator",
  188. "Administrator",
  189. "Server Manager",
  190. "stelv. Projektleitung",
  191. "Projektleitung"}; //Oben ins Script
  192.  
  193. new pBanner[MAX_PLAYERS][MAX_PLAYER_NAME];
  194. #define MAX_SERVER_NAMES 1
  195. new server_name;
  196. new server_names[MAX_SERVER_NAMES][] = {
  197. {"GermanRoleplay[OPEN-BETA] "}
  198. };
  199. main()
  200. {
  201.     print("\n----------------------------------");
  202.     print("GRP Reallife");
  203.     print("----------------------------------\n");
  204. }
  205. public OnGameModeInit()
  206. {  
  207.     ClockDate();
  208.    
  209.     print("Gamemode GermanRoleplay wird geladen...");
  210.     SetGameModeText("GRP GermanRoleplay");
  211.     dbhandle = mysql_connect(DB_HOST,DB_NUTZERNAME,DB_NAME,DB_PASSWORD);
  212.     SendRconCommand("password ");
  213.     if(mysql_errno() != 0)
  214.     {
  215.         print("Keine Verbindung zur Datenbank.");
  216.         print("Keine Verbindung zur Datenbank.");
  217.         print("Keine Verbindung zur Datenbank.");
  218.         SendRconCommand("hostname DB-Verbindungsfehler");
  219.         SendRconCommand("password null");
  220.         return 1;
  221.     }
  222.     if(mysql_errno() == 0) print("Verbindung zur Datenbank erfolgreich hergestellt !");
  223.     //Gebäude laden
  224.     for(new i=0; i<sizeof(bInfo); i++)
  225.     {
  226.         CreatePickup(1239,1,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]);
  227.         CreatePickup(1239,1,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz],i);
  228.         Create3DTextLabel("Zum Betreten  /enter oder die Leertaste betätigen. ",CL_WHITE,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]+1,8,0);
  229.         Create3DTextLabel("Zum Verlassen /exit  oder die Leertaste betätigen. ",CL_WHITE,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]+1,8.0,i);
  230.    
  231.         //bank 
  232.         CreatePickup(1239,1,2345.952880,-1.618174,26.742187,0);
  233.         Create3DTextLabel("Um das Bankmenu aufzurufen /bankmenu  3",CL_WHITE,2345.952880,-1.618174,26.742187,8,0);
  234.        
  235.         //Virtual welt 1
  236.         CreatePickup(1239,1,2345.952880,-1.618174,26.742187,1);
  237.         Create3DTextLabel("Um das Bankmenu aufzurufen /bankmenu  1",CL_WHITE,2345.952880,-1.618174,26.742187,8,1);
  238.         //Virtual welt 2
  239.         CreatePickup(1239,1,2345.952880,-1.618174,26.742187,2);
  240.         Create3DTextLabel("Um das Bankmenu aufzurufen /bankmenu  2",CL_WHITE,2345.952880,-1.618174,26.742187,8,2);
  241.         //Virtual welt 3
  242.         CreatePickup(1239,1,2345.952880,-1.618174,26.742187,3);
  243.         Create3DTextLabel("Um das Bankmenu aufzurufen /bankmenu  3",CL_WHITE,2345.952880,-1.618174,26.742187,8,3);
  244.         printf("%i",i);
  245.         //ende
  246.     }      
  247.    
  248.     //ShowPlayerMarkers(PLAYER_MARKERS_MODE_OFF);
  249.     DisableInteriorEnterExits();
  250.     EnableStuntBonusForAll(0);
  251.     LoadObjects();
  252.     check3();
  253.     SetTimer("Lebensystem",30000,1);//OnGameModeInit
  254.     AddPlayerClass(0,1104.6141,-1440.3604,15.7969,269.9753, 0, 0, 0, 0, 0, 0);
  255.     print("Gamemode GRP-Reallife erfolgreich geladen !");
  256.     SendRconCommand("password ");
  257.     return SendRconCommand("password ");
  258. }
  259. public OnGameModeExit()
  260. {
  261.     SendRconCommand("password ");
  262.     mysql_close(dbhandle);
  263.     print("MYSQL Verbindung Geschlossen.\n           Gamemode unloaded !");
  264.    
  265.     return 1;
  266. }
  267. public OnPlayerRequestClass(playerid, classid)
  268. {
  269.     SpawnPlayer(playerid);
  270.     SetPlayerPos(playerid,          1108.6141,-1440.3604,15.7969);
  271.     SetPlayerFacingAngle(           playerid,90);
  272.     SetPlayerCameraPos(playerid,    1104.6141,-1440.3604,15.7969);
  273.     SetPlayerCameraLookAt(playerid, 1104.6141,-1440.3604,15.7969);
  274.    
  275.     return 1;
  276. }
  277. public OnPlayerConnect(playerid)
  278. {
  279.     if(IsPlayerNPC(playerid)) return 1;
  280.     SetPlayerColor(playerid,CL_GRAU);
  281.     TogglePlayerControllable(playerid,0);
  282.    
  283.     introstart(playerid);
  284.     //Register-System-MYSQL
  285.     new name[MAX_PLAYER_NAME],query[128];
  286.     GetPlayerName(playerid,name,sizeof(name));
  287.     format(query,sizeof(query),"SELECT DB_ID FROM Benutzer WHERE NAME='%s'",name);
  288.     mysql_function_query(dbhandle,query,true,"UserCheck","i",playerid);
  289.     TextDrawShowForPlayer(playerid, Date);
  290.     return 1;
  291. }
  292. public UserCheck(playerid)
  293. {
  294.     new num_rows,num_fields;
  295.     cache_get_data(num_rows,num_fields,dbhandle);
  296.     if(num_rows==0)
  297.     {   //Registrierung
  298.         if(register_status == 1)
  299.         {
  300.             new string[255];
  301.             if(!strfind(SpielerName(playerid),gBadName,true))
  302.             {
  303.                 SendClientMessage(playerid,CL_HGRÜN,"Du wurdest gekickt weil du einen nicht erlaubten Namen hast. Oder du hast nicht erlaubte Zeichen im Namen.");
  304.                 format(string, sizeof(string), "ADMCMD: %s wurde vom Server gekickt. Grund: Unerlaubter Name", SpielerName(playerid)); //macht einen String, %s ist der Name anderes Bsp. %d ist eine Zahl^^
  305.                 SendClientMessageToAll(CL_KNALLROT,string);
  306.                 KickPlayer(playerid);
  307.                 return 0;
  308.             }
  309.             ShowPlayerDialog(playerid,DIALOG_REGISTER_MYSQL,DIALOG_STYLE_INPUT,"Registrierung auf German RolePlay","Bitte Registriere dich mit deinem Passwort.","Register","Close");
  310.             //Dein Register Zeugs
  311.         }
  312.         else if(register_status == 0)
  313.         {
  314.             SendClientMessage(playerid,-1,"Die Registrierung ist abgeschaltet");
  315.             KickPlayer(playerid);
  316.         }
  317.     }
  318.     else
  319.     {//Login
  320.         ShowPlayerDialog(playerid,DIALOG_LOGIN_MYSQL,DIALOG_STYLE_PASSWORD,"Login auf GermanRolePlay [BETA] ","Bitte Logge dich mit deinem Passwort ein. ","Login","Close");
  321.     }
  322.     return 1;
  323. }
  324. saveplayer(playerid)
  325. {
  326.     if(sInfo[playerid][eingeloggt]==0) return 1;
  327.     //Speichern level,money,(alevel)
  328.     new query[128];
  329.     sInfo[playerid][geld] = GetPlayerMoney(playerid);
  330.     format(query,sizeof(query),"UPDATE Benutzer SET LEVEL='%i', GELD='%i',ALEVEL=%i,BANED='%i',SKIN='%i' WHERE DB_ID='%i' ",sInfo[playerid][level],sInfo[playerid][geld],sInfo[playerid][alevel],sInfo[playerid][baned],sInfo[playerid][skin],sInfo[playerid][db_id]);
  331.     mysql_function_query(dbhandle,query,false,"","");  
  332.     return 1;
  333. }
  334. resetplayer(playerid)
  335. {
  336.     sInfo[playerid][eingeloggt] = 0;
  337.     sInfo[playerid][level] = 0;
  338.     sInfo[playerid][geld]  = 0;
  339.     sInfo[playerid][skin]  = 0;
  340.     sInfo[playerid][db_id] = 0;
  341.     sInfo[playerid][alevel]= 0;
  342.     sInfo[playerid][baned] = 0;
  343.     sInfo[playerid][aduty] = 0;
  344.     cInfo[playerid][SID]   = 0;
  345.    
  346.    
  347.     return 1;
  348. }
  349.  
  350. public OnPlayerDisconnect(playerid, reason)
  351. {  
  352.     SetPlayerColor(playerid,CL_GRAU);
  353.     saveplayer(playerid);
  354.     resetplayer(playerid);
  355.    
  356.     switch(reason)
  357.     {
  358.         case 0: return 1;
  359.         case 1: return 1;
  360.         case 2: return 1;
  361.     }
  362.     //Spielerautos löschen  
  363.     for(new i=0; i<sizeof(cInfo); i++)
  364.     {
  365.         if(cInfo[i][SID]==0)continue;
  366.         if(cInfo[i][besitzer] != sInfo[playerid][db_id])continue;
  367.         new query[289];
  368.        
  369.         format(query,sizeof(query),"UPDATE Spielerautos SET X='%f',Y='%f',Z='%f',ROTATION='%f' WHERE DB_ID='%i'",cInfo[i][carx],cInfo[i][cary],cInfo[i][carz],cInfo[i][carrota],cInfo[i][DB_ID]);
  370.         mysql_function_query(dbhandle,query,false,"","");
  371.         DestroyVehicle(cInfo[i][SID]);
  372.     }      
  373.     return 1;
  374. }
  375. public OnPlayerSpawn(playerid)
  376. {
  377.     SetPlayerColor(playerid,CL_WHITE);
  378.     SetPlayerHealth(playerid,100);
  379.     clock();
  380.     static states;
  381.     introstop(playerid);
  382.     SetPlayerSkin(playerid,sInfo[playerid][skin]);
  383.     if(sInfo[playerid][alevel]>=2)
  384.     {  
  385.         if(states==0)return states=1,SendClientMessage(playerid,CL_WHITE,"INFO: Du Spawnst an der Adminbase. Gehe Admin-On-Duty mit /aduty."),SetPlayerPos(playerid,1022.8530,-3960.8057,2.7001);
  386.         SetPlayerPos(playerid,1022.8530,-3960.8057,2.7001);
  387.         return 1;
  388.     }
  389.     return 1;
  390. }
  391.  
  392. public OnPlayerDeath(playerid, killerid, reason)
  393. {
  394.     return 1;
  395. }
  396.  
  397. public OnVehicleSpawn(vehicleid)
  398. {
  399.    
  400.     return 1;
  401. }
  402.  
  403. public OnVehicleDeath(vehicleid, killerid)
  404. {
  405.     return 1;
  406. }
  407.  
  408. public OnPlayerText(playerid, text[])
  409. {
  410.     if(Spectatestatus[playerid]==1)return 0;
  411.     return 1;
  412. }
  413.  
  414. public OnPlayerCommandText(playerid, cmdtext[])
  415. {
  416.     if (strcmp("/schnellgmx", cmdtext, true, 10) == 0)
  417.     {
  418.         if(sInfo[playerid][alevel]>=7)
  419.         {
  420.             SendRconCommand("gmx");
  421.             return 1;
  422.         }
  423.         SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  424.         return 1;
  425.     }
  426.     return SendClientMessage(playerid,-1,"Befehl nicht gefunden. Für Hilfe /help oder /admin ");
  427. }
  428. //--------------------------------OCMD--------------------------------------------------------
  429. //Ownerbefehle
  430.  
  431. createplayercar(playerid,model,Float:x,Float:y,Float:z,Float:rota,Farb1,Farb2,respawn)
  432. {
  433.     for(new i=0; i<sizeof(cInfo); i++)
  434.     {
  435.         if(cInfo[i][SID] !=0)
  436.         continue;
  437.         cInfo[i][besitzer] = sInfo[playerid][db_id];
  438.         cInfo[i][modelID] = model;
  439.         cInfo[i][carx] = x;
  440.         cInfo[i][cary] = y;
  441.         cInfo[i][carz] = z;
  442.         cInfo[i][carrota] = rota;
  443.         cInfo[i][Farbe1] = Farb1;
  444.         cInfo[i][Farbe2] = Farb2;
  445.         cInfo[i][SID]= CreateVehicle(model,x,y,z,rota,Farb1,Farb2,respawn);
  446.         SaveCarToDB(playerid,i,model,Farb1,Farb2,respawn);
  447.         return 1;
  448.     }
  449.     return 1;
  450. }
  451. ocmd:playercspawn(playerid,params[])
  452. {
  453.     if(sInfo[playerid][alevel]>=7)
  454.     {
  455.         if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
  456.         {
  457.             new pID,vID,Float:x,Float:y,Float:z,Float:rota;
  458.             new Farb1,Farb2,respawn;
  459.             if(sscanf(params,"uiiii",pID,vID,Farb1,Farb2,respawn))return SendClientMessage(playerid,CL_WHITE,"ERROR: /cspawn [id][vID][farb1][farb2][respawn(-1 nein), 1->ja]");
  460.             GetPlayerPos(pID,x,y,z);
  461.             GetPlayerFacingAngle(pID,rota);
  462.             createplayercar(pID,vID,Float:x,Float:y,Float:z,Float:rota,Farb1,Farb2,respawn);
  463.             SendClientMessage(playerid,CL_HROT,"Du hast den befehl benutzt.");
  464.             return 1;
  465.         }
  466.     }
  467.     SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  468.     return 1;
  469. }
  470. ocmd:carupdate(playerid,params[])
  471. {
  472.     if(sInfo[playerid][alevel]>=6)
  473.     {
  474.         if(sInfo[playerid][aduty]==1)
  475.         {
  476.             if(IsPlayerInAnyVehicle(playerid))
  477.             {
  478.                 for(new i=0; i<sizeof(cInfo); i++)
  479.                 {
  480.                     if(cInfo[i][SID]==0)continue;
  481.                     if(cInfo[i][besitzer] != sInfo[playerid][db_id])continue;
  482.                     new query[289];
  483.                     format(query,sizeof(query),"UPDATE Spielerautos SET X='%f',Y='%f',Z='%f',ROTATION='%f' WHERE DB_ID='%i'",cInfo[i][carx],cInfo[i][cary],cInfo[i][carz],cInfo[i][carrota],cInfo[i][DB_ID]);
  484.                     DestroyVehicle(cInfo[i][SID]);
  485.                     mysql_function_query(dbhandle,query,false,"","");
  486.                     SendAdminAnsage("Du hast das fahrzeug geupdatet und gelöscht.");
  487.                 }
  488.                 return 1;
  489.             }
  490.             SendClientMessage(playerid,CL_HROT,"Du bist in keinem Fahrzeug!");
  491.             return 1;
  492.         }
  493.         SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
  494.         return 1;
  495.     }
  496.     SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  497.     return 1;
  498.    
  499. }
  500. ocmd:cspawn(playerid,params[])
  501. {
  502.     if(sInfo[playerid][alevel]>=7)
  503.     {
  504.         if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
  505.         {
  506.             new vID;
  507.             //Hier kannst du jetzt wie oben reinschreiben was passiert wenn man diesen Befehl aufruft.
  508.             if(sscanf(params,"i",vID))return SendClientMessage(playerid,CL_WHITE,"Aussage: /cspawn Fahrzeug--->[ID]"); //Hier wird das was der Spieler hinter dem Befehl eingegeben hat in Variablen getrennt. In unserem Fall in "vID"
  509.             new Float:X,Float:Y,Float:Z,Float:ROTA;
  510.             GetPlayerPos(playerid,X,Y,Z);
  511.             GetPlayerFacingAngle(playerid,ROTA);
  512.             new vehicle;
  513.             vehicle=CreateVehicle(vID,X,Y,Z,ROTA,-1,-1,0); //Farbe -1 bedeutet Random. Also zufällige Farbe.ok
  514.             PutPlayerInVehicle(playerid,vehicle,0);  //Die 0 steht für die Sitz ID. 0 = Fahrer :)ok//frage?
  515.             return 1;
  516.         }
  517.     }
  518.     SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  519.     return 1;
  520. }
  521. ocmd:makeadmin(playerid,params[])
  522. {
  523.     if(sInfo[playerid][alevel]<=4)return SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  524.     if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
  525.     new pID,a_level;
  526.     if(sscanf(params,"ui",pID,a_level))return SendClientMessage(playerid,CL_GRAU,"Du musst die Spieler ID und das Adminlevel angeben!\n /makeadmin [ID][ALEVEL]");
  527.     if(a_level<0||a_level>9)return SendClientMessage(playerid,CL_HROT,"Bitte gültiges Admin-Level angeben. (0-8) ");
  528.     sInfo[pID][alevel] = a_level;
  529.     saveplayer(playerid);
  530.     new nachrichtspieler[281];
  531.     format(nachrichtspieler,sizeof(nachrichtspieler),"Du hast von der Server Leitung das Adminlevel %s erhalten. Der Admin heisst: %s .",a_rang[a_level],SpielerName(playerid));
  532.     SendClientMessage(pID,CL_HGRÜN,nachrichtspieler);
  533.     new s[128];
  534.     format(s,sizeof(s),"Du hast %s das Adminlevel %s gegeben!",SpielerName(pID),a_rang[a_level]);
  535.     SendClientMessage(playerid,CL_HGRÜN,s);
  536.     return 1;
  537. }
  538. ocmd:gmx(playerid,params[])
  539. {
  540.     if(sInfo[playerid][alevel]<6)return SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  541.     if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
  542.     if(GLOBAL_RESTART_TIMER>=5)return SendClientMessage(playerid,CL_KNALLROT,"Der Server wird bereits gerestartet!");
  543.     SetTimer("RestartTimer",10000,false);
  544.     GLOBAL_RESTART_TIMER=120;
  545.     GameTextForAll("~r~Jetzt kommt ein Server Restart! ~n~ ~r~GMX",120000,4);
  546.     SendClientMessageToAll(CL_WHITE,"---------------------------------------------------------------------------------");
  547.     SendClientMessageToAll(CL_HROT,"Achtung Jetzt kommt ein GMX!");
  548.     SendClientMessageToAll(CL_HROT,"Achtung Jetzt kommt ein GMX!");
  549.     SendClientMessageToAll(CL_HROT,"Achtung Jetzt kommt ein GMX!");
  550.     SendClientMessageToAll(CL_HROT,"Achtung Jetzt kommt ein GMX!");
  551.     SendClientMessageToAll(CL_WHITE,"---------------------------------------------------------------------------------");
  552.     return 1;  
  553. }
  554. //Adminbefehle
  555. ocmd:entercar(playerid,params[])
  556. {
  557.     new VID,Place;
  558.     if(sInfo[playerid][alevel] >= 4)
  559.     if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
  560.     {
  561.         if(sscanf(params,"ii",VID,Place)) return SendClientMessage(playerid,CL_HROT,"Benutzung: /entercar [FahrzeugID] [Platz] (0-Fahrer,1-Beifahrer)");
  562.         PutPlayerInVehicle(playerid,VID,Place);
  563.         SendClientMessage(playerid, CL_HGRÜN, "Du hast dich in das Auto gesetzt");
  564.         return 1;
  565.     }
  566.    
  567. }
  568. ocmd:acar(playerid,params[])
  569. {
  570.     new vID;
  571.     new Float:X,Float:Y,Float:Z,Float:ROTA,FARB1,FARB2;
  572.     static vehicle[MAX_PLAYERS];
  573.     static acarexist[MAX_PLAYERS];
  574.     new Text3D:VehicleAdminName[MAX_PLAYERS];
  575.     if(sInfo[playerid][alevel] >= 2)
  576.     if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
  577.     {
  578.         if(acarexist[playerid] == 1)
  579.         {
  580.                 SendClientMessage(playerid,CL_HGRÜN,"Admin-Car gelöscht");
  581.                 DestroyVehicle(vehicle[playerid]);
  582.                 Delete3DTextLabel(VehicleAdminName[playerid]);
  583.                 acarexist[playerid] = 0;
  584.                 return 1;
  585.         }
  586.         else if(acarexist[playerid]==0)
  587.         {
  588.             if(sscanf(params,"iii",vID,FARB1,FARB2))return SendClientMessage(playerid,CL_KNALLROT,"INFO: /acar Fahrzeug--->[ID] Farbe 1 Farbe 2"); //Hier wird das was der Spieler hinter dem Befehl eingegeben hat in Variablen getrennt. In unserem Fall in "vID"
  589.             new str[128];
  590.             new a_level;
  591.             GetPlayerPos(playerid,X,Y,Z);
  592.             GetPlayerFacingAngle(playerid,ROTA);
  593.             vehicle[playerid] = CreateVehicle(vID,X,Y,Z,ROTA,FARB1,FARB2,0); //Farbe -1 bedeutet Random. Also zufällige Farbe.ok
  594.             PutPlayerInVehicle(playerid,vehicle[playerid],0);  //Die 0 steht für die Sitz ID. 0 = Fahrer :)ok//frage?
  595.             a_level=sInfo[playerid][alevel];
  596.             format(str,sizeof(str),"%s Car von %s",a_rang[a_level],SpielerName(playerid));
  597.             VehicleAdminName[playerid] = Create3DTextLabel(str,CL_HGRÜN,X,Y,Z,MAX_STREAM_NAME_DISTANCE,GetPlayerVirtualWorld(playerid),1);
  598.             Attach3DTextLabelToVehicle(VehicleAdminName[playerid],vehicle[playerid],0,-1.3,0.7);//30.0,40.0,50.0
  599.             SetVehicleNumberPlate(vehicle[playerid],"GRP-ADMIN");//------>hier gehts nicht
  600.             SetVehicleToRespawn(vehicle[playerid]);
  601.            
  602.             SendClientMessage(playerid,CL_HGRÜN,"Admin-Car erstellt ");
  603.             PutPlayerInVehicle(playerid,vehicle[playerid],0);
  604.             acarexist[playerid] = 1;
  605.             return 1;
  606.         }
  607.        
  608.     }
  609.     SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  610.     return 1;
  611. }
  612. ocmd:aa(playerid,params[])
  613. {
  614.     if(sInfo[playerid][alevel]<=6)return SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  615.     if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
  616.     new text[200],sname[MAX_PLAYER_NAME],string[128];
  617.     GetPlayerName(playerid,sname,sizeof(sname));
  618.     if(sscanf(params,"s",text)) return SendClientMessage(playerid,CL_KNALLROT,"Benutzung: /aa [Text]");
  619.     {  
  620.         if(sInfo[playerid][alevel]==7)
  621.         {
  622.             format(string,sizeof(string),"******************************\nLevel 7 - Stelv. Projektleitung {FAFAFA}%s:{E600FF} %s\n******************************", sname,text);
  623.             SendAdminAnsage(string);
  624.             return 1;
  625.         }
  626.         else if(sInfo[playerid][alevel]==8)
  627.         {
  628.             format(string,sizeof(string),"******************************\nLevel 8 - Projektleitung {FAFAFA}%s:{E600FF} %s\n******************************", sname,text);
  629.             SendAdminAnsage(string);
  630.             return 1;
  631.         }
  632.         return 1;
  633.     }  
  634. }
  635. ocmd@2:ac,adminchat(playerid,params[])
  636. {
  637.    
  638.    
  639.     if(sInfo[playerid][alevel] >= 2)
  640.     {
  641.         if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
  642.         {
  643.             new text[200],sname[MAX_PLAYER_NAME],string[128],a_level;
  644.             a_level = sInfo[playerid][alevel]; //a_rang[a_level]
  645.             GetPlayerName(playerid,sname,sizeof(sname));
  646.             if(sscanf(params,"s",text)) return SendClientMessage(playerid,CL_KNALLROT,"Benutzung: /adminchat (/ac) [Text]");
  647.             format(string, sizeof(string), " Level: %i -----> %s %s: %s",sInfo[playerid][alevel],a_rang[a_level],sname,text);
  648.             SendMessageToAdmins(string);
  649.             return 1;
  650.         }
  651.     }
  652.     SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  653.     return 1;
  654.    
  655. }
  656. ocmd:unban(playerid,params[])
  657. {
  658.     if(sInfo[playerid][alevel]>=5)
  659.     {
  660.         if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
  661.         if(sInfo[playerid][alevel]<5)return SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  662.         new name[128],query[128],string[128];
  663.         if(sscanf(params,"s",name))return SendClientMessage(playerid,CL_HGRÜN,"Info: /unban [SpielerName]  versuche es erneut.");
  664.         {
  665.            
  666.             format(query,sizeof(query),"UPDATE `Benutzer` SET `BANED` = '0' WHERE `Name` = '%s' AND `BANED` = 1 LIMIT 1 ",name);
  667.             mysql_function_query(dbhandle,query,false,"","");
  668.             format(string,sizeof(string),"Der Spieler %s wurde von %s geunbannt!",name,SpielerName(playerid));
  669.             SendAdminAnsage(string);
  670.             print(string);
  671.             return 1;
  672.         }  
  673.     }
  674.     return 1;
  675. }
  676. ocmd:tban(playerid,params[])
  677. {
  678.         if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
  679.         new pID,pIdName[MAX_PLAYER_NAME],pName[MAX_PLAYER_NAME],banTime,reason[64],string[128];
  680.         if(sInfo[playerid][alevel]>=3)
  681.         {
  682.             if(sscanf(params,"uds",pID,banTime,reason)) { return SendClientMessage(playerid,0xADC7E7FF,"Benutze: /tban [playerid] [time(min)] [reason]"); }
  683.             if(!IsPlayerConnected(pID)) { return SendClientMessage(playerid,0xADC7E7FF,"Falsche ID oder ID die nicht Connectet ist!"); }
  684.             if(banTime < 1) { return SendClientMessage(playerid,0xADC7E7FF,"Minimale Zeit: 1 Minute. "); }
  685.             GetPlayerName(pID,pIdName,sizeof(pIdName));
  686.             new a_level;
  687.             a_level = sInfo[playerid][alevel];
  688.             GetPlayerName(playerid,pName,sizeof(pName));
  689.             format(string,sizeof(string),"[ADMCMD][TIMEBAN]: %s : %s timebannte %s für %d Minuten. Grund: %s",a_rang[a_level],pName,pIdName,banTime,reason);
  690.             SendClientMessageToAll(0xADC7E7FF,string);
  691.             printf("AdmCmd(TIMEBAN): Admin: %s(%i) - Timebanned Player: %s(%i) - Timeban Reason: %s",pName,playerid,pIdName,pID,reason);
  692.             pBanner[pID] = pName;
  693.             TBan(pID,banTime);
  694.             return 1;
  695.         }
  696.         SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  697.         return 1;  
  698. }
  699. ocmd:tunban(playerid,params[])
  700. {
  701.         if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
  702.         new pName[MAX_PLAYER_NAME],pIdName[MAX_PLAYER_NAME],string[129];
  703.         if(sInfo[playerid][alevel]>=5)
  704.         {
  705.             if(sInfo[playerid][aduty]==0)return 1;
  706.             if(sscanf(params,"s",pIdName)) { return SendClientMessage(playerid,0xADC7E7FF,"Benutze: /tunban [Vollen Spielernamen]"); }
  707.             GetPlayerName(playerid,pName,sizeof(pName));
  708.             if(BanFileExist(pIdName))
  709.             {
  710.                 TUnban(pIdName);
  711.                 format(string,sizeof(string),"AdmCmd[UNTIMEBAN]: Admin: %s(%i) - enntbannte getimebannten Spieler: %s .",pName,playerid,pIdName);
  712.                 SendClientMessageToAll(CL_HGRÜN,string);
  713.                 printf("AdmCmd(UNTIMEBAN): Admin: %s(%i) - untimebanned Spieler: %s",pName,playerid,pIdName);
  714.                 return 1;
  715.             }
  716.             else
  717.             {
  718.                 return SendClientMessage(playerid,0xADC7E7FF,"Error: Falscher Name");
  719.             }
  720.         }
  721.         SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  722.         return 1;
  723. }
  724. ocmd:register(playerid,params[])
  725. {
  726.     if(sInfo[playerid][alevel]>=4)return SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  727.     if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
  728.     if(register_status==1)
  729.     {
  730.         register_status = 0;
  731.         SendMessageToAdmins("Registrierung ist nun Deaktiviert.");
  732.         return 1;
  733.     }
  734.     else if(register_status==0)
  735.     {
  736.         register_status = 1;
  737.         SendMessageToAdmins("Registrierung ist nun Aktiviert.");
  738.         return 1;
  739.     }
  740.     return 1;
  741. }
  742. ocmd@2:clearchat,cc(playerid,params[])
  743. {
  744.    
  745.     if(sInfo[playerid][alevel]>=3)
  746.     {
  747.         if(sInfo[playerid][aduty]==1)
  748.         {
  749.             for(new i=0;i<100;i++)
  750.             {
  751.                 SendClientMessageToAll(CL_WHITE," ");
  752.                 continue;
  753.             }
  754.             return 1;
  755.         }
  756.         SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
  757.         return 1;
  758.     }
  759.     SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du hast keine Berechtigung diesen Befehl zu nutzen!");
  760.     return 1;
  761. }
  762. ocmd:spectate(playerid,params[])
  763. {
  764.     if(sInfo[playerid][alevel]>=3)
  765.     {
  766.         if(sInfo[playerid][aduty]==1)
  767.         {
  768.             new pID;
  769.             if(sscanf(params,"i",pID)) return SendClientMessage(playerid,CL_KNALLROT,"Benutzung: /spectate [playerid]");
  770.             Spectatestatus[playerid]=1;
  771.             TogglePlayerSpectating(playerid,1);
  772.             PlayerSpectatePlayer(playerid,pID);
  773.             return 1;
  774.         }
  775.         SendClientMessage(playerid,CL_HROT,"Du bist nicht Aduty.");
  776.         return 1;
  777.     }
  778.     SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  779.     return 1;
  780. }
  781. ocmd@2:stopspectate,stopspec(playerid,params[])
  782. {
  783.    
  784.     if(Spectatestatus[playerid]==1)
  785.     {
  786.         if(sInfo[playerid][alevel]>=2)
  787.         {
  788.             TogglePlayerSpectating(playerid, 0);
  789.             Spectatestatus[playerid]=0;
  790.             return 1;
  791.         }
  792.         SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  793.         return 1;
  794.     }
  795.     SendClientMessage(playerid,CL_HROT,"Du bist nicht im Spectatemodus (Beobachtungsmodus) !");
  796.     return 1;
  797. }
  798. ocmd:acarrespawn(playerid)
  799. {
  800.     if(sInfo[playerid][alevel]>=4)
  801.     {
  802.         for(new i = 1; i <= MAX_VEHICLES; i++)
  803.         {
  804.             SetVehicleToRespawn(i);
  805.         }
  806.         SendClientMessageToAll(CL_HROT,"Alle Cars respawnt.");
  807.     }
  808.     SendClientMessageToAll(CL_HROT,"ERROR; Du darfst diesen Befehl nicht nutzen.");
  809.     return 1;
  810. }
  811. ocmd:spawn(playerid,params[])
  812. {
  813.     new pID;
  814.     if(sInfo[playerid][alevel]>=3)
  815.     {
  816.         if(sscanf(params,"i",pID)) return SendClientMessage(playerid,CL_KNALLROT,"Benutzung: /spawn [playerid]");
  817.         SpawnPlayer(pID);
  818.         return 1;
  819.     }
  820.     SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  821.     return 1;
  822. }
  823. ocmd:setskin(playerid,params[])
  824. {
  825.     if(sInfo[playerid][alevel]>=3)
  826.     {
  827.         new skins,pID,string[128];
  828.         if(sscanf(params,"ui",pID,skins)) return SendClientMessage(playerid,CL_KNALLROT,"Benutzung: /setskin [playerid][Skin]");
  829.         SetPlayerSkin(pID,skins);
  830.         format(string,sizeof(string),"ADMCMD: Du hast %s den Skin %i gesetzt.",SpielerName(pID),skins);
  831.         SendClientMessage(playerid,CL_HROT,string);
  832.         format(string,sizeof(string),"ADMCMD: Du hast von %s den Skin %i bekommen.",SpielerName(playerid),skins);
  833.         SendClientMessage(playerid,CL_HROT,string);
  834.         sInfo[pID][skin]=skins;
  835.         return 1;
  836.     }
  837.     return 1;
  838. }
  839.  
  840. //Supporterbefehle
  841. ocmd@2:supporterchat,sc(playerid,params[])
  842. {
  843.     if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
  844.     if(sInfo[playerid][alevel] >= 2)
  845.         {
  846.             new text[200],sname[MAX_PLAYER_NAME],string[128];
  847.             GetPlayerName(playerid,sname,sizeof(sname));
  848.             if(sscanf(params,"s",text)) return SendClientMessage(playerid,CL_KNALLROT,"Benutzung: /supporterchat (/sc) [Text]");
  849.             if(sInfo[playerid][alevel] == 1)
  850.                 {
  851.                     return 1;
  852.                 }
  853.                 else if (sInfo[playerid][alevel] == 2)
  854.                 {
  855.                     format(string,sizeof(string), "Level 2 - Supporter %s: %s",sname,text);
  856.                     SendSupMessage(string);
  857.                 }
  858.                 else if (sInfo[playerid][alevel] == 3 || sInfo[playerid][alevel] == 4 )
  859.                 {
  860.                     format(string, sizeof(string), "Level 3/4 - Moderator/Super Moderator %s: %s", sname,text);
  861.                     SendSupMessage(string);
  862.                 }
  863.                 else if (sInfo[playerid][alevel] == 5)
  864.                 {
  865.                     format(string, sizeof(string), "Level 5 - Administrator %s: %s", sname,text);
  866.                     SendSupMessage(string);
  867.                 }
  868.                 else if (sInfo[playerid][alevel] == 6)
  869.                 {
  870.                     format(string, sizeof(string), "Level 6 - Server Manager %s: %s", sname,text);
  871.                     SendSupMessage(string);
  872.                 }
  873.                 else if (sInfo[playerid][alevel] == 7)
  874.                 {
  875.                     format(string, sizeof(string), "Level 7 - Stelv. Projektleitung %s: %s", sname,text);
  876.                 }
  877.                 else if (sInfo[playerid][alevel] == 8)
  878.                 {
  879.                     format(string, sizeof(string), "Level 8 - Projektleitung %s: %s", sname,text);
  880.                     SendSupMessage(string);
  881.                 }
  882.             return 1;
  883.         }
  884.     SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  885.     return 1;
  886. }
  887. ocmd:tp(playerid,params[])
  888. {  
  889.     if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
  890.     if(sInfo[playerid][alevel]>=2)
  891.     {
  892.         ShowPlayerDialog(playerid,DIALOG_ADMIN_TP,DIALOG_STYLE_LIST,"Teleport Menü","Adminbase\nLSPD\nBank-LS\nCNN-Dach\nCNN-Unten","Teleporten","Abbrechen");
  893.         return 1;
  894.     }
  895.     SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  896.     return 1;
  897. }
  898. ocmd:aduty(playerid,params[])
  899. {
  900.     new string[128];
  901.     Delete3DTextLabel(aDuty[playerid]);
  902.     if(sInfo[playerid][alevel]<2)return SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  903.     if(sInfo[playerid][aduty]==0)
  904.     {
  905.         format(string,128,"%s: %s{FFFFFF} ist nun im Admindienst!",a_rang[sInfo[playerid][alevel]],SpielerName(playerid));
  906.         SendClientMessageToAll(CL_KNALLROT,string);
  907.         SetPlayerColor(playerid,CL_KNALLROT);
  908.         SendClientMessage(playerid,CL_HGRÜN,"Du bist im Admindienst");
  909.         switch(sInfo[playerid][alevel])
  910.         {
  911.             case 2: aDuty[playerid] = Create3DTextLabel("[GRP]Supporter",CL_KNALLROT,30.0,40.0,50.0,MAX_STREAM_NAME_DISTANCE,GetPlayerVirtualWorld(playerid),1);
  912.             case 3: aDuty[playerid] = Create3DTextLabel("[GRP]Moderator",CL_KNALLROT,30.0,40.0,50.0,MAX_STREAM_NAME_DISTANCE,GetPlayerVirtualWorld(playerid),1);
  913.             case 4: aDuty[playerid] = Create3DTextLabel("[GRP]Super-Moderator",CL_KNALLROT,30.0,40.0,50.0,MAX_STREAM_NAME_DISTANCE,GetPlayerVirtualWorld(playerid),1);
  914.             case 5: aDuty[playerid] = Create3DTextLabel("[GRP]Administrator",CL_KNALLROT,30.0,40.0,50.0,MAX_STREAM_NAME_DISTANCE,GetPlayerVirtualWorld(playerid),1);
  915.             case 6: aDuty[playerid] = Create3DTextLabel("[GRP]Server-Manager",CL_KNALLROT,30.0,40.0,50.0,MAX_STREAM_NAME_DISTANCE,GetPlayerVirtualWorld(playerid),1);
  916.             case 7: aDuty[playerid] = Create3DTextLabel("[GRP]Co-Projektleitung",CL_KNALLROT,30.0,40.0,50.0,MAX_STREAM_NAME_DISTANCE,GetPlayerVirtualWorld(playerid),1);
  917.             case 8: aDuty[playerid] = Create3DTextLabel("[GRP]Projektleitung",CL_KNALLROT,30.0,40.0,50.0,MAX_STREAM_NAME_DISTANCE,GetPlayerVirtualWorld(playerid),1);
  918.         }
  919.         Attach3DTextLabelToPlayer(aDuty[playerid],playerid,0.0,0.0,0.3);
  920.         sInfo[playerid][aduty]=1;
  921.     }
  922.     else if(sInfo[playerid][aduty]==1)
  923.     {
  924.         Delete3DTextLabel(aDuty[playerid]);
  925.         SetPlayerColor(playerid,CL_WHITE);
  926.         SendClientMessage(playerid,CL_HGRÜN,"Du bist nun aus dem Admindienst");
  927.         sInfo[playerid][aduty]=0;
  928.     }
  929.     return 1;
  930. }
  931. //VIP
  932. ocmd:vip(playerid,params[])
  933. {
  934.     if(sInfo[playerid][alevel] ==1 || sInfo[playerid][alevel]>=6)
  935.     {
  936.         new text[200],sname[MAX_PLAYER_NAME],string[128],a_level;
  937.         a_level = sInfo[playerid][alevel];
  938.         GetPlayerName(playerid,sname,sizeof(sname));
  939.         if(sscanf(params,"s",text)) return SendClientMessage(playerid,CL_KNALLROT,"Benutzung: /vip [Text]");
  940.        
  941.         format(string, sizeof(string), " Level: %i -----> %s %s: %s",sInfo[playerid][alevel],a_rang[a_level],sname,text);          
  942.         VIPMessage(string);
  943.         return 1;
  944.     }
  945.     SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  946.     return 1;
  947. }
  948. //Allgemeine User befehle
  949. ocmd:enter(playerid,params[])
  950. {
  951.     for(new i=0; i<sizeof(bInfo); i++)
  952.     {
  953.         if(!IsPlayerInRangeOfPoint(playerid,2,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]))continue;
  954.         SetPlayerPos(playerid,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]);
  955.         SetPlayerInterior(playerid,bInfo[i][b_interior]);
  956.         SetPlayerVirtualWorld(playerid,i);
  957.         return 1;
  958.     }
  959.     return 1;
  960. }
  961. ocmd:exit(playerid,params[])
  962. {
  963.     for(new i=0; i<sizeof(bInfo); i++)
  964.     {
  965.         if(GetPlayerVirtualWorld(playerid)!=i)continue;
  966.         if(!IsPlayerInRangeOfPoint(playerid,2,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]))continue;
  967.         SetPlayerPos(playerid,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]);
  968.         SetPlayerInterior(playerid,0);
  969.         SetPlayerVirtualWorld(playerid,0);
  970.         return 1;
  971.     }
  972.     return 1;
  973. }
  974. ocmd:admin(playerid,params[])
  975. {
  976.     new str[128];
  977.     SendClientMessage(playerid,CL_HROT,"------------------Admins Online------------------");
  978.     for(new i = 0; i < MAX_PLAYERS; i++)
  979.     {
  980.         if(sInfo[i][eingeloggt]==1)
  981.         {
  982.             switch(sInfo[i][alevel])
  983.             {
  984.                 case 0://User
  985.                 {
  986.                    
  987.                 }
  988.                 case 1://VIP
  989.                 {  
  990.                    
  991.                 }
  992.                 case 2://Supporter
  993.                 {
  994.                     format(str, sizeof(str), "%s ist Supporter.",SpielerName(i));
  995.                     SendClientMessage(playerid,CL_HGRÜN,str);
  996.                    
  997.                 }
  998.                 case 3://Moderator
  999.                 {
  1000.                     format(str, sizeof(str), "%s ist Moderator.",SpielerName(i));
  1001.                     SendClientMessage(playerid,CL_HGRÜN,str);
  1002.                 }
  1003.                 case 4://Super Moderator
  1004.                 {
  1005.                     format(str, sizeof(str), "%s ist Super-Moderator.",SpielerName(i));
  1006.                     SendClientMessage(playerid,CL_HGRÜN,str);
  1007.                 }
  1008.                 case 5://Admin
  1009.                 {
  1010.                     format(str, sizeof(str), "%s ist Administrator .",SpielerName(i));
  1011.                     SendClientMessage(playerid,CL_HGRÜN,str);
  1012.                 }
  1013.                 case 6://Server Manager
  1014.                 {
  1015.                     format(str, sizeof(str), "%s ist Server Manager.",SpielerName(i));
  1016.                     SendClientMessage(playerid,CL_HGRÜN,str);
  1017.                 }
  1018.                 case 7://Co-Projektleitung
  1019.                 {
  1020.                     format(str, sizeof(str), "%s ist CO-Projektleiter.",SpielerName(i));
  1021.                     SendClientMessage(playerid,CL_HGRÜN,str);
  1022.                    
  1023.                 }
  1024.                 case 8://Projektleitung
  1025.                 {
  1026.                     format(str, sizeof(str), "%s ist Projektleiter.",SpielerName(i));
  1027.                     SendClientMessage(playerid,CL_HGRÜN,str);
  1028.                 }  
  1029.             }
  1030.         }
  1031.     }  
  1032.     SendClientMessage(playerid,CL_HROT,"------------------Admins Online------------------");
  1033.     return 1;
  1034. }
  1035. ocmd:help(playerid,params[])
  1036. {
  1037.     SendClientMessage(playerid,CL_WHITE,"-----------------------------------------------Hilfe-----------------------------");
  1038.     if(sInfo[playerid][alevel]>=0)
  1039.     {
  1040.         SendClientMessage(playerid,CL_HGRÜN,"          Allgemeine Befehle: /admin /enter /exit /help ");
  1041.     }
  1042.     if(sInfo[playerid][alevel]>=1)
  1043.     {
  1044.         //SendClientMessage(playerid,CL_HGRÜN,"");
  1045.         SendClientMessage(playerid,CL_HGRÜN,"          VIP-Befehle: /vip (VIP Chat) ");     
  1046.     }
  1047.     if(sInfo[playerid][alevel]>=2)
  1048.     {
  1049.         //SendClientMessage(playerid,CL_HGRÜN,"");
  1050.         SendClientMessage(playerid,CL_HGRÜN,"          Supporter-Befehle: /sc (Supporterchat) /acar [Vehicle-ID] /tp(Menü) ");
  1051.     }
  1052.     if(sInfo[playerid][alevel]>=3)
  1053.     {
  1054.         //SendClientMessage(playerid,CL_HGRÜN,"");
  1055.         SendClientMessage(playerid,CL_HGRÜN,"          Moderator-Befehle: /ac (Adminchat) /tban[ID][Zeit][Grund] ");
  1056.     }
  1057.     if(sInfo[playerid][alevel]>=4)
  1058.     {
  1059.         //SendClientMessage(playerid,CL_HGRÜN,"");
  1060.         SendClientMessage(playerid,CL_HGRÜN,"          Super-Moderator-Befehle: /enter [Vehicle-ID][Platz] /tunban[SpielerName] ");
  1061.     }
  1062.     if(sInfo[playerid][alevel]>=5)
  1063.     {
  1064.         //SendClientMessage(playerid,CL_HGRÜN,"");
  1065.         SendClientMessage(playerid,CL_HGRÜN,"          Administrator-Befehle: /unban[SpielerName]  ");
  1066.     }
  1067.     if(sInfo[playerid][alevel]>=6)
  1068.     {
  1069.         //SendClientMessage(playerid,CL_HGRÜN,"");
  1070.         SendClientMessage(playerid,CL_HGRÜN,"          Server-Manager-Befehle: /gmx /register(schaltet die registrierung an/aus)  ");
  1071.     }
  1072.     if(sInfo[playerid][alevel]>=7)
  1073.     {
  1074.         //SendClientMessage(playerid,CL_HGRÜN,"");
  1075.         SendClientMessage(playerid,CL_HGRÜN,"          Stelv. Projektleitungs-Befehle: /makeadmin /cspawn [Vehicle-ID] /aa (Admin-Ansage)[Text]  ");
  1076.     }
  1077.     if(sInfo[playerid][alevel]==8)
  1078.     {
  1079.         //SendClientMessage(playerid,CL_HGRÜN,"");
  1080.         SendClientMessage(playerid,CL_HGRÜN,"          Projektleitungs-Befehle: ");
  1081.     }
  1082.     SendClientMessage(playerid,CL_HGRÜN,"");
  1083.     SendClientMessage(playerid,CL_WHITE,"-------------------------------------------Hilfe-----------------------------");
  1084.     return 1;
  1085. }
  1086. //Fraktionsbefehle
  1087.  
  1088. ocmd:mv(playerid,params[])
  1089. {
  1090.    
  1091.     if(IsPlayerInRangeOfPoint(playerid, 7.0,1584.6, -1638, 12.3 ))//LSPD
  1092.     {
  1093.         static status;
  1094.         if(status == 0)
  1095.         {
  1096.             MoveObject(LSPD_TOR,1592.3, -1638,12.3,1.9);
  1097.             SendClientMessage(playerid,CL_WHITE,"Tor geöffnet.");
  1098.             status = 1;
  1099.             return 1;
  1100.         }
  1101.         else if(status == 1)
  1102.         {
  1103.             MoveObject(LSPD_TOR,1584.6, -1638, 12.3,1.9);
  1104.             SendClientMessage(playerid,CL_WHITE,"Tor geschlossen.");
  1105.             status = 0;
  1106.             return 1;
  1107.         }
  1108.     }  
  1109.     else if(IsPlayerInRangeOfPoint(playerid,7,1786, -1305.7, 133.4))
  1110.     {
  1111.         static status;
  1112.         if(status ==0)
  1113.         {
  1114.             MoveObject(CNN_TOR,1786, -1305.7, 138.2,1.9);
  1115.             SendClientMessage(playerid,CL_ADMINCHAT,"Tor ist nun offen.");
  1116.             return status=1;
  1117.         }
  1118.         else
  1119.         {
  1120.             MoveObject(CNN_TOR,1786, -1305.7, 133.4,1.9);
  1121.             SendClientMessage(playerid,CL_ADMINCHAT,"Tor ist nun geschlossen.");
  1122.             status = 0;
  1123.             return 1;
  1124.         }
  1125.     }
  1126.     //else if
  1127.     return 1;
  1128. }
  1129. //Neue Befehle
  1130. ocmd:givegun(playerid,params[])
  1131. {
  1132.     if(sInfo[playerid][alevel]<4)return 1;
  1133.     new pID,weapon,munition;
  1134.     if(sscanf(params,"uii",pID,weapon,munition)) return SendClientMessage(playerid,CL_KNALLROT,"Benutzung: /givegun [playerid][weapon id][munition]");
  1135.     GivePlayerWeapon(pID,weapon,munition);
  1136.     return 1;
  1137. }
  1138. ocmd:bankmenu(playerid,params[])
  1139. {
  1140.     if(IsPlayerInRangeOfPoint(playerid,2,2309.3765,-8.3644,26.7422))
  1141.     {
  1142.         ShowPlayerDialog(playerid,DIALOG_BANKMENU,DIALOG_STYLE_LIST,"Bankmenu","Kontostand\nAbheben\nZuzahlen\nKredit aufnehmen\nKredit bezahlen\nAusrauben","OK","abbrechen");
  1143.         return 1;
  1144.     }
  1145.     SCM(playerid,CL_GELB,"INFO: Du bist nicht in der nähe der Bank oder eines Bankautomaten!");
  1146.     return 1;
  1147. }
  1148. //------------------------------OCMD_ENDE-----------------------------------------------------
  1149.  
  1150. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  1151. {
  1152.    
  1153.     return 1;
  1154. }
  1155.  
  1156. public OnPlayerExitVehicle(playerid, vehicleid)
  1157. {
  1158.     return 1;
  1159. }
  1160.  
  1161. public OnPlayerStateChange(playerid, newstate, oldstate)
  1162. {
  1163.     return 1;
  1164. }
  1165.  
  1166. public OnPlayerEnterCheckpoint(playerid)
  1167. {
  1168.     return 1;
  1169. }
  1170.  
  1171. public OnPlayerLeaveCheckpoint(playerid)
  1172. {
  1173.     return 1;
  1174. }
  1175.  
  1176. public OnPlayerEnterRaceCheckpoint(playerid)
  1177. {
  1178.     return 1;
  1179. }
  1180.  
  1181. public OnPlayerLeaveRaceCheckpoint(playerid)
  1182. {
  1183.     return 1;
  1184. }
  1185.  
  1186. public OnRconCommand(cmd[])
  1187. {
  1188.     return 1;
  1189. }
  1190.  
  1191. public OnPlayerRequestSpawn(playerid)
  1192. {
  1193.     return 1;
  1194. }
  1195.  
  1196. public OnObjectMoved(objectid)
  1197. {
  1198.     return 1;
  1199. }
  1200.  
  1201. public OnPlayerObjectMoved(playerid, objectid)
  1202. {
  1203.     return 1;
  1204. }
  1205.  
  1206. public OnPlayerPickUpPickup(playerid, pickupid)
  1207. {
  1208.     return 1;
  1209. }
  1210.  
  1211. public OnVehicleMod(playerid, vehicleid, componentid)
  1212. {
  1213.     return 1;
  1214. }
  1215.  
  1216. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  1217. {
  1218.     return 1;
  1219. }
  1220.  
  1221. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  1222. {
  1223.     return 1;
  1224. }
  1225.  
  1226. public OnPlayerSelectedMenuRow(playerid, row)
  1227. {
  1228.     return 1;
  1229. }
  1230.  
  1231. public OnPlayerExitedMenu(playerid)
  1232. {
  1233.     return 1;
  1234. }
  1235.  
  1236. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  1237. {
  1238.     return 1;
  1239. }
  1240.  
  1241. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  1242. {
  1243.     if(newkeys & KEY_SPRINT)
  1244.     {
  1245.         if(GetPlayerVirtualWorld(playerid) == 0)
  1246.         {
  1247.             ocmd_enter(playerid,"");
  1248.             return 1;
  1249.         }
  1250.         else
  1251.         {
  1252.             ocmd_exit(playerid,"");
  1253.             return 1;
  1254.         }
  1255.     }
  1256.     return 1;
  1257. }
  1258.  
  1259. public OnRconLoginAttempt(ip[], password[], success)
  1260. {
  1261.     return 1;
  1262. }
  1263.  
  1264. public OnPlayerUpdate(playerid)
  1265. {
  1266.     return 1;
  1267. }
  1268.  
  1269. public OnPlayerStreamIn(playerid, forplayerid)
  1270. {
  1271.     return 1;
  1272. }
  1273.  
  1274. public OnPlayerStreamOut(playerid, forplayerid)
  1275. {
  1276.     return 1;
  1277. }
  1278.  
  1279. public OnVehicleStreamIn(vehicleid, forplayerid)
  1280. {
  1281.     return 1;
  1282. }
  1283.  
  1284. public OnVehicleStreamOut(vehicleid, forplayerid)
  1285. {
  1286.     return 1;
  1287. }
  1288.  
  1289. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  1290. {
  1291.    
  1292.     //MYSQL REGISTRIEREN
  1293.     if(dialogid==DIALOG_REGISTER_MYSQL)
  1294.     {
  1295.         if(response)
  1296.         {
  1297.             //Klick auf Register
  1298.             new name[MAX_PLAYER_NAME],query[128],passwort[128];
  1299.             GetPlayerName(playerid,name,sizeof(name));
  1300.             if(strlen(inputtext)>=4)
  1301.             {
  1302.                 //wenn grösser= 4 Zeichen-Registrieren in der DB
  1303.                 mysql_escape_string(inputtext,passwort,dbhandle);
  1304.                 format(query,sizeof(query),"INSERT INTO Benutzer (NAME, PASSWORD,LEVEL,GELD) VALUES ('%s',MD5('%s'),'1','10500')",name,passwort);
  1305.                 mysql_function_query(dbhandle,query,false,"","");
  1306.                 SetPlayerScore(playerid,1);
  1307.                
  1308.                
  1309.                 printf("Name:%s  Kennwort: %s ",name,passwort);
  1310.             }
  1311.             else
  1312.             {
  1313.                 //wenn weniger
  1314.                 SendClientMessage(playerid,CL_KNALLROT,"Neuer Versuch !");
  1315.                 SendClientMessage(playerid,CL_KNALLROT,"Gib dein Passwort ein! Es muss mehr als 3 Zeichen haben !");
  1316.                 ShowPlayerDialog(playerid,DIALOG_REGISTER_MYSQL,DIALOG_STYLE_INPUT,"Registrierung auf GermanRoleplay","Bitte Registriere dich mit deinem Passwort.","Register","Close");
  1317.             }
  1318.         }
  1319.         else
  1320.         {
  1321.             //Abbruch der Registrierung
  1322.             SendClientMessage(playerid,CL_KNALLROT,"Du hast die Registrierung per Button abgebrochen.");
  1323.             KickPlayer(playerid);
  1324.         }
  1325.         return 1;  
  1326.     }
  1327.     //MYSQL LOGIN
  1328.     if(dialogid==DIALOG_LOGIN_MYSQL)
  1329.     {
  1330.         if(response)
  1331.         {
  1332.             new name[MAX_PLAYER_NAME],query[128],passwort[128];
  1333.             GetPlayerName(playerid,name,sizeof(name));
  1334.             if(strlen(inputtext)>0)
  1335.             {
  1336.                 //Wenn Passwort richtig
  1337.                 mysql_escape_string(inputtext,passwort,dbhandle);
  1338.                 format(query,sizeof(query),"SELECT * FROM Benutzer WHERE NAME='%s' AND PASSWORD=MD5('%s')",name,passwort);
  1339.                 mysql_function_query(dbhandle,query,true,"PasswordCheck","i",playerid);
  1340.                
  1341.             }
  1342.             else
  1343.             {
  1344.                 //Wenn kein passwort
  1345.                 SendClientMessage(playerid,CL_KNALLROT,"Gib dein Passwort ein!");
  1346.                 ShowPlayerDialog(playerid,DIALOG_LOGIN_MYSQL,DIALOG_STYLE_PASSWORD,"Login auf GermanRoleplay ","Bitte Logge dich mit deinem Passwort ein. ","Login","Close");
  1347.             }          
  1348.         }
  1349.         else
  1350.         {
  1351.             SendClientMessage(playerid,CL_KNALLROT,"Du hast den Login bei GermanRoleplay Abgebrochen !");
  1352.             KickPlayer(playerid);
  1353.         }
  1354.         return 1;
  1355.     }
  1356.     if(dialogid==DIALOG_CLICK_FROM_ADMIN)
  1357.     {
  1358.         switch(listitem)
  1359.         {
  1360.             case 0:
  1361.             {//goto
  1362.                 if(sInfo[playerid][aduty]==0)return 1;
  1363.                 if(sInfo[playerid][alevel]>=3)
  1364.                 {
  1365.                     new Float:X,Float:Y,Float:Z;
  1366.                     if(sInfo[playerid][alevel]<sInfo[clickedid[playerid]][alevel])return SendClientMessage(playerid,CL_KNALLROT,"Du kannst dich nicht zu einem Höheren Teammitglied Teleportieren.");
  1367.                     GetPlayerPos(clickedid[playerid],Float:X,Float:Y,Float:Z);//new Float:X,Float:Y,Float:Z;
  1368.                     SetPlayerInterior(playerid,GetPlayerInterior(clickedid[playerid]));
  1369.                     SetPlayerPos(playerid,Float:X+1,Float:Y,Float:Z);
  1370.                     new nachricht[129];
  1371.                     format(nachricht,sizeof(nachricht),"ADMCMD: Du hast dich zu %s Teleportiert.",SpielerName(clickedid[playerid]));
  1372.                     SendClientMessage(playerid,CL_HROT,nachricht);
  1373.                     format(nachricht,sizeof(nachricht),"ADMCMD: Admin %s hat sich zu dir Teleportiert. ",SpielerName(playerid));
  1374.                     SendClientMessage(clickedid[playerid],CL_HROT,nachricht);
  1375.                     return 1;
  1376.                 }
  1377.                 SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  1378.                 return 1;              
  1379.             }
  1380.             case 1:
  1381.             {//gethere
  1382.                 if(sInfo[playerid][aduty]==0)return 1;
  1383.                 if(sInfo[playerid][alevel]>=3)
  1384.                 {              
  1385.                    
  1386.                     new Float:X,Float:Y,Float:Z,pID = clickedid[playerid];
  1387.                     GetPlayerPos(playerid,Float:X,Float:Y,Float:Z);
  1388.                     SetPlayerInterior(pID,GetPlayerInterior(playerid));
  1389.                     SetPlayerPos(pID,Float:X+1,Float:Y,Float:Z);
  1390.                     new nachricht[129];
  1391.                     format(nachricht,sizeof(nachricht),"ADMCMD: Du wurdest zu %s Teleportiert.",SpielerName(playerid));
  1392.                     SendClientMessage(pID,CL_HROT,nachricht);
  1393.                     new nachricht2[127];
  1394.                     format(nachricht2,sizeof(nachricht2),"ADMCMD: Du hast %s zu dir Teleportiert. ",SpielerName(pID));
  1395.                     SendClientMessage(playerid,CL_HROT,nachricht2);
  1396.                     return 1;
  1397.                 }
  1398.                 SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  1399.                 return 1;
  1400.             }
  1401.             case 2:
  1402.             {//Kick
  1403.                 if(sInfo[playerid][alevel]>=2)return ShowPlayerDialog(playerid,DIALOG_KICKINPUT,DIALOG_STYLE_INPUT,"Gebe einen Grund an:","Um den Spieler Kicken zu können, musst du zunächst einen Grund angeben!","Kicken","Abbrechen");
  1404.                 return 1;
  1405.             }
  1406.             case 3:
  1407.             {//ban
  1408.                 if(sInfo[playerid][alevel]>=4)return ShowPlayerDialog(playerid,DIALOG_BANINPUT,DIALOG_STYLE_INPUT,"Gebe einen Grund an:","Um den Spieler Bannen zu können, musst du zunächst einen Grund angeben!","Kicken","Abbrechen");
  1409.                 return 1;
  1410.             }
  1411.             case 4://TBan
  1412.             {
  1413.                 if(sInfo[playerid][alevel]>=3)
  1414.                 {
  1415.                     return ShowPlayerDialog(playerid,DIALOG_TBANZEITINPUT,DIALOG_STYLE_INPUT,"Gebe eine Zeit in Minuten an:","Um den Spieler Timebannen zu können, musst du zunächst die Zeit in Minuten angeben! Minimum: 1Minute","Bestätigen","Abbrechen");
  1416.                 }
  1417.                 SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  1418.                 return 1;
  1419.             }
  1420.             case 5:
  1421.             {//Heal
  1422.                 if(sInfo[playerid][alevel]>=3)
  1423.                 {
  1424.                     new string[128],pID=clickedid[playerid],nachricht[127];
  1425.                     SetPlayerHealth(clickedid[playerid],100);
  1426.                     format(string,sizeof(string),"ADMCMD: Du hast von dem Admin %s volles Leben erhalten ! ",SpielerName(playerid));
  1427.                     SendClientMessage(pID,CL_HGRÜN,string);
  1428.                     format(nachricht,sizeof(nachricht),"ADMCMD: Du hast %s gehealt ! ",SpielerName(clickedid[playerid]));
  1429.                     SendClientMessage(playerid,CL_HGRÜN,nachricht);
  1430.                     return 1;
  1431.                 }
  1432.                 SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
  1433.                 return 1;
  1434.             }
  1435.             case 6:
  1436.             {//Spectate Beobachten
  1437.                 new string[128];
  1438.                 format(string,sizeof(string),"Du beobachtest %s. Benutze /Stopspectate um den Beobachtungsmodus zu beenden.",SpielerName(clickedid[playerid]));
  1439.                 TogglePlayerSpectating(playerid, 1);
  1440.                 PlayerSpectatePlayer(playerid, clickedid[playerid]);
  1441.                 SendClientMessage(playerid,CL_HGRÜN,string);
  1442.                 Spectatestatus[playerid]=1;
  1443.                 return 1;
  1444.             }
  1445.         }
  1446.         return 1;
  1447.     }  
  1448.     if(dialogid == DIALOG_KICKINPUT)
  1449.     {
  1450.         if(!response) return 1;
  1451.         if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_KICKINPUT,DIALOG_STYLE_INPUT,"Gebe einen Grund an:","Um den Spieler Kicken zu können, musst du zunächst einen Grund angeben!","Kicken","Abbrechen");
  1452.         new kicktext[200];
  1453.         format(kicktext, 200, "ADMCMD: %s wurde von %s vom Server gekickt! Grund: %s", SpielerName(clickedid[playerid]),SpielerName(playerid),inputtext);
  1454.         SendClientMessageToAll(CL_KNALLROT, kicktext);
  1455.         KickPlayer(clickedid[playerid]);
  1456.         return 1;
  1457.     }
  1458.    
  1459.     if(dialogid == DIALOG_BANINPUT)
  1460.     {
  1461.         if(!response) return 1;
  1462.         if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_KICKINPUT,DIALOG_STYLE_INPUT,"Gebe einen Grund an:","Um den Spieler Bannen zu können, musst du zunächst einen Grund angeben!","Kicken","Abbrechen");
  1463.         new kicktext[200];
  1464.         format(kicktext, 200, "ADMCMD: %s wurde von %s vom Server gebannt! Grund: %s", SpielerName(clickedid[playerid]),SpielerName(playerid),inputtext);
  1465.         SendClientMessageToAll(CL_KNALLROT, kicktext);
  1466.         sInfo[clickedid[playerid]][baned] = 1;
  1467.         KickPlayer(clickedid[playerid]);
  1468.         return 1;
  1469.     }  
  1470.     if(dialogid == DIALOG_TBANZEITINPUT)
  1471.     {
  1472.         //DIALOG_TBANZEITINPUT
  1473.  
  1474.         if(!response) return 1;
  1475.         if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_TBANZEITINPUT,DIALOG_STYLE_INPUT,"Gebe eine Zeit in Minuten an:","Um den Spieler Timebannen zu können, musst du zunächst die Zeit in Minuten angeben! Minimum: 1Minute","Begründen","Abbrechen");
  1476.         new TBanZeit = strval(inputtext);
  1477.         printf("Zeit %d", TBanZeit);
  1478.         if(TBanZeit < 1)
  1479.         {
  1480.             SendClientMessage(playerid,0xADC7E7FF,"Minimale Zeit: 1 Minute. ");
  1481.             return ShowPlayerDialog(playerid,DIALOG_TBANZEITINPUT,DIALOG_STYLE_INPUT,"Gebe eine Zeit in Minuten an:","Um den Spieler Timebannen zu können, musst du zunächst die Zeit in Minuten angeben! Minimum: 1Minute","Begründen","Abbrechen");
  1482.         }
  1483.         SetPVarInt(playerid, "TBanZeit", TBanZeit);
  1484.         ShowPlayerDialog(playerid,DIALOG_TBANGRUNDINPUT,DIALOG_STYLE_INPUT,"Timeban Grund für den Spieler.","Gebe den Timeban Grund ein.","Bestätigen","Abbrechen");//SpielerName(clickedid[playerid]));
  1485.         return 1;
  1486.     }
  1487.     if(dialogid == DIALOG_TBANGRUNDINPUT)
  1488.     {
  1489.         if(!response) return 1;
  1490.         if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_TBANGRUNDINPUT,DIALOG_STYLE_INPUT,"Timeban Grund für den Spieler.","Gebe den Timeban Grund ein.","Grund bestätigen","Abbrechen");//SpielerName(clickedid[playerid]));
  1491.         new pIdName[MAX_PLAYER_NAME],pName[MAX_PLAYER_NAME],string[144];
  1492.         GetPlayerName(clickedid[playerid],pIdName,sizeof(pIdName));
  1493.         new TBanZeit = GetPVarInt(playerid, "TBanZeit");
  1494.         printf("Zeit %i Grund %i",TBanZeit,inputtext);
  1495.         new a_level;
  1496.         a_level = sInfo[playerid][alevel];
  1497.         GetPlayerName(playerid,pName,sizeof(pName));
  1498.         format(string,sizeof(string),"[ADMCMD][TIMEBAN]: %s : %s timebannte %s für %d Minuten. Grund: %s",a_rang[a_level],pName,pIdName,TBanZeit,inputtext);
  1499.         SendClientMessageToAll(CL_KNALLROT,string);
  1500.         printf("AdmCmd(TIMEBAN): Admin: %s(%i) - Timebanned Player: %s(%i) - Timeban Reason: %s",pName,playerid,pIdName,clickedid[playerid],inputtext);
  1501.         pBanner[clickedid[playerid]] = pName;
  1502.         TBan(clickedid[playerid],TBanZeit);
  1503.         return 1;
  1504.     }
  1505.     if(dialogid == DIALOG_ADMIN_TP)
  1506.     {
  1507.         if(response)
  1508.         {
  1509.             switch(listitem)
  1510.             {
  1511.                 case 0://Adminbase
  1512.                 {
  1513.                     if(IsPlayerInAnyVehicle(playerid))
  1514.                     {
  1515.                         new vehicleid = GetPlayerVehicleID(playerid);
  1516.                         SetVehiclePos(vehicleid,1319.2, -3910.6, 3.6);
  1517.                     }
  1518.                     else
  1519.                     {
  1520.                         SetPlayerPos(playerid,1319.2, -3910.6, 2.6);
  1521.                         return 1;
  1522.                     }
  1523.                 }
  1524.                 case 1://LSPD
  1525.                 {
  1526.                     if(IsPlayerInAnyVehicle(playerid))
  1527.                     {
  1528.                         new vehicleid = GetPlayerVehicleID(playerid);
  1529.                         SetVehiclePos(vehicleid,1594.4666,-1632.1726,15.4857);
  1530.                     }
  1531.                     else
  1532.                     {
  1533.                         SetPlayerPos(playerid,1594.4666,-1632.1726,14.4857);
  1534.                         return 1;
  1535.                     }
  1536.                    
  1537.                 }
  1538.                 case 2://bank LS
  1539.                 {
  1540.                     if(IsPlayerInAnyVehicle(playerid))
  1541.                     {
  1542.                         if(GetPlayerInterior(playerid)==0)
  1543.                         {
  1544.                             new vehicleid = GetPlayerVehicleID(playerid);
  1545.                             SetVehiclePos(vehicleid,1459.4891,-1012.1659,26.8438);
  1546.                             return 1;
  1547.                         }
  1548.                         return SCM(playerid,CL_HGRÜN,"INFO: Du kannst dich nicht aus einem Interior Teleporten");
  1549.                     }
  1550.                     else
  1551.                     {
  1552.                         SetPlayerInterior(playerid,0);
  1553.                         SetPlayerPos(playerid,1459.4891,-1012.1659,26.8438);
  1554.                         return 1;
  1555.                     }
  1556.                    
  1557.                 }
  1558.                 case 3://SAM-AG/CNN-DACH
  1559.                 {
  1560.                     if(IsPlayerInAnyVehicle(playerid))
  1561.                     {
  1562.                         new vehicleid = GetPlayerVehicleID(playerid);
  1563.                         SetVehiclePos(vehicleid,1773.8978,-1302.5413,131.7344);
  1564.                     }
  1565.                     else
  1566.                     {
  1567.                         SetPlayerPos(playerid,1773.8978,-1302.5413,131.7344);
  1568.                         return 1;
  1569.                     }
  1570.                    
  1571.                 }
  1572.                 case 4://SAM-AG/cnn-Unten
  1573.                 {
  1574.                     if(IsPlayerInAnyVehicle(playerid))
  1575.                     {
  1576.                         new vehicleid = GetPlayerVehicleID(playerid);
  1577.                         SetVehiclePos(vehicleid,1780.8357,-1303.1746,14.5516);
  1578.                     }
  1579.                     else
  1580.                     {
  1581.                         SetPlayerPos(playerid,1780.8357,-1303.1746,13.5516);
  1582.                         return 1;
  1583.                     }
  1584.                 }
  1585.             }
  1586.         }
  1587.     }
  1588.     if(dialogid == DIALOG_BANKMENU)
  1589.     {
  1590.         if(response == 1)
  1591.         {
  1592.             new str[128];
  1593.             switch(listitem)
  1594.             {
  1595.                
  1596.                 case 0://Kontostand
  1597.                 {
  1598.                     format(str,sizeof(str),"Dein Kontostand: %i$",sInfo[playerid][bankgeld]);
  1599.                     SendClientMessage(playerid,CL_DGRÜN,str);
  1600.                     return 1;
  1601.                 }
  1602.                 case 1://
  1603.                 {
  1604.                     //showDialog
  1605.                     return 1;
  1606.                 }
  1607.             }
  1608.             return 1;
  1609.         }
  1610.        
  1611.     }
  1612.     return 1;
  1613. }  
  1614.  
  1615. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  1616. {
  1617.     if(sInfo[playerid][alevel]==0)return 1;
  1618.     new name[MAX_PLAYER_NAME];
  1619.     GetPlayerName(clickedplayerid,name,sizeof(name));
  1620.     if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"Du bist nicht Admin Duty!");
  1621.     ShowPlayerDialog(playerid,DIALOG_CLICK_FROM_ADMIN,DIALOG_STYLE_LIST,name,"Goto\nGethere\nKick\nBan\nTimeban\nHealth\nBeobachten","OK","Abbrechen");
  1622.     clickedid[playerid] = clickedplayerid;
  1623.     return 1;
  1624. }
  1625.  
  1626. public PasswordCheck(playerid)
  1627. {
  1628.     new num_fields,num_rows;
  1629.     cache_get_data(num_rows,num_fields,dbhandle);
  1630.     if(num_rows==1)
  1631.     {
  1632.         //passwort richtig=Daten Laden
  1633.         //Datenbank id auslesen und eingeloggt auf =1 setzen
  1634.         sInfo[playerid][baned] = cache_get_field_content_int(0,"BANED",dbhandle);
  1635.         if(sInfo[playerid][baned]==1)
  1636.         {
  1637.            
  1638.             SendClientMessage(playerid,CL_KNALLROT,"Du bist gebannt. Melde dich im Forum unter Entbannungsanträge oder im TS³.");
  1639.             KickPlayer(playerid);
  1640.             return 1;
  1641.         }
  1642.         new a_level;
  1643.         sInfo[playerid][eingeloggt] = 1;
  1644.         sInfo[playerid][db_id] = cache_get_field_content_int(0,"DB_ID",dbhandle);
  1645.         //Adminlevel
  1646.         sInfo[playerid][alevel] = cache_get_field_content_int(0,"ALEVEL",dbhandle);
  1647.         //Level
  1648.         sInfo[playerid][level] = cache_get_field_content_int(0,"LEVEL",dbhandle);
  1649.         SetPlayerScore(playerid,sInfo[playerid][level]);
  1650.         //Geld
  1651.         sInfo[playerid][geld] = cache_get_field_content_int(0,"GELD",dbhandle);
  1652.         ResetPlayerMoney(playerid);
  1653.         GivePlayerMoney(playerid,cache_get_field_content_int(0,"GELD",dbhandle));
  1654.         //Skin
  1655.         sInfo[playerid][skin] = cache_get_field_content_int(0,"SKIN",dbhandle);
  1656.         SetPlayerSkin(playerid,sInfo[playerid][skin]);
  1657.         //fahrzeuge laden
  1658.         loadcars(playerid);
  1659.        
  1660.         //Eingeloggt-Nachricht
  1661.         SendClientMessage(playerid,CL_WHITE,"Du hast dich erfolgreich eingeloggt");
  1662.         //SpawnPlayer(playerid);
  1663.         new nachricht[128];
  1664.         if(sInfo[playerid][alevel]<2)
  1665.         {
  1666.             format(nachricht,sizeof(nachricht),"JOIN: Spieler %s hat den Server betreten !",SpielerName(playerid));
  1667.             SendClientMessageToAll(CL_KNALLROT,nachricht);
  1668.             TogglePlayerControllable(playerid,1);
  1669.             SpawnPlayer(playerid);
  1670.             return 1;
  1671.         }
  1672.         a_level = sInfo[playerid][alevel];
  1673.         format(nachricht,sizeof(nachricht),"%ss-Join: %s %s hat den Server betreten !",a_rang[a_level],a_rang[a_level],SpielerName(playerid));
  1674.         SendClientMessageToAll(CL_KNALLROT,nachricht);
  1675.         SpawnPlayer(playerid);
  1676.         return 1;
  1677.     }
  1678.     else
  1679.     {
  1680.         //Passwort Falsch
  1681.         SendClientMessage(playerid,CL_KNALLROT,"Dein Passwort Stimmt nicht!");
  1682.         ShowPlayerDialog(playerid,DIALOG_LOGIN_MYSQL,DIALOG_STYLE_PASSWORD,"Login auf GermanRoleplay ","Bitte Logge dich mit deinem Passwort ein. ","Login","Close");
  1683.  
  1684.     }
  1685.     return 1;
  1686. }
  1687.  
  1688. public CarSavedDB(insertid)
  1689. {
  1690.     cInfo[insertid][DB_ID] = cache_insert_id(dbhandle);
  1691.     return 1;
  1692. }
  1693. public PlayerCarsLoad(playerid)
  1694. {
  1695.     new num_rows,num_fields;
  1696.     cache_get_data(num_rows,num_fields,dbhandle);
  1697.     if(num_rows==0)return SendClientMessage(playerid,-1,"Du besitzt keine Fahrzeuge!");
  1698.     for(new i=0; i<num_rows; i++)
  1699.     {
  1700.         new id=freecarid();
  1701.         new schild[128];
  1702.         cInfo[id][modelID] = cache_get_field_content_int(i,"MODEL",dbhandle);
  1703.         cInfo[id][besitzer] = cache_get_field_content_int(i,"BESITZER",dbhandle);
  1704.         cInfo[id][DB_ID] = cache_get_field_content_int(i,"DB_ID",dbhandle);
  1705.         cInfo[id][carx] = cache_get_field_content_int(i,"X",dbhandle);
  1706.         cInfo[id][cary] = cache_get_field_content_int(i,"Y",dbhandle);
  1707.         cInfo[id][carz] = cache_get_field_content_int(i,"Z",dbhandle);
  1708.         cInfo[id][carrota] = cache_get_field_content_int(i,"ROTATION",dbhandle);
  1709.         cInfo[id][Farbe1] = cache_get_field_content_int(i,"FARBE1",dbhandle);
  1710.         cInfo[id][Farbe2] = cache_get_field_content_int(i,"FARBE2",dbhandle);
  1711.         cInfo[id][respawnt] = cache_get_field_content_int(i,"RESPAWN",dbhandle);
  1712.         cInfo[id][SID] =   CreateVehicle(cInfo[id][modelID],cInfo[id][carx],cInfo[id][cary],cInfo[id][carz],cInfo[id][carrota],cInfo[id][Farbe1],cInfo[id][Farbe2],cInfo[id][respawnt]);
  1713.         cache_get_field_content(i,"KENNZEICHEN",schild,dbhandle);
  1714.         if(strlen(schild)>=1)
  1715.         {
  1716.             if(strlen(schild)<=4)
  1717.             {
  1718.                 SetVehicleNumberPlate(cInfo[id][SID],schild);
  1719.                 return 1;
  1720.             }
  1721.             return 1;
  1722.         }
  1723.         return 1;
  1724.        
  1725.     }
  1726.     return 1;
  1727. }
  1728.  
  1729. public Lebensystem()
  1730. {// Irgendwo im Script
  1731.     new Float:health;
  1732.     for(new i,l=GetMaxPlayers(); i<l; i++) if(IsPlayerConnected(i))if(sInfo[i][eingeloggt]) GetPlayerHealth(i,health),SetPlayerHealth(i,health-1);
  1733. }
  1734. public check3()
  1735. {
  1736.     new string[128];
  1737.     if(server_name >= MAX_SERVER_NAMES-1) {server_name = -1; }
  1738.     if(server_name < MAX_SERVER_NAMES-1) { server_name++; }
  1739.     format(string ,sizeof(string),"hostname %s",server_names[server_name]);
  1740.     SendRconCommand(string);
  1741.     return 1;
  1742. }
  1743. public clock ()  
  1744. {
  1745.     new hour,minute,second;
  1746.     new string[9];
  1747.     gettime(hour,minute,second);
  1748.     format(string, sizeof string, "%02d:%02d:%02d", hour, minute, second);
  1749.     TextDrawSetString(Clock, string);
  1750.     TextDrawShowForAll(Clock);
  1751.     return 1;
  1752. }
  1753. //Stocks
  1754. stock ClockDate()
  1755. {
  1756.     Clock = TextDrawCreate(543.0, 35.0, "_"); // Koordinaten, wo die Uhr angezeigt wird //24.0
  1757.     TextDrawLetterSize(Clock, 0.4, 1.4);
  1758.     TextDrawFont(Clock, 3); // Uhrschrift
  1759.     TextDrawSetOutline(Clock, 2);
  1760.     TextDrawShowForAll(Clock);
  1761.     SetTimer("clock",1000,true);
  1762.    
  1763.     new day,month,year;
  1764.     new string[30];
  1765.     getdate(year, month, day);
  1766.     format(string, sizeof string, "%02d/%s%02d/%s%d", day, ((month < 10) ? ("") : ("")), month, (year < 10) ? ("") : (""), year);
  1767.     Date = TextDrawCreate(544.0, 50.0, string); // Koordinaten, wo die Uhr angezeigt wird
  1768.     TextDrawLetterSize(Date, 0.4, 1.4);
  1769.     TextDrawFont(Date, 3); // Uhrschrift
  1770.     TextDrawSetOutline(Date, 2);
  1771.     return 1;
  1772. }
  1773. stock SendMessageToAdmins(text[])
  1774. {
  1775.     for(new i = 0; i <MAX_PLAYERS; i++)
  1776.     {
  1777.         if(sInfo[i][alevel] >= 3)
  1778.         {
  1779.             SendClientMessage(i,CL_ADMINCHAT,text);
  1780.         }
  1781.     }
  1782. }
  1783. stock SendAdminAnsage(text[])
  1784. {
  1785.     for(new i = 0; i <MAX_PLAYERS; i++)
  1786.     {
  1787.         if(sInfo[i][alevel] >= 2)
  1788.         {
  1789.             SendClientMessage(i,CL_ANSAGE_ADMINS,text);
  1790.            
  1791.         }
  1792.     }  
  1793. }
  1794. stock SendSupMessage(text[])
  1795. {
  1796.     for(new i = 0; i <MAX_PLAYERS; i++)
  1797.     {
  1798.         if(sInfo[i][alevel] >= 2)
  1799.         {
  1800.             SendClientMessage(i,CL_SC_ORANGE,text);
  1801.         }
  1802.     }
  1803. }
  1804. stock VIPMessage(text[])
  1805. {
  1806.     for(new i = 0; i<MAX_PLAYERS; i++)
  1807.     {
  1808.         if(sInfo[i][alevel]==1 || sInfo[i][alevel]>=7)
  1809.         {
  1810.             SendClientMessage(i,CL_VIP,text);
  1811.         }
  1812.     }
  1813. }
  1814. stock KickPlayer(playerid)
  1815. {
  1816.     SetTimerEx("KickTimer",15,false,"i",playerid);
  1817.     return 1;
  1818. }
  1819. stock SpielerName(playerid)
  1820. {
  1821.     new name[MAX_PLAYER_NAME];
  1822.     GetPlayerName(playerid,name,sizeof(name));
  1823.     return name;
  1824. }
  1825. stock introstart(playerid)
  1826. {
  1827.     if(introstatus==1)return 1;
  1828.     PlayAudioStreamForPlayer(playerid,"http://marsrl.de/Intro22.mp3");
  1829.     introstatus = 1;
  1830.     for(new i=0;i<100;i++)
  1831.     {
  1832.         SendClientMessage(playerid,CL_WHITE," ");
  1833.     }
  1834.     return 1;
  1835. }
  1836. stock introstop(playerid)
  1837. {
  1838.      return SetTimerEx("stopintro", 530000, false, "i", playerid);
  1839. }
  1840. stock loadstat(playerid)
  1841. {  
  1842.         new str[128];
  1843.        
  1844.         format(str,sizeof(str),"~n~Level: %i~n~Geld: %i$~n~Kontostand: %i$~n~Payday: X/60 Minuten~n~",sInfo[playerid][level],sInfo[playerid][geld],sInfo[playerid][bankgeld]);
  1845.         Statistik1 = TextDrawCreate(495 ,113.8 ,str);
  1846.         TextDrawLetterSize(Statistik1,0.3,1.3);
  1847.         TextDrawColor(Statistik1 , CL_DGRÜN);
  1848.         TextDrawFont(Statistik1 , 1);
  1849.         TextDrawSetOutline(Statistik1 , true);
  1850.         TextDrawSetProportional(Statistik1 , true);
  1851.         TextDrawSetShadow(Statistik1 , 1);
  1852.         TextDrawShowForPlayer(playerid,Statistik1);
  1853.         SetTimerEx("Statistikupdate",500,1,"i",playerid);
  1854.         return 1;
  1855. }
  1856. stock Statistik(playerid)
  1857. {  
  1858.     Statistiken = TextDrawCreate(495 ,113.8 ,"Statistiken");
  1859.     TextDrawFont(Statistiken , 1);
  1860.     TextDrawLetterSize(Statistiken , 0.5, 1.5);
  1861.     TextDrawColor(Statistiken , CL_GELB);
  1862.     TextDrawSetOutline(Statistiken , true);
  1863.     TextDrawSetProportional(Statistiken , true);
  1864.     TextDrawSetShadow(Statistiken , 1);
  1865.     TextDrawShowForPlayer(playerid,Statistiken);
  1866.     return 1;
  1867. }
  1868. stock LoadObjects()
  1869. {
  1870.     //LSPD Tor
  1871.     LSPD_TOR = CreateObject(969, 1584.6, -1638, 12.4, 0, 0, 0);
  1872.     //SAM AG DACH
  1873.     CreateObject(980, 1817.3, -1318.9, 133.5, 0, 0, 0);
  1874.     CreateObject(980, 1828.8, -1318.9, 133.5, 0, 0, 0);
  1875.     CreateObject(980, 1834.6, -1313.1, 133.5, 0, 0, 268.5);
  1876.     CreateObject(980, 1835, -1301.6, 133.5, 0, 0, 268.495);
  1877.     CreateObject(980, 1835.4, -1290.1, 133.5, 0, 0, 268.495);
  1878.     CreateObject(980, 1835.7, -1278.6, 133.5, 0, 0, 268.495);
  1879.     CreateObject(980, 1835.8, -1275.1, 133.5, 0, 0, 268.495);
  1880.     CreateObject(980, 1830.3, -1269.5, 133.5, 0, 0, 180.495);
  1881.     CreateObject(980, 1818.8, -1269.7, 133.5, 0, 0, 180.494);
  1882.     CreateObject(980, 1813.3, -1275.2, 133.5, 0, 0, 252.244);
  1883.     CreateObject(980, 1811.7, -1286.4, 133.5, 0, 0, 271.741);
  1884.     CreateObject(980, 1806.3, -1293.3, 133.5, 0, 0, 191.736);
  1885.     CreateObject(980, 1795, -1295.3, 133.5, 0, 0, 188.233);
  1886.     CreateObject(980, 1783.6, -1296.6, 133.5, 0, 0, 184.979);
  1887.     CreateObject(980, 1783.6, -1296.6, 133.5, 0, 0, 184.977);
  1888.     CreateObject(980, 1777.9, -1302.8, 133.5, 0, 0, 270.972);
  1889.     CreateObject(980, 1811.4, -1313.2, 133.5, 0, 0, 270.967);
  1890.     CreateObject(980, 1805.6, -1307.1, 133.5, 0, 0, 355.722);
  1891.     CreateObject(3749, 1786.1, -1306.5, 136.2, 0, 0, 0);
  1892.     CreateObject(3049, 1799.9, -1306.7, 133, 0, 0, 0);
  1893.     CreateObject(3049, 1792, -1308.6, 133, 0, 0, 84);
  1894.     CreateObject(3049, 1791.5, -1313, 133, 0, 0, 359.246);
  1895.     CreateObject(3049, 1787.2, -1312.9, 133, 0, 0, 0.242);
  1896.     CreateObject(3049, 1782.8, -1312.9, 133, 0, 0, 0.242);
  1897.     CreateObject(3049, 1778.3, -1312.9, 133, 0, 359.75, 346.242);
  1898.     CreateObject(3049, 1774, -1311.8, 133, 0, 359.747, 311.24);
  1899.     CreateObject(3049, 1771.1, -1308.4, 133, 0, 0, 279.25);
  1900.     CreateObject(3049, 1770.4, -1304.1, 133, 0, 0, 271.495);
  1901.     CreateObject(3049, 1770.3, -1299.7, 133, 0, 0, 181.494);
  1902.     CreateObject(3049, 1773.4, -1299.6, 133, 0, 0, 181.489);
  1903.     CNN_TOR=CreateObject(980, 1786, -1305.7, 133.4, 0, 0, 0);
  1904.     //Adminbase
  1905.     CreateObject(4867, 1319.2, -3910.6, 1.7, 0, 0, 358.248);
  1906.     CreateObject(4867, 1106.8, -3904.2, 1.7, 0, 0, 358.248);
  1907.     CreateObject(4867, 895.2002, -3897.7, 1.6, 0, 0, 358.248);
  1908.     CreateObject(8251, 1079.2, -3924.5, 5, 0, 359.247, 88.248);
  1909.     CreateObject(8251, 1104.4, -3925.3, 4.9, 0, 359.242, 88.248);
  1910.     CreateObject(8251, 1129.4, -3926.1, 5.2, 0, 359.242, 88.248);
  1911.     CreateObject(4113, 1006.6, -3977.7, 36.1, 0, 359.498, 11.492);
  1912.     CreateObject(4726, 816.3, -3837.4, 0.4, 0, 0, 0);
  1913.     CreateObject(8172, 708.3, -3880.7, 1.6, 0, 0, 268);
  1914.     CreateObject(2933, 981, -3991.3, 3.3, 0, 0, 0);
  1915.     CreateObject(2933, 972.2, -3991.3, 3.3, 0, 0, 0);
  1916.     CreateObject(2933, 963.5, -3991.1, 3.3, 0, 0.25, 358.25);
  1917.     CreateObject(2933, 954.8, -3990.8, 3.3, 0, 0.25, 357.495);
  1918.     CreateObject(2933, 946.1, -3990.4, 3.3, 0, 0.247, 357.49);
  1919.     CreateObject(2933, 937.4, -3990, 3.3, 0, 0.247, 357.49);
  1920.     CreateObject(2933, 928.7, -3989.6, 3.3, 0, 0.247, 357.49);
  1921.     CreateObject(2933, 920, -3989.2, 3.3, 0, 0.247, 357.49);
  1922.     //Weiteres 
  1923.     print("Objecte geladen!");
  1924.     return 1;
  1925. }
  1926.  
  1927. //freie funktionen
  1928. freecarid()
  1929. {
  1930.     for(new i=0; i<sizeof(cInfo); i++)
  1931.     {
  1932.         if(cInfo[i][SID]==0)return i;
  1933.     }
  1934.     return 0;
  1935. }
  1936. loadcars(playerid)
  1937. {
  1938.     new query[200];
  1939.     format(query,sizeof(query),"SELECT * FROM Spielerautos WHERE BESITZER='%i'",sInfo[playerid][db_id]);
  1940.     mysql_function_query(dbhandle,query,true,"PlayerCarsLoad","i",playerid);
  1941.    
  1942.    
  1943.     return 1;
  1944. }
  1945. SaveCarToDB(playerid,i,modelid,farb1,farb2,respawn)
  1946. {
  1947.     new query[200];
  1948.     new Float:rotation;
  1949.     GetVehicleZAngle(modelid,Float:rotation);//-->da muss hin wo es gepeichert wird
  1950.     format(query,sizeof(query),"INSERT INTO Spielerautos(BESITZER,MODEL,X,Y,Z,ROTATION,FARBE1,FARBE2,RESPAWN,KENNZEICHEN)VALUES('%i','%i','%f','%f','%f','%f','%i','%i','%i','%s')",sInfo[playerid][db_id],modelid,cInfo[i][carx],cInfo[i][cary],cInfo[i][carz],cInfo[i][carrota],farb1,farb2,respawn,cInfo[i][kennzeichen]);
  1951.     mysql_function_query(dbhandle,query,true,"CarSavedDB","i",i);
  1952.     return 1;
  1953. }
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964. stock sscanf(sstring[], format[], {Float,_}:...)
  1965. {
  1966.     #if defined isnull
  1967.         if (isnull(sstring))
  1968.     #else
  1969.         if (sstring[0] == 0 || (sstring[0] == 1 && sstring[1] == 0))
  1970.     #endif
  1971.         {
  1972.             return format[0];
  1973.         }
  1974.     #pragma tabsize 4
  1975.     new
  1976.         formatPos = 0,
  1977.         sstringPos = 0,
  1978.         paramPos = 2,
  1979.         paramCount = numargs(),
  1980.         delim = ' ';
  1981.     while (sstring[sstringPos] && sstring[sstringPos] <= ' ')
  1982.     {
  1983.         sstringPos++;
  1984.     }
  1985.     while (paramPos < paramCount && sstring[sstringPos])
  1986.     {
  1987.         switch (format[formatPos++])
  1988.         {
  1989.             case '\0':
  1990.             {
  1991.                 return 0;
  1992.             }
  1993.             case 'i', 'd':
  1994.             {
  1995.                 new
  1996.                     neg = 1,
  1997.                     num = 0,
  1998.                     ch = sstring[sstringPos];
  1999.                 if (ch == '-')
  2000.                 {
  2001.                     neg = -1;
  2002.                     ch = sstring[++sstringPos];
  2003.                 }
  2004.                 do
  2005.                 {
  2006.                     sstringPos++;
  2007.                     if ('0' <= ch <= '9')
  2008.                     {
  2009.                         num = (num * 10) + (ch - '0');
  2010.                     }
  2011.                     else
  2012.                     {
  2013.                         return -1;
  2014.                     }
  2015.                 }
  2016.                 while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
  2017.                 setarg(paramPos, 0, num * neg);
  2018.             }
  2019.             case 'h', 'x':
  2020.             {
  2021.                 new
  2022.                     num = 0,
  2023.                     ch = sstring[sstringPos];
  2024.                 do
  2025.                 {
  2026.                     sstringPos++;
  2027.                     switch (ch)
  2028.                     {
  2029.                         case 'x', 'X':
  2030.                         {
  2031.                             num = 0;
  2032.                             continue;
  2033.                         }
  2034.                         case '0' .. '9':
  2035.                         {
  2036.                             num = (num << 4) | (ch - '0');
  2037.                         }
  2038.                         case 'a' .. 'f':
  2039.                         {
  2040.                             num = (num << 4) | (ch - ('a' - 10));
  2041.                         }
  2042.                         case 'A' .. 'F':
  2043.                         {
  2044.                             num = (num << 4) | (ch - ('A' - 10));
  2045.                         }
  2046.                         default:
  2047.                         {
  2048.                             return -1;
  2049.                         }
  2050.                     }
  2051.                 }
  2052.                 while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
  2053.                 setarg(paramPos, 0, num);
  2054.             }
  2055.             case 'c':
  2056.             {
  2057.                 setarg(paramPos, 0, sstring[sstringPos++]);
  2058.             }
  2059.             case 'f':
  2060.             {
  2061.  
  2062.                 new changestr[16], changepos = 0, strpos = sstringPos;
  2063.                 while(changepos < 16 && sstring[strpos] && sstring[strpos] != delim)
  2064.                 {
  2065.                     changestr[changepos++] = sstring[strpos++];
  2066.                     }
  2067.                 changestr[changepos] = '\0';
  2068.                 setarg(paramPos,0,_:floatstr(changestr));
  2069.             }
  2070.             case 'p':
  2071.             {
  2072.                 delim = format[formatPos++];
  2073.                 continue;
  2074.             }
  2075.             case '\'':
  2076.             {
  2077.                 new
  2078.                     end = formatPos - 1,
  2079.                     ch;
  2080.                 while ((ch = format[++end]) && ch != '\'') {}
  2081.                 if (!ch)
  2082.                 {
  2083.                     return -1;
  2084.                 }
  2085.                 format[end] = '\0';
  2086.                 if ((ch = strfind(sstring, format[formatPos], false, sstringPos)) == -1)
  2087.                 {
  2088.                     if (format[end + 1])
  2089.                     {
  2090.                         return -1;
  2091.                     }
  2092.                     return 0;
  2093.                 }
  2094.                 format[end] = '\'';
  2095.                 sstringPos = ch + (end - formatPos);
  2096.                 formatPos = end + 1;
  2097.             }
  2098.             case 'u':
  2099.             {
  2100.                 new
  2101.                     end = sstringPos - 1,
  2102.                     id = 0,
  2103.                     bool:num = true,
  2104.                     ch;
  2105.                 while ((ch = sstring[++end]) && ch != delim)
  2106.                 {
  2107.                     if (num)
  2108.                     {
  2109.                         if ('0' <= ch <= '9')
  2110.                         {
  2111.                             id = (id * 10) + (ch - '0');
  2112.                         }
  2113.                         else
  2114.                         {
  2115.                             num = false;
  2116.                         }
  2117.                     }
  2118.                 }
  2119.                 if (num && IsPlayerConnected(id))
  2120.                 {
  2121.                     setarg(paramPos, 0, id);
  2122.                 }
  2123.                 else
  2124.                 {
  2125.                     #if !defined foreach
  2126.                         #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  2127.                         #define __SSCANF_FOREACH__
  2128.                     #endif
  2129.                     sstring[end] = '\0';
  2130.                     num = false;
  2131.                     new
  2132.                         name[MAX_PLAYER_NAME];
  2133.                     id = end - sstringPos;
  2134.                     foreach (Player, playerid)
  2135.                     {
  2136.                         GetPlayerName(playerid, name, sizeof (name));
  2137.                         if (!strcmp(name, sstring[sstringPos], true, id))
  2138.                         {
  2139.                             setarg(paramPos, 0, playerid);
  2140.                             num = true;
  2141.                             break;
  2142.                         }
  2143.                     }
  2144.                     if (!num)
  2145.                     {
  2146.                         setarg(paramPos, 0, INVALID_PLAYER_ID);
  2147.                     }
  2148.                     sstring[end] = ch;
  2149.                     #if defined __SSCANF_FOREACH__
  2150.                         #undef foreach
  2151.                         #undef __SSCANF_FOREACH__
  2152.                     #endif
  2153.                 }
  2154.                 sstringPos = end;
  2155.             }
  2156.             case 's', 'z':
  2157.             {
  2158.                 new
  2159.                     i = 0,
  2160.                     ch;
  2161.                 if (format[formatPos])
  2162.                 {
  2163.                     while ((ch = sstring[sstringPos++]) && ch != delim)
  2164.                     {
  2165.                         setarg(paramPos, i++, ch);
  2166.                     }
  2167.                     if (!i)
  2168.                     {
  2169.                         return -1;
  2170.                     }
  2171.                 }
  2172.                 else
  2173.                 {
  2174.                     while ((ch = sstring[sstringPos++]))
  2175.                     {
  2176.                         setarg(paramPos, i++, ch);
  2177.                     }
  2178.                 }
  2179.                 sstringPos--;
  2180.                 setarg(paramPos, i, '\0');
  2181.             }
  2182.             default:
  2183.             {
  2184.                 continue;
  2185.             }
  2186.         }
  2187.         while (sstring[sstringPos] && sstring[sstringPos] != delim && sstring[sstringPos] > ' ')
  2188.         {
  2189.             sstringPos++;
  2190.         }
  2191.         while (sstring[sstringPos] && (sstring[sstringPos] == delim || sstring[sstringPos] <= ' '))
  2192.         {
  2193.             sstringPos++;
  2194.         }
  2195.         paramPos++;
  2196.     }
  2197.     do
  2198.     {
  2199.         if ((delim = format[formatPos++]) > ' ')
  2200.         {
  2201.             if (delim == '\'')
  2202.             {
  2203.                 while ((delim = format[formatPos++]) && delim != '\'') {}
  2204.             }
  2205.             else if (delim != 'z')
  2206.             {
  2207.                 return delim;
  2208.             }
  2209.         }
  2210.     }
  2211.     while (delim > ' ');
  2212.     return 0;
  2213. }
Advertisement
Add Comment
Please, Sign In to add comment