Advertisement
Guest User

Script

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