Advertisement
Leon1337

1HitKill v1.1

Sep 7th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 327.89 KB | None | 0 0
  1. /*
  2. ---------------------------------------------------------------------------------------------------------------------------------------
  3.  
  4. *_*_*_*_*_*_*_*_ ---  1 Hit Kill Script Version 1.1 --- By LeonMrBonnie --- *_*_*_*_*_*_*_*_
  5.  
  6. *****FUNKTIONEN:
  7. -Automatische SQLite Integration mit Datenbänken die sich automatisch erstellen falls nicht vohanden.
  8. -Umfangreiches Adminsystem mit allen Befehlen die man braucht.
  9. -Automatischer Mapwechsel mit Scoreboard und Mapinfos.
  10. -Ingame Map erstellen mit /makemap (ID) möglich. (Nur mit Adminlevel 4)
  11. -Viele nützliche Spieler Befehle. (/hitsound, /pm, /report, /admins, /updates usw.)
  12. -Errungenschaften System bei dem man coole neue Sachen freischaltet.
  13. -Einfaches VIP System mit Vorteilen für einen VIP Spieler.
  14. -Waffenauswahl Textdraw mit /guns in dem Man seine gewünschten Waffen auswählen kann.
  15. -Statistiken Textdraw
  16. -Log System
  17. -Level System
  18. -Simples Anitcheat
  19. -Team- und Adminchat
  20. -Whitelist System
  21. -Teammitglieder im Dienst können die Map verlassen und mit /togglefly fliegen.
  22. -Einfache Datenbankverwaltung durch SQLite
  23. -Checkpoint Prison (Made by JustMe.77)
  24. -Und vieles mehr!
  25.  
  26. ---------------------------------------------------------------------------------------------------------------------------------------
  27. */
  28.  
  29. //VVVVVVVVVVVVVVVVVVVVVV  WICHTIG  VVVVVVVVVVVVVVVVVVVVVVVV
  30.  
  31. //|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  32. #define GM_NAME            "1 Hit Kill TDM | v.1.1"     //|
  33. #define ScriptVersion      "v1.1"                       //|  
  34. #define ServerName         "New Deathmatch"             //|  
  35. #define TeamspeakIP        "127.0.0.1"                  //|
  36. #define ForumDomain        "beispiel.de"                //|
  37. #define ServerDBName       "globalvars.db"              //|
  38. #define PlayerDBName       "players.db"                 //|
  39. #define BanDBName          "BanList.db"                 //|
  40.                                                         //|
  41. #define AFK_WARN_TIME      585                          //|
  42. #define AFK_KICK_TIME      600                          //|
  43.                                                         //|
  44. #define Rang1Name          "Supporter"                  //|
  45. #define Rang2Name          "Sr. Supporter"              //|
  46. #define Rang3Name          "Administrator"              //|
  47. #define Rang4Name          "Serverleiter"               //|
  48.                                                         //|
  49. #define AntiCheat          1                            //|
  50. //Um AntiCheat zu deaktivieren einfach // vor die Zeile.//|
  51. //Kann auch Ingame mit /toggleac gemacht werden.        //|
  52.                                                         //|
  53. //#define DiscordBot       1                            //|
  54. //Um DiscordBot zu deaktivieren einfach // vor die Zeile. |
  55.                                                         //|
  56. //#define DiscordServer      "MzAxNDUxMjk3MDMzNDIwODAw.C87MAg.zDohSgDBHrmdeJqzkmztr4FPSe0"
  57. //#define DiscordChannel     "301724947234029578"       //|
  58. //              Mit eigenen Daten ersetzen!             //|
  59. //|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  60.  
  61. #pragma unused ShowLoginBars
  62. #pragma unused ShowLoginTextdraws
  63.  
  64. #include <a_samp>
  65. #include <a_http>
  66. #include <zcmd>
  67. #include <strlib>
  68. #include <Dini>
  69. #include <progress2>
  70. #include <foreach>
  71. #include <sscanf2>
  72. #include <geolocation>
  73. #include <timerfix>
  74. //#include <tsconnector>
  75. #include <streamer>
  76. #include <logintextdraws-de>
  77. #include <fly>
  78. //#include <oprl>
  79.  
  80. #if defined DiscordBot
  81. #include <discord-connector>
  82. #endif
  83.  
  84. #pragma dynamic 10000
  85.  
  86. //================================= Definitions ================================
  87.  
  88. #define NONTEAM             0
  89. #define GREENTEAM           1
  90. #define BLUETEAM            2
  91. #define INFINITY (Float:0x7F800000)
  92.  
  93. #define GREEN_COLOR         0xFF3333FF
  94. #define BLUE_COLOR          0x0080FF44
  95. #define YELLOW_COLOR        0xFFFF00FF
  96. #define RED_COLOR           0xFF3333FF
  97. #define AC_COLOR            0xFF6600FF
  98. #define ADMIN_COLOR         0x88FFBBFF
  99.  
  100. #define COLOR_LIGHTBLUE 0x33CCFFAA
  101. #define COLOR_RED 0xAA3333AA
  102. #define COLOR_GREY 0xAFAFAFAA
  103. #define COLOR_YELLOW 0xFFFF00AA
  104. #define COLOR_PINK 0xFF66FFAA
  105. #define COLOR_BLUE 0x0000BBAA
  106. #define COLOR_WHITE 0xFFFFFFAA
  107. #define COLOR_DARKRED 0x660000AA
  108. #define COLOR_ORANGE 0xFF9900AA
  109. #define COLOR_BRIGHTRED 0xFF0000AA
  110. #define COLOR_INDIGO 0x4B00B0AA
  111. #define COLOR_VIOLET 0x9955DEEE
  112. #define COLOR_LIGHTRED 0xFF99AADD
  113. #define COLOR_SEAGREEN 0x00EEADDF
  114. #define COLOR_GRAYWHITE 0xEEEEFFC4
  115. #define COLOR_LIGHTNEUTRALBLUE 0xabcdef66
  116. #define COLOR_GREENISHGOLD 0xCCFFDD56
  117. #define COLOR_LIGHTBLUEGREEN 0x0FFDD349
  118. #define COLOR_NEUTRALBLUE 0xABCDEF01
  119. #define COLOR_LIGHTCYAN 0xAAFFCC33
  120. #define COLOR_LEMON 0xDDDD2357
  121. #define COLOR_MEDIUMBLUE 0x63AFF00A
  122. #define COLOR_NEUTRAL 0xABCDEF97
  123. #define COLOR_BLACK 0x00000000
  124. #define COLOR_NEUTRALGREEN 0x81CFAB00
  125. #define COLOR_DARKGREEN 0x12900BBF
  126. #define COLOR_LIGHTGREEN 0x24FF0AB9
  127. #define COLOR_DARKBLUE 0x300FFAAB
  128. #define COLOR_BLUEGREEN 0x46BBAA00
  129. #define COLOR_PINK 0xFF66FFAA
  130. #define COLOR_LIGHTBLUE 0x33CCFFAA
  131. #define COLOR_DARKRED 0x660000AA
  132. #define COLOR_PURPLE 0x800080AA
  133. #define COLOR_GRAD1 0xB4B5B7FF
  134. #define COLOR_GRAD2 0xBFC0C2FF
  135. #define COLOR_RED1 0xFF0000AA
  136. #define COLOR_GREY 0xAFAFAFAA
  137. #define COLOR_GREEN 0x33AA33AA
  138. #define COLOR_RED 0xAA3333AA
  139. #define COLOR_YELLOW 0xFFFF00AA
  140. #define COLOR_WHITE 0xFFFFFFAA
  141. #define COLOR_BROWN 0x993300AA
  142. #define COLOR_CYAN 0x99FFFFAA
  143. #define COLOR_TAN 0xFFFFCCAA
  144. #define COLOR_PINK 0xFF66FFAA
  145. #define COLOR_KHAKI 0x999900AA
  146. #define COLOR_SYSTEM 0xEFEFF7AA
  147. #define COLOR_GRAD2 0xBFC0C2FF
  148. #define COLOR_GRAD4 0xD8D8D8FF
  149. #define COLOR_GRAD6 0xF0F0F0FF
  150. #define COLOR_GRAD2 0xBFC0C2FF
  151. #define COLOR_GRAD3 0xCBCCCEFF
  152. #define COLOR_GRAD5 0xE3E3E3FF
  153. #define COLOR_GRAD1 0xB4B5B7FF
  154.  
  155. #define D_PRISONLIST 5555
  156.  
  157. #define COLOR_ORANGE 0xFF9900AA
  158. #define COLOR_LIME 0x10F441AA
  159.  
  160. #define DRAW_DISTANCE       20
  161. #define MAX_TEAMS           3
  162. #define MAX_INI_ENTRY_TEXT  80
  163. #define MAPLISTFILE         "Maps/maplist.ini"
  164.  
  165. #define PUNCH               0
  166. #define DEAGLE              24
  167. #define SHOTGUN             25
  168. #define SPAS                27
  169. #define MP5                 29
  170. #define AK47                30
  171. #define M4                  31
  172. #define RIFLE               33
  173. #define SNIPER              34
  174. #define GRENADE             16
  175.  
  176. #define DIALOG_HELPS            1
  177. #define DIALOG_LOGIN            2
  178. #define DIALOG_REGISTER         3
  179. #define DIALOG_MAPNAME          4
  180. #define DIALOG_MAPPERNAME       5
  181. #define DIALOG_REWARDS          6
  182. #define DIALOG_AWHITELIST       301
  183. #define DIALOG_RWHITELIST       302
  184. #define DIALOG_RULES            70
  185. #define DIALOG_INTERACTION      61
  186.  
  187. #define RADIO1      "www.iloveradio.de/iloveradio.m3u"
  188. #define RADIO2      "www.iloveradio.de/ilove2dance.m3u"
  189. #define RADIO3      "www.iloveradio.de/ilovethebattle.m3u"
  190. #define RADIO4      "www.iloveradio.de/ilovemashup.m3u"
  191. #define RADIO5      "www.iloveradio.de/ilovebravocharts.m3u"
  192. #define RADIO6      "www.iloveradio.de/ilovebravotubestars.m3u"
  193. //1= I love Radio, 2= I love 2 dance, 3= I love the battle, 4= I love Mashup, 5= I love Bravo Charts, 6= I love Bravo Tubestars
  194.  
  195. //================================== Variables =================================
  196. new ACKickedCount;
  197. new ACWarnsCount;
  198. new BansCount;
  199.  
  200. enum PlayerVariables
  201. {
  202.     Name[MAX_PLAYER_NAME],
  203.     URang,
  204.     ForceAC,
  205.     Warns,
  206.     PlayHours,
  207.     PlayMinutes,
  208.     VotesForKick,
  209.     Hits,
  210.     ACWarnings,
  211.     DLlast,
  212.     RegDate[64],
  213.     FPS,
  214.     Team,
  215.     LastHitWith,    //antide
  216.     LastHitBy,      //antide
  217.     LastKilled,     //tbag
  218.     Level,
  219.     ClassID,
  220.     Kills,
  221.     Deaths,
  222.     RKills,
  223.     RDeaths,
  224.     Float:RDamage,
  225.     Score,
  226.     Spree,
  227.     VIP,
  228.     MaxRoundKills,
  229.     Float:MaxRoundDamage,
  230.     Headshots,
  231.     Tbags,
  232.     PunchK,
  233.     DeagleK,
  234.     ShotgunK,
  235.     SpasK,
  236.     MP5K,
  237.     Rank,
  238.     AK47K,
  239.     M4K,
  240.     RifleK,
  241.     SniperK,
  242.     GrenadeK,
  243.     Gun2,
  244.     Gun3,
  245.     Gun4,
  246.     Gun5,
  247.     Gun6,
  248.     BlockedID,
  249.     LastMessager,
  250.     FPSWarning,
  251.     PingWarning,
  252.     PLWarning,
  253.     SpecID,
  254.     AfkTime,
  255.     bool:IsOnDuty,
  256.     bool:IsAFK,
  257.     bool:Registered,
  258.     bool:UsedSafe,
  259.     bool:LocalHost,
  260.     bool:AntiSpawnKill,
  261.     bool:UnlockedEagleEye,
  262.     bool:UnlockedMP5,
  263.     bool:UnlockedSpas,
  264.     bool:UnlockedSniper,
  265.     bool:UnlockedAK47,
  266.     bool:UnlockedM4,
  267.     bool:UnlockedGrenade,
  268.     bool:UnlockedCigar,
  269.     bool:UnlockedHorns,
  270.     bool:UnlockedFlame,
  271.     bool:TableOnScreen,
  272.     bool:Mapping,
  273.     bool:Logged,
  274.     bool:Syncing,
  275.     bool:Muted,
  276.     bool:Spawned,
  277.     bool:IsKicked,
  278.     bool:BlockedAll,
  279.     bool:ChangedWeather,
  280.     bool:OnMenu,
  281.     bool:SafeJetpack,
  282.     bool:SafeGun,
  283.     bool:Specing,
  284.     bool:Checking
  285. }
  286.  
  287. new BadWords[][200] =
  288. {
  289.      "idiot",
  290.      "stupid",
  291.      "fuck",
  292.      "pussy",
  293.      "gay",
  294.      "hurensohn",
  295.      "arschloch",
  296.      "wixxer",
  297.      "huso",
  298.      "fickfehler",
  299.      "faggot",
  300.      "nutte"
  301. };
  302.  
  303. new pickup;
  304. new safepickup;
  305. new exitpickup;
  306.  
  307. new ChatString[128];
  308. new AKAString[512];
  309. new Player[MAX_PLAYERS][PlayerVariables];
  310. new TextColor[MAX_TEAMS][10];
  311. new TDColor[MAX_TEAMS][10];
  312. new gLastHit[6][MAX_PLAYERS];
  313. new TakeDmgCD[6][MAX_PLAYERS];
  314. new Float:DamageDone[6][MAX_PLAYERS];
  315.  
  316. new bool:HitSound[MAX_PLAYERS];
  317. new bool:JoinLeaveMessages;
  318. new bool:AntiCheatActive;
  319. new bool:ChatDisabled;
  320.  
  321. new bool:Whitelist;
  322.  
  323. new DB:bans;
  324. new DB:sqliteconnection;
  325. new DB:globalvars;
  326.  
  327. new SavedText[MAX_PLAYERS];
  328.  
  329. new Menu:MapMenu;
  330. new CreateFileString[256];
  331. new TempZone;
  332. new Float:TempMax[2];
  333. new Float:TempMin[2];
  334. new Float:GSpawn1[4] = {1544.1759, -1352.7307, 329.4753, 0.0000};
  335. new Float:GSpawn2[4] = {1544.1759, -1352.7307, 329.4753, 0.0000};
  336. new Float:GSpawn3[4] = {1544.1759, -1352.7307, 329.4753, 0.0000};
  337. new Float:BSpawn1[4] = {1544.1759, -1352.7307, 329.4753, 0.0000};
  338. new Float:BSpawn2[4] = {1544.1759, -1352.7307, 329.4753, 0.0000};
  339. new Float:BSpawn3[4] = {1544.1759, -1352.7307, 329.4753, 0.0000};
  340. new MapZone;
  341. new Float:Min[2];
  342. new Float:Max[2];
  343. new MapInterior = 0;
  344. new MapFileName[64];
  345. new MapName[64];
  346. new MapperName[64];
  347. new CurrentMap;
  348. new MapObjects[2000];
  349. new AllowEnter = 1;
  350. new EndTime;
  351. new MinFPS = 4;
  352. new MaxPing = 1200;
  353.  
  354. new AdminsOnline;
  355.  
  356. new ClickedPlayer[MAX_PLAYERS];
  357.  
  358. new GKills;
  359. new BKills;
  360. new bool:ServerLocked = false;
  361. new bool:Flying[MAX_PLAYERS];
  362. new JoinMessageDisabled[MAX_PLAYERS];
  363.  
  364. new CheckPointCounter[MAX_PLAYERS];
  365. new MaxCheckPoints[MAX_PLAYERS];
  366. new bool:pJailed[MAX_PLAYERS];
  367. new pCheckpoint[MAX_PLAYERS];
  368. new PlayerText:CheckpointTD[MAX_PLAYERS][7];
  369. new PlayerText:LoginTD[MAX_PLAYERS][12];
  370.  
  371. //easter
  372.  
  373. new Float:EasterX = 0.0;
  374. new Float:EasterY = 0.0;
  375. new Text3D:EasterText;
  376. new bool:EggFound = false;
  377.  
  378. new Text3D:OnDuty[MAX_PLAYERS];
  379. new Text3D:BodyStuffs[MAX_PLAYERS];
  380. new Text3D:VIPStuffs[MAX_PLAYERS];
  381.  
  382. new Text:BlackBox;
  383.  
  384. // -- BC Setup --
  385. #define BC_MODEL 1210
  386. new BCID;
  387. // -- End --
  388.  
  389. // -- By fakeD
  390. #pragma tabsize 0
  391. #define GivePlayerScore(%0,%1) SetPlayerScore(%0,GetPlayerScore(%0) + %1)
  392.  
  393. new gRandomMessage[][] =
  394. {
  395.     "* Schaut auf unserer Homepage vorbei um immer auf dem neusten Stand zu sein! '"ForumDomain"'",
  396.     "* Ein Cheater hat dich gekillt? Jemand hat sonstige Regeln verbrochen? /report [ID] [Grund] und wir helfen dir!",
  397.     "* Hast du schon die Regeln durchgelesen? Wenn nicht, mache es jetzt mit /rules.",
  398.     "* Du willst tolle Boni erhalten und nicht viel zahlen? Melde dich bei einem Teammitglied um VIP zu werden!",
  399.     "* Vergiss nicht auf unserem Teamspeak vorbeizuschauen! Um die IP zu sehen benutze /teamspeak oder /ts.",
  400.     "* Wir suchen noch Supporter und Admins. Benutze /bewerben und melde dich bei einem Serverleiter bei Interesse!",
  401.     "* Du willst die Teammitglieder sehen die online sind? Nutze /admins!",
  402.     "* Nutze /pm um jemand eine private Nachricht zu schreiben.",
  403.     "* Du kannst deine eigenen Stats mit /stats sehen.",
  404.     "* Nutze /stats [ID] um die Stats von jemand anderem zu sehen!",
  405.     "* Setze ein ! vor deine Nachricht um die Nachricht nur für dein Team sichtbar zu machen.",
  406.     "* Du kannst mit /team das komplette Serverteam sehen.",
  407.     "* Mit /pm kannst du jemandem eine private Nachricht schreiben.",
  408.     "* Um auf eine private Nachricht zu antworten nutze /r.",
  409.     "* Danke fürs Spielen auf unserem Server.",
  410.     "* Wenn du private Nachrichten von einer einzelnen Person deaktivieren möchtest, nutze /blockpm [ID].",
  411.     "* Du kannst den Befehl /w benutzen um das Wetter zu ändern, und /t um die Uhrzeit zu ändern.",
  412.     "* Mit dem Befehl /bewerben kannst du Infos sehen falls du dich bewerben willst.",
  413.     "* Du kannst mit /hitsound den Hitsound aktivieren oder deaktivieren.",
  414.     "* Um alle Teammitglieder zu sehen nutze /team."
  415. };
  416.  
  417. new aVehicleNames[212][] =
  418. {
  419.         {"Landstalker"},    {"Bravura"},            {"Buffalo"},            {"Linerunner"},     {"Perrenial"},      {"Sentinel"},       {"Dumper"},
  420.         {"Firetruck"},      {"Trashmaster"},        {"Stretch"},            {"Manana"},         {"Infernus"},       {"Voodoo"},         {"Pony"},           {"Mule"},
  421.         {"Cheetah"},        {"Ambulance"},          {"Leviathan"},          {"Moonbeam"},       {"Esperanto"},      {"Taxi"},           {"Washington"},
  422.         {"Bobcat"},         {"Mr Whoopee"},         {"BF Injection"},       {"Hunter"},         {"Premier"},        {"Enforcer"},       {"Securicar"},
  423.         {"Banshee"},        {"Predator"},           {"Bus"},{"Rhino"},      {"Barracks"},       {"Hotknife"},       {"Artic Trailer 1"},      {"Previon"},
  424.         {"Coach"},          {"Cabbie"},             {"Stallion"},           {"Rumpo"},          {"RC Bandit"},      {"Romero"},         {"Packer"},         {"Monster"},
  425.         {"Admiral"},        {"Squalo"},             {"Seasparrow"},         {"Pizzaboy"},       {"Tram"},           {"Artic Trailer 2"},      {"Turismo"},
  426.         {"Speeder"},        {"Reefer"},             {"Tropic"},             {"Flatbed"},        {"Yankee"},         {"Caddy"},          {"Solair"},         {"Berkley's RC Van"},
  427.         {"Skimmer"},        {"PCJ-6_0_0"},          {"Faggio"},             {"Freeway"},        {"RC Baron"},       {"RC Raider"},      {"Glendale"},       {"Oceanic"},
  428.         {"Sanchez"},        {"Sparrow"},            {"Patriot"},            {"Quad"},           {"Coastguard"},     {"Dinghy"},         {"Hermes"},         {"Sabre"},
  429.         {"Rustler"},        {"ZR-3_5_0"},           {"Walton"},             {"Regina"},         {"Comet"},{"BMX"},  {"Burrito"},        {"Camper"},         {"Marquis"},
  430.         {"Baggage"},        {"Dozer"},              {"Maverick"},           {"News Chopper"},   {"Rancher"},        {"FBI Rancher"},    {"Virgo"},          {"Greenwood"},
  431.         {"Jetmax"},         {"Hotring"},            {"Sandking"},           {"Blista Compact"}, {"Police Maverick"},{"Boxville"},       {"Benson"},
  432.         {"Mesa"},           {"RC Goblin"},          {"Hotring Racer A"},    {"Hotring Racer B"},{"Bloodring Banger"},{"Rancher"},
  433.         {"Super GT"},       {"Elegant"},            {"Journey"},            {"Bike"},           {"Mountain Bike"},  {"Beagle"},         {"Cropdust"},       {"Stunt"},
  434.         {"Tanker"},         {"Roadtrain"},          {"Nebula"},             {"Majestic"},       {"Buccaneer"},      {"Shamal"},         {"Hydra"},          {"FCR-900"},
  435.         {"NRG-500"},        {"HPV1000"},            {"Cement Truck"},       {"Tow Truck"},      {"Fortune"},        {"Cadrona"},        {"FBI Truck"},
  436.         {"Willard"},        {"Forklift"},           {"Tractor"},            {"Combine"},        {"Feltzer"},        {"Remington"},      {"Slamvan"},
  437.         {"Blade"},          {"Freight"},            {"Streak"},             {"Vortex"},         {"Vincent"},        {"Bullet"},         {"Clover"},         {"Sadler"},
  438.         {"Firetruck LA"},   {"Hustler"},            {"Intruder"},           {"Primo"},          {"Cargobob"},       {"Tampa"},          {"Sunrise"},        {"Merit"},
  439.         {"Utility"},        {"Nevada"},             {"Yosemite"},           {"Windsor"},        {"Monster A"},      {"Monster B"},      {"Uranus"},         {"Jester"},
  440.         {"Sultan"},         {"Stratum"},            {"Elegy"},              {"Raindance"},      {"RC Tiger"},       {"Flash"},          {"Tahoma"},         {"Savanna"},
  441.         {"Bandito"},        {"Freight Flat"},       {"Streak Carriage"},    {"Kart"},           {"Mower"},          {"Duneride"},       {"Sweeper"},
  442.         {"Broadway"},       {"Tornado"},            {"AT-400"},             {"DFT-30"},         {"Huntley"},        {"Stafford"},       {"BF-400"},         {"Newsvan"},
  443.         {"Tug"},            {"Chemical Trailer"},          {"Emperor"},            {"Wayfarer"},       {"Euros"},          {"Hotdog"},         {"Club"},           {"Freight Carriage"},
  444.         {"Artic Trailer 3"},      {"Andromada"},          {"Dodo"},               {"RC Cam"},         {"Launch"},         {"Police Car LSPD"},{"Police Car SFPD"},
  445.         {"Police _LVPD"},   {"Police Ranger"},      {"Picador"},            {"Blue Van"},      {"Alpha"},          {"Phoenix"},        {"Glendale"},
  446.         {"Sadler"},         {"Luggage Trailer A"},  {"Luggage Trailer B"},  {"Stair Trailer"},{"Boxville"},         {"Farm Plow"},
  447.         {"Utility Trailer"}
  448. };
  449.  
  450. new WeaponNames[55][] =
  451. {
  452.         {"Punch"},{"Brass Knuckles"},{"Golf Club"},{"Nite Stick"},{"Knife"},{"Baseball Bat"},{"Shovel"},{"Pool Cue"},{"Katana"},{"Chainsaw"},{"Purple Dildo"},
  453.         {"Smal White Vibrator"},{"Large White Vibrator"},{"Silver Vibrator"},{"Flowers"},{"Cane"},{"Grenade"},{"Tear Gas"},{"Molotov Cocktail"},
  454.         {""},{""},{""},
  455.         {"9mm"},{"Silenced 9mm"},{"Deagle"},{"Shotgun"},{"Sawn-off"},{"Combat"},{"Micro SMG"},{"MP5"},{"AK-47"},{"M4"},{"Tec9"},
  456.         {"Rifle"},{"Sniper"},{"Rocket"},{"HS Rocket"},{"Flamethrower"},{"Minigun"},{"Satchel Charge"},{"Detonator"},
  457.         {"Spraycan"},{"Fire Extinguisher"},{"Camera"},{"Nightvision Goggles"},{"Thermal Goggles"},{"Parachute"}, {"Fake Pistol"},{""}, {"Vehicle"}, {"Helicopter Blades"},
  458.         {"Explosion"}, {""}, {"Suicide"}, {"Collision"}
  459. };
  460.  
  461. enum pOldData
  462. {
  463.   Float:p_X,
  464.   Float:p_Y,
  465.   Float:p_Z,
  466.   Float:p_A,
  467.   p_Interior,
  468.   p_VirtualWorld,
  469.   weapons[13],
  470.   ammunation[13]
  471. }
  472.  
  473. new pData[MAX_PLAYERS][pOldData];
  474.  
  475. new Float:rCheckPoints[][] =
  476. {
  477.   {-1399.22, 971.93, 1024.16},
  478.   {-1423.81, 958.51, 1025.90},
  479.   {-1442.71, 939.23, 1036.58},
  480.   {-1457.44, 972.85, 1025.37},
  481.   {-1482.89, 985.16, 1027.83},
  482.   {-1490.10, 996.55, 1028.99},
  483.   {-1507.73, 1012.36, 1037.92},
  484.   {-1443.6830,999.0014,1024.2451},
  485.   {-1396.5554,977.9340,1023.8122},
  486.   {-1482.00, 1024.44, 1031.45},
  487.   {-1465.60, 1050.94, 1038.48},
  488.   {-1436.01, 1035.97, 1028.59},
  489.   {-1417.93, 1047.92, 1034.22},
  490.   {-1384.29, 1054.87, 1038.42},
  491.   {-1359.04, 1041.35, 1030.23},
  492.   {-1354.06, 1020.09, 1025.47},
  493.   {-1324.05, 974.48, 1026.95}
  494. };
  495.  
  496. //================================= Textdraws ==================================
  497.  
  498. new Text: WebTextTD;
  499. new Text: BalanceTD;
  500. new Text: ScoreTableTD[6];
  501. new Text: RoundStatsTD;
  502. new Text:WillkommenText;
  503.  
  504. new Text:DigiHP[MAX_PLAYERS];
  505. new Text:DigiAP[MAX_PLAYERS];
  506.  
  507. new PlayerText: GboxTD;
  508. new PlayerText: GunTypes;
  509. new PlayerText: GunNames1;
  510. new PlayerText: GunNames2;
  511. new PlayerText: GunNames3;
  512. new PlayerText: ExitTD;
  513. new PlayerText: G1TD;
  514. new PlayerText: G2TD;
  515. new PlayerText: G2bTD;
  516. new PlayerText: G30TD;
  517. new PlayerText: G3TD;
  518. new PlayerText: G3bTD;
  519. new PlayerText: G40TD;
  520. new PlayerText: G4TD;
  521. new PlayerText: G5TD;
  522. new PlayerText: G5bTD;
  523. new PlayerText: G60TD;
  524. new PlayerText: G6TD;
  525.  
  526. new PlayerText:TDEditor_PTD[MAX_PLAYERS][8];
  527.  
  528. new PlayerBar: Bar1;
  529.  
  530. new PlayerText: FPSPingPacket;
  531. new PlayerText: DoingDamage[3];
  532. new PlayerText: GettingDamaged[3];
  533. new PlayerText: DeathText[2];
  534. new PlayerText: ScoreTD;
  535. new PlayerText: Ann1TD;
  536. new PlayerText: Ann2TD;
  537. new PlayerText: AInfoTD;
  538. new PlayerText: HideTD;
  539. new PlayerText: AchTD;
  540.  
  541. #if defined DiscordBot
  542. new DCC_Channel:g_WelcomeChannelId;
  543. #endif
  544.  
  545. //=================================== Main =====================================
  546.  
  547. main()
  548. {
  549.  
  550. }
  551.  
  552. public OnGameModeInit()
  553. {  
  554.     new iString[128];
  555.     #if defined DiscordBot
  556.     DCC_Connect(""DiscordServer"");
  557.     if (_:g_WelcomeChannelId == 0)
  558.         g_WelcomeChannelId = DCC_FindChannelById(""DiscordChannel"");
  559.     DCC_SendChannelMessage(g_WelcomeChannelId, "Der SAMP Bot wurde erfolgreich geladen.");
  560.     print("[SCRIPT] Discord Bot erfolgreich geladen.");
  561.     #endif
  562.    
  563.     pickup = CreatePickup(1318, 1, 775.7825, -1020.7220, 26.3594, 0);
  564.     safepickup = CreatePickup(1212, 1, 1230.7969, -807.1723, 1083.4078, 0);
  565.     exitpickup = CreatePickup(1318, 1, 1234.2982, -813.6232, 1084.0078, 0);
  566.     Create3DTextLabel("Admin Villa\n{FFFF00}Eingang\n{F81414}Zutritt nur für Teammitglieder", COLOR_GREEN, 775.7825, -1020.7220, 27.1594, DRAW_DISTANCE, 0, 1);
  567.     Create3DTextLabel("Safe\n{F81414}Work in Progress", COLOR_YELLOW, 1230.7219, -807.1723, 1083.7078, DRAW_DISTANCE, 0, 1);
  568.     Create3DTextLabel("Admin Villa\n{FFFF00}Ausgang", COLOR_GREEN, 1234.2982, -813.6232, 1084.8078, DRAW_DISTANCE, 0, 1);
  569.    
  570.     print("[SCRIPT] Die Adminvilla wurde erfolgreich geladen.");
  571.    
  572.     ChatDisabled = false;
  573.     JoinLeaveMessages = true;
  574.     Whitelist = false;
  575.     AntiCheatActive = true;
  576.     UsePlayerPedAnims();
  577.     ShowPlayerMarkers(PLAYER_MARKERS_MODE_OFF);
  578.     AllowInteriorWeapons(1);
  579.     DisableInteriorEnterExits();
  580.     EnableStuntBonusForAll(0);
  581.     SetNameTagDrawDistance(DRAW_DISTANCE);
  582.     EnableVehicleFriendlyFire();
  583.     SetGameModeText(GM_NAME);
  584.     LoadMainTextDraws();
  585.     CreateGlobalLoginTextDraws();
  586.     print("[SCRIPT] Textdraws erfolgreich geladen.");
  587.  
  588.     TextColor[NONTEAM]      =   "{DDDDDD}";
  589.     TextColor[GREENTEAM]    =   "{55FF55}";
  590.     TextColor[BLUETEAM]     =   "{0080FF}";
  591.     TDColor[NONTEAM]        =   "~w~";
  592.     TDColor[GREENTEAM]      =   "~R~~H~~H~";
  593.     TDColor[BLUETEAM]       =   "~b~~h~~h~";
  594.    
  595.     BCID = -1;
  596.  
  597.     LoadNextMap();
  598.  
  599.     SetTimer("OnScriptUpdate", 1000, true);
  600.     SetTimer("OnRandomMessageChange", 90000, true);
  601.     SetTimer("UpdateTeamBalance", 3000, true);
  602.     SetTimer("AutoSave",300000,true);
  603.     print("[SCRIPT] Alle Timer erfolgreich gestartet.");
  604.    
  605.     print(" ");
  606.    
  607.     print("[SCRIPT] Verbindung mit Serverdatenbank wird hergestellt...");
  608.     globalvars = db_open(""ServerDBName"");
  609.    
  610.     new DBResult:vars = db_query(globalvars, "SELECT * FROM `Variables`");
  611.     if(db_num_rows(vars))
  612.     {
  613.         db_get_field_assoc(vars, "ACKicked", iString, sizeof(iString));
  614.         ACKickedCount = strval(iString);
  615.        
  616.         db_get_field_assoc(vars, "ACWarns", iString, sizeof(iString));
  617.         ACWarnsCount = strval(iString);
  618.     }
  619.     print("[SCRIPT] Verbindung mit Serverdatenbank erfolgreich hergestellt.");
  620.    
  621.     print(" ");
  622.    
  623.     print("[SCRIPT] Verbindung mit Spielerdatenbank wird hergestellt...");
  624.    
  625.     sqliteconnection = db_open(""PlayerDBName"");
  626.     new DBResult:db_resultt,anzahl;
  627.     db_resultt = db_query(sqliteconnection, "SELECT COUNT(*) FROM `Players`");
  628.     anzahl = db_get_field_int(db_resultt,0);
  629.     db_free_result(db_resultt);
  630.     print("[SCRIPT] Verbindung mit Spielerdatenbank erfolgreich hergestellt.");
  631.     if(anzahl > 1 || anzahl == 0)
  632.     {
  633.         printf("[SCRIPT] Es wurden %d Spieler aus der Datenbank geladen.",anzahl);
  634.     }
  635.     if(anzahl == 1)
  636.     {
  637.         printf("[SCRIPT] Es wurde %d Spieler aus der Datenbank geladen.",anzahl);
  638.     }
  639.    
  640.     print(" ");
  641.    
  642.     AddPlayerClassEx(GREENTEAM, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); //green granny
  643.     AddPlayerClassEx(GREENTEAM, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); //green barber like guy
  644.     AddPlayerClassEx(GREENTEAM, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); //green shorts beach guy
  645.     AddPlayerClassEx(GREENTEAM, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); //green Helena girl
  646.  
  647.     AddPlayerClassEx(BLUETEAM, 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)//blue hobo
  648.     AddPlayerClassEx(BLUETEAM, 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)//blue barber blonde
  649.     AddPlayerClassEx(BLUETEAM, 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)//blue shorts beach guy
  650.     AddPlayerClassEx(BLUETEAM, 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)//blue farmer girl
  651.    
  652.    
  653.     print("[SCRIPT] Verbindung mit Banndatenbank wird hergestellt...");
  654.     bans = db_open(""BanDBName"");
  655.     new DBResult:db_result;
  656.     db_result = db_query(bans, "SELECT COUNT(*) FROM `BANNED`");
  657.     anzahl = db_get_field_int(db_result,0);
  658.     db_free_result(db_result);
  659.     print("[SCRIPT] Verbindung mit Banndatenbank erfolgreich hergestellt.");
  660.     if(anzahl > 1 || anzahl == 0)
  661.     {
  662.         printf("[SCRIPT] Es wurden %d gebannte Accounts aus der Datenbank geladen.",anzahl);
  663.     }
  664.     if(anzahl == 1)
  665.     {
  666.         printf("[SCRIPT] Es wurde %d gebannter Account aus der Datenbank geladen.",anzahl);
  667.     }
  668.    
  669.     BansCount = anzahl;
  670.    
  671.     print(" ");
  672.  
  673.     print("[SCRIPT] |-----------------------------|");
  674.     print("[SCRIPT] | Script erfolgreich geladen. |");
  675.     print("[SCRIPT] |        Version "ScriptVersion"         |");
  676.     print("[SCRIPT] |    Made by LeonMrBonnie     |");
  677.     print("[SCRIPT] |-----------------------------|");
  678.    
  679.     print(" ");
  680.  
  681.  
  682. //53    250     45      191     230     177     154     198
  683.     return 1;
  684. }  
  685.  
  686. forward OnScriptUpdate();
  687. public OnScriptUpdate()
  688. {
  689.    
  690.     #if defined AntiCheat
  691.     if(AntiCheatActive == true)
  692.     {
  693.     ACChecks();
  694.     }
  695.     #endif
  696.    
  697.     new iString[200];
  698.    
  699.  
  700.     new Float:HP;
  701.    
  702.     foreach(new i : Player)
  703.     {
  704.         if(IsPlayerConnected(i) && Player[i][Spawned] == true && Player[i][Mapping] == false && Player[i][TableOnScreen] == false && EndTime > 0 && Player[i][Specing] == false && pJailed[i] == false && Player[i][IsOnDuty] == false)
  705.         {
  706.             GetPlayerHealth(i, HP);
  707.             if( (IsPlayerInArea(i,Min[0]-25, Max[0]+25, Min[1]-25, Max[1]+25) != 1) && HP > 0)
  708.             {
  709.                 SetPlayerHealth(i, HP-5);
  710.                 GameTextForPlayer(i, "~r~~h~Bleib auf der Map ~r~~h~oder oder du wirst gekillt!", 1000, 3);
  711.             }
  712.         }
  713.        
  714.         if(Player[i][Score] >= Player[i][URang] * 350 && Player[i][Logged])
  715.         {
  716.             Player[i][URang]++;
  717.             GameTextForPlayer(i, "~g~~h~LEVEL UP!", 2300, 6);
  718.             format(iString,sizeof(iString),"LEVELUP: Du bist jetzt Level %d! Glückwunsch!",Player[i][URang]);
  719.             SendClientMessage(i, COLOR_DARKGREEN, iString);
  720.         }
  721.        
  722.         if(Player[i][ForceAC] == 1 && Player[i][ACWarnings] >= 1)
  723.         {
  724.            SystemBan(i, "Cheats/Hacks");
  725.         }
  726.        
  727.         if(Player[i][ACWarnings] >= 5 && !Player[i][IsKicked])
  728.         {
  729.            ACKickedCount++;
  730.            format(iString,sizeof(iString),"ANTICHEAT: %s wurde gekickt. [Grund: Hacks/Cheats] [Es wurden bereits %d Spieler vom AntiCheat gekickt.]",GetName(i),ACKickedCount);
  731.            SendClientMessageToAll(YELLOW_COLOR,iString);
  732.            format(iString,sizeof(iString),"ANTICHEAT: Du wurdest vom AntiCheat gekickt. [ID: %d]",ACKickedCount);
  733.            SendClientMessage(i, AC_COLOR, iString);
  734.            format(iString,sizeof(iString),"%s wurde automatisch gekickt. [Grund: Hacks/Cheats] (5/5 AC Warnungen) [ID: %d]",GetName(i),ACKickedCount);
  735.            KickLog(iString);
  736.            ACLog(iString);
  737.            SetTimerEx("OnPlayerKicked", 300, false, "i", i);
  738.         }
  739.        
  740.         if(Player[i][PlayMinutes] == 60)
  741.         {
  742.              SendClientMessage(i, COLOR_BLUEGREEN, "Du hast eine weitere Stunde gespielt.");
  743.              GiveScore(i, 10 * Player[i][PlayHours]);
  744.              Player[i][PlayHours]++;
  745.              Player[i][PlayMinutes] = 0;
  746.         }
  747.  
  748.         if(Player[i][Specing] == true)
  749.         {
  750.             UpdateAInfo(i);
  751.             PlayerTextDrawShow(i, AInfoTD);
  752.         }
  753.  
  754.         if(Player[i][Checking] == true)
  755.         {
  756.             UpdateAInfo(i);
  757.             PlayerTextDrawShow(i, AInfoTD);
  758.             PlayerTextDrawShow(i, HideTD);
  759.         }
  760.  
  761.         if(Player[i][Specing] == false && Player[i][Checking] == false)
  762.         {
  763.             PlayerTextDrawHide(i, AInfoTD);
  764.             PlayerTextDrawHide(i, HideTD);
  765.         }
  766.        
  767.         if(Player[i][IsAFK] == true)
  768.         {
  769.             Player[i][AfkTime]++;
  770.         }
  771.        
  772.         if(Player[i][AfkTime] == AFK_WARN_TIME)
  773.         {
  774.             SendClientMessage(i,COLOR_BRIGHTRED, "--------------------------------------------------------------------------");
  775.             SendClientMessage(i,COLOR_RED, "Du bist zu lange AFK! Begebe dich aus dem AFK Modus oder du wirst gekickt.");
  776.             SendClientMessage(i,COLOR_BRIGHTRED, "--------------------------------------------------------------------------");
  777.         }
  778.        
  779.         if(Player[i][AfkTime] >= AFK_KICK_TIME)
  780.         {
  781.             SendClientMessage(i, COLOR_RED1, "Da du zu lange AFK warst, wirst du gekickt.");
  782.             format(iString,sizeof(iString),"KICK: %s wurde automatisch gekickt. [Grund: Zu lange AFK]",GetName(i));
  783.             SendClientMessageToAll(COLOR_YELLOW, iString);
  784.             format(iString,sizeof(iString),"%s wurde automatisch gekickt. [Grund: Zu lange AFK]",GetName(i));
  785.             KickLog(iString);
  786.             SetTimerEx("OnPlayerKicked", 300, false, "i", i);
  787.         }
  788.        
  789.         if(Player[i][Warns] >= 5)
  790.         {
  791.             SendClientMessage(i,COLOR_RED, "Du hast 5/5 Verwarnungen, du wirst jetzt gekickt!");
  792.             SetTimerEx("OnPlayerKicked", 300, false, "i", i);
  793.             format(iString,sizeof(iString),"KICK: %s wurde automatisch gekickt. [Grund: 5/5 Verwarnungen]",GetName(i));
  794.             SendClientMessageToAll(COLOR_YELLOW,iString);
  795.             format(iString,sizeof(iString),"%s wurde automatisch gekickt. [Grund: 5/5 Verwarnungen]",GetName(i));
  796.             KickLog(iString);
  797.         }
  798.        
  799.         format(iString,sizeof(iString),"~b~Kills: ~g~%d",Player[i][Kills]);
  800.         PlayerTextDrawSetString(i, TDEditor_PTD[i][2], iString);
  801.  
  802.         new string[32],string2[32],string3[48];
  803.         format(string,sizeof(string),"~r~Tode: ~g~%d",Player[i][Deaths]);
  804.         PlayerTextDrawSetString(i, TDEditor_PTD[i][3], string);
  805.  
  806.         format(string2,sizeof(string2),"~y~Score: ~g~%d",Player[i][Score]);
  807.         PlayerTextDrawSetString(i, TDEditor_PTD[i][4], string2);
  808.  
  809.         format(string3,sizeof(string3),"~g~Rang: ~b~%s",GetRang(i));
  810.         PlayerTextDrawSetString(i, TDEditor_PTD[i][6], string3);
  811.  
  812.         new Float:x, Float:y, Float:z;
  813.         new tbagged = Player[i][LastKilled];
  814.  
  815.         GetPlayerPos(tbagged, x, y, z);
  816.  
  817.         if(IsPlayerInArea(i, x-2, x+2, y-2, y+2) && GetPlayerSpecialAction(i) == SPECIAL_ACTION_DUCK)
  818.         {
  819.             format(iString, sizeof(iString), "%s%s {FFFF00}hat %s%s{FFFF00} geT-bagged und seine Munition aufgefüllt!", TextColor[Player[i][Team]], Player[i][Name], TextColor[Player[tbagged][Team]], Player[tbagged][Name]);
  820.             SendClientMessageToAll(YELLOW_COLOR, iString);
  821.             GiveScore(i, 5);
  822.             GivePlayerMoney(i, 4000);
  823.             Player[i][Tbags]++;
  824.             switch(Player[i][Team])
  825.             {
  826.                 case GREENTEAM: SendClientMessage(i, GREEN_COLOR, "+5 Punkte für T-bagging!");
  827.                 case BLUETEAM:  SendClientMessage(i, BLUE_COLOR, "+5 Punkte für T-bagging!");
  828.             }
  829.             Player[i][LastKilled] = -1;
  830.            
  831.             new Weapon[13], Ammo[13], InHandID = GetPlayerWeapon(i);
  832.            
  833.             for(new k = 0; k < 13; k++) GetPlayerWeaponData(i, k, Weapon[k], Ammo[k]);
  834.  
  835.             if(Player[i][VIP] == 1)
  836.             {
  837.                 if(Ammo[2] < 200) SetPlayerAmmo(i, DEAGLE, 200); //deagle
  838.                 if(Ammo[3] < 200) SetPlayerAmmo(i, Player[i][Gun2], 200); //shotgun
  839.                 if(Ammo[4] < 200) SetPlayerAmmo(i, Player[i][Gun3], 400); //ak
  840.                 if(Ammo[5] < 400) SetPlayerAmmo(i, Player[i][Gun4], 200); //mp5
  841.                 if(Ammo[6] < 200) SetPlayerAmmo(i, Player[i][Gun5], 200); //sniper
  842.                 if(Ammo[8] < 2) SetPlayerAmmo(i, Player[i][Gun6], 2); //grenade
  843.             }
  844.             else if(Player[i][VIP] == 0)
  845.             {
  846.                 if(Ammo[2] < 100) SetPlayerAmmo(i, DEAGLE, 100); //deagle
  847.                 if(Ammo[3] < 100) SetPlayerAmmo(i, Player[i][Gun2], 100); //shotgun
  848.                 if(Ammo[4] < 100) SetPlayerAmmo(i, Player[i][Gun3], 200); //ak
  849.                 if(Ammo[5] < 200) SetPlayerAmmo(i, Player[i][Gun4], 100); //mp5
  850.                 if(Ammo[6] < 100) SetPlayerAmmo(i, Player[i][Gun5], 100); //sniper
  851.                 if(Ammo[8] == 0) SetPlayerAmmo(i, Player[i][Gun6], 1); //grenade
  852.             }
  853.            
  854.             SetPlayerArmedWeapon(i, InHandID);
  855.  
  856.             if( Player[i][Tbags] == 5 || Player[i][Tbags] == 10 || Player[i][Tbags] == 15 ||
  857.                 Player[i][Tbags] == 20 || Player[i][Tbags] == 25 || Player[i][Tbags] == 30 ||
  858.                 Player[i][Tbags] == 35 || Player[i][Tbags] == 40 || Player[i][Tbags] == 45 ||
  859.                 Player[i][Tbags] == 49 )
  860.             {
  861.                 format(iString, sizeof(iString), "Eier aus Stahl~n~~n~%d / 50 T-bags", Player[i][Tbags]);
  862.                 ShowAch(i, iString, Player[i][Tbags], 50);
  863.             }
  864.            
  865.             if(Player[i][Tbags] == 50       && Player[i][UnlockedHorns] == false)
  866.             {
  867.                 SendClientMessage(i, YELLOW_COLOR, "Hörner freigeschaltet! Du wirst bei deinem nächsten Spawn Hörner haben.");
  868.                 PlayerPlaySound(i, 1133, 0, 0, 0);
  869.                 format(iString, sizeof(iString), "~g~~h~~h~~h~Errungenschaft erhalten!~n~~n~~g~~h~~h~~h~Eier aus Stahl~n~%d / 50 T-bags~n~Du spawnst jetzt mit Hoernern!", Player[i][Tbags]);
  870.                 ShowAch(i, iString, Player[i][Tbags], 50);
  871.             }
  872.             CheckRewards(i);
  873.         }
  874.     }
  875.  
  876.     EndTime--;
  877.     format(iString, sizeof(iString), "%sTeam Rot Kills: ~w~%d                                   ~y~%02d:%02d                                    %sTeam Blau Kills: ~w~%d", TDColor[GREENTEAM], GKills, EndTime/60, EndTime%60, TDColor[BLUETEAM], BKills);
  878.     TextDrawSetString(RoundStatsTD, iString);
  879.  
  880.     if(EndTime < 0)
  881.     {
  882.         format(iString, sizeof(iString), "%sTeam Rot Kills: ~w~%d                                   ~r~~h~~h~ZEIT VORBEI!                                   %sTeam Blau Kills: ~w~%d", TDColor[GREENTEAM], GKills, TDColor[BLUETEAM], BKills);
  883.         TextDrawSetString(RoundStatsTD, iString);
  884.     }
  885.  
  886.     if(EndTime == 0)
  887.     {
  888.         if(GKills > BKills)
  889.         {
  890.             GameTextForAll("~r~~h~~h~Team Rot hat ~w~gewonnen!", 5000, 4);
  891.             OnRoundEnd(GREENTEAM);
  892.         }
  893.         else if(GKills < BKills)
  894.         {
  895.             GameTextForAll("~b~~h~~h~Team Blau hat ~w~gewonnen!", 5000, 4);
  896.  
  897.             OnRoundEnd(BLUETEAM);
  898.         }
  899.         else
  900.         {
  901.             EndTime = 30;
  902.         }
  903.     }
  904.  
  905.     if(EndTime == 419)
  906.     {
  907.         foreach(new i : Player)
  908.         {
  909.             if(Player[i][ChangedWeather] == false)
  910.             {
  911.                 new weatherrandom = random(19);
  912.                 SetPlayerWeather(i, weatherrandom);
  913.  
  914.                 new timerandom = random(23);
  915.                 SetPlayerTime(i, timerandom, 0);
  916.             }
  917.         }
  918.     }
  919.  
  920.  
  921.     foreach(new i : Player)
  922.     {
  923.         new pPing = GetPlayerPing(i);
  924.         new Float:pPacket = GetPlayerPacketLoss(i);
  925.         GetPlayerFPS(i);
  926.  
  927.         if(IsPlayerConnected(i) && Player[i][Spawned] == true && Player[i][FPS] < MinFPS && Player[i][FPS] != 0)
  928.         {
  929.             Player[i][FPSWarning]++;
  930.             format(iString,sizeof(iString),"WARNUNG: Niedrige FPS! Warnung %d/5", Player[i][FPSWarning]);
  931.             SendClientMessage(i, 0xCCCCCCFF, iString);
  932.  
  933.             if (Player[i][FPSWarning] == 5)
  934.             {
  935.                 format(iString, sizeof(iString), "KICK: %s wurde automatisch gekickt. [Grund: Zu niedrige FPS]", Player[i][Name]);
  936.                 SendClientMessageToAll(COLOR_YELLOW, iString);
  937.                 SetTimerEx("OnPlayerKicked", 500, false, "i", i);
  938.             } else if (Player[i][FPSWarning] > 5) {
  939.                 Player[i][FPSWarning] = 0;
  940.             }
  941.         } else  {
  942.             Player[i][FPSWarning] = 0;
  943.         }
  944.  
  945.         if(IsPlayerConnected(i) && Player[i][Spawned] == true && pPing > MaxPing)
  946.         {
  947.             Player[i][PingWarning]++;
  948.             format(iString,sizeof(iString),"WARNUNG: Hoher Ping! Warnung %d/10", Player[i][PingWarning]);
  949.             SendClientMessage(i, 0xCCCCCCFF, iString);
  950.  
  951.             if (Player[i][PingWarning] == 10)
  952.             {
  953.                 format(iString, sizeof(iString), "KICK: %s wurde automatisch gekickt. [Grund: Zu hoher Ping]", Player[i][Name]);
  954.                 SendClientMessageToAll(COLOR_YELLOW, iString);
  955.                 SetTimerEx("OnPlayerKicked", 500, false, "i", i);
  956.             } else if (Player[i][PingWarning] > 10) {
  957.                 Player[i][PingWarning] = 0;
  958.             }
  959.         } else  {
  960.             Player[i][PingWarning] = 0;
  961.         }
  962.  
  963.         ResetPlayerMoney(i);
  964.         GivePlayerMoney(i, Player[i][Score]);
  965.  
  966.         new FPSstr[16];
  967.         if(Player[i][FPS] < 4) format(FPSstr, sizeof(FPSstr), "~r~~h~%d", Player[i][FPS]);
  968.         if(Player[i][FPS] >= 4) format(FPSstr, sizeof(FPSstr), "%d", Player[i][FPS]);
  969.  
  970.         new Pingstr[16];
  971.         if(pPing >= 1000) format(Pingstr, sizeof(Pingstr), "~r~~h~%d", pPing);
  972.         if(pPing < 1000) format(Pingstr, sizeof(Pingstr), "%d", pPing);
  973.  
  974.         new PLstr[16];
  975.         if(pPacket >= 2) format(PLstr, sizeof(PLstr), "~r~~h~%.1f%%", pPacket);
  976.         if(pPacket < 2) format(PLstr, sizeof(PLstr), "%.1f%%", pPacket);
  977.  
  978. //      format(iString,sizeof(iString),"%sFPS : %d          Ping : %d           PL : %.1f%%", TDColor[Player[i][Team]], Player[i][FPS], pPing, pPacket);
  979.         format(iString,sizeof(iString),"%sFPS : %s          %sPing : %s         %sPL : %.1f%%", TDColor[Player[i][Team]], FPSstr, TDColor[Player[i][Team]], Pingstr, TDColor[Player[i][Team]], PLstr);
  980.  
  981.         PlayerTextDrawSetString(i, FPSPingPacket, iString);
  982.  
  983. //      format(iString, sizeof(iString), "%s%i {FFFFFF}/ %s%.1f%%\n{FFFFFF}FPS: %s%i", TextColor[Player[i][Team]], pPing, TextColor[Player[i][Team]], pPacket, TextColor[Player[i][Team]], Player[i][FPS]);
  984.         format(iString, sizeof(iString), "%s%s {FFFFFF}/ %s%s\n{FFFFFF}FPS: %s%s", TextColor[Player[i][Team]], Pingstr, TextColor[Player[i][Team]], PLstr, TextColor[Player[i][Team]], FPSstr);
  985.         Update3DTextLabelText(BodyStuffs[i], 0xFFFFFFFF, iString);
  986.  
  987.         if(TakeDmgCD[0][i] > 0){
  988.             TakeDmgCD[0][i]++;
  989.             if(TakeDmgCD[0][i] == 5) {
  990.                 DamageDone[0][i] = 0;
  991.                 gLastHit[0][i] = -1;
  992.                 PlayerTextDrawSetString(i, DoingDamage[0], "_");
  993.                 TakeDmgCD[0][i] = 0;
  994.             }
  995.         } if(TakeDmgCD[1][i] > 0) {
  996.             TakeDmgCD[1][i]++;
  997.             if(TakeDmgCD[1][i] == 5) {
  998.                 DamageDone[1][i] = 0;
  999.                 gLastHit[1][i] = -1;
  1000.                 PlayerTextDrawSetString(i, DoingDamage[1], "_");
  1001.                 TakeDmgCD[1][i] = 0;
  1002.             }
  1003.         } if(TakeDmgCD[2][i] > 0) {
  1004.             TakeDmgCD[2][i]++;
  1005.             if(TakeDmgCD[2][i] == 5) {
  1006.                 DamageDone[2][i] = 0;
  1007.                 PlayerTextDrawSetString(i, DoingDamage[2], "_");
  1008.                 gLastHit[2][i] = -1;
  1009.                 TakeDmgCD[2][i] = 0;
  1010.             }
  1011.         } if(TakeDmgCD[3][i] > 0) {
  1012.             TakeDmgCD[3][i]++;
  1013.             if(TakeDmgCD[3][i] == 5) {
  1014.                 DamageDone[3][i] = 0;
  1015.                 gLastHit[3][i] = -1;
  1016.                 PlayerTextDrawSetString(i, GettingDamaged[0], "_");
  1017.                 TakeDmgCD[3][i] = 0;
  1018.             }
  1019.         }
  1020.         if(TakeDmgCD[4][i] > 0) {
  1021.             TakeDmgCD[4][i]++;
  1022.             if(TakeDmgCD[4][i] == 5) {
  1023.                 DamageDone[4][i] = 0;
  1024.                 gLastHit[4][i] = -1;
  1025.                 PlayerTextDrawSetString(i, GettingDamaged[1], "_");
  1026.                 TakeDmgCD[4][i] = 0;
  1027.             }
  1028.         }
  1029.         if(TakeDmgCD[5][i] > 0) {
  1030.             TakeDmgCD[5][i]++;
  1031.             if(TakeDmgCD[5][i] == 5) {
  1032.                 DamageDone[5][i] = 0;
  1033.                 gLastHit[5][i] = -1;
  1034.                 PlayerTextDrawSetString(i, GettingDamaged[2], "_");
  1035.                 TakeDmgCD[5][i] = 0;
  1036.             }
  1037.         }
  1038.     }
  1039.     return 1;
  1040. }
  1041.  
  1042. public OnGameModeExit()
  1043. {
  1044.     foreach(new i : Player)
  1045.     {
  1046.         if(IsPlayerConnected(i) && Player[i][Logged] == true)
  1047.         {
  1048.             SavePlayer(i);
  1049.         }
  1050.     }
  1051.     SaveVars();
  1052.     print("[SCRIPT] Alle Spielerdaten wurden gespeichert.");
  1053.     UnloadMap();
  1054.     db_close(sqliteconnection);
  1055.     db_close(bans);
  1056.     db_close(globalvars);
  1057.     print("[SCRIPT] Verbindung mit allen Datenbanken beendet.");
  1058.     print("[SCRIPT] Server wurde gestoppt.");
  1059.     #if defined DiscordBot
  1060.     DCC_SendChannelMessage(g_WelcomeChannelId, "Der Server wurde gestoppt. Der Bot beendet sich nun.");
  1061.     #endif
  1062.     return 1;
  1063. }
  1064.  
  1065.  
  1066. public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
  1067. {
  1068.     if(hitid != INVALID_PLAYER_ID && IsPlayerConnected(playerid) && hittype == 1 && weaponid != 38)
  1069.     {
  1070.         Player[playerid][Hits]++;
  1071.     }
  1072.    
  1073.     if(Player[playerid][IsOnDuty] == true && hittype == 1)
  1074.     {
  1075.         SendClientMessage(playerid, COLOR_RED, "WARNUNG: Du darfst im Dienst niemandem Schaden zufügen!");
  1076.         return 0;
  1077.     }
  1078.    
  1079.     /*if(weaponid == 47 || weaponid == 32 || weaponid == 35 || weaponid == 36 || weaponid == 37 || weaponid == 38 || weaponid == 39 || weaponid == 26 && Player[playerid][Level] == 0)
  1080.     {
  1081.         SendClientMessage(playerid, COLOR_RED, "WARNUNG: Unerlaubte Waffe.");
  1082.         return 0;
  1083.     }
  1084.     */
  1085.    
  1086.     else
  1087.     {
  1088.         return 1;
  1089.     }
  1090. }
  1091.  
  1092. forward AutoSave();
  1093. public AutoSave()
  1094. {
  1095.     SaveVars();
  1096.     SendClientMessageToAll(COLOR_ORANGE, "SAVE: Alle Spielerdaten werden gespeichert...");
  1097.     foreach(new i : Player)
  1098.     {
  1099.         if(IsPlayerConnected(i))
  1100.         {
  1101.             SavePlayer(i);
  1102.            
  1103.             if(Player[i][VotesForKick] > 0)
  1104.             {
  1105.                 Player[i][VotesForKick]--;
  1106.             }
  1107.         }
  1108.     }
  1109.     print("[SCRIPT] Der automatische 5 Minuten Save war erfolgreich.");
  1110.     SendClientMessageToAll(COLOR_GREEN, "SAVE: Alle Spielerdaten wurden erfolgreich gespeichert.");
  1111.    
  1112.     return 1;
  1113. }
  1114.  
  1115. public OnRconLoginAttempt(ip[], password[], success)
  1116. {
  1117.     if(!success)
  1118.     {
  1119.         BlockIpAddress(ip, 500);
  1120.     }
  1121.     return 1;
  1122. }
  1123.  
  1124.  
  1125. forward MinutePassed(playerid);
  1126. public MinutePassed(playerid)
  1127. {
  1128.     Player[playerid][PlayMinutes]++;
  1129.     return 1;
  1130. }
  1131.  
  1132. forward RestartServer();
  1133. public RestartServer()
  1134. {
  1135.      SendClientMessageToAll(COLOR_RED,"|____________{SERVER STOPP}____________|");
  1136.      SendClientMessageToAll(COLOR_RED,"");
  1137.      SendClientMessageToAll(COLOR_RED," Der Server wird in 30 Sekunden gestoppt!");
  1138.      SendClientMessageToAll(COLOR_RED,"");
  1139.      SendClientMessageToAll(COLOR_RED,"|____________{SERVER STOPP}____________|");
  1140.      SetTimer("RestartServer1",25000,0);
  1141.      return 1;
  1142. }
  1143.  
  1144. forward RestartServer1();
  1145. public RestartServer1()
  1146. {
  1147.      SendClientMessageToAll(COLOR_RED,"|____________{SERVER STOPP}____________|");
  1148.      SendClientMessageToAll(COLOR_RED,"");
  1149.      SendClientMessageToAll(COLOR_RED," Der Server wird in 5 Sekunden gestoppt!");
  1150.      SendClientMessageToAll(COLOR_RED,"");
  1151.      SendClientMessageToAll(COLOR_RED,"|____________{SERVER STOPP}____________|");
  1152.      SetTimer("RestartServer2",5000,0);
  1153.      return 1;
  1154. }
  1155.  
  1156. forward RestartServer2();
  1157. public RestartServer2()
  1158. {
  1159.      SendClientMessageToAll(COLOR_RED,"|____________{SERVER STOPP}____________|");
  1160.      SendClientMessageToAll(COLOR_RED,"");
  1161.      SendClientMessageToAll(COLOR_RED," Der Server wird jetzt gestoppt!");
  1162.      SendClientMessageToAll(COLOR_RED,"");
  1163.      SendClientMessageToAll(COLOR_RED,"|____________{SERVER STOPP}____________|");
  1164.      foreach(new i : Player)
  1165.      {
  1166.         if(IsPlayerConnected(i) && Player[i][Logged] == true)
  1167.         {
  1168.             SavePlayer(i);
  1169.         }
  1170.      }
  1171.      SendAdminMessage(1, "Server wird gestoppt.");
  1172.      SendRconCommand("exit");
  1173.      print("[warning] Server wurde manuell gestoppt.");
  1174.      return 1;
  1175. }
  1176.  
  1177. public OnPlayerRequestClass(playerid, classid)
  1178. {
  1179.     Player[playerid][Spawned] = false;
  1180.    
  1181.     SetPlayerPos(playerid, 154.3345,-1946.3103,5.1966);
  1182.     SetPlayerCameraLookAt(playerid, 154.3345,-1946.3103,5.1966);
  1183.     SetPlayerCameraPos(playerid, 154.0967,-1942.9741,3.7734);
  1184.     SetPlayerFacingAngle(playerid, 0);
  1185.  
  1186.     new iString[64];
  1187.     if(classid == 0 || classid == 1)
  1188.     {
  1189.         Player[playerid][Team] = GREENTEAM;
  1190.         format(iString,sizeof(iString),"%sRotes Team", TDColor[GREENTEAM]);
  1191.         SetPlayerColor(playerid, GREEN_COLOR);
  1192.         SetPlayerTeam(playerid, GREENTEAM);
  1193.     }
  1194.     if(classid == 2 || classid == 3)
  1195.     {
  1196.         Player[playerid][Team] = GREENTEAM;
  1197.         format(iString,sizeof(iString),"%sRotes Team | VIP", TDColor[GREENTEAM]);
  1198.         SetPlayerColor(playerid, GREEN_COLOR);
  1199.         SetPlayerTeam(playerid, GREENTEAM);
  1200.     }
  1201.     if(classid == 4 || classid == 5)
  1202.     {
  1203.         Player[playerid][Team] = BLUETEAM;
  1204.         format(iString,sizeof(iString),"%sBlaues Team", TDColor[BLUETEAM]);
  1205.         SetPlayerColor(playerid, BLUE_COLOR);
  1206.         SetPlayerTeam(playerid, BLUETEAM);
  1207.     }
  1208.     if(classid == 6 || classid == 7)
  1209.     {
  1210.         Player[playerid][Team] = BLUETEAM;
  1211.         format(iString,sizeof(iString),"%sBlaues Team | VIP", TDColor[BLUETEAM]);
  1212.         SetPlayerColor(playerid, BLUE_COLOR);
  1213.         SetPlayerTeam(playerid, BLUETEAM);
  1214.     }
  1215.     GameTextForPlayer(playerid, iString, 3000, 4);
  1216.  
  1217.     Player[playerid][ClassID] = classid;
  1218.  
  1219.     SetPlayerSpawn(playerid);
  1220.    
  1221.     return 1;
  1222. }
  1223.  
  1224. forward MyHttpResponse(playerid, response_code, data[]);
  1225. public MyHttpResponse(playerid, response_code, data[])
  1226. {
  1227.     if(response_code == 200)
  1228.     {
  1229.         if(data[0] == 'Y')
  1230.         {
  1231.             SendClientMessage(playerid, COLOR_RED, "Eine VPN/Proxy wurde erkannt. Deaktiviere diese um auf dem Server zu spielen. Du wirst nun gekickt.");
  1232.             SetTimerEx("OnPlayerKicked", 200, false, "i", playerid);
  1233.             printf("[SCRIPT] %s wurde wegen einer VPN/Proxy gekickt.",GetName(playerid));
  1234.         }
  1235.         if(data[0] == 'N')
  1236.         {
  1237.             return 1;
  1238.         }
  1239.         if(data[0] == 'X')
  1240.         {
  1241.             printf("[SCRIPT] Proxy Check für den Spieler %s fehlgeschlagen! Die übermittelte IP war ungültig.",GetName(playerid));
  1242.         }
  1243.         }
  1244.         else
  1245.         {
  1246.             printf("[SCRIPT] Proxy Check für den Spieler %s fehlgeschlagen! Die Antwort des Servers war: %d", GetName(playerid),response_code);
  1247.         }
  1248.     return 1;
  1249. }
  1250.  
  1251. forward PlayerConnect(playerid);
  1252. public PlayerConnect(playerid)
  1253. {
  1254.     ShowPlayerDialog(playerid, -1, DIALOG_STYLE_MSGBOX, "", "","","");
  1255.    
  1256.     new IP[MAX_PLAYER_NAME];
  1257.     new iString[160];
  1258.     new country[50];
  1259.     new Query[150];
  1260.     GetPlayerCountry(playerid, country, sizeof(country));
  1261.     CreatePlayerLoginTextDraws(playerid);
  1262.     SetTimerEx("MinutePassed", 60000, true, "i", playerid);
  1263.    
  1264.     Player[playerid][ClassID] = 0;
  1265.     Player[playerid][BlockedID] = -1;
  1266.     Player[playerid][BlockedAll] = false;
  1267.     Player[playerid][ChangedWeather] = false;
  1268.     Player[playerid][OnMenu] = false;
  1269.     Player[playerid][SafeJetpack] = false;
  1270.     Player[playerid][SafeGun] = false;
  1271.     Player[playerid][Specing] = false;
  1272.     Player[playerid][Checking] = false;
  1273.     Player[playerid][SpecID] = -1;
  1274.     Player[playerid][LastMessager] = -1;
  1275.     Player[playerid][RKills] = 0;
  1276.     Player[playerid][RDeaths] = 0;
  1277.     Player[playerid][RDamage] = 0;
  1278.     Player[playerid][Syncing] = false;
  1279.     Player[playerid][Muted] = false;
  1280.     Player[playerid][Spawned] = false;
  1281.     Player[playerid][LastHitWith] = -1;     //antide
  1282.     Player[playerid][LastHitBy] = -1;       //antide
  1283.     Player[playerid][LastKilled] = -1;
  1284.     Player[playerid][Mapping] = false;
  1285.     Player[playerid][Spree] = 0;
  1286.     Player[playerid][UnlockedEagleEye] = false;
  1287.     Player[playerid][UnlockedMP5] = false;
  1288.     Player[playerid][UnlockedSpas] = false;
  1289.     Player[playerid][UnlockedSniper] = false;
  1290.     Player[playerid][UnlockedAK47] = false;
  1291.     Player[playerid][UnlockedM4] = false;
  1292.     Player[playerid][UnlockedGrenade] = false;
  1293.     Player[playerid][UnlockedCigar] = false;
  1294.     Player[playerid][UnlockedHorns] = false;
  1295.     Player[playerid][UnlockedFlame] = false;
  1296.     Player[playerid][Gun2] = SHOTGUN;
  1297.     Player[playerid][Gun3] = 0;
  1298.     Player[playerid][Gun4] = 0;
  1299.     Player[playerid][Gun5] = RIFLE;
  1300.     Player[playerid][Gun6] = 0;
  1301.     Player[playerid][FPSWarning] = 0;
  1302.     Player[playerid][PingWarning] = 0;
  1303.     Player[playerid][PLWarning] = 0;
  1304.     InitFly(playerid);
  1305.     Flying[playerid] = false;
  1306.     CreateCPTextDraws(playerid);
  1307.     HitSound[playerid] = false;
  1308.     pJailed[playerid] = false;
  1309.    
  1310.     Player[playerid][FPS] = 50;
  1311.     Player[playerid][Logged] = false;
  1312.  
  1313.  
  1314.     foreach(new i : Player)
  1315.     {
  1316.         if(JoinMessageDisabled[playerid] == 0 && Player[i][Level] > 2 && JoinLeaveMessages == true)
  1317.         {
  1318.             format(iString, sizeof(iString), "{FFFFFF}%s {BEF6C7}(%d) hat den Server betreten. [%s]", Player[playerid][Name], playerid, IP);
  1319.         } else if(JoinMessageDisabled[playerid] == 0 && JoinLeaveMessages == true)
  1320.         {
  1321.             format(iString, sizeof(iString), "{FFFFFF}%s {BEF6C7}(%d) hat den Server betreten.", Player[playerid][Name], playerid);
  1322.         }
  1323.         SendClientMessage(i, -1, iString);
  1324.     }
  1325.    
  1326.     format(iString, sizeof(iString), "ID: %d || Mögliche Multiaccounts: %s || Herkunft: %s", playerid, GetPlayerAKA(playerid),country);
  1327.     SendAdminMessage(1, iString);
  1328.    
  1329.     if(Player[playerid][LocalHost] == true)
  1330.     {
  1331.         SendAdminMessage(1, "Der Spieler ist Localhost(127.0.0.1) und hat dadurch einen Schutz gegen Banns etc.");
  1332.     }
  1333.    
  1334.     format(iString, sizeof(iString), "ID: %d || Mögliche Multiaccounts: %s || Herkunft: %s || IP: %s", playerid, GetPlayerAKA(playerid),country,PlayerIP(playerid));
  1335.     SendAdminMessage(4, iString);
  1336.  
  1337.     LoadPlayerTextDraws(playerid);
  1338.     LoadStatisticsTextdraws(playerid);
  1339.  
  1340.     PlayerTextDrawShow(playerid, FPSPingPacket);
  1341.     TextDrawShowForPlayer(playerid, BalanceTD);
  1342.    
  1343.     //TextDrawShowForPlayer(playerid,BlackBox);
  1344.     //TextDrawShowForPlayer(playerid,WillkommenText);
  1345.  
  1346.     for(new i = 0; i < 3; i++)
  1347.     {
  1348.         PlayerTextDrawShow(playerid, DoingDamage[i]);
  1349.         PlayerTextDrawShow(playerid, GettingDamaged[i]);
  1350.     }
  1351.  
  1352.     BodyStuffs[playerid] = Create3DTextLabel("_", 0xFFFFFFFF, 0, 0, 0, DRAW_DISTANCE, 0, 1);
  1353.     Attach3DTextLabelToPlayer(BodyStuffs[playerid], playerid, 0.0, 0.0, -0.9);
  1354.  
  1355.     TextDrawShowForPlayer(playerid, WebTextTD);
  1356.    
  1357.     //ShowLoginTextdraws(playerid);
  1358.    
  1359.     if(Player[playerid][Logged] == false)
  1360.     {
  1361.         format(Query, sizeof(Query), "SELECT Name FROM Players WHERE Name = '%s'", GetName(playerid));
  1362.         new DBResult:result = db_query(sqliteconnection, Query);
  1363.  
  1364.         if(!db_num_rows(result))
  1365.         {
  1366.             PlayerIsNotRegistered(playerid); Player[playerid][Registered] = true;//ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registrieren","{FFFFFF}Gebe dein Passwort ein um dich zu registrieren:","Registrieren","Verlassen");
  1367.         } else PlayerIsRegistered(playerid); Player[playerid][Registered] = false//ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Login","{FFFFFF}Gebe dein Passwort ein um dich einzuloggen:","Einloggen","Verlassen");
  1368.  
  1369.         db_free_result(result);
  1370.         ShowLoginTextDraws(playerid);
  1371.     }
  1372.    
  1373.     #if defined DiscordBot
  1374.     if (_:g_WelcomeChannelId == 0)
  1375.         g_WelcomeChannelId = DCC_FindChannelById("301724947234029578");
  1376.     new str[128];
  1377.     format(str, sizeof str, "[SAMP] Der Spieler %s hat den Server betreten.", GetName(playerid));
  1378.     DCC_SendChannelMessage(g_WelcomeChannelId, str);
  1379.     #endif
  1380.    
  1381.     return 1;
  1382. }
  1383.  
  1384. public OnPlayerConnect(playerid)
  1385. {  
  1386.     new IP[MAX_PLAYER_NAME];
  1387.     new formato[60];
  1388.     GetPlayerIp(playerid, IP, sizeof(IP));
  1389.  
  1390.         format(formato, sizeof(formato), "www.shroomery.org/ythan/proxycheck.php?ip=%s", IP);
  1391.         HTTP(playerid, HTTP_GET, formato, "", "MyHttpResponse");
  1392.    
  1393.     ShowPlayerDialog(playerid, 92352, DIALOG_STYLE_MSGBOX, "Verbindung wird hergestellt...", "Die Verbindung zum Server wird hergestellt...\nBitte warte einen Moment.","","");
  1394.    
  1395.    
  1396.     #pragma unused LoadLoginTextdraws
  1397.    
  1398.     new player[48];
  1399.     format(player,sizeof(player),"/Whitelist/%s.txt",GetName(playerid));
  1400.     if(Whitelist == true && !dini_Exists(player))
  1401.     {
  1402.         ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "{FC4949}Zutritt verweigert.", "Du bist nicht auf der Whitelist!\nFrage den Serverowner ob du auf die Whitelist darfst.", "Schliessen", "");
  1403.         SetTimerEx("KickTimer", 200, false, "i", playerid);
  1404.     }
  1405.  
  1406.     GetPlayerName(playerid, Player[playerid][Name], 24);
  1407.  
  1408.     if(!MatchAKA(playerid))
  1409.     {
  1410.         AKAString = "";
  1411.         AKAString = GetPlayerAKA(playerid);
  1412.         new add[MAX_PLAYER_NAME+1];
  1413.         format(add, sizeof(add), ",%s", Player[playerid][Name]);
  1414.  
  1415.         if(strlen(AKAString) > 0) strcat(AKAString, add);
  1416.         else strcat(AKAString, add[1]);
  1417.  
  1418.         new query[256];
  1419.         format(query, sizeof(query), "UPDATE `AKAs` SET `Names` = '%s' WHERE `IP` = '%s'", DB_Escape(AKAString), IP);
  1420.         db_free_result(db_query(sqliteconnection, query));
  1421.     }
  1422.  
  1423.  
  1424.     //vendingmachines
  1425.     RemoveBuildingForPlayer(playerid, 955, 0.0, 0.0, 0.0, 6000.0);
  1426.     RemoveBuildingForPlayer(playerid, 956, 0.0, 0.0, 0.0, 6000.0);
  1427.     RemoveBuildingForPlayer(playerid, 1209, 0.0, 0.0, 0.0, 6000.0);
  1428.     RemoveBuildingForPlayer(playerid, 1302, 0.0, 0.0, 0.0, 6000.0);
  1429.     RemoveBuildingForPlayer(playerid, 1775, 0.0, 0.0, 0.0, 6000.0);
  1430.     RemoveBuildingForPlayer(playerid, 1776, 0.0, 0.0, 0.0, 6000.0);
  1431.     RemoveBuildingForPlayer(playerid, 1977, 0.0, 0.0, 0.0, 6000.0);
  1432.  
  1433.     //traffic lights
  1434.     RemoveBuildingForPlayer(playerid, 1262, 0.0, 0.0, 0.0, 6000.0); //only lights
  1435.     RemoveBuildingForPlayer(playerid, 1283, 0.0, 0.0, 0.0, 6000.0);
  1436.     RemoveBuildingForPlayer(playerid, 1284, 0.0, 0.0, 0.0, 6000.0);
  1437.     RemoveBuildingForPlayer(playerid, 1315, 0.0, 0.0, 0.0, 6000.0);
  1438.     RemoveBuildingForPlayer(playerid, 1350, 0.0, 0.0, 0.0, 6000.0);
  1439.     RemoveBuildingForPlayer(playerid, 1351, 0.0, 0.0, 0.0, 6000.0);
  1440.     RemoveBuildingForPlayer(playerid, 1352, 0.0, 0.0, 0.0, 6000.0);
  1441.     RemoveBuildingForPlayer(playerid, 3516, 0.0, 0.0, 0.0, 6000.0);
  1442.     RemoveBuildingForPlayer(playerid, 3855, 0.0, 0.0, 0.0, 6000.0);
  1443.  
  1444.     //small lamposts
  1445.     RemoveBuildingForPlayer(playerid, 1223, 0.0, 0.0, 0.0, 6000.0);
  1446.     RemoveBuildingForPlayer(playerid, 1231, 0.0, 0.0, 0.0, 6000.0);
  1447.     RemoveBuildingForPlayer(playerid, 1232, 0.0, 0.0, 0.0, 6000.0);
  1448.     RemoveBuildingForPlayer(playerid, 1568, 0.0, 0.0, 0.0, 6000.0);
  1449.  
  1450.     //long lamposts
  1451.     RemoveBuildingForPlayer(playerid, 1226, 0.0, 0.0, 0.0, 6000.0);
  1452.     RemoveBuildingForPlayer(playerid, 1290, 0.0, 0.0, 0.0, 6000.0);
  1453.     RemoveBuildingForPlayer(playerid, 1294, 0.0, 0.0, 0.0, 6000.0);
  1454.     RemoveBuildingForPlayer(playerid, 1295, 0.0, 0.0, 0.0, 6000.0);
  1455.     RemoveBuildingForPlayer(playerid, 1296, 0.0, 0.0, 0.0, 6000.0);
  1456.     RemoveBuildingForPlayer(playerid, 1297, 0.0, 0.0, 0.0, 6000.0);
  1457.     RemoveBuildingForPlayer(playerid, 1298, 0.0, 0.0, 0.0, 6000.0);
  1458.    
  1459.    
  1460.     new Query[150], DBResult:Result;
  1461.         format(Query, sizeof(Query), "SELECT * FROM `BANNED` WHERE `NAME` = '%s' OR `IP` = '%s'", DB_Escape(GetName(playerid)), DB_Escape(PlayerIP(playerid))); // this checks if player's username is in "BANNED" table
  1462.         Result = db_query(bans, Query);
  1463.         if(db_num_rows(Result))
  1464.         {
  1465.             new banreason[50], bannedby[24], banname[24], banip[18], bandate[15], bantime[10], banuntil[24], string[350];
  1466.             db_get_field_assoc(Result, "REASON", banreason, sizeof(banreason)); db_get_field_assoc(Result, "ADMIN", bannedby, sizeof(bannedby));
  1467.             db_get_field_assoc(Result, "NAME", banname, sizeof(banname)); db_get_field_assoc(Result, "IP", banip, sizeof(banip));
  1468.             db_get_field_assoc(Result, "DATE", bandate, sizeof(bandate)); db_get_field_assoc(Result, "TIME", bantime, sizeof(bantime));
  1469.             db_get_field_assoc(Result, "UNTIL", banuntil, sizeof(banuntil));
  1470.             format(string, sizeof(string), "{FFFFFF}Es wurde festgestellt dass dein Username oder deine IP{FC4949} gebannt {FFFFFF}ist.\n{FFFFFF}Gebannter Name: {FC4949}%s\n{FFFFFF}Gebannte IP: {FC4949}%s\n{FFFFFF}Gebannt von: {FC4949}%s\n{FFFFFF}Gebannt am: {FC4949}%s %s\n{FFFFFF}Gebannt bis: {FC4949}%s\n{FFFFFF}Grund: {FC4949}%s\n* Die Verbindung wird geschlossen.", banname, banip, bannedby, bandate, bantime,banuntil, banreason);
  1471.             ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "{FC4949}Bann erkannt.", string, "Schliessen", ""), string = "\0";
  1472.             printf("[kick] %s wurde automatisch gekickt weil er gebannt ist", GetName(playerid));
  1473.             JoinMessageDisabled[playerid] = 1;
  1474.             SetTimerEx("KickTimer", 200, false, "i", playerid);
  1475.             db_free_result(Result);
  1476.             string = "\0";
  1477.         }
  1478.        
  1479.     new iString[160];
  1480.     new country[50];
  1481.     GetPlayerCountry(playerid, country, sizeof(country));
  1482.     CreatePlayerLoginTextDraws(playerid);
  1483.     SetTimerEx("MinutePassed", 60000, true, "i", playerid);
  1484.    
  1485.     Player[playerid][ClassID] = 0;
  1486.     Player[playerid][BlockedID] = -1;
  1487.     Player[playerid][BlockedAll] = false;
  1488.     Player[playerid][ChangedWeather] = false;
  1489.     Player[playerid][OnMenu] = false;
  1490.     Player[playerid][SafeJetpack] = false;
  1491.     Player[playerid][SafeGun] = false;
  1492.     Player[playerid][Specing] = false;
  1493.     Player[playerid][Checking] = false;
  1494.     Player[playerid][SpecID] = -1;
  1495.     Player[playerid][LastMessager] = -1;
  1496.     Player[playerid][RKills] = 0;
  1497.     Player[playerid][RDeaths] = 0;
  1498.     Player[playerid][RDamage] = 0;
  1499.     Player[playerid][Syncing] = false;
  1500.     Player[playerid][Muted] = false;
  1501.     Player[playerid][Spawned] = false;
  1502.     Player[playerid][LastHitWith] = -1;     //antide
  1503.     Player[playerid][LastHitBy] = -1;       //antide
  1504.     Player[playerid][LastKilled] = -1;
  1505.     Player[playerid][Mapping] = false;
  1506.     Player[playerid][Spree] = 0;
  1507.     Player[playerid][UnlockedEagleEye] = false;
  1508.     Player[playerid][UnlockedMP5] = false;
  1509.     Player[playerid][UnlockedSpas] = false;
  1510.     Player[playerid][UnlockedSniper] = false;
  1511.     Player[playerid][UnlockedAK47] = false;
  1512.     Player[playerid][UnlockedM4] = false;
  1513.     Player[playerid][UnlockedGrenade] = false;
  1514.     Player[playerid][UnlockedCigar] = false;
  1515.     Player[playerid][UnlockedHorns] = false;
  1516.     Player[playerid][UnlockedFlame] = false;
  1517.     Player[playerid][Gun2] = SHOTGUN;
  1518.     Player[playerid][Gun3] = 0;
  1519.     Player[playerid][Gun4] = 0;
  1520.     Player[playerid][Gun5] = RIFLE;
  1521.     Player[playerid][Gun6] = 0;
  1522.     Player[playerid][FPSWarning] = 0;
  1523.     Player[playerid][PingWarning] = 0;
  1524.     Player[playerid][PLWarning] = 0;
  1525.     InitFly(playerid);
  1526.     Flying[playerid] = false;
  1527.     CreateCPTextDraws(playerid);
  1528.     HitSound[playerid] = false;
  1529.     pJailed[playerid] = false;
  1530.    
  1531.     Player[playerid][FPS] = 50;
  1532.     Player[playerid][Logged] = false;
  1533.  
  1534.  
  1535.     foreach(new i : Player)
  1536.     {
  1537.         if(JoinMessageDisabled[playerid] == 0 && Player[i][Level] > 2 && JoinLeaveMessages == true)
  1538.         {
  1539.             format(iString, sizeof(iString), "{FFFFFF}%s {BEF6C7}(%d) hat den Server betreten. [%s]", Player[playerid][Name], playerid, IP);
  1540.         } else if(JoinMessageDisabled[playerid] == 0 && JoinLeaveMessages == true)
  1541.         {
  1542.             format(iString, sizeof(iString), "{FFFFFF}%s {BEF6C7}(%d) hat den Server betreten.", Player[playerid][Name], playerid);
  1543.         }
  1544.         SendClientMessage(i, -1, iString);
  1545.     }
  1546.    
  1547.     if(Player[playerid][LocalHost] == true)
  1548.     {
  1549.         SendAdminMessage(1, "Der Spieler ist Localhost(127.0.0.1) und hat dadurch einen Schutz gegen Banns etc.");
  1550.     }
  1551.    
  1552.     format(iString, sizeof(iString), "ID: %d || Mögliche Multiaccounts: %s || Herkunft: %s || IP: %s", playerid, GetPlayerAKA(playerid),country,PlayerIP(playerid));
  1553.     SendAdminMessage(2, iString);
  1554.  
  1555.     LoadPlayerTextDraws(playerid);
  1556.     LoadStatisticsTextdraws(playerid);
  1557.     LoadDigiTextdraws(playerid);
  1558.  
  1559.     PlayerTextDrawShow(playerid, FPSPingPacket);
  1560.     TextDrawShowForPlayer(playerid, BalanceTD);
  1561.    
  1562.     //TextDrawShowForPlayer(playerid,BlackBox);
  1563.     //TextDrawShowForPlayer(playerid,WillkommenText);
  1564.  
  1565.     for(new i = 0; i < 3; i++)
  1566.     {
  1567.         PlayerTextDrawShow(playerid, DoingDamage[i]);
  1568.         PlayerTextDrawShow(playerid, GettingDamaged[i]);
  1569.     }
  1570.  
  1571.     BodyStuffs[playerid] = Create3DTextLabel("_", 0xFFFFFFFF, 0, 0, 0, DRAW_DISTANCE, 0, 1);
  1572.     Attach3DTextLabelToPlayer(BodyStuffs[playerid], playerid, 0.0, 0.0, -0.9);
  1573.  
  1574.     TextDrawShowForPlayer(playerid, WebTextTD);
  1575.    
  1576.     //ShowLoginTextdraws(playerid);
  1577.    
  1578.     if(Player[playerid][Logged] == false)
  1579.     {
  1580.         format(Query, sizeof(Query), "SELECT Name FROM Players WHERE Name = '%s'", GetName(playerid));
  1581.         new DBResult:result = db_query(sqliteconnection, Query);
  1582.  
  1583.         if(!db_num_rows(result))
  1584.         {
  1585.             PlayerIsNotRegistered(playerid); Player[playerid][Registered] = true;//ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registrieren","{FFFFFF}Gebe dein Passwort ein um dich zu registrieren:","Registrieren","Verlassen");
  1586.         } else PlayerIsRegistered(playerid); Player[playerid][Registered] = false//ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Login","{FFFFFF}Gebe dein Passwort ein um dich einzuloggen:","Einloggen","Verlassen");
  1587.  
  1588.         db_free_result(result);
  1589.         ShowLoginTextDraws(playerid);
  1590.     }
  1591.    
  1592.     #if defined DiscordBot
  1593.     if (_:g_WelcomeChannelId == 0)
  1594.         g_WelcomeChannelId = DCC_FindChannelById("301724947234029578");
  1595.     new str[128];
  1596.     format(str, sizeof str, "[SAMP] Der Spieler %s hat den Server betreten.", GetName(playerid));
  1597.     DCC_SendChannelMessage(g_WelcomeChannelId, str);
  1598.     #endif
  1599.    
  1600.     ShowPlayerDialog(playerid, -1, 1, " ", " ", " "," ");
  1601.    
  1602.     return 1;
  1603. }
  1604.  
  1605. #if defined DiscordBot
  1606. public DCC_OnChannelMessage(DCC_Channel:channel, const author[], const message[])
  1607. {
  1608.     if(!strcmp(author, "SAMP Bot")) return 0;
  1609.     if(channel != g_WelcomeChannelId) return 0;
  1610.     new channel_name[48];
  1611.     DCC_GetChannelName(channel, channel_name);
  1612.  
  1613.     new str[160];
  1614.     format(str, sizeof str, "[Discord] {FFFF00}%s: {FFFFFF}%s", author, message);
  1615.     SendClientMessageToAll(COLOR_BLUEGREEN, str);
  1616.     return 1;
  1617. }
  1618. #endif
  1619.  
  1620. public OnPlayerDisconnect(playerid, reason)
  1621. {
  1622.     GetPlayerName(playerid, Player[playerid][Name], 24);
  1623.    
  1624.     TextDrawDestroy(DigiHP[playerid]);
  1625.     TextDrawDestroy(DigiAP[playerid]);
  1626.    
  1627.     SaveVars();
  1628.     SavePlayer(playerid);
  1629.    
  1630.     new iString[128];
  1631.     DestroyCPTextDraws(playerid);
  1632.     if(Player[playerid][IsOnDuty] == true)
  1633.     {
  1634.         Player[playerid][IsOnDuty] = false;
  1635.         format(iString, sizeof(iString), "DUTY: %s ist nun nichtmehr im Dienst.", Player[playerid][Name]);
  1636.         SendClientMessageToAll(COLOR_RED, iString);
  1637.         Delete3DTextLabel(OnDuty[playerid]);
  1638.     }
  1639.    
  1640.     if(Player[playerid][Specing] == true)
  1641.     {
  1642.         Player[playerid][Specing] = false;
  1643.     }
  1644.    
  1645.     if(Player[playerid][VIP] == 1) Delete3DTextLabel(VIPStuffs[playerid]);
  1646.     Delete3DTextLabel(BodyStuffs[playerid]);
  1647.     Player[playerid][Level] = 0;
  1648.     Player[playerid][VIP] = 0;
  1649.  
  1650.     //antide
  1651.     if((Player[playerid][LastHitWith] != -1) && (Player[playerid][LastHitBy] != -1))
  1652.     {
  1653.         new weap, killahid;
  1654.         weap = Player[playerid][LastHitWith];
  1655.         killahid = Player[playerid][LastHitBy];
  1656.  
  1657.         SendDeathMessage(killahid, playerid, weap);
  1658.  
  1659.         GiveScore(killahid, 1 * Player[killahid][Spree]);
  1660.         GiveKill(killahid);
  1661.         GiveWKill(killahid, weap);
  1662.         CheckRewards(killahid);
  1663.  
  1664.         Player[playerid][LastHitWith] = -1;
  1665.         Player[playerid][LastHitBy] = -1;
  1666.     }
  1667.     //antide
  1668.  
  1669.     if(JoinLeaveMessages == true)
  1670.     {
  1671.     switch (reason)
  1672.     {
  1673.         case 0: format(iString, sizeof(iString), "{FFFFFF}%s (%d) {D62D20}hat den Server verlassen. [Timeout/Crash]",Player[playerid][Name], playerid);
  1674.         case 1: format(iString, sizeof(iString), "{FFFFFF}%s (%d) {D62D20}hat den Server verlassen. [Verlassen]",Player[playerid][Name], playerid);
  1675.         case 2:
  1676.         {
  1677.             if(Player[playerid][IsKicked] == true) format(iString, sizeof(iString), "{FFFFFF}%s (%d) {D62D20}hat den Server verlassen. [Gekickt]",Player[playerid][Name], playerid);
  1678.             else format(iString, sizeof(iString), "{FFFFFF}%s (%d) {D62D20}hat den Server verlassen. [Gebannt]",Player[playerid][Name], playerid);
  1679.         }
  1680.     }
  1681.     }
  1682.     SendClientMessageToAll(-1,iString);
  1683.    
  1684.     #if defined DiscordBot
  1685.     if (_:g_WelcomeChannelId == 0)
  1686.         g_WelcomeChannelId = DCC_FindChannelById("301724947234029578");
  1687.     new str[128];
  1688.     switch(reason)
  1689.     {
  1690.         case 0: format(str, sizeof str, "[SAMP] Der Spieler %s hat den Server verlassen. [Timeout/Crash]", GetName(playerid));
  1691.         case 1: format(str, sizeof str, "[SAMP] Der Spieler %s hat den Server verlassen. [Verlassen]", GetName(playerid));
  1692.         case 2:
  1693.         {
  1694.             if(Player[playerid][IsKicked] == true) format(str, sizeof str, "[SAMP] Der Spieler %s hat den Server verlassen. [Gekickt]", GetName(playerid));
  1695.             else format(str, sizeof str, "[SAMP] Der Spieler %s hat den Server verlassen. [Gebannt]", GetName(playerid));
  1696.         }
  1697.     }
  1698.     DCC_SendChannelMessage(g_WelcomeChannelId, str);
  1699.     #endif
  1700.    
  1701.    
  1702.     return 1;
  1703. }
  1704.  
  1705. public OnPlayerEnterDynamicCP(playerid, checkpointid)
  1706. {
  1707.   if(checkpointid == pCheckpoint[playerid])
  1708.   {
  1709.     new str[128];
  1710.     CheckPointCounter[playerid]++;
  1711.     PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
  1712.     DestroyDynamicCP(pCheckpoint[playerid]);
  1713.     SendClientMessage(playerid, COLOR_GREEN, "CPPRISON: Checkpoint erreicht.");
  1714.     if(CheckPointCounter[playerid] < 10)
  1715.     {
  1716.       format(str, sizeof(str),"0%d", CheckPointCounter[playerid]);
  1717.       PlayerTextDrawSetString(playerid, CheckpointTD[playerid][4], str);
  1718.     }
  1719.  
  1720.     else
  1721.     {
  1722.       format(str, sizeof(str),"%d", CheckPointCounter[playerid]);
  1723.       PlayerTextDrawSetString(playerid, CheckpointTD[playerid][4], str);
  1724.     }
  1725.     RandomCheckPointCreate(playerid);
  1726.   }
  1727.  
  1728.   if(CheckPointCounter[playerid] == MaxCheckPoints[playerid] && pJailed[playerid] == true)
  1729.   {
  1730.     new str[128];
  1731.     PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  1732.     DestroyDynamicCP(pCheckpoint[playerid]);
  1733.     pJailed[playerid] = false;
  1734.     CheckPointCounter[playerid] = 0;
  1735.     format(str, sizeof(str),"PRISON: {FFFFFF}%s {FFFF00}hat alle Checkpoints abgelaufen und wurde aus dem CP Prison entlassen.", GetName(playerid));
  1736.     SendClientMessageToAll(COLOR_YELLOW, str);
  1737.     SendClientMessage(playerid, COLOR_RED, "Du hast es geschafft. Lern aus deinen Fehlern und benimm dich in Zukunft!");
  1738.     HideCPTextDraws(playerid);
  1739.     GiveOldData(playerid);
  1740.   }
  1741.  
  1742.   return 1;
  1743. }
  1744.  
  1745. public OnPlayerSpawn(playerid)
  1746. {
  1747. /*
  1748.     if(Player[playerid][IgnoreSpawn] == true)
  1749.     {
  1750.         Player[playerid][IgnoreSpawn] = false;
  1751.         return 0;
  1752.     }
  1753. */
  1754.     Player[playerid][Spawned] = true;
  1755.    
  1756.     TextDrawShowForPlayer(playerid, DigiHP[playerid]);
  1757.    
  1758.     new Float:Armour;
  1759.     GetPlayerArmour(playerid, Armour);
  1760.     if(Armour >= 1) TextDrawShowForPlayer(playerid, DigiAP[playerid]);
  1761.     else TextDrawHideForPlayer(playerid, DigiAP[playerid]);
  1762.  
  1763.     TextDrawShowForPlayer(playerid, RoundStatsTD);
  1764.     SetPlayerSpawn(playerid);
  1765.     GangZoneShowForPlayer(playerid, MapZone, BLUE_COLOR);
  1766.    
  1767.     ShowStatisticsTextdraws(playerid);
  1768.    
  1769.     if(Player[playerid][VIP] == 1)
  1770.     {
  1771.     ShowStatVIPTextDraw(playerid);
  1772.     }
  1773.  
  1774.     SetCameraBehindPlayer(playerid);
  1775.     ClearAnimations(playerid);
  1776.     TogglePlayerSpectating(playerid, false);
  1777.  
  1778.     SetPlayerArmour(playerid, 0.0);
  1779.  
  1780. //vip
  1781.     new skin = GetPlayerSkin(playerid);
  1782.  
  1783.     if(Player[playerid][VIP] == 1)
  1784.     {
  1785.         GivePlayerWeapon(playerid, DEAGLE, 200);
  1786.         GivePlayerWeapon(playerid, Player[playerid][Gun2], 200);
  1787.         GivePlayerWeapon(playerid, Player[playerid][Gun3], 400);
  1788.         GivePlayerWeapon(playerid, Player[playerid][Gun4], 200);
  1789.         GivePlayerWeapon(playerid, Player[playerid][Gun5], 200);
  1790.         GivePlayerWeapon(playerid, Player[playerid][Gun6], 2);
  1791.         switch(skin)    //armor
  1792.         {
  1793.             case 53:    SetPlayerAttachedObject(playerid, 0, 19515, 1, 0.000, 0.036, 0.000, 0.000, -1.800, 0.000, 1.068, 1.163, 1.000, 0xFF55FF55, 0xFF55FF55);
  1794.             case 250:   SetPlayerAttachedObject(playerid, 0, 19515, 1, 0.022, 0.037, 0.000, 0.000, -1.800, 0.000, 1.318, 1.393, 1.000, 0xFF55FF55, 0xFF55FF55);
  1795.             case 45:    SetPlayerAttachedObject(playerid, 0, 19515, 1, 0.013, 0.049, 0.000, 0.000, -1.800, 0.000, 1.160, 1.171, 1.000, 0xFF55FF55, 0xFF55FF55);
  1796.             case 191:   SetPlayerAttachedObject(playerid, 0, 19515, 1, 0.074, 0.041, 0.000, 0.000, -1.800, 9.599, 1.178, 1.253, 0.868, 0xFF55FF55, 0xFF55FF55);
  1797.             case 230:   SetPlayerAttachedObject(playerid, 0, 19515, 1, 0.017, 0.058, 0.000, 0.000, -1.800, 0.000, 1.160, 1.087, 0.857, 0xFF0080FF, 0xFF0080FF);
  1798.             case 177:   SetPlayerAttachedObject(playerid, 0, 19515, 1, 0.004, 0.054, 0.000, 0.000, -1.800, 0.599, 1.317, 1.392, 1.213, 0xFF0080FF, 0xFF0080FF);
  1799.             case 154:   SetPlayerAttachedObject(playerid, 0, 19515, 1, 0.013, 0.049, 0.000, 0.000, -1.800, 0.000, 1.160, 1.171, 1.000, 0xFF0080FF, 0xFF0080FF);
  1800.             case 198:   SetPlayerAttachedObject(playerid, 0, 19515, 1, 0.042, 0.074, 0.000, 0.000, -1.800, 5.500, 1.230, 1.392, 0.860, 0xFF0080FF, 0xFF0080FF);
  1801.         }
  1802.     }
  1803.     else if(Player[playerid][VIP] == 0)
  1804.     {
  1805.         GivePlayerWeapon(playerid, DEAGLE, 100);
  1806.         GivePlayerWeapon(playerid, Player[playerid][Gun2], 100);
  1807.         GivePlayerWeapon(playerid, Player[playerid][Gun3], 200);
  1808.         GivePlayerWeapon(playerid, Player[playerid][Gun4], 100);
  1809.         GivePlayerWeapon(playerid, Player[playerid][Gun5], 100);
  1810.         GivePlayerWeapon(playerid, Player[playerid][Gun6], 1);
  1811.     }
  1812. //vip
  1813.  
  1814.     SetPlayerInterior(playerid, MapInterior);
  1815.     SetPlayerArmedWeapon(playerid, 0);
  1816.    
  1817.     foreach(new i : Player)
  1818.     {
  1819.         if(Player[i][LastKilled] == playerid)
  1820.         {
  1821.             Player[i][LastKilled] = -1;
  1822.         }
  1823.     }
  1824.  
  1825.     if(Player[playerid][UnlockedCigar] == true)     //cigar
  1826.     {
  1827.         switch(skin)
  1828.         {
  1829.             case 53:    SetPlayerAttachedObject(playerid, 1, 3044, 2, -0.054, 0.066, -0.043, -151.398, 0.0, 0.0, 1.0, 1.0, 1.0);
  1830.             case 250:   SetPlayerAttachedObject(playerid, 1, 3044, 2, -0.057, 0.066, -0.043, -151.398, 0.0, 0.0, 1.0, 1.0, 1.0);
  1831.             case 45:    SetPlayerAttachedObject(playerid, 1, 3044, 2, -0.078, 0.052, -0.043, -151.398, 0.0, 0.0, 1.0, 1.0, 1.0);
  1832.             case 191:   SetPlayerAttachedObject(playerid, 1, 3044, 2, -0.054, 0.047, -0.043, -151.398, 0.0, 0.0, 1.0, 1.0, 1.0);
  1833.             case 230:   SetPlayerAttachedObject(playerid, 1, 3044, 2, -0.081, 0.051, -0.043, -151.398, 0.0, 0.0, 1.0, 1.0, 1.0);
  1834.             case 177:   SetPlayerAttachedObject(playerid, 1, 3044, 2, -0.054, 0.066, -0.043, -151.398, 0.0, 0.0, 1.0, 1.0, 1.0);
  1835.             case 154:   SetPlayerAttachedObject(playerid, 1, 3044, 2, -0.087, 0.050, -0.043, -151.398, 0.0, 0.0, 1.0, 1.0, 1.0);
  1836.             case 198:   SetPlayerAttachedObject(playerid, 1, 3044, 2, -0.066, 0.054, -0.043, -151.398, 0.0, 0.0, 1.0, 1.0, 1.0);
  1837.         }
  1838.        
  1839.     }
  1840.  
  1841.     if(Player[playerid][UnlockedHorns] == true)     //horns
  1842.     {
  1843.         switch(skin)
  1844.         {
  1845.             case 53:    SetPlayerAttachedObject(playerid, 2, 19314, 2, 0.133, -0.048, 0.000, 0.000, 0.000, -107.200, 1.000, 1.000, 0.349, 0xFF55FF55, 0xFF55FF55);
  1846.             case 250:   SetPlayerAttachedObject(playerid, 2, 19314, 2, 0.133, -0.048, 0.000, 0.000, 0.000, -107.200, 1.000, 1.000, 0.349, 0xFF55FF55, 0xFF55FF55);
  1847.             case 45:    SetPlayerAttachedObject(playerid, 2, 19314, 2, 0.133, -0.048, 0.000, 0.000, 0.000, -107.200, 1.000, 1.000, 0.349, 0xFF55FF55, 0xFF55FF55);
  1848.             case 191:   SetPlayerAttachedObject(playerid, 2, 19314, 2, 0.133, -0.048, 0.000, 0.000, 0.000, -107.200, 1.000, 1.000, 0.349, 0xFF55FF55, 0xFF55FF55);
  1849.             case 230:   SetPlayerAttachedObject(playerid, 2, 19314, 2, 0.133, -0.048, 0.000, 0.000, 0.000, -107.200, 1.000, 1.000, 0.349, 0xFF0080FF, 0xFF0080FF);
  1850.             case 177:   SetPlayerAttachedObject(playerid, 2, 19314, 2, 0.133, -0.048, 0.000, 0.000, 0.000, -107.200, 1.000, 1.000, 0.349, 0xFF0080FF, 0xFF0080FF);
  1851.             case 154:   SetPlayerAttachedObject(playerid, 2, 19314, 2, 0.133, -0.048, 0.000, 0.000, 0.000, -107.200, 1.000, 1.000, 0.349, 0xFF0080FF, 0xFF0080FF);
  1852.             case 198:   SetPlayerAttachedObject(playerid, 2, 19314, 2, 0.133, -0.048, 0.000, 0.000, 0.000, -107.200, 1.000, 1.000, 0.349, 0xFF0080FF, 0xFF0080FF);
  1853.         }
  1854.     }
  1855.    
  1856.     if(Player[playerid][UnlockedFlame] == true)     //flame
  1857.     {
  1858.         SetPlayerAttachedObject(playerid, 3, 18693, 2, -1.572, -0.098, -0.011, 90.0, 90.0, 0.0, 1.0, 1.0, 1.0);
  1859.     }
  1860.  
  1861.     if(Player[playerid][UnlockedMP5] == true)       //mp5
  1862.     {
  1863.         SetPlayerAttachedObject(playerid, 4, 353, 7, 0.189, -0.127, -0.083, -83.399, 0.000, 0.000, 1.000, 1.000, 1.000);
  1864.     }
  1865.    
  1866.     if(Player[playerid][UnlockedAK47] == true)      //ak47
  1867.     {
  1868.         if(Player[playerid][VIP] == 0)
  1869.         {
  1870.             SetPlayerAttachedObject(playerid, 5, 355, 15, 0.167, 0.134, -0.160, 0.000, -72.199, 177.100, 1.000, 1.000, 1.000);
  1871.         }
  1872.         else if(Player[playerid][VIP] == 1)
  1873.         {
  1874.             SetPlayerAttachedObject(playerid, 5, 355, 15, 0.167, 0.194, -0.160, 0.000, -72.199, 177.100, 1.000, 1.000, 1.000);
  1875.         }
  1876.     }
  1877.    
  1878.     if(Player[playerid][UnlockedM4] == true)        //m4
  1879.     {
  1880.         if(Player[playerid][VIP] == 0)
  1881.         {
  1882.             SetPlayerAttachedObject(playerid, 6, 356, 15, 0.167, 0.134, -0.160, 0.000, -72.199, 177.100, 1.000, 1.000, 1.000);
  1883.         }
  1884.         else if(Player[playerid][VIP] == 1)
  1885.         {
  1886.             SetPlayerAttachedObject(playerid, 6, 356, 15, 0.167, 0.194, -0.160, 0.000, -72.199, 177.100, 1.000, 1.000, 1.000);
  1887.         }
  1888.     }
  1889.    
  1890.     if(Player[playerid][UnlockedSpas] == true)      //spas
  1891.     {
  1892.         if(Player[playerid][VIP] == 0)
  1893.         {
  1894.             SetPlayerAttachedObject(playerid, 7, 351, 1, 0.290, -0.047, -0.096, 0.699, -8.399, -167.700, 1.000, 1.000, 1.000);
  1895.         }
  1896.         else if(Player[playerid][VIP] == 1)
  1897.         {
  1898.             SetPlayerAttachedObject(playerid, 7, 351, 1, 0.290, -0.107, -0.096, 0.699, -8.399, -167.700, 1.000, 1.000, 1.000);
  1899.         }
  1900.     }
  1901.  
  1902.     if(Player[playerid][UnlockedSniper] == true)    //sniper
  1903.     {
  1904.         if(Player[playerid][VIP] == 0)
  1905.         {
  1906.             SetPlayerAttachedObject(playerid, 8, 358, 16, 0.171, 0.116, 0.150, 0.000, -101.699, 0.000, 1.000, 1.000, 1.000);
  1907.         }
  1908.         else if(Player[playerid][VIP] == 1)
  1909.         {
  1910.             SetPlayerAttachedObject(playerid, 8, 358, 16, 0.171, 0.176, 0.150, 0.000, -101.699, 0.000, 1.000, 1.000, 1.000);
  1911.         }
  1912.     }
  1913.  
  1914.     if(Player[playerid][UnlockedGrenade] == true)   //grenade
  1915.     {
  1916.         SetPlayerAttachedObject(playerid, 9, 342, 8, 0.231, 0.050, 0.091, -26.200, -87.399, -138.500, 1.000, 1.000, 1.000);
  1917.     }
  1918.    
  1919.     SetPlayerHealth(playerid, 999999);
  1920.     SetTimerEx("SpawnKill", 3000, false, "i", playerid);
  1921.     SendClientMessage(playerid, COLOR_GREEN, "ANTISPAWNKILL: Du bist für 3 Sekunden unverwundbar.");
  1922.  
  1923. return 1;
  1924. }
  1925.  
  1926. forward SpawnKill(playerid);
  1927. public SpawnKill(playerid)
  1928. {
  1929.     SetPlayerHealth(playerid, 20.0);
  1930.     if(Player[playerid][VIP] == 1)
  1931.     {
  1932.         SetPlayerArmour(playerid, 25.0);
  1933.     }
  1934.     SendClientMessage(playerid, COLOR_ORANGE, "ANTISPAWNKILL: Du bist wieder verwundbar.");
  1935.    
  1936.     return 1;
  1937. }
  1938.  
  1939. public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
  1940. {
  1941.     if(playerid != INVALID_PLAYER_ID && issuerid != INVALID_PLAYER_ID && Player[playerid][Team] != Player[issuerid][Team] && bodypart == 9 && (weaponid == RIFLE || weaponid == DEAGLE || weaponid == SNIPER) )
  1942.     if(Player[playerid][IsOnDuty] == false)
  1943.     {
  1944.         SetPlayerHealth(playerid, 0.0);
  1945.         SetPlayerArmour(playerid, 0.0);
  1946.         ShowAnn1(issuerid, "HEADSHOT");
  1947.  
  1948.         Player[issuerid][Headshots]++;
  1949.         GiveScore(issuerid, 10);
  1950.  
  1951.         switch(Player[issuerid][Team])
  1952.         {
  1953.             case GREENTEAM: SendClientMessage(issuerid, GREEN_COLOR, "+10 Punkte für einen Headshot!");
  1954.             case BLUETEAM:  SendClientMessage(issuerid, BLUE_COLOR, "+10 Punkte für einen Headshot!");
  1955.         }
  1956.  
  1957.         new str[256];
  1958.         format(str, sizeof(str), "%s%s {FFFFFF}hat %s%s{FFFFFF} einen Headshot verpasst!", TextColor[Player[issuerid][Team]], Player[issuerid][Name], TextColor[Player[playerid][Team]], Player[playerid][Name]);
  1959.         SendClientMessageToAll(-1,str);
  1960.         Player[playerid][LastHitWith] = -1;     //antide
  1961.         Player[playerid][LastHitBy] = -1;       //antide
  1962.         Player[issuerid][LastKilled] = playerid;
  1963.     }
  1964.  
  1965.     new Float:Health[3], Float:Damage;
  1966.     GetPlayerHealth(playerid, Health[0]);
  1967.     GetPlayerArmour(playerid, Health[1]);
  1968.    
  1969.     if(issuerid == INVALID_PLAYER_ID || playerid == INVALID_PLAYER_ID) return 0;
  1970.  
  1971.     if(Health[0] > 0 && playerid != INVALID_PLAYER_ID && issuerid != INVALID_PLAYER_ID)
  1972.     {
  1973.         if(amount > Health[0])
  1974.         {
  1975.             Damage = amount - Health[0];
  1976.             amount = amount - Damage;
  1977.         }
  1978.     }
  1979.  
  1980.     if(HitSound[issuerid] == true && issuerid != INVALID_PLAYER_ID && playerid != INVALID_PLAYER_ID)
  1981.     {
  1982.           PlayerPlaySound(issuerid,17802,0.0,0.0,0.0);
  1983.     }
  1984.  
  1985.  
  1986.     new iString[200], iColor[10];
  1987.  
  1988.     Health[2] = (Health[0] + Health[1]) - amount;
  1989.     if(Health[2] < 0) { Health[2] = 0; iColor = "~r~~h~"; }
  1990.     else if(Health[2] > 100) iColor = "~w~";
  1991.     else iColor = "~r~~h~";
  1992.  
  1993.     if(issuerid != INVALID_PLAYER_ID && playerid != INVALID_PLAYER_ID)
  1994.     {
  1995.         if(Player[issuerid][Team] == Player[playerid][Team]) return 1;
  1996.         Player[playerid][LastHitWith] = weaponid;   //antide
  1997.         Player[playerid][LastHitBy] = issuerid;     //antide
  1998.  
  1999.         PlayerPlaySound(playerid, 1131, 0, 0, 0);
  2000.         Player[issuerid][RDamage] += amount;
  2001.  
  2002.         if(gLastHit[0][issuerid] == -1 && gLastHit[1][issuerid] != playerid && gLastHit[2][issuerid] != playerid) gLastHit[0][issuerid] = playerid;
  2003.  
  2004.         if(gLastHit[0][issuerid] == playerid) {
  2005.             DamageDone[0][issuerid] += amount;
  2006.             format(iString, sizeof(iString), "~g~~h~~h~%s   ~w~~h~~h~/ -%.2f ~g~~h~~h~%s ~w~~h~~h~(%s~h~~h~%.2f~w~~h~~h~)",Player[playerid][Name], DamageDone[0][issuerid], WeaponNames[weaponid], iColor, Health[2]);
  2007.             PlayerTextDrawSetString(issuerid, DoingDamage[0], iString);
  2008.             TakeDmgCD[0][issuerid] = 1;
  2009.  
  2010.         } else {
  2011.             if(gLastHit[1][issuerid] == -1 && gLastHit[2][issuerid] != playerid) gLastHit[1][issuerid] = playerid;
  2012.             if(gLastHit[1][issuerid] == playerid ) {
  2013.                 DamageDone[1][issuerid] += amount;
  2014.                 format(iString, sizeof(iString), "~g~~h~~h~%s   ~w~~h~~h~/ -%.2f ~g~~h~~h~%s ~w~~h~~h~(%s~h~~h~%.2f~w~~h~~h~)",Player[playerid][Name], DamageDone[1][issuerid], WeaponNames[weaponid], iColor, Health[2]);
  2015.                 PlayerTextDrawSetString(issuerid, DoingDamage[1], iString);
  2016.                 TakeDmgCD[1][issuerid] = 1;
  2017.  
  2018.             } else {
  2019.                 DamageDone[2][issuerid] += amount;
  2020.                 gLastHit[2][issuerid] = playerid;
  2021.  
  2022.                 format(iString, sizeof(iString), "~g~~h~~h~%s   ~w~~h~~h~/ -%.2f ~g~~h~~h~%s ~w~~h~~h~(%s~h~~h~%.2f~w~~h~~h~)",Player[playerid][Name], DamageDone[2][issuerid], WeaponNames[weaponid], iColor, Health[2]);
  2023.                 PlayerTextDrawSetString(issuerid, DoingDamage[2], iString);
  2024.                 TakeDmgCD[2][issuerid] = 1;
  2025.  
  2026.             }
  2027.         }
  2028.  
  2029.  
  2030.         if(gLastHit[3][playerid] == -1 && gLastHit[4][playerid] != issuerid && gLastHit[5][playerid] != issuerid) gLastHit[3][playerid] = issuerid;
  2031.  
  2032.         if(gLastHit[3][playerid] == issuerid) {
  2033.             DamageDone[3][playerid] += amount;
  2034.  
  2035.             format(iString, sizeof(iString), "~r~~h~~h~%s   ~w~~h~~h~/ -%.2f ~r~~h~~h~%s ~w~~h~~h~(%s~h~~h~%.2f~w~~h~~h~)", Player[issuerid][Name], DamageDone[3][playerid], WeaponNames[weaponid], iColor, Health[2]);
  2036.             PlayerTextDrawSetString(playerid, GettingDamaged[0], iString);
  2037.             TakeDmgCD[3][playerid] = 1;
  2038.  
  2039.         } else {
  2040.             if(gLastHit[4][playerid] == -1 && gLastHit[5][playerid] != issuerid) gLastHit[4][playerid] = issuerid;
  2041.             if(gLastHit[4][playerid] == issuerid) {
  2042.                 DamageDone[4][playerid] += amount;
  2043.  
  2044.                 format(iString, sizeof(iString), "~r~~h~~h~%s   ~w~~h~~h~/ -%.2f ~r~~h~~h~%s ~w~~h~~h~(%s~h~~h~%.2f~w~~h~~h~)", Player[issuerid][Name], DamageDone[4][playerid], WeaponNames[weaponid], iColor, Health[2]);
  2045.                 PlayerTextDrawSetString(playerid, GettingDamaged[1], iString);
  2046.                 TakeDmgCD[4][playerid] = 1;
  2047.  
  2048.             } else {
  2049.                 DamageDone[5][playerid] += amount;
  2050.                 gLastHit[5][playerid] = issuerid;
  2051.  
  2052.                 format(iString, sizeof(iString), "~r~~h~~h~%s   ~w~~h~~h~/ -%.2f ~r~~h~~h~%s ~w~~h~~h~(%s~h~~h~%.2f~w~~h~~h~)", Player[issuerid][Name], DamageDone[5][playerid], WeaponNames[weaponid], iColor, Health[2]);
  2053.                 PlayerTextDrawSetString(playerid, GettingDamaged[2], iString);
  2054.                 TakeDmgCD[5][playerid] = 1;
  2055.  
  2056.             }
  2057.         }
  2058.     } else {
  2059.         if(GetPlayerState(playerid) != PLAYER_STATE_WASTED) {
  2060.  
  2061.             PlayerPlaySound(playerid, 1131, 0, 0, 0);
  2062.  
  2063.             if(gLastHit[3][playerid] == -1 && gLastHit[4][playerid] != playerid && gLastHit[5][playerid] != playerid) gLastHit[3][playerid] = playerid;
  2064.             if(gLastHit[3][playerid] == playerid) {
  2065.                 DamageDone[3][playerid] += amount;
  2066.  
  2067.                 format(iString, sizeof(iString), "~w~~h~~h~-%.2f ~r~~h~~h~%s ~w~~h~~h~(%s~h~~h~%.2f~w~~h~~h~)", DamageDone[3][playerid], WeaponNames[weaponid], iColor, Health[2]);
  2068.                 PlayerTextDrawSetString(playerid, GettingDamaged[0], iString);
  2069.                 TakeDmgCD[3][playerid] = 1;
  2070.  
  2071.             } else {
  2072.                 if(gLastHit[4][playerid] == -1 && gLastHit[5][playerid] != playerid) gLastHit[4][playerid] = playerid;
  2073.                 if(gLastHit[4][playerid] == playerid) {
  2074.                     DamageDone[4][playerid] += amount;
  2075.  
  2076.                     format(iString, sizeof(iString), "~w~~h~~h~-%.2f ~r~~h~~h~%s ~w~~h~~h~(%s~h~~h~%.2f~w~~h~~h~)", DamageDone[4][playerid], WeaponNames[weaponid], iColor, Health[2]);
  2077.                     PlayerTextDrawSetString(playerid, GettingDamaged[1], iString);
  2078.                     TakeDmgCD[4][playerid] = 1;
  2079.  
  2080.                 } else {
  2081.                     DamageDone[5][playerid] += amount;
  2082.  
  2083.                     format(iString, sizeof(iString), "~w~~h~~h~-%.2f ~r~~h~~h~%s ~w~~h~~h~(%s~h~~h~%.2f~w~~h~~h~)", DamageDone[5][playerid], WeaponNames[weaponid], iColor, Health[2]);
  2084.                     PlayerTextDrawSetString(playerid, GettingDamaged[2], iString);
  2085.                     gLastHit[5][playerid] = playerid;
  2086.                     TakeDmgCD[5][playerid] = 1;
  2087.  
  2088.                 }
  2089.             }
  2090.         }
  2091.     }
  2092.  
  2093.     return 1;
  2094. }
  2095.  
  2096.  
  2097. public OnPlayerDeath(playerid, killerid, reason)
  2098. {
  2099.     if(reason == 255) reason = 53;
  2100.     new iString[180];
  2101.    
  2102.     if(killerid == INVALID_PLAYER_ID) return 0;
  2103.  
  2104.     //antide
  2105.     if(reason == 54 && Player[playerid][LastHitWith] != -1 && Player[playerid][LastHitBy] != -1)
  2106.     {
  2107.         new weap, killahid;
  2108.         weap = Player[playerid][LastHitWith];
  2109.         killahid = Player[playerid][LastHitBy];
  2110.  
  2111.         SendDeathMessage(killahid, playerid, weap);
  2112.  
  2113.         GiveDeath(playerid);
  2114.         GiveScore(killahid, 3 * Player[killerid][Spree]);
  2115.         GiveKill(killahid);
  2116.         GiveWKill(killahid, weap);
  2117.         CheckRewards(killahid);
  2118.  
  2119.         Player[killahid][Spree]++;
  2120.  
  2121.         Player[playerid][LastHitWith] = -1;
  2122.         Player[playerid][LastHitBy] = -1;
  2123.         Player[killahid][LastKilled] = playerid;
  2124.     }
  2125.     //antide
  2126.  
  2127.     if(Player[killerid][IsOnDuty] == true)
  2128.     {
  2129.        printf("[warning] %s hat jemanden getötet während er im Dienst ist.",GetName(killerid));
  2130.        SendClientMessage(killerid, COLOR_RED, "Du hast gerade jemanden getötet während du im Dienst bist, unterlasse dies.");
  2131.     }
  2132.  
  2133.     if(killerid == INVALID_PLAYER_ID)
  2134.     {
  2135.         SendDeathMessage(INVALID_PLAYER_ID, playerid, reason);
  2136.         GiveDeath(playerid);
  2137.     }
  2138.  
  2139.     else if(killerid != INVALID_PLAYER_ID && IsPlayerConnected(killerid))
  2140.     {
  2141.         format(iString, sizeof(iString), "%sDu hast %s%s gekillt", TDColor[Player[killerid][Team]], TDColor[Player[playerid][Team]], Player[playerid][Name]);
  2142.         PlayerTextDrawSetString(killerid, DeathText[0], iString);
  2143.         PlayerTextDrawShow(killerid, DeathText[0]);
  2144.  
  2145.         format(iString, sizeof(iString), "%sDu wurdest von %s%s gekillt", TDColor[Player[playerid][Team]], TDColor[Player[killerid][Team]], Player[killerid][Name]);
  2146.         PlayerTextDrawSetString(playerid, DeathText[1], iString);
  2147.         PlayerTextDrawShow(playerid, DeathText[1]);
  2148.  
  2149.         SetTimerEx("DeathMessage", 4000, false, "ii", killerid, playerid);
  2150.  
  2151.         SendDeathMessage(killerid, playerid, reason);
  2152.  
  2153.         if(reason == 0 || reason == 24 || reason == 25 || reason == 27 || reason == 29 || reason == 30 || reason == 31 || reason == 33 || reason == 34 || reason == 51) GiveWKill(killerid, reason);
  2154.  
  2155.         GiveKill(killerid);
  2156.         GiveDeath(playerid);
  2157.         Player[killerid][Spree]++;
  2158.         GiveScore(killerid, 1 * Player[killerid][Spree]);
  2159.  
  2160.         switch(Player[killerid][Spree])
  2161.         {
  2162.             case 2: ShowAnn2(killerid, "DOPPEL KILL!");
  2163.             case 3: ShowAnn2(killerid, "DREIFACH KILL!");
  2164.             case 4: ShowAnn2(killerid, "VIERFACH KILL!");
  2165.             case 5: ShowAnn2(killerid, "PENTA KILL!");
  2166.             case 6: ShowAnn2(killerid, "MEGA KILL!");
  2167.             case 7: ShowAnn2(killerid, "ULTRA KILL!");
  2168.             case 8: ShowAnn2(killerid, "UNAUFHALTSAM!");
  2169.             case 9: ShowAnn2(killerid, "GOETTLICH!");
  2170.             case 10 .. 200:
  2171.             {
  2172.                 format(iString, sizeof(iString), "HEILIGE SCHEIßE!~n~%s%s %d KILLS!", TDColor[Player[killerid][Team]], Player[killerid][Name], Player[killerid][Spree]);
  2173.                 ShowAnn2(killerid, iString);
  2174.             }
  2175.         }
  2176.  
  2177.         switch(Player[killerid][Team])
  2178.         {
  2179.             case GREENTEAM: GKills++;
  2180.             case BLUETEAM: BKills++;
  2181.         }
  2182.  
  2183.         if( Player[killerid][SniperK] == 5 || Player[killerid][SniperK] == 25 || Player[killerid][SniperK] == 50 ||
  2184.             Player[killerid][SniperK] == 100 || Player[killerid][SniperK] == 150 || Player[killerid][SniperK] == 200 ||
  2185.             Player[killerid][SniperK] == 250 || Player[killerid][SniperK] == 300 || Player[killerid][SniperK] == 350 ||
  2186.             Player[killerid][SniperK] == 400 || Player[killerid][SniperK] == 450 || Player[killerid][SniperK] == 499 )
  2187.         {
  2188.             format(iString, sizeof(iString), "Scharfschuetze~n~~n~%d / 500 Sniper Kills", Player[killerid][DeagleK]);
  2189.             ShowAch(killerid, iString, Player[killerid][SniperK], 500);
  2190.         }
  2191.  
  2192.         if( Player[killerid][DeagleK] == 5 || Player[killerid][DeagleK] == 25 || Player[killerid][DeagleK] == 50 ||
  2193.             Player[killerid][DeagleK] == 75 || Player[killerid][DeagleK] == 100 || Player[killerid][DeagleK] == 125 ||
  2194.             Player[killerid][DeagleK] == 150 || Player[killerid][DeagleK] == 175 || Player[killerid][DeagleK] == 200 ||
  2195.             Player[killerid][DeagleK] == 225 || Player[killerid][DeagleK] == 249 )
  2196.         {
  2197.             format(iString, sizeof(iString), "Deagle Experte~n~~n~%d / 250 Deagle Kills", Player[killerid][DeagleK]);
  2198.             ShowAch(killerid, iString, Player[killerid][DeagleK], 250);
  2199.         }
  2200.  
  2201.         if( Player[killerid][ShotgunK] == 5 || Player[killerid][ShotgunK] == 50 || Player[killerid][ShotgunK] == 100 ||
  2202.             Player[killerid][ShotgunK] == 150 || Player[killerid][ShotgunK] == 200 || Player[killerid][ShotgunK] == 250 ||
  2203.             Player[killerid][ShotgunK] == 300 || Player[killerid][ShotgunK] == 350 || Player[killerid][ShotgunK] == 400 ||
  2204.             Player[killerid][ShotgunK] == 450 || Player[killerid][ShotgunK] == 500 || Player[killerid][ShotgunK] == 550 ||
  2205.             Player[killerid][ShotgunK] == 600 || Player[killerid][ShotgunK] == 650 || Player[killerid][ShotgunK] == 700 ||
  2206.             Player[killerid][ShotgunK] == 750 || Player[killerid][ShotgunK] == 800 || Player[killerid][ShotgunK] == 850 ||
  2207.             Player[killerid][ShotgunK] == 900 || Player[killerid][ShotgunK] == 950  || Player[killerid][ShotgunK] == 999 )
  2208.         {
  2209.             format(iString, sizeof(iString), "Shotgun Experte~n~~n~%d / 1000 Shotgun Kills", Player[killerid][ShotgunK]);
  2210.             ShowAch(killerid, iString, Player[killerid][ShotgunK], 1000);
  2211.         }
  2212.  
  2213.         if( Player[killerid][RifleK] == 5 || Player[killerid][RifleK] == 25 || Player[killerid][RifleK] == 50 ||
  2214.             Player[killerid][RifleK] == 75 || Player[killerid][RifleK] == 100 || Player[killerid][RifleK] == 125 ||
  2215.             Player[killerid][RifleK] == 150 || Player[killerid][RifleK] == 175 || Player[killerid][RifleK] == 200 ||
  2216.             Player[killerid][RifleK] == 225 || Player[killerid][RifleK] == 249 )
  2217.         {
  2218.             format(iString, sizeof(iString), "Rilfe Experte~n~~n~%d / 250 Rifle Kills", Player[killerid][RifleK]);
  2219.             ShowAch(killerid, iString, Player[killerid][RifleK], 250);
  2220.         }
  2221.  
  2222.         if( Player[killerid][MP5K] == 5 || Player[killerid][MP5K] == 10 || Player[killerid][MP5K] == 15 ||
  2223.             Player[killerid][MP5K] == 20 || Player[killerid][MP5K] == 25 || Player[killerid][MP5K] == 30 ||
  2224.             Player[killerid][MP5K] == 35 || Player[killerid][MP5K] == 40 || Player[killerid][MP5K] == 45 ||
  2225.             Player[killerid][MP5K] == 49 )
  2226.         {
  2227.             format(iString, sizeof(iString), "MP5 Experte~n~~n~%d / 50 MP5 Kills", Player[killerid][MP5K]);
  2228.             ShowAch(killerid, iString, Player[killerid][MP5K], 50);
  2229.         }
  2230.  
  2231.         if( Player[killerid][AK47K] == 5 || Player[killerid][AK47K] == 10 || Player[killerid][AK47K] == 20 ||
  2232.             Player[killerid][AK47K] == 30 || Player[killerid][AK47K] == 40 || Player[killerid][AK47K] == 50 ||
  2233.             Player[killerid][AK47K] == 60 || Player[killerid][AK47K] == 70 || Player[killerid][AK47K] == 80 ||
  2234.             Player[killerid][AK47K] == 90 || Player[killerid][AK47K] == 99 )
  2235.         {
  2236.             format(iString, sizeof(iString), "AK47 Experte~n~~n~%d / 100 AK47 Kills", Player[killerid][AK47K]);
  2237.             ShowAch(killerid, iString, Player[killerid][AK47K], 100);
  2238.         }
  2239.  
  2240.         if( Player[killerid][M4K] == 5 || Player[killerid][M4K] == 25 || Player[killerid][M4K] == 50 ||
  2241.             Player[killerid][M4K] == 75 || Player[killerid][M4K] == 100 || Player[killerid][M4K] == 125 ||
  2242.             Player[killerid][M4K] == 150 || Player[killerid][M4K] == 175 || Player[killerid][M4K] == 200 ||
  2243.             Player[killerid][M4K] == 225 || Player[killerid][M4K] == 249 )
  2244.         {
  2245.             format(iString, sizeof(iString), "M4 Experte~n~~n~%d / 250 M4 Kills", Player[killerid][M4K]);
  2246.             ShowAch(killerid, iString, Player[killerid][M4K], 250);
  2247.         }
  2248.  
  2249.         if( Player[killerid][Headshots] == 5 || Player[killerid][Headshots] == 10 || Player[killerid][Headshots] == 15 ||
  2250.             Player[killerid][Headshots] == 20 || Player[killerid][Headshots] == 25 || Player[killerid][Headshots] == 30 ||
  2251.             Player[killerid][Headshots] == 35 || Player[killerid][Headshots] == 40 || Player[killerid][Headshots] == 45 ||
  2252.             Player[killerid][Headshots] == 49 )
  2253.         {
  2254.             format(iString, sizeof(iString), "Der Kopfsucher~n~~n~%d / 50 Headshots", Player[killerid][Headshots]);
  2255.             ShowAch(killerid, iString, Player[killerid][Headshots], 50);
  2256.         }
  2257.  
  2258.         if( Player[killerid][GrenadeK] == 5 || Player[killerid][GrenadeK] == 10 || Player[killerid][GrenadeK] == 15 ||
  2259.             Player[killerid][GrenadeK] == 20 || Player[killerid][GrenadeK] == 25 || Player[killerid][GrenadeK] == 30 ||
  2260.             Player[killerid][GrenadeK] == 35 || Player[killerid][GrenadeK] == 40 || Player[killerid][GrenadeK] == 45 ||
  2261.             Player[killerid][GrenadeK] == 49 )
  2262.         {
  2263.             format(iString, sizeof(iString), "BOOM~n~~n~%d / 50 Grenade Kills", Player[killerid][MP5K]);
  2264.             ShowAch(killerid, iString, Player[killerid][GrenadeK], 50);
  2265.         }
  2266.  
  2267.         if(Player[killerid][SniperK] == 500     && Player[killerid][UnlockedEagleEye] == false)
  2268.         {
  2269.             PlayerPlaySound(killerid, 1133, 0, 0, 0);
  2270.             format(iString, sizeof(iString), "~g~~h~~h~~h~Errungenschaft erhalten!~n~~n~~g~~h~~h~~h~Scharfschuetze~n~%d / 500 Sniper Kills", Player[killerid][SniperK]);
  2271.             ShowAch(killerid, iString, Player[killerid][SniperK], 500);
  2272.         }
  2273.         if(Player[killerid][DeagleK] == 250     && Player[killerid][UnlockedMP5] == false)
  2274.         {
  2275.             SendClientMessage(killerid, YELLOW_COLOR, "MP5 freigeschaltet! Nutze {FFFFFF}/guns {FFFF00}um sie zu benutzen");
  2276.             PlayerPlaySound(killerid, 1133, 0, 0, 0);
  2277.             format(iString, sizeof(iString), "~g~~h~~h~~h~Errungenschaft erhalten!~n~~n~~g~~h~~h~~h~Deagle Experte~n~%d / 250 Deagle Kills~n~MP5 freigeschaltet! Du kannst sie mit /guns ausruesten.", Player[killerid][DeagleK]);
  2278.             ShowAch(killerid, iString, Player[killerid][DeagleK], 250);
  2279.         }
  2280.         if(Player[killerid][ShotgunK] == 1000   && Player[killerid][UnlockedSpas] == false)
  2281.         {
  2282.             SendClientMessage(killerid, YELLOW_COLOR, "Spas freigeschaltet! Nutze {FFFFFF}/guns {FFFF00}um sie zu benutzen");
  2283.             PlayerPlaySound(killerid, 1133, 0, 0, 0);
  2284.             format(iString, sizeof(iString), "~g~~h~~h~~h~Errungenschaft erhalten!~n~~n~~g~~h~~h~~h~Shotgun Experte~n~%d / 1000 Shotgun Kills~n~Spas freigeschaltet! Du kannst sie mit /guns ausruesten.", Player[killerid][ShotgunK]);
  2285.             ShowAch(killerid, iString, Player[killerid][ShotgunK], 1000);
  2286.         }
  2287.         if(Player[killerid][RifleK] == 250      && Player[killerid][UnlockedSniper] == false)
  2288.         {
  2289.             SendClientMessage(killerid, YELLOW_COLOR, "Sniper freigeschaltet! Nutze {FFFFFF}/guns {FFFF00}um sie zu benutzen");
  2290.             PlayerPlaySound(killerid, 1133, 0, 0, 0);
  2291.             format(iString, sizeof(iString), "~g~~h~~h~~h~Errungenschaft erhalten!~n~~n~~g~~h~~h~~h~Riflee Experte~n~%d / 250 Rifle Kills~n~Sniper freigeschaltet! Du kannst sie mit /guns ausruesten.", Player[killerid][RifleK]);
  2292.             ShowAch(killerid, iString, Player[killerid][RifleK], 250);
  2293.         }
  2294.         if(Player[killerid][MP5K] == 50         && Player[killerid][UnlockedAK47] == false)
  2295.         {
  2296.             SendClientMessage(killerid, YELLOW_COLOR, "AK47 freigeschaltet! Nutze {FFFFFF}/guns {FFFF00}um sie zu benutzen");
  2297.             PlayerPlaySound(killerid, 1133, 0, 0, 0);
  2298.             format(iString, sizeof(iString), "~g~~h~~h~~h~Errungenschaft erhalten!~n~~n~~g~~h~~h~~h~MP5 Experte~n~%d / 50 MP5 Kills~n~AK47 freigeschaltet! Du kannst sie mit /guns ausruesten.", Player[killerid][MP5K]);
  2299.             ShowAch(killerid, iString, Player[killerid][MP5K], 50);
  2300.         }
  2301.         if(Player[killerid][AK47K] == 100       && Player[killerid][UnlockedM4] == false)
  2302.         {
  2303.             SendClientMessage(killerid, YELLOW_COLOR, "M4 freigeschaltet! Nutze {FFFFFF}/guns {FFFF00}um sie zu benutzen");
  2304.             PlayerPlaySound(killerid, 1133, 0, 0, 0);
  2305.             format(iString, sizeof(iString), "~g~~h~~h~~h~Errungenschaft erhalten!~n~~n~~g~~h~~h~~h~AK47 Experte~n~%d / 100 AK47 Kills~n~M4 freigeschaltet! Du kannst sie in /guns ausruesten.", Player[killerid][AK47K]);
  2306.             ShowAch(killerid, iString, Player[killerid][AK47K], 100);
  2307.         }
  2308.         if(Player[killerid][M4K] == 250         && Player[killerid][UnlockedGrenade] == false)
  2309.         {
  2310.             SendClientMessage(killerid, YELLOW_COLOR, "Granate freigeschaltet! Nutze {FFFFFF}/guns {FFFF00}um sie zu benutzen");
  2311.             PlayerPlaySound(killerid, 1133, 0, 0, 0);
  2312.             format(iString, sizeof(iString), "~g~~h~~h~~h~Errungenschaft erhalten!~n~~n~~g~~h~~h~~h~M4 Experte~n~%d / 250 M4 Kills~n~Granate freigeschaltet! Du kannst sie in /guns ausruesten.", Player[killerid][M4K]);
  2313.             ShowAch(killerid, iString, Player[killerid][M4K], 250);
  2314.         }
  2315.         if(Player[killerid][Headshots] == 50    && Player[killerid][UnlockedCigar] == false)
  2316.         {
  2317.             SendClientMessage(killerid, YELLOW_COLOR, "Zigarre freigeschaltet! Du wirst mit einer Zigarre das nächste mal spawnen");
  2318.             PlayerPlaySound(killerid, 1133, 0, 0, 0);
  2319.             format(iString, sizeof(iString), "~g~~h~~h~~h~Errungenschaft erhalten!~n~~n~~g~~h~~h~~h~Der Kopfsucher~n~%d / 50 Headshots~n~Du spawnst jetzt mit einer Zigarre!", Player[killerid][Headshots]);
  2320.             ShowAch(killerid, iString, Player[killerid][Headshots], 50);
  2321.         }
  2322.         if(Player[killerid][GrenadeK] == 50     && Player[killerid][UnlockedFlame] == false)
  2323.         {
  2324.             SendClientMessage(killerid, YELLOW_COLOR, "Flammen Schädel freigeschaltet! Du wirst mit einem Flammenschädel das nächste mal spawnen");
  2325.             PlayerPlaySound(killerid, 1133, 0, 0, 0);
  2326.             format(iString, sizeof(iString), "~g~~h~~h~~h~Errungenschaft erhalten!~n~~n~~g~~h~~h~~h~BOOM~n~%d / 50 Grenade Kills~n~Du spawnst jetzt mit einem Flammenschädel!", Player[killerid][MP5K]);
  2327.             ShowAch(killerid, iString, Player[killerid][GrenadeK], 50);
  2328.         }
  2329.        
  2330.         CheckRewards(killerid);
  2331.     }
  2332.    
  2333.     Player[playerid][LastHitWith] = -1;     //antide
  2334.     Player[playerid][LastHitBy] = -1;       //antide
  2335.     Player[playerid][Spree] = 0;
  2336.     Player[killerid][LastKilled] = playerid;
  2337.  
  2338.     return 1;
  2339. }
  2340.  
  2341.  
  2342.  
  2343. public OnPlayerText(playerid, text[])
  2344. {
  2345.     for(new cnt = 0; cnt < sizeof(BadWords); cnt++)
  2346.     {
  2347.         if(strfind(text, BadWords[cnt], true) != -1)
  2348.         {
  2349.                     SendClientMessage(playerid, COLOR_RED, "CHAT: Du hast ein verbotenes Wort benutzt.");
  2350.                     return 0;
  2351.         }
  2352.     }
  2353.    
  2354.     if(stringContainsIP(text))
  2355.     {
  2356.         SystemBan(playerid, "Fremdwerbung");
  2357.         return 0;
  2358.     }
  2359.  
  2360.     if(text[0] == '!') {
  2361.         new ChatColor;
  2362.         switch(Player[playerid][Team]) {
  2363.             case GREENTEAM:     ChatColor = 0x55FF55FF;
  2364.             case BLUETEAM:      ChatColor = 0x0080FF44;
  2365.         }
  2366.         format(ChatString,sizeof(ChatString),"[TEAM] %s (%d): %s", Player[playerid][Name], playerid, text[1]);
  2367.  
  2368.         foreach(new i : Player)
  2369.         {
  2370.             if(Player[playerid][Team] == GREENTEAM && Player[i][Team] == GREENTEAM) { SendClientMessage(i, ChatColor, ChatString); PlayerPlaySound(i,1137,0.0,0.0,0.0); }
  2371.             if(Player[playerid][Team] == BLUETEAM && Player[i][Team] == BLUETEAM) { SendClientMessage(i, ChatColor, ChatString); PlayerPlaySound(i,1137,0.0,0.0,0.0); }
  2372.         }
  2373.         return 0;
  2374.     } else {
  2375.         if(Player[playerid][Muted] == true) { SendErrorMessage(playerid,"Du bist gemuted."); return 0; }
  2376.     }
  2377.  
  2378.     if(text[0] == '@' && Player[playerid][Level] > 0) {
  2379.         format(ChatString, sizeof(ChatString), "[ACHAT] %s %s (%d): %s", GetRang(playerid),Player[playerid][Name], playerid, text[1]);
  2380.         foreach(new i : Player) {
  2381.             if(Player[i][Level] > 0) {
  2382.                 SendClientMessage(i, ADMIN_COLOR, ChatString);
  2383.                 PlayerPlaySound(i,1137,0.0,0.0,0.0);
  2384.             }
  2385.         }
  2386.  
  2387.         return 0;
  2388.     }
  2389.  
  2390.     if(Player[playerid][Level] == 1) {
  2391.         new iString[256];
  2392.         format(iString, sizeof(iString),"{caa225}(( [Level %d] {96a3a8}"Rang1Name" %s (%d): %s {caa225}))",Player[playerid][URang], GetName(playerid), playerid, text[0]);
  2393.         SendClientMessageToAll(0xFFFFFF, iString);
  2394.         format(iString,sizeof(iString),""Rang1Name" %s: %s",GetName(playerid),text[0]);
  2395.         ChatLog(iString);
  2396.         format(iString,sizeof(iString),"[SAMP] "Rang1Name" %s: %s",GetName(playerid),text[0]);
  2397.         #if defined DiscordBot
  2398.         DCC_SendChannelMessage(g_WelcomeChannelId, iString);
  2399.         #endif
  2400.         return 0;
  2401.     }
  2402.    
  2403.     if(Player[playerid][Level] == 2) {
  2404.         new iString[256];
  2405.         format(iString, sizeof(iString),"{e16600}(( [Level %d] {96a3a8}"Rang2Name" %s (%d): %s {e16600}))",Player[playerid][URang], GetName(playerid), playerid, text[0]);
  2406.         SendClientMessageToAll(0xFFFFFF, iString);
  2407.         format(iString,sizeof(iString),""Rang2Name" %s: %s",GetName(playerid),text[0]);
  2408.         ChatLog(iString);
  2409.         format(iString,sizeof(iString),"[SAMP] "Rang2Name" %s: %s",GetName(playerid),text[0]);
  2410.         #if defined DiscordBot
  2411.         DCC_SendChannelMessage(g_WelcomeChannelId, iString);
  2412.         #endif
  2413.         return 0;
  2414.     }
  2415.    
  2416.     if(Player[playerid][Level] == 3) {
  2417.         new iString[256];
  2418.         format(iString, sizeof(iString),"{ff4040}(( [Level %d] {96a3a8}"Rang3Name" %s (%d): %s {ff4040}))",Player[playerid][URang], GetName(playerid), playerid, text[0]);
  2419.         SendClientMessageToAll(0xFFFFFF, iString);
  2420.         format(iString,sizeof(iString),""Rang3Name" %s: %s",GetName(playerid),text[0]);
  2421.         ChatLog(iString);
  2422.         format(iString,sizeof(iString),"[SAMP] "Rang3Name" %s: %s",GetName(playerid),text[0]);
  2423.         #if defined DiscordBot
  2424.         DCC_SendChannelMessage(g_WelcomeChannelId, iString);
  2425.         #endif
  2426.         return 0;
  2427.     }
  2428.    
  2429.     if(Player[playerid][Level] == 4) {
  2430.         new iString[256];
  2431.         format(iString, sizeof(iString),"{1460ab}(( [Level %d] {96a3a8}"Rang4Name" %s (%d): %s {1460ab}))",Player[playerid][URang], GetName(playerid), playerid, text[0]);
  2432.         SendClientMessageToAll(0xFFFFFF, iString);
  2433.         format(iString,sizeof(iString),""Rang4Name" %s: %s",GetName(playerid),text[0]);
  2434.         ChatLog(iString);
  2435.         format(iString,sizeof(iString),"[SAMP] "Rang4Name" %s: %s",GetName(playerid),text[0]);
  2436.         #if defined DiscordBot
  2437.         DCC_SendChannelMessage(g_WelcomeChannelId, iString);
  2438.         #endif
  2439.         return 0;
  2440.     }
  2441.    
  2442.     if(Player[playerid][VIP] == 1 && ChatDisabled == false) {
  2443.          new iString[256];
  2444.          format(iString, sizeof(iString),"{effc09}(( [Level %d] {96a3a8}VIP %s (%d): %s {effc09}))",Player[playerid][URang], GetName(playerid), playerid, text[0]);
  2445.          SendClientMessageToAll(0xFFFFFF, iString);
  2446.          format(iString,sizeof(iString),"VIP %s: %s",GetName(playerid),text[0]);
  2447.          ChatLog(iString);
  2448.          format(iString,sizeof(iString),"[SAMP] VIP %s: %s",GetName(playerid),text[0]);
  2449.          #if defined DiscordBot
  2450.          DCC_SendChannelMessage(g_WelcomeChannelId, iString);
  2451.          #endif
  2452.          return 0;
  2453.     }
  2454.    
  2455.     if(Player[playerid][Logged] == false)
  2456.     {
  2457.         return 0;
  2458.     }
  2459.    
  2460.     if(pJailed[playerid] == true) {
  2461.         new iString[256];
  2462.         SendClientMessage(playerid, COLOR_RED, "Du bist im CP Prison und darfst dadurch nicht schreiben.");
  2463.         format(iString,sizeof(iString),"%s [JAILED]: %s",GetName(playerid),text[0]);
  2464.         ChatLog(iString);
  2465.     }
  2466.    
  2467.     if(ChatDisabled == true) {
  2468.         if(Player[playerid][Level] < 1)
  2469.         {
  2470.            SendClientMessage(playerid, COLOR_RED, "Der globale Chat ist deaktiviert.");
  2471.         }
  2472.     }
  2473.        
  2474.     if(ChatDisabled == false) {
  2475.       new iString[256];
  2476.     format(ChatString, sizeof(ChatString),"(( [Level %d] {96a3a8}Spieler %s (%d): %s {FFFFFF}))",Player[playerid][URang], GetName(playerid), playerid, text[0]);
  2477.       SendClientMessageToAll(0xFFFFFF, ChatString);
  2478.       format(iString,sizeof(iString),"%s: %s",GetName(playerid),text[0]);
  2479.       ChatLog(iString);
  2480.       format(iString,sizeof(iString),"[SAMP] %s: %s",GetName(playerid),text[0]);
  2481.       #if defined DiscordBot
  2482.       DCC_SendChannelMessage(g_WelcomeChannelId, iString);
  2483.       #endif
  2484.       }
  2485.        
  2486.     return 0;
  2487. }
  2488.  
  2489. public OnPlayerCommandReceived(playerid, cmdtext[])
  2490. {
  2491.     return 1;
  2492. }
  2493.  
  2494. public OnPlayerCommandPerformed(playerid, cmdtext[], success)
  2495. {
  2496.     if(success == 0)
  2497.     {
  2498.         new iString[256];
  2499.         format(iString, sizeof(iString), "FEHLER: {FFFFFF}Der Befehl {FF0000}%s {FFFFFF}ist unbekannt. Um die Liste der Befehle zu sehen nutze: {FFFF00}/cmds", cmdtext);
  2500.         SendClientMessage(playerid, 0xFF0000FF, iString);
  2501.     }
  2502.     return 1;
  2503. }
  2504.  
  2505. public OnPlayerStateChange(playerid, newstate, oldstate)
  2506. {
  2507.     return 1;
  2508. }
  2509.  
  2510. public OnPlayerRequestSpawn(playerid)
  2511. {
  2512.     if(Player[playerid][Logged] == false)
  2513.     {
  2514.         GameTextForPlayer(playerid, "~r~~h~Bitte logge dich ein oder ~r~~h~registriere dich zuerst.", 3000, 4);
  2515.         return 0;
  2516.     }
  2517.    
  2518.     if(Player[playerid][Team] == GREENTEAM)
  2519.     {
  2520.         if(GetTeamBalance(GREENTEAM) > GetTeamBalance(BLUETEAM))
  2521.         {
  2522.             GameTextForPlayer(playerid, "~r~~h~Das Team ist voll!~n~~r~~h~W\154hle ein anderes Team", 3000, 4);
  2523.             return 0;
  2524.         }
  2525.     }
  2526.    
  2527.     if(Player[playerid][Team] == BLUETEAM)
  2528.     {
  2529.         if(GetTeamBalance(BLUETEAM) > GetTeamBalance(GREENTEAM))
  2530.         {
  2531.             GameTextForPlayer(playerid, "~r~~h~Das Team ist voll!~n~~r~~h~W\154hle ein anderes Team", 3000, 4);
  2532.             return 0;
  2533.         }
  2534.     }
  2535.  
  2536.     if(Player[playerid][ClassID] == 2 || Player[playerid][ClassID] == 3 || Player[playerid][ClassID] == 6 || Player[playerid][ClassID] == 7)
  2537.     {
  2538.         if(Player[playerid][VIP] == 0)
  2539.         {
  2540.             GameTextForPlayer(playerid, "~r~~h~Nur f\172r VIPs!", 3000, 4);
  2541.             return 0;
  2542.         }
  2543.     }
  2544.  
  2545.     return 1;
  2546. }
  2547.  
  2548. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  2549. {      
  2550.     if(newkeys == 160 && GetPlayerWeapon(playerid) == 0 && !IsPlayerInAnyVehicle(playerid))
  2551.     {
  2552.         SyncPlayer(playerid);
  2553.         return 1;
  2554.     }
  2555.  
  2556.     if( (oldkeys & KEY_FIRE) || (oldkeys & KEY_HANDBRAKE) || (oldkeys & KEY_SECONDARY_ATTACK) || (oldkeys & KEY_SPRINT) || (oldkeys & KEY_JUMP) )
  2557.     {
  2558.         CloseTable(playerid);
  2559.     }
  2560.    
  2561.     if( (oldkeys & KEY_SECONDARY_ATTACK) && Player[playerid][Checking] == true)
  2562.     {
  2563.         Player[playerid][Checking] = false;
  2564.     }
  2565.    
  2566. //easter
  2567.  
  2568.     if(oldkeys & KEY_SECONDARY_ATTACK)
  2569.     {
  2570.         if((IsPlayerInArea(playerid, EasterX-1, EasterX+1, EasterY-1, EasterY+1)) && EggFound == false)
  2571.         {
  2572.             GameTextForPlayer(playerid, "~y~Halloween Kürbis gefunden!", 3000, 3);
  2573.             GiveScore(playerid, 10);
  2574.  
  2575.  
  2576. //easter1
  2577.     SendClientMessage(playerid, YELLOW_COLOR, "KÜRBIS: Du hast eine Granate in dem Kürbis gefunden!");
  2578.         GivePlayerWeapon(playerid, GRENADE, 1);
  2579. //easter1
  2580.  
  2581.  
  2582. //easter2
  2583.  
  2584.             new Float:AP;
  2585.             new skin = GetPlayerSkin(playerid);
  2586.            
  2587.             GetPlayerArmour(playerid, AP);
  2588.             SetPlayerArmour(playerid, AP+25);
  2589.             SendClientMessage(playerid, YELLOW_COLOR, "KÜRBIS: Du hast ein bisschen {FFFFFF}Rüstung {FFFF00}in dem Kürbis gefunden!");
  2590.             switch(skin)    //armor
  2591.             {
  2592.                 case 53:    SetPlayerAttachedObject(playerid, 0, 19515, 1, 0.000, 0.036, 0.000, 0.000, -1.800, 0.000, 1.068, 1.163, 1.000, 0xFF55FF55, 0xFF55FF55);
  2593.                 case 250:   SetPlayerAttachedObject(playerid, 0, 19515, 1, 0.022, 0.037, 0.000, 0.000, -1.800, 0.000, 1.318, 1.393, 1.000, 0xFF55FF55, 0xFF55FF55);
  2594.                 case 45:    SetPlayerAttachedObject(playerid, 0, 19515, 1, 0.013, 0.049, 0.000, 0.000, -1.800, 0.000, 1.160, 1.171, 1.000, 0xFF55FF55, 0xFF55FF55);
  2595.                 case 191:   SetPlayerAttachedObject(playerid, 0, 19515, 1, 0.074, 0.041, 0.000, 0.000, -1.800, 9.599, 1.178, 1.253, 0.868, 0xFF55FF55, 0xFF55FF55);
  2596.                 case 230:   SetPlayerAttachedObject(playerid, 0, 19515, 1, 0.017, 0.058, 0.000, 0.000, -1.800, 0.000, 1.160, 1.087, 0.857, 0xFF0080FF, 0xFF0080FF);
  2597.                 case 177:   SetPlayerAttachedObject(playerid, 0, 19515, 1, 0.004, 0.054, 0.000, 0.000, -1.800, 0.599, 1.317, 1.392, 1.213, 0xFF0080FF, 0xFF0080FF);
  2598.                 case 154:   SetPlayerAttachedObject(playerid, 0, 19515, 1, 0.013, 0.049, 0.000, 0.000, -1.800, 0.000, 1.160, 1.171, 1.000, 0xFF0080FF, 0xFF0080FF);
  2599.                 case 198:   SetPlayerAttachedObject(playerid, 0, 19515, 1, 0.042, 0.074, 0.000, 0.000, -1.800, 5.500, 1.230, 1.392, 0.860, 0xFF0080FF, 0xFF0080FF);
  2600.             }
  2601.  
  2602. //easter2
  2603.  
  2604. //easter3
  2605.             SendClientMessage(playerid, YELLOW_COLOR, "KÜRBIS: Du hast einen {FFFFFF}Raketenwerfer {FFFF00}in dem Kürbis gefunden!");
  2606.             GivePlayerWeapon(playerid, 36, 1);
  2607. //easter3
  2608.  
  2609.             EggFound = true;
  2610.             new iString[128];
  2611.             format(iString, sizeof(iString), "%s%s {FFFF00}hat einen Halloween Kürbis gefunden!", TextColor[Player[playerid][Team]], Player[playerid][Name]);
  2612.             SendClientMessageToAll(YELLOW_COLOR, iString);
  2613.             Update3DTextLabelText(EasterText, 0xFFFF00FF, "KÜRBIS: Dieser Kürbis wurde schon von jemandem aufgemacht.");
  2614.         }
  2615.     }
  2616.  
  2617. //easter
  2618.  
  2619.     return 1;
  2620. }
  2621.  
  2622. public OnPlayerUpdate(playerid)
  2623. {
  2624.     if(Player[playerid][IsOnDuty] == true) SetPlayerHealth(playerid, 9999);
  2625.    
  2626.     new Float:Health;
  2627.     new HealthNum[15];
  2628.     GetPlayerHealth(playerid, Health);
  2629.     format(HealthNum, sizeof(HealthNum), "%.0f", Health);
  2630.     TextDrawSetString(DigiHP[playerid], HealthNum);
  2631.     TextDrawShowForPlayer(playerid, DigiHP[playerid]);
  2632.  
  2633.     new Float:Armour;
  2634.     GetPlayerArmour(playerid, Armour);
  2635.     if(Armour >= 1)
  2636.     {
  2637.         new ArmourNum[15];
  2638.         format(ArmourNum, 15, "%.0f", Armour);
  2639.         TextDrawSetString(DigiAP[playerid], ArmourNum);
  2640.         TextDrawShowForPlayer(playerid, DigiAP[playerid]);
  2641.     }
  2642.     else
  2643.     {
  2644.         TextDrawHideForPlayer(playerid, DigiAP[playerid]);
  2645.     }
  2646.  
  2647.     return 1;
  2648. }
  2649.  
  2650. public OnPlayerStreamIn(playerid, forplayerid)
  2651. {
  2652.     if(Player[forplayerid][Team] != Player[playerid][Team])
  2653.     {
  2654.         SetPlayerMarkerForPlayer(forplayerid, playerid, GetPlayerColor(playerid) & 0xFFFFFF00);
  2655.     } else  {
  2656.         SetPlayerMarkerForPlayer(forplayerid, playerid, GetPlayerColor(playerid) | 0x00000077);
  2657.     }
  2658.     return 1;
  2659. }
  2660.  
  2661. public OnPlayerStreamOut(playerid, forplayerid)
  2662. {
  2663.     if(Player[forplayerid][Team] != Player[playerid][Team])
  2664.     {
  2665.         SetPlayerMarkerForPlayer(forplayerid,playerid, GetPlayerColor(playerid) & 0xFFFFFF00);
  2666.     } else {
  2667.         SetPlayerMarkerForPlayer(forplayerid,playerid, GetPlayerColor(playerid) | 0x00000055);
  2668.     }
  2669.     return 1;
  2670. }
  2671.  
  2672. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  2673. {
  2674.     if(Player[playerid][Level] == 1)
  2675.     {
  2676.        ShowPlayerDialog(playerid, 1337, DIALOG_STYLE_LIST, "{005eff}Admin Menü", "{ffff00}Spieler kicken\n{15ff00}Spieler muten\n{00abff}Spieler ins CP Prison stecken\n{7c00ff}Nachricht versenden\n{E28356}Spieler verwarnen", "Auswählen", "Abbrechen");
  2677.        ClickedPlayer[playerid] = clickedplayerid;
  2678.     }
  2679.    
  2680.     if(Player[playerid][Level] > 1)
  2681.     {
  2682.        ShowPlayerDialog(playerid, 1337, DIALOG_STYLE_LIST, "{005eff}Admin Menü", "{FFFF00}Spieler kicken\n{15ff00}Spieler muten\n{00abff}Spieler ins CP Prison stecken\n{7c00ff}Nachricht versenden\n{E28356}Spieler verwarnen\n{FF0000}Spieler bannen\n{ff7400}Spieler IP bannen", "Auswählen", "Abbrechen");
  2683.        ClickedPlayer[playerid] = clickedplayerid;
  2684.     }
  2685.    
  2686.     if(Player[playerid][Level] == 4 || IsPlayerAdmin(playerid))
  2687.     {
  2688.        ShowPlayerDialog(playerid, 1337, DIALOG_STYLE_LIST, "{005eff}Admin Menü", "{FFFF00}Spieler kicken\n{15ff00}Spieler muten\n{00abff}Spieler ins CP Prison stecken\n{7c00ff}Nachricht versenden\n{E28356}Spieler verwarnen\n{FF0000}Spieler bannen\n{ff7400}Spieler IP bannen\n{ddd51b}Rang ändern", "Auswählen", "Abbrechen");
  2689.        ClickedPlayer[playerid] = clickedplayerid;
  2690.     }
  2691.    
  2692.     return 1;
  2693. }
  2694.  
  2695. public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
  2696. {
  2697.     if(Player[playerid][Level] == 4 && Player[playerid][IsOnDuty] == true)
  2698.     {
  2699.         SetPlayerPosFindZ(playerid, fX, fY, fZ);
  2700.         SendClientMessage(playerid, COLOR_GREEN, "Erfolgreich teleportiert.");
  2701.     }
  2702.     return 1;
  2703. }
  2704.  
  2705. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
  2706. {
  2707.     new iString[160];
  2708.    
  2709.     if(playertextid == PlayerLoginTextDraw[playerid][0])
  2710.     {
  2711.         if(pRegistered[playerid] == true)
  2712.         {
  2713.             ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Login","{FFFFFF}Gib dein Passwort ein um dich einzuloggen:","Einloggen","Verlassen");
  2714.         }
  2715.        
  2716.         else if(pRegistered[playerid] == false)
  2717.         {
  2718.             ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registrieren","{FFFFFF}Gib ein Passwort ein um dich zu registrieren:","Registrieren","Verlassen");
  2719.         }
  2720.     }
  2721.    
  2722.     new Weapon[13], Ammo[13];
  2723.     for(new k = 0; k < 13; k++) GetPlayerWeaponData(playerid, k, Weapon[k], Ammo[k]);
  2724.  
  2725.     if(playertextid == ExitTD && Player[playerid][Logged] == true)
  2726.     {
  2727.         Player[playerid][OnMenu] = false;
  2728.         CancelSelectTextDraw(playerid);
  2729.         HideGunsTDs(playerid);
  2730.         SendClientMessage(playerid, YELLOW_COLOR, "WAFFENAUSWAHL: Du hast die Waffenauswahl verlassen.");
  2731.     }
  2732.  
  2733.     if(playertextid == G1TD && Player[playerid][Logged] == true)
  2734.     {
  2735.         SendClientMessage(playerid, YELLOW_COLOR, "WAFFENAUSWAHL: Primäre Waffe geändert zu: Deagle");
  2736.     }
  2737.  
  2738.     if(playertextid == G2TD && Player[playerid][Logged] == true)
  2739.     {
  2740.         SendClientMessage(playerid, YELLOW_COLOR, "WAFFENAUSWAHL: Sekundäre Waffe geändert zu: Shotgun");
  2741.         Player[playerid][Gun2] = SHOTGUN;
  2742.         GivePlayerWeapon(playerid, Player[playerid][Gun2], 0);
  2743.         SetPlayerAmmo(playerid, Player[playerid][Gun2], Ammo[3]);
  2744.         UpdateTDs(playerid);
  2745.     }
  2746.  
  2747.     if(playertextid == G2bTD && Player[playerid][Logged] == true)
  2748.     {
  2749.         if(Player[playerid][UnlockedSpas] == true)
  2750.         {
  2751.             SendClientMessage(playerid, YELLOW_COLOR, "WAFFENAUSWAHL: Sekundäre Waffe geändert zu: Spas");
  2752.             Player[playerid][Gun2] = SPAS;
  2753.             GivePlayerWeapon(playerid, Player[playerid][Gun2], 0);
  2754.             SetPlayerAmmo(playerid, Player[playerid][Gun2], Ammo[3]);
  2755.             UpdateTDs(playerid);
  2756.         } else {
  2757.             format(iString, sizeof(iString), "WAFFENAUSWAHL: Du brauchst {FFFFFF}%d {FF0000}mehr Shotgun Kills um die Spas freizuschalten.", 1000 - Player[playerid][ShotgunK]);
  2758.             SendClientMessage(playerid, RED_COLOR, iString);
  2759.         }
  2760.     }
  2761.  
  2762.     if(playertextid == G30TD && Player[playerid][Logged] == true)
  2763.     {
  2764.         SendClientMessage(playerid, YELLOW_COLOR, "WAFFENAUSWAHL: Dritt Waffe geändert zu: None");
  2765.         SetPlayerAmmo(playerid, Player[playerid][Gun3], 0);
  2766.         Player[playerid][Gun3] = 0;
  2767.         UpdateTDs(playerid);
  2768.     }
  2769.  
  2770.     if(playertextid == G3TD && Player[playerid][Logged] == true)
  2771.     {
  2772.         if(Player[playerid][UnlockedAK47] == true)
  2773.         {
  2774.             SendClientMessage(playerid, YELLOW_COLOR, "WAFFENAUSWAHL: Dritt Waffe geändert zu: AK47");
  2775.             Player[playerid][Gun3] = AK47;
  2776.             GivePlayerWeapon(playerid, Player[playerid][Gun3], 0);
  2777.             SetPlayerAmmo(playerid, Player[playerid][Gun3], Ammo[5]);
  2778.             UpdateTDs(playerid);
  2779.         } else {
  2780.             format(iString, sizeof(iString), "WAFFENAUSWAHL: Du brauchst {FFFFFF}%d {FF0000}mehr MP5 Kills um die AK47 freizuschalten.", 50 - Player[playerid][MP5K]);
  2781.             SendClientMessage(playerid, RED_COLOR, iString);
  2782.         }
  2783.     }
  2784.  
  2785.     if(playertextid == G3bTD && Player[playerid][Logged] == true)
  2786.     {
  2787.         if(Player[playerid][UnlockedM4] == true)
  2788.         {
  2789.             SendClientMessage(playerid, YELLOW_COLOR, "WAFFENAUSWAHL: Dritt Waffe geändert zu: M4");
  2790.             Player[playerid][Gun3] = M4;
  2791.             GivePlayerWeapon(playerid, Player[playerid][Gun3], 0);
  2792.             SetPlayerAmmo(playerid, Player[playerid][Gun3], Ammo[5]);
  2793.             UpdateTDs(playerid);
  2794.         } else {
  2795.             format(iString, sizeof(iString), "WAFFENAUSWAHL: Du brauchst {FFFFFF}%d {FF0000}mehr AK47 Kills oder {FFFF00}VIP {FF0000}um die M4 freizuschalten.", 100 - Player[playerid][AK47K]);
  2796.             SendClientMessage(playerid, RED_COLOR, iString);
  2797.         }
  2798.     }
  2799.  
  2800.     if(playertextid == G40TD && Player[playerid][Logged] == true)
  2801.     {
  2802.         SendClientMessage(playerid, YELLOW_COLOR, "Kurze Distanz Waffe geändert zu: Keine");
  2803.         SetPlayerAmmo(playerid, Player[playerid][Gun4], 0);
  2804.         Player[playerid][Gun4] = 0;
  2805.         UpdateTDs(playerid);
  2806.     }
  2807.  
  2808.     if(playertextid == G4TD && Player[playerid][Logged] == true)
  2809.     {
  2810.         if(Player[playerid][UnlockedMP5] == true)
  2811.         {
  2812.             SendClientMessage(playerid, YELLOW_COLOR, "WAFFENAUSWAHL: Kurze Distanz Waffe geändert zu: MP5");
  2813.             Player[playerid][Gun4] = MP5;
  2814.             GivePlayerWeapon(playerid, Player[playerid][Gun4], 0);
  2815.             SetPlayerAmmo(playerid, Player[playerid][Gun4], Ammo[4]);
  2816.             UpdateTDs(playerid);
  2817.         } else {
  2818.             format(iString, sizeof(iString), "WAFFENAUSWAHL: Du brauchst {FFFFFF}%d {FF0000}mehr Deagle Kills um die MP5 freizuschalten.", 250 - Player[playerid][DeagleK]);
  2819.             SendClientMessage(playerid, RED_COLOR, iString);
  2820.         }
  2821.     }
  2822.  
  2823.     if(playertextid == G5TD && Player[playerid][Logged] == true)
  2824.     {
  2825.         SendClientMessage(playerid, YELLOW_COLOR, "WAFFENAUSWAHL: Große Distanz Waffe geändert zu: Country Rifle");
  2826.         Player[playerid][Gun5] = RIFLE;
  2827.         GivePlayerWeapon(playerid, Player[playerid][Gun5], 0);
  2828.         SetPlayerAmmo(playerid, Player[playerid][Gun5], Ammo[6]);
  2829.         UpdateTDs(playerid);
  2830.     }
  2831.  
  2832.     if(playertextid == G5bTD && Player[playerid][Logged] == true)
  2833.     {
  2834.         if(Player[playerid][UnlockedSniper] == true)
  2835.         {
  2836.             SendClientMessage(playerid, YELLOW_COLOR, "WAFFENAUSWAHL: Große Distanz Waffe geändert zu: Sniper");
  2837.             Player[playerid][Gun5] = SNIPER;
  2838.             GivePlayerWeapon(playerid, Player[playerid][Gun5], 0);
  2839.             SetPlayerAmmo(playerid, Player[playerid][Gun5], Ammo[6]);
  2840.             UpdateTDs(playerid);
  2841.         } else {
  2842.             format(iString, sizeof(iString), "WAFFENAUSWAHL: Du brauchst {FFFFFF}%d {FF0000}mehr Rifle Kills oder {FFFF00}VIP {FF0000}um die Sniper freizuschalten.", 250 - Player[playerid][RifleK]);
  2843.             SendClientMessage(playerid, RED_COLOR, iString);
  2844.         }
  2845.     }
  2846.  
  2847.     if(playertextid == G60TD && Player[playerid][Logged] == true)
  2848.     {
  2849.         SendClientMessage(playerid, YELLOW_COLOR, "WAFFENAUSWAHL: Werfbare Waffe geändert zu: Keine");
  2850.         SetPlayerAmmo(playerid, Player[playerid][Gun6], 0);
  2851.         Player[playerid][Gun6] = 0;
  2852.         UpdateTDs(playerid);
  2853.     }
  2854.  
  2855.     if(playertextid == G6TD && Player[playerid][Logged] == true)
  2856.     {
  2857.         if(Player[playerid][UnlockedGrenade] == true)
  2858.         {
  2859.             SendClientMessage(playerid, YELLOW_COLOR, "WAFFENAUSWAHL: Werfbare Waffe geändert zu: Granate");
  2860.             Player[playerid][Gun6] = GRENADE;
  2861.             GivePlayerWeapon(playerid, Player[playerid][Gun6], 0);
  2862.             SetPlayerAmmo(playerid, Player[playerid][Gun6], Ammo[8]);
  2863.             UpdateTDs(playerid);
  2864.         } else {
  2865.             format(iString, sizeof(iString), "WAFFENAUSWAHL: Du brauchst {FFFFFF}%d {FF0000}mehr M4 Kills um die Granate freizuschalten.", 250 - Player[playerid][M4K]);
  2866.             SendClientMessage(playerid, RED_COLOR, iString);
  2867.         }
  2868.     }
  2869.    
  2870.     PlayerPlaySound(playerid, 1150, 0, 0, 0);
  2871.     return 1;
  2872. }
  2873.  
  2874. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  2875. {
  2876.     new iString[220];
  2877.    
  2878.      if(dialogid == DIALOG_AWHITELIST)
  2879.      {
  2880.                 new player[64], string[128];
  2881.                 format(player,sizeof(player),"/Whitelist/%s.txt",inputtext);
  2882.                 if(response == 1)
  2883.                 {
  2884.                         if(!dini_Exists(player))
  2885.                         {
  2886.                             format(string,sizeof(string),"%s hat %s auf die Whitelist gesetzt.", GetName(playerid),inputtext);
  2887.                             SendAdminMessage(1,string);
  2888.                             dini_Create(player);
  2889.                             printf("[warning] %s hat %s auf die Whitelist gesetzt.",GetName(playerid),inputtext);
  2890.                         }
  2891.                         else
  2892.                         {
  2893.                             format(string,sizeof(string),"%s ist bereits auf der Whitelist.", inputtext);
  2894.                             SendErrorMessage(playerid,string);
  2895.                             ShowPlayerDialog(playerid,DIALOG_AWHITELIST,DIALOG_STYLE_INPUT,"{00FFFF}Einen Spieler auf die Whitelist setzen","{FF0000}Gib den genauen Namen ein.","Weiter","Abbrechen");
  2896.                         }
  2897.                 }
  2898.     }
  2899.    
  2900.     if(dialogid == DIALOG_RWHITELIST)
  2901.      {
  2902.                 new player[64], string[128];
  2903.                 format(player,sizeof(player),"/Whitelist/%s.txt",inputtext);
  2904.                 if(response == 1)
  2905.                 {
  2906.                         if(dini_Exists(player))
  2907.                         {
  2908.                             format(string,sizeof(string),"%s hat %s auf von der Whitelist entfernt.", GetName(playerid),inputtext);
  2909.                             SendAdminMessage(1,string);
  2910.                             dini_Remove(player);
  2911.                             printf("[warning] %s hat %s von der Whitelist entfernt.",GetName(playerid),inputtext);
  2912.                         }
  2913.                         else
  2914.                         {
  2915.                             format(string,sizeof(string),"%s ist nicht auf der Whitelist.", inputtext);
  2916.                             SendErrorMessage(playerid,string);
  2917.                             ShowPlayerDialog(playerid,DIALOG_RWHITELIST,DIALOG_STYLE_INPUT,"{00FFFF}Einen Spieler von der Whitelist entfernen","{FF0000}Gib den genauen Namen ein.","Weiter","Abbrechen");
  2918.                         }
  2919.                 }
  2920.     }
  2921.  
  2922.     if(dialogid == DIALOG_REGISTER)
  2923.     {
  2924.         if(response)
  2925.         {
  2926.             if(isnull(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFF00}Willkommen!","{FFFFFF}Gebe das gewünschte Passwort für deinen Account ein:","Registrieren","Verlassen");
  2927.  
  2928.             new HashPass[64 + 1];
  2929.             SHA256_PassHash(inputtext, "ENQNwGr7gY8fC5Bml7nqJGGbJhUyBVxcUXY9Umswyjn7qc39pYK6jDqAr3X5sa1n", HashPass, sizeof HashPass);
  2930.  
  2931.             new query[425];
  2932.             //ac
  2933.             format(query, sizeof(query), "INSERT INTO Players (Name, Password, Level, ForceAC, Kills, Deaths, Score, VIP, MaxRoundKills, MaxRoundDamage, Headshots, Tbags, PunchK, DeagleK, ShotgunK, SpasK, MP5K, AK47K, M4K, RifleK, SniperK, GrenadeK, Gun2, Gun3, Gun4, Gun5, Gun6) VALUES('%s', '%s', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 33, 0)", DB_Escape(Player[playerid][Name]), HashPass);
  2934.             db_free_result(db_query(sqliteconnection, query));
  2935.  
  2936.             format(HashPass, sizeof(HashPass), "Du hast dich erfolgreich registriert. Passwort: {55FF55}%s", inputtext);
  2937.             SendClientMessage(playerid, YELLOW_COLOR, HashPass);
  2938.             SendClientMessage(playerid, YELLOW_COLOR, "Nutze {FFFFFF}/cmds {FFFF00}für die Commands und {FFFFFF}/updates {FFFF00}um über die letzten Updates bescheid zu wissen.");
  2939.             SendClientMessage(playerid, YELLOW_COLOR, "Vergesse nicht mit {FFFFFF}/rules {FFFF00}die Regeln durchzulesen.");
  2940.            
  2941.             new year,month,day;
  2942.             getdate(year, month, day);
  2943.             format(Player[playerid][RegDate], 32, "%02d | %02d | %d", day, month, year);  
  2944.             Player[playerid][Logged] = true;
  2945.             Player[playerid][URang] = 1;
  2946.             Player[playerid][Level] = 0;
  2947.             Player[playerid][Kills] = 0;
  2948.             Player[playerid][Deaths] = 0;
  2949.             Player[playerid][RKills] = 0;
  2950.             Player[playerid][RDeaths] = 0;
  2951.             Player[playerid][RDamage] = 0;
  2952.             Player[playerid][Score] = 0;
  2953.             Player[playerid][Spree] = 0;
  2954.             Player[playerid][VIP] = 0;
  2955.             Player[playerid][MaxRoundKills] = 0;
  2956.             Player[playerid][MaxRoundDamage] = 0;
  2957.             Player[playerid][Headshots] = 0;
  2958.             Player[playerid][Tbags] = 0;
  2959.             Player[playerid][PunchK] = 0;
  2960.             Player[playerid][DeagleK] = 0;
  2961.             Player[playerid][ShotgunK] = 0;
  2962.             Player[playerid][SpasK] = 0;
  2963.             Player[playerid][MP5K] = 0;
  2964.             Player[playerid][AK47K] = 0;
  2965.             Player[playerid][M4K] = 0;
  2966.             Player[playerid][RifleK] = 0;
  2967.             Player[playerid][SniperK] = 0;
  2968.             Player[playerid][GrenadeK] = 0;
  2969.            
  2970.             TextDrawHideForPlayer(playerid,BlackBox);
  2971.             TextDrawHideForPlayer(playerid,WillkommenText);
  2972.             HideLoginTextDraws(playerid);
  2973.             DestroyPlayerLoginTextDraws(playerid);
  2974.  
  2975.         } else {
  2976.             SetTimerEx("OnPlayerKicked", 500, false, "i", playerid);
  2977.         }
  2978.  
  2979.         return 1;
  2980.     }
  2981.  
  2982.  
  2983.     if(dialogid == 1337)
  2984.     {
  2985.         if(!response) return SendClientMessage(playerid, 0xFF0C29FF,"Auswahl abgebrochen.");
  2986.         else
  2987.         {
  2988.             if(listitem == 0) return ShowPlayerDialog(playerid, 1338, DIALOG_STYLE_INPUT, "Spieler kicken", "Gib den Kickgrund ein", "Kicken", "Abbrechen");
  2989.             if(listitem == 1) return ShowPlayerDialog(playerid, 1339, DIALOG_STYLE_INPUT, "Spieler muten", "Gib den Mutegrund ein", "Muten", "Abbrechen");
  2990.             if(listitem == 2) return ShowPlayerDialog(playerid, 1344, DIALOG_STYLE_INPUT, "Spieler ins CP Prison stecken", "Gib die gewünschten Checkpoints ein", "CPs setzen", "Abbrechen");
  2991.             if(listitem == 3) return ShowPlayerDialog(playerid, 1343, DIALOG_STYLE_INPUT, "Nachricht versenden", "Gib deine Nachricht ein", "Versenden", "Abbrechen");
  2992.             if(listitem == 4) return ShowPlayerDialog(playerid, 1346, DIALOG_STYLE_INPUT, "Spieler verwarnen","Gib den Grund ein", "Verwarnen", "Abbrechen");
  2993.             if(listitem == 5) return ShowPlayerDialog(playerid, 1340, DIALOG_STYLE_INPUT, "Spieler bannen", "Gib den Banngrund ein", "Bannen", "Abbrechen");
  2994.             if(listitem == 6) return ShowPlayerDialog(playerid, 1341, DIALOG_STYLE_INPUT, "Spieler IP bannen", "Gib den IP Banngrund ein", "IP bannen", "Abbrechen");
  2995.             if(listitem == 7) return ShowPlayerDialog(playerid, 1342, DIALOG_STYLE_INPUT, "Rang ändern", "Gib den gewünschten Rang ein", "Rang setzen", "Abbrechen");
  2996.  
  2997.         }
  2998.     }
  2999.  
  3000.     if(dialogid == 1338)
  3001.     {
  3002.         new string[128];
  3003.         if(!response)return SendClientMessage(playerid, 0xFF0C29FF,"Auswahl abgebrochen.");
  3004.         else
  3005.         {
  3006.             format(string,sizeof(string), "KICK: %s hat %s gekickt. [Grund: %s]", GetName(playerid),GetName(ClickedPlayer[playerid]), inputtext);
  3007.             SendClientMessageToAll(COLOR_YELLOW, string);
  3008.             printf("[warning] %s hat %s gekickt mit dem Grund %s",GetName(playerid),GetName(ClickedPlayer[playerid]),inputtext);
  3009.            
  3010.             format(string,sizeof(string),"%s hat %s gekickt (Grund: %s)",GetName(playerid),GetName(ClickedPlayer[playerid]),inputtext);
  3011.             KickLog(string);
  3012.  
  3013.             SetTimerEx("OnPlayerKicked", 500, false, "i", ClickedPlayer[playerid]);
  3014.             return 1;
  3015.         }
  3016.     }
  3017.    
  3018.     if(dialogid == 1339)
  3019.     {
  3020.        new string[128];
  3021.        if(!response) return SendClientMessage(playerid, 0xff0c29ff,"Auswahl abgebrochen.");
  3022.        else
  3023.        {
  3024.           format(string,sizeof(string), "MUTE: %s hat %s gemutet. [Grund: %s]",GetName(playerid),GetName(ClickedPlayer[playerid]),inputtext);
  3025.           SendClientMessageToAll(COLOR_DARKGREEN,string);
  3026.           printf("[warning] %s hat %s gemuted mit dem Grund %s",GetName(playerid),GetName(ClickedPlayer[playerid]),inputtext);
  3027.          
  3028.           format(string,sizeof(string),"%s hat %s gemuted (Grund: %s)",GetName(playerid),GetName(ClickedPlayer[playerid]),inputtext);
  3029.           MuteLog(string);
  3030.          
  3031.           Player[ClickedPlayer[playerid]][Muted] = true;
  3032.           return 1;
  3033.        }
  3034.     }
  3035.    
  3036.     if(dialogid == 1340)
  3037.     {
  3038.        if(!response) return SendClientMessage(playerid, 0xff0c29ff,"Auswahl abgebrochen.");
  3039.        else
  3040.        {
  3041.           printf("[warning] %s bannt %s mit dem Grund %s",GetName(playerid),GetName(ClickedPlayer[playerid]),inputtext);
  3042.           BanWithReasonNoIP(playerid, ClickedPlayer[playerid], inputtext);
  3043.           return 1;
  3044.        }
  3045.     }
  3046.  
  3047.     if(dialogid == 1341)
  3048.     {
  3049.        if(!response) return SendClientMessage(playerid, 0xff0c29ff,"Auswahl abgebrochen.");
  3050.        if(isnull(inputtext)) return ShowPlayerDialog(playerid, 1341, DIALOG_STYLE_INPUT, "Spieler IP bannen", "Gib den IP Banngrund ein", "IP bannen", "Abbrechen");
  3051.        else
  3052.        {
  3053.           printf("[warning] %s ipbannt %s mit dem Grund %s",GetName(playerid),GetName(ClickedPlayer[playerid]),inputtext);
  3054.           BanWithReason(playerid,ClickedPlayer[playerid],inputtext);
  3055.           return 1;
  3056.        }
  3057.     }
  3058.    
  3059.     if(dialogid == 1342)
  3060.     {
  3061.         new string[128], target, level;
  3062.         target = ClickedPlayer[playerid];
  3063.         if(!response) return SendClientMessage(playerid, 0xff0c29ff,"Auswahl abgebrochen.");
  3064.         if(sscanf(inputtext, "d", level)) return ShowPlayerDialog(playerid, 1342, DIALOG_STYLE_INPUT, "Rang ändern", "Gib den gewünschten Rang ein", "Rang setzen", "Abbrechen");
  3065.         else
  3066.         {
  3067.             Player[target][Level] = level;
  3068.             SavePlayer(target);
  3069.             format(string,sizeof(string),"%s hat %s's Rang geändert zu: %s",GetName(playerid),GetName(target),GetRang(target));
  3070.             SendAdminMessage(1,string);
  3071.             printf("[warning] %s ändert das Adminlevel von %s auf %s(%d)",GetName(playerid),GetName(target),GetRang(target),level);
  3072.             return 1;
  3073.         }
  3074.     }
  3075.    
  3076.     if(dialogid == 1343)
  3077.     {
  3078.        new string[180],istring[180],target;
  3079.        target = ClickedPlayer[playerid];
  3080.        if(!response) return SendClientMessage(playerid, 0xff0c29ff,"Auswahl abgebrochen.");
  3081.        else
  3082.        {
  3083.           format(string,sizeof(string),"NACHRICHT: Du hast von {FFFFFF}%s %s {FFFF00}eine Nachricht erhalten: {FFFFFF}%s",GetRang(playerid), GetName(playerid), inputtext);
  3084.           SendClientMessage(target, COLOR_YELLOW, string);
  3085.           format(string,sizeof(string),"%s %s schickt %s %s eine Adminnachricht: %s",GetRang(playerid),GetName(playerid),GetRang(ClickedPlayer[playerid]),(ClickedPlayer[playerid]),inputtext);
  3086.           PMLog(string);
  3087.           format(istring,sizeof(istring),"NACHRICHT: Du hast {FFFFFF}%s {FFFF00}eine Nachricht geschickt: {FFFFFF}%s",GetName(ClickedPlayer[playerid]),inputtext);
  3088.           SendClientMessage(playerid, COLOR_YELLOW, istring);
  3089.           printf("[warning] %s hat %s eine Nachricht geschickt: %s",GetName(playerid),GetName(ClickedPlayer[playerid]),inputtext);
  3090.           return 1;
  3091.        }
  3092.     }
  3093.    
  3094.     if(dialogid == 1344)
  3095.     {
  3096.        SavedText[playerid] = inputtext[playerid];
  3097.        if(SavedText[playerid] > 101 || SavedText[playerid] < 5) return ShowPlayerDialog(playerid, 1444, DIALOG_STYLE_INPUT, "Spieler ins CP Prison stecken", "Gib die gewünschten Checkpoints ein", "CPs setzen", "Abbrechen");
  3098.        if(!response) return SendClientMessage(playerid, 0xff0c29ff, "Auswahl abgebrochen.");
  3099.        else
  3100.        {
  3101.           ShowPlayerDialog(playerid, -1, 0, "", "", "","");
  3102.           ShowPlayerDialog(playerid, 1345, DIALOG_STYLE_INPUT, "Spieler ins CP Prison stecken", "Gib den gewünschten Grund ein", "Grund angeben", "Abbrechen");
  3103.           return 1;
  3104.        }
  3105.     }
  3106.    
  3107.     if(dialogid == 1345)
  3108.     {
  3109.       new target,str[160], reason[64], cps;
  3110.       new world = randomEx(5, 2147483647);
  3111.       target = ClickedPlayer[playerid];
  3112.       reason[playerid] = inputtext[playerid];
  3113.       cps = SavedText[playerid];
  3114.       if(!response) return SendClientMessage(playerid, 0xff0c29ff, "Auswahl abgebrochen.");
  3115.       else
  3116.       {
  3117.  
  3118.        if(pJailed[target] == true)
  3119.        {
  3120.          return SendErrorMessage(playerid, "Der Spieler befindet sich bereits im CP Prison.");
  3121.        }
  3122.  
  3123.        MaxCheckPoints[target] = cps;
  3124.  
  3125.        //Save Old Data
  3126.        SaveOldData(target);
  3127.  
  3128.        //Let's Jail
  3129.        ResetPlayerWeapons(target);
  3130.        ShowCPTextDraws(target);
  3131.        format(str, sizeof(str), "PRISON: {FFFFFF}%s {FFFF00}hat {FFFFFF}%s {FFFF00}mit CP Jail(%d CPs) bestraft. [Grund: {FFFFFF}%s{FFFF00}]", GetName(playerid), GetName(target), cps, reason[playerid]);
  3132.        SendClientMessageToAll(COLOR_YELLOW, str);
  3133.        SetPlayerPos(target, -1398.103515,937.631164,1036.479125);
  3134.        SetPlayerInterior(target, 15);
  3135.        SetPlayerVirtualWorld(target, world);
  3136.        pJailed[target] = true;
  3137.        format(str,sizeof(str),"%s hat %s für %d CP's ins CP Prison gesteckt. (Grund: %s)",GetName(playerid),GetName(target),cps,reason[playerid]);
  3138.        JailLog(str);
  3139.        RandomCheckPointCreate(target);
  3140.        printf("[warning] %s hat %s für %d CP's ins CP Prison gesteckt.",GetName(playerid),GetName(target),cps);
  3141.        return 1;
  3142.       }
  3143.     }
  3144.    
  3145.     if(dialogid == 1346)
  3146.     {
  3147.         new target;
  3148.         SavedText[playerid] = inputtext[playerid];
  3149.         target = ClickedPlayer[playerid];
  3150.         if(SavedText[playerid] > 50 || SavedText[playerid] < 5) return ShowPlayerDialog(playerid, 1346, DIALOG_STYLE_INPUT, "Spieler verwarnen","Gib den Grund ein", "Verwarnen", "Abbrechen");
  3151.         if(!response) return SendClientMessage(playerid, 0xff0c29ff, "Auswahl abgebrochen.");
  3152.         if(isnull(inputtext)) return ShowPlayerDialog(playerid, 1346, DIALOG_STYLE_INPUT, "Spieler verwarnen","Gib den Grund ein", "Verwarnen", "Abbrechen");
  3153.        
  3154.         else
  3155.         {
  3156.             Player[target][Warns]++;
  3157.             format(iString,sizeof(iString),"WARN: {FFFFFF}%s {FFFF00}hat {FFFFFF}%s {FFFF00}verwarnt. [Grund: {FFFFFF}%s{FFFF00}] [%d/5 Verwarnungen]",GetName(playerid),GetName(target),SavedText[playerid],Player[target][Warns]);
  3158.             SendClientMessageToAll(COLOR_YELLOW, iString);
  3159.             format(iString,sizeof(iString),"WARN: Du wurdest von %s verwarnt! [Grund: %s] [%d/5 Verwarnungen]",GetName(playerid),SavedText[playerid],Player[target][Warns]);
  3160.             SendClientMessage(target,COLOR_RED,iString);
  3161.             format(iString,sizeof(iString),"%s hat %s verwarnt. (Grund: %s)",GetName(playerid),GetName(target),SavedText[playerid]);
  3162.             WarnLog(iString);
  3163.             return 1;
  3164.         }
  3165.     }
  3166.    
  3167.     if(dialogid == DIALOG_LOGIN)
  3168.     {
  3169.         if(response)
  3170.         {
  3171.             if(isnull(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Login","{FFFFFF}Gebe dein Passwort ein um dich einzuloggen:","Einloggen","Verlassen");
  3172.  
  3173.             new HashPass[64 + 1];
  3174.             SHA256_PassHash(inputtext, "ENQNwGr7gY8fC5Bml7nqJGGbJhUyBVxcUXY9Umswyjn7qc39pYK6jDqAr3X5sa1n", HashPass, sizeof HashPass);
  3175.  
  3176.             new Query[256];
  3177.             format(Query, sizeof(Query), "SELECT * FROM `Players` WHERE `Name` = '%s' AND `Password` = '%s'", DB_Escape(Player[playerid][Name]), HashPass);
  3178.             new DBResult:res = db_query(sqliteconnection, Query);
  3179.  
  3180.             if(db_num_rows(res))
  3181.             {
  3182.                 db_get_field_assoc(res, "Level", iString, sizeof(iString));
  3183.                 Player[playerid][Level] = strval(iString);
  3184.                
  3185.                 db_get_field_assoc(res, "URang", iString, sizeof(iString));
  3186.                 Player[playerid][URang] = strval(iString);
  3187.                
  3188.                 db_get_field_assoc(res, "RegDate", iString, sizeof(iString));
  3189.                 Player[playerid][RegDate] = strval(iString);
  3190.  
  3191.                 db_get_field_assoc(res, "Kills", iString, sizeof(iString));
  3192.                 Player[playerid][Kills] = strval(iString);
  3193.  
  3194.                 db_get_field_assoc(res, "Deaths", iString, sizeof(iString));
  3195.                 Player[playerid][Deaths] = strval(iString);
  3196.  
  3197.                 db_get_field_assoc(res, "Score", iString, sizeof(iString));
  3198.                 Player[playerid][Score] = strval(iString);
  3199.  
  3200.                 db_get_field_assoc(res, "VIP", iString, sizeof(iString));
  3201.                 Player[playerid][VIP] = strval(iString);
  3202.  
  3203.                 db_get_field_assoc(res, "MaxRoundKills", iString, sizeof(iString));
  3204.                 Player[playerid][MaxRoundKills] = strval(iString);
  3205.  
  3206.                 db_get_field_assoc(res, "MaxRoundDamage", iString, sizeof(iString));
  3207.                 Player[playerid][MaxRoundDamage] = strval(iString);
  3208.  
  3209.                 db_get_field_assoc(res, "Headshots", iString, sizeof(iString));
  3210.                 Player[playerid][Headshots] = strval(iString);
  3211.  
  3212.                 db_get_field_assoc(res, "Tbags", iString, sizeof(iString));
  3213.                 Player[playerid][Tbags] = strval(iString);
  3214.  
  3215.                 db_get_field_assoc(res, "PunchK", iString, sizeof(iString));
  3216.                 Player[playerid][PunchK] = strval(iString);
  3217.  
  3218.                 db_get_field_assoc(res, "DeagleK", iString, sizeof(iString));
  3219.                 Player[playerid][DeagleK] = strval(iString);
  3220.  
  3221.                 db_get_field_assoc(res, "ShotgunK", iString, sizeof(iString));
  3222.                 Player[playerid][ShotgunK] = strval(iString);
  3223.  
  3224.                 db_get_field_assoc(res, "SpasK", iString, sizeof(iString));
  3225.                 Player[playerid][SpasK] = strval(iString);
  3226.  
  3227.                 db_get_field_assoc(res, "MP5K", iString, sizeof(iString));
  3228.                 Player[playerid][MP5K] = strval(iString);
  3229.  
  3230.                 db_get_field_assoc(res, "AK47K", iString, sizeof(iString));
  3231.                 Player[playerid][AK47K] = strval(iString);
  3232.  
  3233.                 db_get_field_assoc(res, "M4K", iString, sizeof(iString));
  3234.                 Player[playerid][M4K] = strval(iString);
  3235.  
  3236.                 db_get_field_assoc(res, "RifleK", iString, sizeof(iString));
  3237.                 Player[playerid][RifleK] = strval(iString);
  3238.  
  3239.                 db_get_field_assoc(res, "SniperK", iString, sizeof(iString));
  3240.                 Player[playerid][SniperK] = strval(iString);
  3241.  
  3242.                 db_get_field_assoc(res, "GrenadeK", iString, sizeof(iString));
  3243.                 Player[playerid][GrenadeK] = strval(iString);
  3244.  
  3245.                 db_get_field_assoc(res, "Gun2", iString, sizeof(iString));
  3246.                 Player[playerid][Gun2] = strval(iString);
  3247.  
  3248.                 db_get_field_assoc(res, "Gun3", iString, sizeof(iString));
  3249.                 Player[playerid][Gun3] = strval(iString);
  3250.  
  3251.                 db_get_field_assoc(res, "Gun4", iString, sizeof(iString));
  3252.                 Player[playerid][Gun4] = strval(iString);
  3253.  
  3254.                 db_get_field_assoc(res, "Gun5", iString, sizeof(iString));
  3255.                 Player[playerid][Gun5] = strval(iString);
  3256.  
  3257.                 db_get_field_assoc(res, "Gun6", iString, sizeof(iString));
  3258.                 Player[playerid][Gun6] = strval(iString);
  3259.                
  3260.                 db_get_field_assoc(res, "Hits", iString, sizeof(iString));
  3261.                 Player[playerid][Hits] = strval(iString);
  3262.                
  3263.                 db_get_field_assoc(res, "PlayHours", iString, sizeof(iString));
  3264.                 Player[playerid][PlayHours] = strval(iString);
  3265.                
  3266.                 db_get_field_assoc(res, "PlayMinutes", iString, sizeof(iString));
  3267.                 Player[playerid][PlayMinutes] = strval(iString);
  3268.  
  3269.                 Player[playerid][Logged] = true;
  3270.                 SetPlayerScore(playerid, Player[playerid][Score]);
  3271.  
  3272.                 CheckRewards(playerid);
  3273.  
  3274.                 SendClientMessage(playerid, 0x24FF0AB9, "Du hast dich erfolgreich eingeloggt.");
  3275.                 SendClientMessage(playerid, YELLOW_COLOR, "Nutze {FFFFFF}/cmds {FFFF00}für Commands und {FFFFFF}/updates {FFFF00}um über die letzten Updates informiert zu sein.");
  3276.                 SendClientMessage(playerid, YELLOW_COLOR, "Vergesse nicht mit {FFFFFF}/rules {FFFF00}die Regeln durchzulesen.");
  3277.                 SendClientMessage(playerid, YELLOW_COLOR, "Du kannst mit {FFFFFF}/radio [1-6] {FFFF00}das Radio aktivieren.");
  3278.                
  3279.                 TextDrawHideForPlayer(playerid,BlackBox);
  3280.                 TextDrawHideForPlayer(playerid,WillkommenText);
  3281.                
  3282.                 HideLoginTextDraws(playerid);
  3283.                 DestroyPlayerLoginTextDraws(playerid);
  3284.  
  3285.                 new weatherrandom1 = random(19);
  3286.                 SetPlayerWeather(playerid, weatherrandom1);
  3287.  
  3288.                 new timerandom1 = random(23);
  3289.                 SetPlayerTime(playerid, timerandom1, 0);
  3290.  
  3291.                 if(Player[playerid][VIP] == 1)  //vip
  3292.                 {
  3293.                     Player[playerid][UnlockedM4] = true;
  3294.                     Player[playerid][Gun3] = M4;
  3295.                     Player[playerid][UnlockedSniper] = true;
  3296.                     Player[playerid][Gun5] = SNIPER;
  3297.                     VIPStuffs[playerid] = Create3DTextLabel("VIP", 0xFFFF00FF, 0, 0, 0, DRAW_DISTANCE, 0, 1);
  3298.                     Attach3DTextLabelToPlayer(VIPStuffs[playerid], playerid, 0.0, 0.0, 0.5);
  3299.                     SendClientMessage(playerid, YELLOW_COLOR, " ");
  3300.                     SendClientMessage(playerid, YELLOW_COLOR, "Du bist ein VIP.");
  3301.                 }
  3302.                
  3303.                 if(Player[playerid][Level] > 0)
  3304.                 {
  3305.                     format(iString,sizeof(iString),"Du bist als {FFFFFF}%s {FFFF00}angemeldet.",GetRang(playerid));
  3306.                     AdminsOnline++;
  3307.                     SendClientMessage(playerid, COLOR_YELLOW,iString);
  3308.                 }
  3309.  
  3310.             } else {
  3311.                 SendErrorMessage(playerid,"Falsches Passwort. Bitte versuch es erneut.");
  3312.                 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Login","{FFFFFF}Gebe dein Passwort ein um dich einzuloggen:","Einloggen","Verlassen");
  3313.             }
  3314.             db_free_result(res);
  3315.  
  3316.         } else {
  3317.             SetTimerEx("OnPlayerKicked", 300, false, "i", playerid);
  3318.         }
  3319.         return 1;
  3320.     }
  3321.  
  3322.     if(dialogid == DIALOG_MAPNAME)
  3323.     {
  3324.         if(response)
  3325.         {
  3326.             dini_Set(CreateFileString,"Name",inputtext);
  3327.             new str2[128];
  3328.             format(str2,sizeof(str2),">> Map Name geändert zu {FFFFFF}%s", inputtext);
  3329.             SendClientMessage(playerid,YELLOW_COLOR,str2);
  3330.         }
  3331.         return 1;
  3332.     }
  3333.     if(dialogid == DIALOG_MAPPERNAME)
  3334.     {
  3335.         if(response)
  3336.         {
  3337.             dini_Set(CreateFileString,"Mapper",inputtext);
  3338.             new str2[128];
  3339.             format(str2,sizeof(str2),">> Mapper Name geändert zu {FFFFFF}%s", inputtext);
  3340.             SendClientMessage(playerid,YELLOW_COLOR,str2);
  3341.         }
  3342.         return 1;
  3343.     }
  3344.    
  3345.    
  3346.     return 1;
  3347. }
  3348.  
  3349. public OnPlayerExitedMenu(playerid) {
  3350.     new Menu:CurrentMenu = GetPlayerMenu(playerid);
  3351.     if(CurrentMenu == MapMenu)
  3352.     {
  3353.         TogglePlayerControllable(playerid, 1);
  3354.     }
  3355. }
  3356.  
  3357. public OnPlayerSelectedMenuRow(playerid, row)
  3358. {
  3359.     new Menu:CurrentMenu = GetPlayerMenu(playerid);
  3360.     if(CurrentMenu == MapMenu)
  3361.     {
  3362.         TogglePlayerControllable(playerid,true);
  3363.         new string1[256];
  3364.         new Float:PlayerPos[4];
  3365.         GetPlayerPos(playerid,PlayerPos[0],PlayerPos[1],PlayerPos[2]);
  3366.         GetPlayerFacingAngle(playerid, PlayerPos[3]);
  3367.         switch(row)
  3368.         {
  3369.             case 0:
  3370.             {
  3371.                 ShowPlayerDialog(playerid, DIALOG_MAPNAME, DIALOG_STYLE_INPUT,"Map Name","Gebe den Namen der Map ein:","Ok","Abbrechen");
  3372.             }
  3373.             case 1:
  3374.             {
  3375.                 ShowPlayerDialog(playerid, DIALOG_MAPPERNAME, DIALOG_STYLE_INPUT,"Mapper Name","Gebe den Namen vom Mapper ein:","Ok","Abbrechen");
  3376.             }
  3377.             case 2:
  3378.             {
  3379.                 format(string1,256, "%f,%f",PlayerPos[0],PlayerPos[1]);
  3380.                 dini_Set(CreateFileString,"MaxXY",string1);
  3381.  
  3382.                 GangZoneDestroy(TempZone);
  3383.  
  3384.                 TempMax[0] = PlayerPos[0];
  3385.                 TempMax[1] = PlayerPos[1];
  3386.  
  3387.                 TempZone = GangZoneCreate(TempMin[0],TempMin[1],TempMax[0],TempMax[1]);
  3388.                 GangZoneShowForPlayer(playerid, TempZone, 0xFF000055);
  3389.                 GangZoneFlashForPlayer(playerid, TempZone, 0xFF000088);
  3390.  
  3391.                 format(string1,sizeof(string1), ">> Maximale XY Koordinate geändert zu {FFFFFF}%.2f, %.2f",PlayerPos[0],PlayerPos[1]);
  3392.                 SendClientMessage(playerid,YELLOW_COLOR,string1);
  3393.             }
  3394.             case 3:
  3395.             {
  3396.                 format(string1,256, "%f,%f",PlayerPos[0],PlayerPos[1]);
  3397.                 dini_Set(CreateFileString,"MinXY",string1);
  3398.  
  3399.                 GangZoneDestroy(TempZone);
  3400.  
  3401.                 TempMin[0] = PlayerPos[0];
  3402.                 TempMin[1] = PlayerPos[1];
  3403.  
  3404.                 TempZone = GangZoneCreate(TempMin[0],TempMin[1],TempMax[0],TempMax[1]);
  3405.                 GangZoneShowForPlayer(playerid, TempZone, 0xFF000055);
  3406.                 GangZoneFlashForPlayer(playerid, TempZone, 0xFF000088);
  3407.  
  3408.                 format(string1,sizeof(string1), ">> Minimale XY Kordinate geändert zu {FFFFFF}%.2f, %.2f",PlayerPos[0],PlayerPos[1]);
  3409.                 SendClientMessage(playerid,YELLOW_COLOR,string1);
  3410.             }
  3411.             case 4: //GSpawn1
  3412.             {
  3413.                 format(string1,256, "%f,%f,%f,%f",PlayerPos[0],PlayerPos[1],PlayerPos[2],PlayerPos[3]);
  3414.                 dini_Set(CreateFileString,"GSpawn1",string1);
  3415.  
  3416.                 format(string1,sizeof(string1), ">> Roter Spawn 1 geändert zu {FFFFFF}%.3f, %.3f, %.3f, %.0f",PlayerPos[0],PlayerPos[1],PlayerPos[2],PlayerPos[3]);
  3417.                 SendClientMessage(playerid,GREEN_COLOR,string1);
  3418.             }
  3419.             case 5: //GSpawn2
  3420.             {
  3421.                 format(string1,256, "%f,%f,%f,%f",PlayerPos[0],PlayerPos[1],PlayerPos[2],PlayerPos[3]);
  3422.                 dini_Set(CreateFileString,"GSpawn2",string1);
  3423.  
  3424.                 format(string1,sizeof(string1), ">> Roter Spawn 2 geändert zu {FFFFFF}%.3f, %.3f, %.3f, %.0f",PlayerPos[0],PlayerPos[1],PlayerPos[2],PlayerPos[3]);
  3425.                 SendClientMessage(playerid,GREEN_COLOR,string1);
  3426.             }
  3427.             case 6: //GSpawn3
  3428.             {
  3429.                 format(string1,256, "%f,%f,%f,%f",PlayerPos[0],PlayerPos[1],PlayerPos[2],PlayerPos[3]);
  3430.                 dini_Set(CreateFileString,"GSpawn3",string1);
  3431.  
  3432.                 format(string1,sizeof(string1), ">> Roter Spawn 3 geändert zu {FFFFFF}%.3f, %.3f, %.3f, %.0f",PlayerPos[0],PlayerPos[1],PlayerPos[2],PlayerPos[3]);
  3433.                 SendClientMessage(playerid,GREEN_COLOR,string1);
  3434.             }
  3435.             case 7: //BSpawn1
  3436.             {
  3437.                 format(string1,256, "%f,%f,%f,%f",PlayerPos[0],PlayerPos[1],PlayerPos[2],PlayerPos[3]);
  3438.                 dini_Set(CreateFileString,"BSpawn1",string1);
  3439.  
  3440.                 format(string1,sizeof(string1), ">> Blauer Spawn 1 geändert zu {FFFFFF}%.3f, %.3f, %.3f, %.0f",PlayerPos[0],PlayerPos[1],PlayerPos[2],PlayerPos[3]);
  3441.                 SendClientMessage(playerid,BLUE_COLOR,string1);
  3442.             }
  3443.             case 8: //BSpawn2
  3444.             {
  3445.                 format(string1,256, "%f,%f,%f,%f",PlayerPos[0],PlayerPos[1],PlayerPos[2],PlayerPos[3]);
  3446.                 dini_Set(CreateFileString,"BSpawn2",string1);
  3447.  
  3448.                 format(string1,sizeof(string1), ">> Blauer Spawn 2 geändert zu {FFFFFF}%.3f, %.3f, %.3f, %.0f",PlayerPos[0],PlayerPos[1],PlayerPos[2],PlayerPos[3]);
  3449.                 SendClientMessage(playerid,BLUE_COLOR,string1);
  3450.             }
  3451.             case 9: //BSpawn3
  3452.             {
  3453.                 format(string1,256, "%f,%f,%f,%f",PlayerPos[0],PlayerPos[1],PlayerPos[2],PlayerPos[3]);
  3454.                 dini_Set(CreateFileString,"BSpawn3",string1);
  3455.  
  3456.                 format(string1,sizeof(string1), ">> Blauer Spawn 3 geändert zu {FFFFFF}%.3f, %.3f, %.3f, %.0f",PlayerPos[0],PlayerPos[1],PlayerPos[2],PlayerPos[3]);
  3457.                 SendClientMessage(playerid,BLUE_COLOR,string1);
  3458.             }
  3459.             case 10:
  3460.             {
  3461.                 dini_IntSet(CreateFileString, "Interior", GetPlayerInterior(playerid));
  3462.                 HideMenuForPlayer(MapMenu, playerid);
  3463.                 GangZoneDestroy(TempZone);
  3464.                 format(string1,sizeof(string1), ">> Mappen beendet: {FFFFFF}%s", CreateFileString);
  3465.                 SendClientMessage(playerid,GREEN_COLOR,string1);
  3466.                 SendClientMessage(playerid,YELLOW_COLOR,"Bevor du eine neue Map erstellst, vergiss nicht {FFFFFF}/makemap [Map ID] {FFFF00}erneut einzugeben.");
  3467.                 Player[playerid][Mapping] = false;
  3468.             }
  3469.         }
  3470.     }
  3471. }
  3472. forward CreateMenus();
  3473. public CreateMenus()
  3474. {
  3475.     MapMenu = CreateMenu("Map Menu", 1, 12.0, 150.0, 200.0, 150.0);
  3476.     AddMenuItem(MapMenu, 0, "Map Name");
  3477.     AddMenuItem(MapMenu, 0, "Mapper Name");
  3478.     AddMenuItem(MapMenu, 0, "Maximale XY Koordinate (N-O)");
  3479.     AddMenuItem(MapMenu, 0, "Minimale XY Koordinate (S-W)");
  3480.     AddMenuItem(MapMenu, 0, "Roter Spawn 1");
  3481.     AddMenuItem(MapMenu, 0, "Roter Spawn 2");
  3482.     AddMenuItem(MapMenu, 0, "Roter Spawn 3");
  3483.     AddMenuItem(MapMenu, 0, "Blauer Spawn 1");
  3484.     AddMenuItem(MapMenu, 0, "Blauer Spawn 2");
  3485.     AddMenuItem(MapMenu, 0, "Blauer Spawn 3");
  3486.     AddMenuItem(MapMenu, 0, ">> ~g~~h~~h~Mappen beenden");
  3487. }
  3488.  
  3489. MapFile(mapid)
  3490. {
  3491.     new iString[64];
  3492.     format(iString, sizeof(iString),"Maps/%d.ini", mapid);
  3493.     return iString;
  3494. }
  3495.  
  3496. CreateMap(playerid, mapid)
  3497. {
  3498.     new fmap[256];
  3499.     fmap = MapFile(mapid);
  3500.     if(dini_Exists(fmap)) return SendErrorMessage(playerid, "Eine Map mit dieser ID existiert bereits. Bitte wähle eine andere MapID.");
  3501.  
  3502.     new iString[128];
  3503.     format(iString, sizeof(iString), "Du hast begonnen zu mappen: {FFFFFF}Maps/%d.ini", mapid);
  3504.     SendClientMessage(playerid,YELLOW_COLOR,iString);
  3505.     SendClientMessage(playerid,YELLOW_COLOR,"Gehe zu den gewünschten Koordinaten und nutze {FFFFFF}/ok {FFFF00}um die gewünschten Koordinaten zu speichern.");
  3506.  
  3507.     format(iString,128,"Maps/%d.ini",mapid);
  3508.  
  3509.     dini_Create(iString);
  3510.     format(CreateFileString,256,"%s",iString);
  3511.  
  3512.     return 1;
  3513. }
  3514.  
  3515.  
  3516. forward UpdateTeamBalance();
  3517. public UpdateTeamBalance()
  3518. {
  3519.     new iString[64];
  3520.     format(iString, sizeof(iString), "%s%d      ~w~vs       %s%d", TDColor[GREENTEAM], GetTeamBalance(GREENTEAM), TDColor[BLUETEAM], GetTeamBalance(BLUETEAM));
  3521.     TextDrawSetString(BalanceTD, iString);
  3522. }
  3523.  
  3524.  
  3525. SavePlayer(playerid)
  3526. {
  3527.     new savequery[650];
  3528.  
  3529.     savequery = "UPDATE players SET ";
  3530.     strcat(savequery, "Level=%d,ForceAC=%d,Kills=%d,Deaths=%d,Score=%d,");
  3531.     strcat(savequery, "VIP=%d,MaxRoundKills=%d,MaxRoundDamage=%.2f,Headshots=%d,Tbags=%d,");
  3532.     strcat(savequery, "PunchK=%d,DeagleK=%d,ShotgunK=%d,SpasK=%d,MP5K=%d,");
  3533.     strcat(savequery, "AK47K=%d,M4K=%d,RifleK=%d,SniperK=%d,GrenadeK=%d,");
  3534.     strcat(savequery, "Gun2=%d,Gun3=%d,Gun4=%d,Gun5=%d,Gun6=%d,Hits=%d,PlayHours=%d,");
  3535.     strcat(savequery, "PlayMinutes=%d,URang=%d,RegDate=%s");
  3536.  
  3537.     strcat(savequery, " WHERE Name = '%s'");
  3538.  
  3539.     format(savequery, sizeof(savequery), savequery,
  3540.         Player[playerid][Level],Player[playerid][ForceAC],Player[playerid][Kills],Player[playerid][Deaths],Player[playerid][Score],
  3541.         Player[playerid][VIP],Player[playerid][MaxRoundKills],Player[playerid][MaxRoundDamage],Player[playerid][Headshots],Player[playerid][Tbags],
  3542.         Player[playerid][PunchK],Player[playerid][DeagleK],Player[playerid][ShotgunK],Player[playerid][SpasK],Player[playerid][MP5K],
  3543.         Player[playerid][AK47K],Player[playerid][M4K],Player[playerid][RifleK],Player[playerid][SniperK],Player[playerid][GrenadeK],
  3544.         Player[playerid][Gun2],Player[playerid][Gun3],Player[playerid][Gun4],Player[playerid][Gun5],Player[playerid][Gun6],Player[playerid][Hits],
  3545.         Player[playerid][PlayHours],Player[playerid][PlayMinutes],Player[playerid][URang],Player[playerid][RegDate],DB_Escape(Player[playerid][Name]));
  3546.  
  3547.     db_free_result(db_query(sqliteconnection, savequery));
  3548. }
  3549.  
  3550. SaveVars()
  3551. {
  3552.     new squery[650];
  3553.  
  3554.     squery = "UPDATE `Variables` SET ";
  3555.     strcat(squery, "ACKicked=%d,ACWarns=%d");
  3556.  
  3557.     format(squery, sizeof(squery), squery, 
  3558.     ACKickedCount,ACWarnsCount);
  3559.  
  3560.     db_free_result(db_query(globalvars, squery));
  3561. }
  3562.  
  3563. public OnPlayerEditAttachedObject(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)
  3564. {
  3565.     if(response)
  3566.     {
  3567.         SendClientMessage(playerid, GREEN_COLOR, "Attached object values:");
  3568.         new iString[128];
  3569.  
  3570.         format(iString, sizeof(iString), "Offsets: %.3f, %.3f, %.3f | Rotations: %.3f, %.3f, %.3f | Scales: %.3f, %.3f, %.3f", fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ, fScaleX, fScaleY, fScaleZ);
  3571.  
  3572.         SendClientMessage(playerid, YELLOW_COLOR, iString);
  3573.     }
  3574.     else
  3575.     {
  3576.         SendClientMessage(playerid, RED_COLOR, "Attached object positions not saved");
  3577.     }
  3578.     return 1;
  3579. }
  3580.  
  3581. //============================================================================
  3582. //===============================Admin Commands===============================
  3583. //============================================================================
  3584. CMD:freeze(playerid,params[])
  3585. {
  3586.     if(Player[playerid][Level] < 1) return SendErrorMessage(playerid,"Du musst ein "Rang1Name" sein um diesen Command benutzen zu können.");
  3587.     {
  3588.         new id, iString[128];
  3589.         if(sscanf(params,"u",id)) return SendUsageMessage(playerid,"/freeze [ID]");
  3590.         if(!IsPlayerConnected(id)) return SendErrorMessage(playerid,"Der gewählte Spieler ist nicht auf dem Server.");
  3591.         TogglePlayerControllable(id,0);
  3592.         format(iString, sizeof(iString), "FREEZE: {FFFFFF}%s {ffcc00}wurde von {FFFFFF}%s {ffcc00}eingefroren.", GetName(id), GetName(playerid));
  3593.         SendClientMessageToAll(0xffcc00, iString);
  3594.         format(iString,sizeof(iString),"%s hat %s gefreezet",GetName(playerid),GetName(id));
  3595.         CmdLog(iString);
  3596.     }
  3597.     return 1;
  3598. }
  3599.  
  3600. CMD:testac(playerid, params[])
  3601. {
  3602.     new iString[128];
  3603.     if(Player[playerid][Level] < 4) return SendErrorMessage(playerid, "Du musst ein "Rang4Name" sein um diesen Befehl zu benutzen.");
  3604.     ACWarnsCount++;
  3605.     SendACWarning(playerid, "Testing");
  3606.     format(iString,sizeof(iString), "ANTICHEAT: Cheat/Hack erkannt. [Testing] [ID: %d]",ACWarnsCount);
  3607.     SendClientMessage(playerid, AC_COLOR, iString);
  3608.     format(iString,sizeof(iString), "%s [Testing] [ID: %d]",GetName(playerid), ACWarnsCount);
  3609.     ACLog(iString);
  3610.     Player[playerid][ACWarnings]++;
  3611.    
  3612.     return 1;
  3613. }
  3614.  
  3615. CMD:goto(playerid, params[])
  3616. {
  3617.     new id;
  3618.     if(Player[playerid][Level] < 1) return SendErrorMessage(playerid,"Du musst ein "Rang1Name" sein um diesen Command benutzen zu können.");
  3619.     if(Player[playerid][Specing] == false) return SendErrorMessage(playerid, "Du musst im Dienst sein um diesen Befehl zu benutzen.");
  3620.     if(sscanf(params, "u", id)) SendUsageMessage(playerid,"/goto [ID]");
  3621.     if(pJailed[id] == true) return SendErrorMessage(playerid,"Der gewählte Spieler ist im CP Prison.");
  3622.     else if(!IsPlayerConnected(id) || id == playerid) return SendErrorMessage(playerid,"Der gewählte Spieler ist nicht auf dem Server oder ist du selbst.");
  3623.     else
  3624.     {
  3625.     new iString [256];
  3626.     new Float:x, Float:y, Float:z;
  3627.     GetPlayerPos(id, x, y, z);
  3628.     SetPlayerPos(playerid, x+1, y+1, z);
  3629.     format(iString, sizeof(iString), "GOTO: Du hast dich erfolgreich zu %s teleportiert.", GetName(id));
  3630.     SendClientMessage(playerid, COLOR_LIGHTBLUE, iString);
  3631.     format(iString, sizeof(iString), "GOTO: %s hat sich zu dir teleportiert.", GetName(playerid));
  3632.     SendClientMessage(id, COLOR_LIGHTBLUE, iString);
  3633.     format(iString,sizeof(iString),"%s hat sich zu %s teleportiert.",GetName(playerid),GetName(id));
  3634.     SendAdminMessage(1,iString);
  3635.     TpLog(iString);
  3636.     printf("[warning] %s teleportiert sich zu %s",GetName(playerid),GetName(id));
  3637.     }
  3638.     return 1;
  3639. }
  3640.  
  3641. CMD:gethere(playerid,params[])
  3642. {
  3643.     new targetid, Float:x, Float:y, Float:z, iString[256];
  3644.     if(Player[playerid][Level] < 1) return SendErrorMessage(playerid,"Du musst ein "Rang1Name" sein um diesen Command benutzen zu können.");
  3645.     if(Player[playerid][Specing] == false) return SendErrorMessage(playerid, "Du musst im Dienst sein um diesen Befehl zu benutzen.");
  3646.     if(sscanf(params, "u", targetid)) return SendUsageMessage(playerid, "/gethere [ID]");
  3647.     if(!IsPlayerConnected(targetid) || targetid == playerid) return SendErrorMessage(playerid,"Der gewählte Spieler ist nicht auf dem Server oder ist du selbst.");
  3648.     if(pJailed[targetid] == true) return SendErrorMessage(playerid,"Der gewählte Spieler ist im CP Prison.");
  3649.     GetPlayerPos(playerid, x, y, z);
  3650.     SetPlayerPos(targetid, x+1, y+1, z);
  3651.     format(iString, sizeof(iString), "GETHERE: Du hast erfolgreich %s zu dir teleportiert.", GetName(targetid));
  3652.     SendClientMessage(playerid, COLOR_LIGHTBLUE, iString);
  3653.     format(iString, sizeof(iString), "GETHERE: %s hat dich zu ihm teleportiert.", GetName(playerid));
  3654.     SendClientMessage(targetid, COLOR_LIGHTBLUE, iString);
  3655.     format(iString,sizeof(iString),"%s hat %s zu sich teleportiert.",GetName(playerid),GetName(targetid));
  3656.     SendAdminMessage(1,iString);
  3657.     TpLog(iString);
  3658.     printf("[warning] %s teleportiert %s zu sich.",GetName(playerid),GetName(targetid));
  3659.     return 1;
  3660. }
  3661.  
  3662. CMD:checkminutes(playerid, params[])
  3663. {
  3664.     new targetid, string[128];
  3665.     if(Player[playerid][Level] < 1) return SendErrorMessage(playerid, "Du musst ein "Rang1Name" sein um diesen Befehl nutzen zu können.");
  3666.     if(sscanf(params, "u", targetid)) return SendUsageMessage(playerid, "/checkminutes [ID]");
  3667.     if(!IsPlayerConnected(targetid)) return SendErrorMessage(playerid, "Der gewählte Spieler ist nicht Online.");
  3668.    
  3669.     format(string,sizeof(string),"Der Spieler %s hat %d/60 Minuten gespielt.",GetName(targetid),Player[targetid][PlayMinutes]);
  3670.     SendClientMessage(playerid, COLOR_BLUEGREEN, string);
  3671.    
  3672.     return 1;
  3673. }
  3674.  
  3675. CMD:forceac(playerid, params[])
  3676. {
  3677.     #if defined AntiCheat
  3678.     new iString[164],targetid;
  3679.     if(Player[playerid][Level] < 2) return SendErrorMessage(playerid, "Du musst ein "Rang2Name" sein um diesen Befehl benutzen zu können.");
  3680.     if(sscanf(params,"u",targetid)) return SendUsageMessage(playerid,"/forceac [ID]");
  3681.     if(!IsPlayerConnected(targetid)) return SendErrorMessage(playerid, "Der gewählte Spieler ist nicht Online.");
  3682.    
  3683.     if(Player[targetid][ForceAC] == 0)
  3684.     {
  3685.         Player[targetid][ForceAC] = 1;
  3686.         format(iString,sizeof(iString),"Das ForceAC wurde von %s für den Spieler %s aktiviert.",GetName(playerid),GetName(targetid));
  3687.         SendAdminMessage(3, iString);
  3688.         format(iString,sizeof(iString),"Der %s %s hat das ForceAC für dich aktiviert. Du musst reloggen um Buggs zu vermeiden.",GetRang(playerid),GetName(playerid));
  3689.         SendClientMessage(targetid, COLOR_RED, iString);
  3690.         SavePlayer(targetid);
  3691.         SetTimerEx("OnPlayerKicked",300,false,"i",targetid);
  3692.     }
  3693.     if(Player[targetid][ForceAC] == 1)
  3694.     {
  3695.         Player[targetid][ForceAC] = 0;
  3696.         format(iString,sizeof(iString),"Das ForceAC wurde von %s für den Spieler %s deaktiviert.",GetName(playerid),GetName(targetid));
  3697.         SendAdminMessage(3, iString);
  3698.         format(iString,sizeof(iString),"Der %s %s hat das ForceAC für dich deaktiviert. Du musst reloggen um Buggs zu vermeiden.",GetRang(playerid),GetName(playerid));
  3699.         SendClientMessage(targetid, COLOR_GREENISHGOLD, iString);
  3700.         SavePlayer(targetid);
  3701.         SetTimerEx("OnPlayerKicked",300,false,"i",targetid);
  3702.     }
  3703.     #else
  3704.     SendClientMessage(playerid, COLOR_RED, "Das AntiCheat ist vom Script deaktiviert.");
  3705.     #endif
  3706.    
  3707.     return 1;
  3708. }
  3709.  
  3710. CMD:duty(playerid, params[])
  3711. {
  3712.     new iString [128];
  3713.     if(Player[playerid][Level] < 1) return SendErrorMessage(playerid,"Du musst ein "Rang1Name" sein um diesen Befehl benutzen zu können.");
  3714.     {
  3715.         if(Player[playerid][IsOnDuty] == false)
  3716.         {
  3717.             Player[playerid][SafeGun] = true;
  3718.             Player[playerid][IsOnDuty] = true;
  3719.             SetPlayerColor(playerid, 000000);
  3720.             ShowOnDutyTextdraw(playerid);
  3721.             SetPlayerHealth(playerid, 999);
  3722.             GivePlayerWeapon(playerid, 38, 99999);
  3723.             format(iString, sizeof(iString), "DUTY: %s %s ist nun im Dienst. Er ist über /report erreichbar.", GetRang(playerid), GetName(playerid));
  3724.             SendClientMessageToAll(COLOR_GREEN, iString);
  3725.             OnDuty[playerid] = Create3DTextLabel("***IM DIENST***", 0xFF6347AA, 0, 0, 0, DRAW_DISTANCE, 0, 1);
  3726.             Attach3DTextLabelToPlayer(OnDuty[playerid], playerid, 0.0, 0.0, 2.0);
  3727.         }
  3728.         else if(Player[playerid][IsOnDuty] == true)
  3729.         {
  3730.             Player[playerid][SafeGun] = false;
  3731.             RemovePlayerWeapon(playerid, 38);
  3732.             Player[playerid][IsOnDuty] = false;
  3733.             SetPlayerColor(playerid, 0xFF3333FF);
  3734.             HideOnDutyTextdraw(playerid);
  3735.             SetPlayerArmour(playerid, 25);
  3736.             SetPlayerHealth(playerid, 20);
  3737.             format(iString, sizeof(iString), "DUTY: %s %s ist nun nichtmehr im Dienst.", GetRang(playerid), Player[playerid][Name]);
  3738.             SendClientMessageToAll(COLOR_RED, iString);
  3739.             Delete3DTextLabel(OnDuty[playerid]);
  3740.         }
  3741.     }
  3742.     return 1;
  3743. }
  3744.  
  3745. CMD:hitsound(playerid, params[])
  3746. {
  3747.         if(HitSound[playerid] == false)
  3748.         {
  3749.             HitSound[playerid] = true;
  3750.             SendClientMessage(playerid, COLOR_GREEN, "HITSOUND: Du hast den Hitsound aktiviert.");
  3751.         }
  3752.        
  3753.         else if(HitSound[playerid] == true)
  3754.         {
  3755.             HitSound[playerid] = false;
  3756.             SendClientMessage(playerid, COLOR_RED, "HITSOUND: Du hast den Hitsound deaktiviert.");
  3757.         }
  3758.         return 1;
  3759. }
  3760.  
  3761. CMD:stop(playerid, params[])
  3762. {
  3763.      new iString[128];
  3764.      if(Player[playerid][Level] < 4) return SendErrorMessage(playerid,"Du musst ein "Rang4Name" sein um diesen Command benutzen zu können.");
  3765.      {
  3766.           SendClientMessageToAll(COLOR_RED,"|____________{SERVER STOPP}____________|");
  3767.           SendClientMessageToAll(COLOR_RED,"");
  3768.           SendClientMessageToAll(COLOR_RED," Der Server wird in 1 Minute gestoppt!");
  3769.           SendClientMessageToAll(COLOR_RED,"");
  3770.           SendClientMessageToAll(COLOR_RED,"|____________{SERVER STOPP}____________|");
  3771.           format(iString, sizeof(iString), "%s stoppt den Server.", GetName(playerid));
  3772.           SendAdminMessage(1, iString);
  3773.           SetTimer("RestartServer",30000,0);
  3774.           printf("[warning] %s stoppt den Server.",GetName(playerid));
  3775.     }
  3776.     return 1;
  3777. }
  3778.  
  3779. CMD:unfreeze(playerid,params[])
  3780. {
  3781.     if(Player[playerid][Level] < 1) return SendErrorMessage(playerid,"Du musst ein "Rang1Name" sein um diesen Command benutzen zu können.");
  3782.     {
  3783.         new id, iString[128];
  3784.         if(sscanf(params,"u",id)) return SendUsageMessage(playerid,"/unfreeze [ID]");
  3785.         if(!IsPlayerConnected(id)) return SendErrorMessage(playerid,"Der gewählte Spieler ist nicht auf dem Server.");
  3786.         TogglePlayerControllable(id,1);
  3787.         format(iString, sizeof(iString), "FREEZE: {FFFFFF}%s {ffcc00}wurde von {FFFFFF}%s {ffcc00}entfreezet.", GetName(id), GetName(playerid));
  3788.         SendClientMessageToAll(0xffcc00, iString);
  3789.         format(iString,sizeof(iString),"%s hat %s entfreezt",GetName(playerid),GetName(id));
  3790.         CmdLog(iString);
  3791.         printf("[warning] %s hat /unfreeze benutzt.",GetName(playerid));
  3792.     }
  3793.     return 1;
  3794. }
  3795.  
  3796.  
  3797. CMD:clearchat(playerid,params[])
  3798. {
  3799.    if(Player[playerid][Level] < 1) return SendErrorMessage(playerid, "Du musst ein "Rang1Name" sein um diesen Befehl benutzen zu können." );
  3800. {
  3801.      new iString[128];
  3802.      for( new i = 0; i <= 100; i ++ ) SendClientMessageToAll( -1, "" );
  3803.      format(iString, sizeof(iString), "%s hat den Chatverlauf gelöscht.", GetName(playerid));
  3804.      ChatLog(iString);
  3805.      SendClientMessageToAll(COLOR_LIGHTBLUE, iString);
  3806. }   return 1;
  3807. }
  3808.  
  3809. CMD:warn(playerid,params[])
  3810. {
  3811.     new target,reason[40],iString[145];
  3812.     if(Player[playerid][Level] < 1) return SendErrorMessage(playerid, "Du musst ein "Rang1Name" sein um diesen Befehl zu benutzen.");
  3813.     if(sscanf(params, "ds", target, reason)) return SendUsageMessage(playerid,"/warn [ID] [Grund]");
  3814.    
  3815.     Player[target][Warns]++;
  3816.     format(iString,sizeof(iString),"WARN: {FFFFFF}%s {FFFF00}hat {FFFFFF}%s {FFFF00}verwarnt. [Grund: {FFFFFF}%s{FFFF00}] [%d/5 Verwarnungen]",GetName(playerid),GetName(target),reason,Player[target][Warns]);
  3817.     SendClientMessageToAll(COLOR_YELLOW, iString);
  3818.     format(iString,sizeof(iString),"%s hat %s verwarnt. (Grund: %s)",GetName(playerid),GetName(target),reason);
  3819.     WarnLog(iString);
  3820.     return 1;
  3821. }
  3822.  
  3823. CMD:unwarn(playerid,params[])
  3824. {
  3825.     new target,iString[130];
  3826.     if(Player[playerid][Level] < 1) return SendErrorMessage(playerid, "Du musst ein "Rang1Name" sein um diesen Befehl zu benutzen.");
  3827.     if(isnull(params)) return SendUsageMessage(playerid,"/unwarn [ID]");
  3828.     if(Player[target][Warns] < 1) return SendErrorMessage(playerid,"Dieser Spieler hat keine Verwarnungen.");
  3829.    
  3830.     Player[target][Warns]--;
  3831.     format(iString,sizeof(iString),"WARN: {FFFFFF}%s {FFFF00}hat {FFFFFF}%s {FFFF00}entwarnt. [%d/5 Verwarnungen]",GetName(playerid),GetName(target),Player[target][Warns]);
  3832.     SendClientMessageToAll(COLOR_YELLOW, iString);
  3833.     format(iString,sizeof(iString),"%s hat %s entwarnt.",GetName(playerid),GetName(target));
  3834.     WarnLog(iString);
  3835.     return 1;
  3836. }
  3837.  
  3838. CMD:joinleavemsg(playerid,params[])
  3839. {
  3840.     new string[128];
  3841.     if(Player[playerid][Level] < 2) return SendErrorMessage(playerid,"Du musst ein "Rang2Name" sein um diesen Befehl benutzen zu können.");
  3842.    
  3843.     if(JoinLeaveMessages == true)
  3844.     {
  3845.         JoinLeaveMessages = false;
  3846.         format(string,sizeof(string),"%s %s {FFFF00}hat alle Join/Leave Nachrichten deaktiviert.",GetRang(playerid),GetName(playerid));
  3847.         SendClientMessageToAll(-1, string);
  3848.         format(string,sizeof(string),"%s hat alle Join/Leave Nachrichten deaktiviert.",GetName(playerid));
  3849.         CmdLog(string);
  3850.     }
  3851.     else if(JoinLeaveMessages == false)
  3852.     {
  3853.         JoinLeaveMessages = true;
  3854.         format(string,sizeof(string),"%s %s {FFFF00}hat alle Join/Leave Nachrichten aktiviert.",GetRang(playerid),GetName(playerid));
  3855.         SendClientMessageToAll(-1, string);
  3856.         format(string,sizeof(string),"%s hat alle Join/Leave Nachrichten aktiviert.",GetName(playerid));
  3857.         CmdLog(string);
  3858.     }
  3859.     return 1;
  3860. }
  3861.  
  3862. CMD:acmds(playerid, params[])
  3863. {
  3864.     if(Player[playerid][Level] < 1) return SendErrorMessage(playerid,"Du musst ein "Rang1Name" sein um diesen Befehl benutzen zu können.");
  3865.  
  3866.     new string[650];
  3867.     string = "";
  3868.  
  3869.     strcat(string, "{3377FF}"Rang1Name":\n");
  3870.     strcat(string, "{FFFFFF}/asay   /slap   /kick   /mute   /unmute   /spec   /specoff   /check");
  3871.     strcat(string, "{FFFFFF} /freeze /unfreeze  /clearchat  /duty  /goto  /gethere  /slay\n/cpjail ");
  3872.     strcat(string, "{FFFFFF} /cpunjail  /prisonlist  /togglefly  /warn  /unwarn  /checkminutes  /avilla");
  3873.    
  3874.     if(Player[playerid][Level] > 1)
  3875.     {
  3876.         strcat(string, "\n\n{3377FF}"Rang2Name":\n");
  3877.         strcat(string, "{FFFFFF}/ann  /offlineban  /unban  /searchban  /skin  /ban  /forceac");
  3878.     }
  3879.    
  3880.     if(Player[playerid][Level] > 2)
  3881.     {
  3882.         strcat(string, "\n\n{3377FF}"Rang3Name":\n");
  3883.         strcat(string, "{FFFFFF}/ipban   /v   /getgun   /jetpack  /(un)lock   /skipmap  /getip  /togglechat  /togwhitelist\n");
  3884.         strcat(string, "{FFFFFF}/rwhitelist  /awhitelist");
  3885.     }
  3886.    
  3887.     if(Player[playerid][Level] > 3)
  3888.     {
  3889.         strcat(string, "\n\n{3377FF}"Rang4Name":\n");
  3890.         strcat(string, "{FFFFFF}/minfps  /maxping   /crash  /setvip  /makemap  /ok   /skin  /stop  /givescore  /setadmin  /toggleac  /setlevel");
  3891.     }
  3892.    
  3893.  
  3894.     ShowPlayerDialog(playerid,DIALOG_HELPS,DIALOG_STYLE_MSGBOX,"{FFFF00}Administrative Befehle", string, "OK","");
  3895.     return 1;
  3896. }
  3897.  
  3898. CMD:setlevel(playerid, params[])
  3899. {
  3900.     new target, lvl, iString[100];
  3901.     if(Player[playerid][Level] < 4) return SendErrorMessage(playerid, "Du musst ein "Rang4Name" sein um diesen Befehl zu benutzen.");
  3902.     if(sscanf(params,"dd", target, lvl)) return SendUsageMessage(playerid, "/setlevel [ID] [Level]");
  3903.     if(!IsPlayerConnected(target)) return SendErrorMessage(playerid, "Der gewählte Spieler ist nicht auf dem Server.");
  3904.     if(lvl > 999) return SendErrorMessage(playerid, "Das gewählte Level ist zu hoch.");
  3905.     if(lvl < 1) return SendErrorMessage(playerid, "Das gewählte Level ist zu niedrig.");
  3906.    
  3907.     Player[target][URang] = lvl;
  3908.     Player[target][Score] = (Player[target][URang] * 350) - 350;
  3909.     format(iString,sizeof(iString),"Dein Level wurde von %s auf %d gesetzt.",GetName(playerid),Player[target][URang]);
  3910.     SendClientMessage(target, COLOR_BRIGHTRED, iString);
  3911.     format(iString,sizeof(iString),"Du hast das Level von %s auf %d gesetzt.",GetName(target),Player[target][URang]);
  3912.     SendClientMessage(playerid, COLOR_GREEN, iString);
  3913.     format(iString,sizeof(iString),"%s hat das Level von %s auf %d gesetzt.",GetName(playerid),GetName(target),Player[target][URang]);
  3914.     SendAdminMessage(3, iString);
  3915.    
  3916.     return 1;
  3917. }
  3918.  
  3919. CMD:avilla(playerid, params[])
  3920. {
  3921.     if(Player[playerid][Level] < 1) return SendErrorMessage(playerid, "Du musst ein "Rang1Name" sein um diesen Befehl zu benutzen.");
  3922.     if(Player[playerid][IsOnDuty] == false) return SendErrorMessage(playerid, "Du musst im Diesnt sein um diesen Befehl zu benutzen.");
  3923.    
  3924.     SendClientMessage(playerid, COLOR_BLUEGREEN, "Lauf in den Pfeil um die Villa zu betreten.");
  3925.     SetPlayerInterior(playerid, 0);
  3926.     SetPlayerPos(playerid, 775.8594, -1016.0732, 26.3594);
  3927.    
  3928.     return 1;
  3929. }
  3930.  
  3931. CMD:awhitelist(playerid,params[])
  3932. {
  3933.     if(Player[playerid][Level] < 3) return SendErrorMessage(playerid, "Du musst ein "Rang3Name" sein um diesen Befehl zu benutzen.");
  3934.    
  3935.     if(Whitelist == false) return SendErrorMessage(playerid, "Die Whitelist ist deaktiviert. Du kannst sie mit /togwhitelist aktivieren.");
  3936.  
  3937.     ShowPlayerDialog(playerid,DIALOG_AWHITELIST,DIALOG_STYLE_INPUT,"{00FFFF}Einen Spieler auf Whitelist setzen","{FF0000}Gib den genauen Namen ein","Weiter","Abbrechen");
  3938.    
  3939.     return 1;
  3940. }
  3941.  
  3942. CMD:rwhitelist(playerid,params[])
  3943. {
  3944.     if(Player[playerid][Level] < 3) return SendErrorMessage(playerid, "Du musst ein "Rang3Name" sein um diesen Befehl zu benutzen.");
  3945.  
  3946.     ShowPlayerDialog(playerid,DIALOG_RWHITELIST,DIALOG_STYLE_INPUT,"{00FFFF}Einen Spieler von der Whitelist entfernen","{FF0000}Gib den genauen Namen ein","Weiter","Abbrechen");
  3947.  
  3948.     return 1;
  3949. }
  3950.  
  3951. CMD:togwhitelist(playerid,params[])
  3952. {
  3953.      new iString[128];
  3954.      
  3955.      if(Player[playerid][Level] < 3) return SendErrorMessage(playerid, "Du musst ein "Rang3Name" sein um diesen Befehl benutzen zu können.");
  3956.      
  3957.      if(Whitelist == false)
  3958.      {
  3959.         Whitelist = true;
  3960.         format(iString,sizeof(iString),"%s hat die Whitelist aktiviert.",GetName(playerid));
  3961.         SendAdminMessage(1,iString);
  3962.         CmdLog(iString);
  3963.         printf("[warning] %s hat die Whitelist aktiviert.",GetName(playerid));
  3964.      }
  3965.      else if(Whitelist == true)
  3966.      {
  3967.         Whitelist = false;
  3968.         format(iString,sizeof(iString),"%s hat die Whitelist deaktiviert.",GetName(playerid));
  3969.         SendAdminMessage(1,iString);
  3970.         CmdLog(iString);
  3971.         printf("[warning] %s hat die Whitelist deaktiviert.",GetName(playerid));
  3972.      }
  3973.      
  3974.      return 1;
  3975. }
  3976.  
  3977. CMD:togglefly(playerid,params[])
  3978. {
  3979.      new string[70];
  3980.      if(Player[playerid][Level] < 2) return SendErrorMessage(playerid,"Du musst ein "Rang2Name" sein um diesen Befehl benutzen zu können.");
  3981.      if(Player[playerid][Specing] == true) return SendErrorMessage(playerid, "Du kannst nicht fliegen während du jemanden spectatest.");
  3982.      if(Player[playerid][IsOnDuty] == false) return SendErrorMessage(playerid, "Du kannst diesen Befehl nur benutzen wenn du im Dienst bist.");
  3983.      
  3984.      if(Flying[playerid] == false)
  3985.      {
  3986.         StartFly(playerid);
  3987.         Flying[playerid] = true;
  3988.         format(string,sizeof(string),"%s hat seinen Flymodus aktiviert.",GetName(playerid));
  3989.         SendAdminMessage(1,string);
  3990.         SendClientMessage(playerid, COLOR_GREEN, "Du hast deinen Flymodus aktiviert.");
  3991.         CmdLog(string);
  3992.      }
  3993.      else if(Flying[playerid] == true)
  3994.      {
  3995.         StopFly(playerid);
  3996.         Flying[playerid] = false;
  3997.         format(string,sizeof(string),"%s hat seinen Flymodus deaktiviert.",GetName(playerid));
  3998.         SendAdminMessage(1,string);
  3999.         SendClientMessage(playerid, COLOR_RED, "Du hast deinen Flymodus deaktiviert.");
  4000.         CmdLog(string);
  4001.      }
  4002.      return 1;
  4003. }
  4004.        
  4005.        
  4006.      
  4007.  
  4008. CMD:togglechat(playerid,params[])
  4009. {
  4010.      new iString[128];
  4011.      if(Player[playerid][Level] < 3) return SendErrorMessage(playerid,"Du musst ein "Rang3Name" sein um diesen Befehl zu benutzen.");
  4012.      
  4013.      if(ChatDisabled == false)
  4014.      {
  4015.         ChatDisabled = true;
  4016.         SendClientMessageToAll(0xFF000000,"|____________{CHAT DEAKTIVIERT}____________|");
  4017.         SendClientMessageToAll(0xFF000000,"");
  4018.         format(iString, sizeof(iString), "{FF0000}%s hat den globalen Chat deaktiviert.", GetName(playerid));
  4019.         SendClientMessageToAll(0xFF000000, iString);
  4020.         SendClientMessageToAll(0xFF000000,"");
  4021.         SendClientMessageToAll(0xFF000000,"|____________{CHAT DEAKTIVIERT}____________|");
  4022.         format(iString,sizeof(iString),"%s deaktiviert den Chat",GetName(playerid));
  4023.         ChatLog(iString);
  4024.         printf("[warning] %s hat den globalen Chat deaktiviert.",GetName(playerid));
  4025.      }
  4026.      
  4027.      else if(ChatDisabled == true)
  4028.      {
  4029.         ChatDisabled = false;
  4030.         SendClientMessageToAll(0xFF0000,"|____________{CHAT AKTIVIERT}____________|");
  4031.         SendClientMessageToAll(0xFF0000,"");
  4032.         format(iString, sizeof(iString), "{00FF1E}%s hat den globalen Chat aktiviert.", GetName(playerid));
  4033.         SendClientMessageToAll(0xFF0000, iString);
  4034.         SendClientMessageToAll(0xFF0000,"");
  4035.         SendClientMessageToAll(0xFF0000,"|____________{CHAT AKTIVIERT}____________|");
  4036.         format(iString,sizeof(iString),"%s aktiviert den Chat",GetName(playerid));
  4037.         ChatLog(iString);
  4038.         printf("[warning] %s hat den globalen Chat aktiviert.",GetName(playerid));
  4039.     }
  4040.     return 1;
  4041. }
  4042.  
  4043. CMD:cpjail(playerid, params[])
  4044. {
  4045.   new target,str[140], reason[64], pName[MAX_PLAYER_NAME], cps, world;
  4046.   world = playerid + randomEx(5, 2147483647);
  4047.  
  4048.   if(Player[playerid][Level] < 1) return
  4049.   SendErrorMessage(playerid, "Du musst ein "Rang1Name" sein um diesen Befehl zu benutzen.");
  4050.  
  4051.   if(sscanf(params,"s[24]S()[32]d", pName, reason, cps)) return
  4052.   SendUsageMessage(playerid, "/cpjail [Name/ID] [Grund] [Checkpoint Anzahl]");
  4053.  
  4054.   if(!(4 < cps < 100))
  4055.   {
  4056.     return SendErrorMessage(playerid, "Mindestens 5 Checkpoints und höchstens 99.");
  4057.   }
  4058.  
  4059.   if(IsNumeric(pName))
  4060.   target = strval(pName);
  4061.   else
  4062.   target = ReturnPlayerID(pName);
  4063.  
  4064.   if(!IsPlayerConnected(target)) return
  4065.   SendErrorMessage(playerid, "Der gewählte Spieler ist nicht auf dem Server.");
  4066.  
  4067.  
  4068.   if(pJailed[target] == true)
  4069.   {
  4070.     return SendErrorMessage(playerid, "Der Spieler befindet sich bereits im CP Prison.");
  4071.   }
  4072.  
  4073.   MaxCheckPoints[target] = cps;
  4074.  
  4075.   //Save Old Data
  4076.   SaveOldData(target);
  4077.  
  4078.   //Let's Jail
  4079.   HideStatisticsTextdraws(target);
  4080.   ResetPlayerWeapons(target);
  4081.   ShowCPTextDraws(target);
  4082.   format(str, sizeof(str), "PRISON: {FFFFFF}%s {FFFF00}hat {FFFFFF}%s {FFFF00}mit CP Jail(%d CPs) bestraft. [Grund: {FFFFFF}%s{FFFF00}]", GetName(playerid), GetName(target), cps,reason);
  4083.   SendClientMessageToAll(COLOR_YELLOW, str);
  4084.   SetPlayerPos(target, -1398.103515,937.631164,1036.479125);
  4085.   SetPlayerInterior(target, 15);
  4086.   SetPlayerVirtualWorld(target, world);
  4087.   pJailed[target] = true;
  4088.   RandomCheckPointCreate(target);
  4089.   format(str,sizeof(str),"%s hat %s für %d CP's ins CP Prison gesteckt",GetName(playerid),GetName(target),cps);
  4090.   JailLog(str);
  4091.   printf("[warning] %s hat %s für %d CP's ins CP Prison gesteckt.",GetName(playerid),GetName(target),cps);
  4092.   return 1;
  4093. }
  4094.  
  4095. CMD:cpunjail(playerid, params[])
  4096. {
  4097.   new target,str[128], pName[MAX_PLAYER_NAME];
  4098.  
  4099.   if(Player[playerid][Level] < 1) return
  4100.   SendErrorMessage(playerid, "Du musst ein "Rang1Name" sein um diesen Befehl zu benutzen.");
  4101.  
  4102.   if(sscanf(params,"s[24]", pName)) return
  4103.   SendUsageMessage(playerid, "/cpunjail [Name/ID]");
  4104.  
  4105.   if(IsNumeric(pName))
  4106.   target = strval(pName);
  4107.   else
  4108.   target = ReturnPlayerID(pName);
  4109.  
  4110.   if(!IsPlayerConnected(target)) return
  4111.   SendErrorMessage(playerid, "Der gewählte Spieler ist nicht auf dem Server.");
  4112.  
  4113.  
  4114.   if(pJailed[target] == false)
  4115.   {
  4116.     return SendErrorMessage(playerid, "Der Spieler befindet sich nicht im CP Prison.");
  4117.   }
  4118.  
  4119.   GiveOldData(target);
  4120.   ShowStatisticsTextdraws(target);
  4121.   HideCPTextDraws(target);
  4122.   pJailed[target] = false;
  4123.   DestroyDynamicCP(pCheckpoint[target]);
  4124.   format(str, sizeof(str),"PRISON: {FFFFFF}%s {FFFF00}hat {FFFFFF}%s {FFFF00}aus dem CP Prison geholt.", GetName(playerid), GetName(target));
  4125.   SendClientMessageToAll(COLOR_YELLOW, str);
  4126.   format(str,sizeof(str),"%s hat %s aus dem CP Prison geholt",GetName(playerid),GetName(target));
  4127.   JailLog(str);
  4128.   printf("[warning] %s hat %s aus dem CP Prison geholt.",GetName(playerid),GetName(target));
  4129.   return 1;
  4130. }
  4131.  
  4132. CMD:prisonlist(playerid)
  4133. {
  4134.   new cQuery[1024], pCount;
  4135.   if(Player[playerid][Level] < 1) return SendErrorMessage(playerid,"Du musst ein "Rang1Name" sein um diesen Befehl zu benutzen.");
  4136.   foreach(new i: Player)
  4137.   {
  4138.     if(pJailed[i] == true)
  4139.     {
  4140.       pCount++;
  4141.       format(cQuery, sizeof(cQuery),"{FFFF00}%s {FFFFFF}|| Verbleibende CP's: {FFFF00}%d\n", GetName(i), MaxCheckPoints[i]-CheckPointCounter[i]);
  4142.     }
  4143.   }
  4144.  
  4145.   if(pCount > 0)
  4146.   {
  4147.   ShowPlayerDialog(playerid, D_PRISONLIST, DIALOG_STYLE_MSGBOX, "{FFFF00}Spieler im CP Prison", cQuery, "Schliessen", "");
  4148.   }
  4149.  
  4150.   if(pCount == 0)
  4151.   {
  4152.   ShowPlayerDialog(playerid,D_PRISONLIST,DIALOG_STYLE_MSGBOX,"{FFFF00}Spieler im CP Prison", "{ff0000}Es ist niemand im CP Prison.","Schliessen","");
  4153.   }
  4154.  
  4155.   return 1;
  4156. }
  4157.  
  4158. //LEVEL 4//  /minfps   /maxping     /crash   /setvip   /makemap   /ok   /addscore   /skin   /givescore
  4159.  
  4160. CMD:a(playerid, params[])
  4161. {
  4162.     if(Player[playerid][Level] < 4 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang4Name" sein um diesen Command zu benutzen.");
  4163.     if(isnull(params) || !IsNumeric(params)) return SendUsageMessage(playerid,"/a [0 - 8]");
  4164.  
  4165.     new aid;
  4166.     aid = strval(params);
  4167.     new killerid;
  4168.     killerid = playerid;
  4169.     if(aid < 0 || aid > 8) return SendUsageMessage(playerid,"/a [0 - 8]");
  4170.  
  4171.     new iString[160];
  4172.  
  4173.     switch(aid)
  4174.     {
  4175.         case 0:
  4176.         {
  4177.             format(iString, sizeof(iString), "The Eagle of Desert~n~~n~%d / 250 Deagle Kills", Player[killerid][DeagleK]);
  4178.             ShowAch(killerid, iString, Player[killerid][DeagleK], 250);
  4179.         }
  4180.         case 1:
  4181.         {
  4182.             format(iString, sizeof(iString), "Double Barrel Power~n~~n~%d / 1000 Shotgun Kills", Player[killerid][ShotgunK]);
  4183.             ShowAch(killerid, iString, Player[killerid][ShotgunK], 1000);
  4184.         }
  4185.         case 2:
  4186.         {
  4187.             format(iString, sizeof(iString), "Patience pays off~n~~n~%d / 250 Rifle Kills", Player[killerid][RifleK]);
  4188.             ShowAch(killerid, iString, Player[killerid][RifleK], 250);
  4189.         }
  4190.         case 3:
  4191.         {
  4192.             format(iString, sizeof(iString), "Newbies love me~n~~n~%d / 50 MP5 Kills", Player[killerid][MP5K]);
  4193.             ShowAch(killerid, iString, Player[killerid][MP5K], 50);
  4194.         }
  4195.         case 4:
  4196.         {
  4197.             format(iString, sizeof(iString), "For Mother Russia!~n~~n~%d / 100 AK47 Kills", Player[killerid][AK47K]);
  4198.             ShowAch(killerid, iString, Player[killerid][AK47K], 100);
  4199.         }
  4200.         case 5:
  4201.         {
  4202.             format(iString, sizeof(iString), "King of Assault Machines win~n~~n~%d / 250 M4 Kills", Player[killerid][M4K]);
  4203.             ShowAch(killerid, iString, Player[killerid][M4K], 250);
  4204.         }
  4205.         case 6:
  4206.         {
  4207.             format(iString, sizeof(iString), "The Head Hunter~n~~n~%d / 50 Headshots", Player[killerid][Headshots]);
  4208.             ShowAch(killerid, iString, Player[killerid][Headshots], 50);
  4209.         }
  4210.         case 7:
  4211.         {
  4212.             format(iString, sizeof(iString), "YIPPE KI-YAY~n~~n~%d / 50 Grenade Kills", Player[killerid][MP5K]);
  4213.             ShowAch(killerid, iString, Player[killerid][GrenadeK], 50);
  4214.         }
  4215.         case 8:
  4216.         {
  4217.             format(iString, sizeof(iString), "~g~~h~~h~~h~Unlocked Achievement!~n~~n~~g~~h~~h~~h~The Eagle of Desert~n~%d / 250 Deagle Kills~n~MP5 unlocked in /guns menu", Player[killerid][DeagleK]);
  4218.             ShowAch(killerid, iString, Player[killerid][DeagleK], 250);
  4219.         }
  4220.     }
  4221.    
  4222.     return 1;
  4223. }
  4224.  
  4225. CMD:report(playerid, params[])
  4226. {
  4227.     new id;
  4228.     new reason[128];
  4229.     if(sscanf(params, "ds[128]", id, reason)) return SendUsageMessage(playerid,"/report [ID] [Grund]");
  4230.    
  4231.     SendReportMessage(playerid, id, reason);
  4232.    
  4233.     new string[100];
  4234.     format(string,sizeof(string),"%s hat %s [ID: %d] reportet. [Grund: %s]",GetName(playerid),GetName(id),id,reason);
  4235.     ReportLog(string);
  4236.    
  4237.     SendClientMessage(playerid, COLOR_ORANGE, "REPORT: Dein Report wurde gesendet und wird so schnell wie möglich bearbeitet.");
  4238.     return 1;
  4239. }
  4240.  
  4241. CMD:minfps(playerid, params[])
  4242. {
  4243.     if(Player[playerid][Level] < 4 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang4Name" sein um diesen Command benutzen zu können.");
  4244.     if(isnull(params) || !IsNumeric(params)) return SendUsageMessage(playerid,"/minfps [Minimale FPS]");
  4245.  
  4246.     new iPacket = strval(params);
  4247.     if(iPacket < 10 || iPacket > 60) return SendErrorMessage(playerid,"Das FPS Limit kann nur zwischen 10 und 60 liegen.");
  4248.  
  4249.     MinFPS = iPacket;
  4250.  
  4251.     new iString[128];
  4252.     format(iString,sizeof(iString),"%s hat die Mindest FPS geändert zu: %d", Player[playerid][Name], iPacket);
  4253.     SendAdminMessage(4, iString);
  4254.    
  4255.     format(iString,sizeof(iString),"%s hat die minimalen FPS auf %d gesetzt.",GetName(playerid), iPacket);
  4256.     CmdLog(iString);
  4257.    
  4258.     printf("[warning] %s hat die minimalen FPS auf %d gesetzt.",GetName(playerid), iPacket);
  4259.  
  4260.     return 1;
  4261. }
  4262.  
  4263. CMD:maxping(playerid, params[])
  4264. {
  4265.     if(Player[playerid][Level] < 4 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang4Name" sein um diesen Command zu benutzen.");
  4266.     if(isnull(params) || !IsNumeric(params)) return SendUsageMessage(playerid,"/maxping [Maximaler Ping]");
  4267.  
  4268.     new iPacket = strval(params);
  4269.     if(iPacket < 150 || iPacket > 1000) return SendErrorMessage(playerid,"Das Ping Limit kann nur zwischen 150 und 1000 liegen.");
  4270.  
  4271.     MaxPing = iPacket;
  4272.  
  4273.     new iString[128];
  4274.     format(iString,sizeof(iString),"%s hat den Maximalen Ping geändert zu: %d", Player[playerid][Name], iPacket);
  4275.     SendAdminMessage(4, iString);
  4276.    
  4277.     format(iString,sizeof(iString),"%s ändert den maximalen Ping zu %d",GetName(playerid),iPacket);
  4278.     CmdLog(iString);
  4279.    
  4280.     printf("[warning] %s hat den maximalen Ping geändert auf %d",GetName(playerid),iPacket);
  4281.    
  4282.     return 1;
  4283. }
  4284.  
  4285. CMD:crash(playerid,params[])
  4286. {
  4287.     new iString[128];
  4288.     if(Player[playerid][Level] < 4 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang4Name" sein um diesen Command zu benutzen.");
  4289.     if(isnull(params) || !IsNumeric(params)) return SendUsageMessage(playerid,"/crash [ID]");
  4290.  
  4291.     new crashid = strval(params);
  4292.     if(!IsPlayerConnected(crashid)) return SendErrorMessage(playerid,"Der Spieler ist nicht auf dem Server.");
  4293.    
  4294.     format(iString,sizeof(iString),"%s crasht %s",GetName(playerid),GetName(crashid));
  4295.     CmdLog(iString);
  4296.    
  4297.     printf("[warning] %s crasht %s.",GetName(playerid),GetName(crashid));
  4298.    
  4299.     PlayerPlaySound(crashid,12136,0.0,0.0,0.0);
  4300.  
  4301.     return 1;
  4302. }
  4303.  
  4304. CMD:s(playerid,params[])
  4305. {
  4306.     if(Player[playerid][Level] < 4 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang4Name" sein um diesen Command zu benutzen.");
  4307.     if(isnull(params) || !IsNumeric(params)) return SendUsageMessage(playerid,"/s [Sound ID]");
  4308.  
  4309.     new soundid = strval(params);
  4310.  
  4311.     PlayerPlaySound(playerid,soundid,0.0,0.0,0.0);
  4312.  
  4313.     return 1;
  4314. }
  4315.  
  4316. CMD:setvip(playerid, params[])
  4317. {
  4318.     if(Player[playerid][Level] < 4 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang4Name" sein um diesen Command zu benutzen.");
  4319.     new GiveID, iString[256];
  4320.     if(sscanf(params, "i", GiveID)) return SendUsageMessage(playerid,"/setvip [ID]");
  4321.  
  4322.     if(!IsPlayerConnected(GiveID)) return SendErrorMessage(playerid,"Der Spieler ist nicht auf dem Server.");
  4323.     if(Player[GiveID][Logged] == false) return SendErrorMessage(playerid,"Der Spieler ist nicht eingeloggt.");
  4324.  
  4325.     if(Player[GiveID][VIP] == 0)
  4326.     {
  4327.         SetPlayerArmour(GiveID, 25.0);
  4328.         Player[GiveID][UnlockedM4] = true;
  4329.         Player[GiveID][UnlockedSniper] = true;
  4330.         Player[GiveID][Gun3] = M4;
  4331.         Player[GiveID][Gun5] = SNIPER;
  4332.        
  4333.         Player[GiveID][VIP] = 1;
  4334.         SavePlayer(GiveID);
  4335.        
  4336.         format(iString,sizeof(iString),"%s hat VIP aktiviert für %s", Player[playerid][Name], Player[GiveID][Name]);
  4337.         SendAdminMessage(3, iString);
  4338.         SendClientMessage(GiveID, YELLOW_COLOR, "Dein VIP wurde von einem "Rang4Name" {00FF00}AKTIVIERT{FFFF00}! Um Buggs zu vermeiden, musst du reloggen.");
  4339.         SetTimerEx("OnPlayerKicked", 500, false, "i", GiveID);
  4340.         printf("[warning] %s hat VIP für %s aktiviert.",GetName(playerid),GetName(GiveID));
  4341.     }
  4342.     else if(Player[GiveID][VIP] == 1)
  4343.     {
  4344.         SetPlayerArmour(GiveID, 0.0);
  4345.         Player[GiveID][Gun3] = 0;
  4346.         Player[GiveID][Gun5] = 0;
  4347.         SetPlayerAmmo(GiveID, Player[GiveID][Gun3], 0); //ak
  4348.         SetPlayerAmmo(GiveID, Player[GiveID][Gun5], 0); //sniper
  4349.        
  4350.         Player[GiveID][VIP] = 0;
  4351.         SavePlayer(GiveID);
  4352.        
  4353.         format(iString,sizeof(iString),"%s hat VIP deaktiviert für %s", Player[playerid][Name], Player[GiveID][Name]);
  4354.         SendAdminMessage(3, iString);
  4355.         SendClientMessage(GiveID, YELLOW_COLOR, "Dein VIP wurde von einem "Rang4Name" {FF0000}DEAKTIVIERT{FFFF00}! Um Buggs zu vermeiden, musst du reloggen.");
  4356.         SetTimerEx("OnPlayerKicked", 500, false, "i", GiveID);
  4357.         format(iString,sizeof(iString),"%s deaktiviert VIP von %s",GetName(playerid),GetName(GiveID));
  4358.         CmdLog(iString);
  4359.         printf("[warning] %s hat VIP für %s deaktiviert.",GetName(playerid),GetName(GiveID));
  4360.     }
  4361.  
  4362.     return 1;
  4363. }
  4364.  
  4365. CMD:makemap(playerid, params[])
  4366. {
  4367.     if(Player[playerid][Level] < 4) return SendErrorMessage(playerid,"Du musst "Rang4Name" sein um diesen Command zu benutzen.");
  4368.     new mapid;
  4369.     if(sscanf(params, "d", mapid)) return SendUsageMessage(playerid,"/makemap [Map ID]");
  4370.  
  4371.     if(Player[playerid][Mapping] == true) return SendErrorMessage(playerid,"Du erstellst bereits eine Map. Nutze /ok und wähle '>> Mapping beenden' um die Map zu beenden und eine neue erstellen zu können.");
  4372.  
  4373.     Player[playerid][Mapping] = true;
  4374.  
  4375.     CreateMenus();
  4376.     CreateMap(playerid,mapid);
  4377.     printf("[warning] %s erstellt eine Map.",GetName(playerid));
  4378.     return 1;
  4379. }
  4380.  
  4381. CMD:ok(playerid, params[])
  4382. {
  4383.     if(Player[playerid][Level] < 4) return SendErrorMessage(playerid,"Du musst "Rang4Name" sein um diesen Command zu benutzen.");
  4384.     if(Player[playerid][Mapping] == false) return SendErrorMessage(playerid,"Du musst erst /makemap machen um eine Map zu erstellen.");
  4385.  
  4386.     TogglePlayerControllable(playerid,false);
  4387.     ShowMenuForPlayer(MapMenu, playerid);
  4388.     return 1;
  4389. }
  4390.  
  4391. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  4392. CMD:skin(playerid, params[])
  4393. {
  4394.     if(Player[playerid][Level] < 4 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang4Name" sein um diesen Command zu benutzen.");
  4395.     if(isnull(params) || !IsNumeric(params)) return SendUsageMessage(playerid,"/skin [0 - 7]");
  4396.  
  4397.     new myskin;
  4398.     myskin = strval(params);
  4399.     if(myskin < 0 || myskin > 7) return SendUsageMessage(playerid,"/skin [0 - 7]");
  4400.  
  4401.     switch(myskin)
  4402.     {
  4403.         case 0: SetPlayerSkin(playerid, 53);
  4404.         case 1: SetPlayerSkin(playerid, 250);
  4405.         case 2: SetPlayerSkin(playerid, 45);
  4406.         case 3: SetPlayerSkin(playerid, 191);
  4407.         case 4: SetPlayerSkin(playerid, 230);
  4408.         case 5: SetPlayerSkin(playerid, 177);
  4409.         case 6: SetPlayerSkin(playerid, 154);
  4410.         case 7: SetPlayerSkin(playerid, 198);
  4411.     }
  4412.     ClearAnimations(playerid);
  4413.  
  4414.     new iString[64];
  4415.     format(iString, sizeof(iString), "Skin geändert zu: {FFFFFF}%d", myskin);
  4416.     SendClientMessage(playerid, YELLOW_COLOR, iString);
  4417.     return 1;
  4418. }
  4419.  
  4420. CMD:givescore(playerid, params[])
  4421. {
  4422.     new target, score, iString[128];
  4423.     if(Player[playerid][Level] < 4 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang4Name" sein um diesen Command zu benutzen.");
  4424.     if(sscanf(params, "dd", target, score)) return SendUsageMessage(playerid, "/givescore [ID] [Anzahl]");
  4425.    
  4426.     GiveScore(target, score);
  4427.     format(iString,sizeof(iString),"SCORE: %s hat dir %d Score gegeben.",GetName(playerid),score);
  4428.     SendClientMessage(target,COLOR_GREEN,iString);
  4429.     format(iString,sizeof(iString),"SCORE: %s hat %d Score erhalten.",GetName(playerid),score);
  4430.     SendClientMessage(playerid,COLOR_GREEN,iString);
  4431.     format(iString,sizeof(iString),"%s hat %s %d Score gegeben.",GetName(playerid),GetName(target),score);
  4432.     SendAdminMessage(3,iString);
  4433.     CmdLog(iString);
  4434.    
  4435.     return 1;
  4436. }
  4437.  
  4438. CMD:playerlist(playerid,params[])
  4439. {
  4440.     new string[512],sstring[256];
  4441.     string = "\0";
  4442.     if(Player[playerid][Logged] == false) return SendErrorMessage(playerid, "Du musst eingeloggt sein um diesen Befehl zu benutzen.");
  4443.    
  4444.     foreach(new i : Player)
  4445.     {
  4446.         if(pJailed[i] == true)
  4447.         {
  4448.             format(sstring,sizeof(sstring),"{00c5ff}%s {FFFF00}[JAILED] {FFFFFF}|| {00c5ff}Rang: {FFFFFF}%s || {00c5ff}Score: {FFFFFF}%d\n",GetName(playerid),GetRang(playerid),Player[i][Score]);
  4449.             strcat(string, sstring);
  4450.         }
  4451.         if(Player[i][Logged] == true && Player[i][IsOnDuty] == false && pJailed[i] == false)
  4452.         {
  4453.             format(sstring,sizeof(sstring),"{00c5ff}%s {FFFFFF}|| {00c5ff}Rang: {FFFFFF}%s || {00c5ff}Score: {FFFFFF}%d\n",GetName(playerid),GetRang(playerid),Player[i][Score]);
  4454.             strcat(string,sstring);
  4455.         }
  4456.         if(Player[i][IsOnDuty] == true)
  4457.         {
  4458.             format(sstring,sizeof(sstring),"{00c5ff}%s {FFFF00}[IM DIENST] {FFFFFF}|| {00c5ff}Rang: {FFFFFF}%s || {00c5ff}Score: {FFFFFF}%d\n",GetName(playerid),GetRang(playerid),Player[i][Score]);
  4459.             strcat(string,sstring);
  4460.         }
  4461.     }
  4462.     ShowPlayerDialog(playerid, 9649, DIALOG_STYLE_MSGBOX, "Spielerliste",string,"Schliessen", "");
  4463.     return 1;
  4464. }
  4465.  
  4466.  
  4467. //////////LEVEL 3////////////////////           /banip   /setlevel   /v   /getgun   /jetpack   /(un)lock
  4468.  
  4469. CMD:searchban(playerid, params[])
  4470. {
  4471.     if(Player[playerid][Level] < 2 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang2Name" sein um diesen Command zu benutzen.");
  4472.     else if(isnull(params)) return SendUsageMessage(playerid,"/searchban [Name/IP]");
  4473.     else
  4474.     {
  4475.         new Query[240], string[180];
  4476.         format(Query, sizeof(Query), "SELECT * FROM `BANNED` WHERE `NAME` LIKE '%%%s%%' OR `IP` LIKE '%%%s%%' ORDER BY `DATE` DESC LIMIT 6", params, params);
  4477.         new DBResult:Result = db_query(bans, Query);
  4478.         if(db_num_rows(Result))
  4479.         {
  4480.             new BannedBy[MAX_PLAYER_NAME], BannedName[MAX_PLAYER_NAME], BannedIP[MAX_PLAYER_NAME], BannedReason[MAX_PLAYER_NAME*2];
  4481.             do
  4482.             {
  4483.                 db_get_field_assoc(Result, "NAME", BannedName, sizeof(BannedName));
  4484.                 db_get_field_assoc(Result, "IP", BannedIP, sizeof(BannedIP));
  4485.                 db_get_field_assoc(Result, "ADMIN", BannedBy, sizeof(BannedBy));
  4486.                 db_get_field_assoc(Result, "REASON", BannedReason, sizeof(BannedReason));
  4487.  
  4488.                 format(string, sizeof(string), "BANNINFO: {FC4949}%s(IP: %s) {FFFFFF}- {FC4949}Gebannt von: %s {FFFFFF}- {FC4949}Grund: %s", BannedName, BannedIP, BannedBy, BannedReason);
  4489.                 SendClientMessage(playerid, -1, string);
  4490.             }
  4491.             while(db_next_row(Result));
  4492.         }
  4493.         else SendErrorMessage(playerid,"Kein Bann mit dem Name/IP gefunden.");
  4494.         db_free_result(Result);
  4495.         string = "\0", Query = "\0";
  4496.     }
  4497.     return 1;
  4498. }
  4499.  
  4500.  
  4501. CMD:offlineban(playerid, params[]) {
  4502.     new Query[240], string[128], pName[24], reason[48], DBResult:result, day, month, year, second, minute, hour, datestring[24], timestring[24];
  4503.     if(Player[playerid][Level] < 2 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid, "Du musst ein "Rang2Name" sein um diesen Command zu benutzen.");
  4504.     if(sscanf(params, "s[24]s[48]", pName, reason)) return SendUsageMessage(playerid,"/offlineban [Spieler] [Grund]");
  4505.  
  4506.     format(Query, sizeof(Query), "SELECT `NAME` FROM `BANNED` WHERE `NAME` = '%s'", pName);
  4507.     result = db_query(bans, Query);
  4508.     if(!db_num_rows(result))
  4509.     {
  4510.         getdate(day, month, year), gettime(hour, minute, second);
  4511.         format(datestring, sizeof(datestring), "%i-%i-%i", day, month, year), format(timestring, sizeof(timestring), "%i:%i:%i", hour, minute, second);
  4512.  
  4513.         format(Query, sizeof(Query), "INSERT INTO `BANNED` (`NAME`, `IP`, `REASON`, `ADMIN`, `DATE`, `TIME`) VALUES ('%s', '0', '%s', '%s', '%s', '%s')", DB_Escape(pName), reason, DB_Escape(GetName(playerid)), datestring, timestring);
  4514.         result = db_query(bans, Query);
  4515.         if(result)
  4516.         {
  4517.             format(string, sizeof(string), "BAN: {FFFFFF}%s {FF0000}wurde von {FFFFFF}%s {FF0000}offline gebannt. [Grund: {FFFFFF}%s{FF0000}]", pName, GetName(playerid), playerid, reason);
  4518.             SendClientMessageToAll(COLOR_RED, string), string = "\0";
  4519.  
  4520.             printf("[ban] [%s]: offlinebanned %s mit dem Grund: %s", GetName(playerid), pName, reason);
  4521.         }
  4522.         else
  4523.         {
  4524.             format(string, sizeof(string), "Konnte Spieler nicht bannen. Grund: '%s'..", pName), SendErrorMessage(playerid, string);
  4525.             printf("[ban] [%s]: failed to offlineban %s due to %s", GetName(playerid), pName, reason);
  4526.         }
  4527.     }
  4528.     else return SendErrorMessage(playerid, "Der gewählte Spieler ist bereits gebannt.");
  4529.     db_free_result(result);
  4530.    
  4531.     format(string,sizeof(string),"%s offlinebannt %s [Grund: %s]",GetName(playerid),pName,reason);
  4532.     BanLog(string);
  4533.    
  4534.     printf("[warning] %s offlinebannt %s mit dem Grund: %s",GetName(playerid),pName,reason);
  4535.  
  4536.     return 1;
  4537. }
  4538.  
  4539. CMD:unban(playerid, params[]) {
  4540.     new pName[24], reason[50], Query[132], DBResult:Result;
  4541.     new stringz[132];
  4542.     if(Player[playerid][Level] < 2 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang2Name" sein um diesen Command zu benutzen.");
  4543.     if(sscanf(params, "s[24]s[50]", pName, reason)) return SendUsageMessage(playerid, "/unban [Name] [Grund]");
  4544.  
  4545.  
  4546.     format(Query, sizeof(Query), "SELECT * FROM `BANNED` WHERE `NAME` = '%s'", pName);
  4547.     Result = db_query(bans, Query);
  4548.     if(db_num_rows(Result))
  4549.     {
  4550.         format(Query, sizeof(Query), "DELETE FROM `BANNED` WHERE `NAME` = '%s'", pName);
  4551.         Result = db_query(bans, Query);
  4552.         format(stringz, sizeof(stringz), "%s hat %s entbannt. [Grund: %s]", GetName(playerid), pName, reason);
  4553.         SendAdminMessage(1, stringz), stringz = "\0";
  4554.     }
  4555.     else SendErrorMessage(playerid,"Der Spieler ist nicht gebannt. Nutze /searchban um nach ähnlichen Namen zu suchen.");
  4556.     stringz = "\0", Query = "\0", reason = "\0";
  4557.     db_free_result(Result);
  4558.     printf("[warning] %s entbannt %s mit dem Grund %s",GetName(playerid),pName,reason);
  4559.     format(stringz, sizeof(stringz), "%s wurde von %s entbannt. [Grund: %s]", pName, GetName(playerid), reason);
  4560.     BanLog(stringz);
  4561.     return 1;
  4562. }
  4563.  
  4564. CMD:ban(playerid, params[])
  4565. {
  4566.     if(Player[playerid][Level] < 2 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang2Name" sein um diesen Command benutzen zu können.");
  4567.  
  4568.     new targetid, Reason[128];
  4569.     if(sscanf(params, "ds", targetid, Reason)) return SendUsageMessage(playerid,"/ban [ID] [Grund]");
  4570.    
  4571.     if(Player[targetid][LocalHost] == true) return SendErrorMessage(playerid, "Der gewählte Spieler ist Localhost.");
  4572.     if(!IsPlayerConnected(targetid)) return SendErrorMessage(playerid,"Der gewählte Spieler ist nicht auf dem Server.");
  4573.     if(strlen(Reason) > 128) return SendErrorMessage(playerid,"Der gewählte Grund ist zu lang.");
  4574.    
  4575.     printf("[warning] %s bannt %s mit dem Grund %s",GetName(playerid),GetName(targetid),Reason);
  4576.     BanWithReasonNoIP(playerid, targetid, Reason);
  4577.  
  4578.     return 1;
  4579. }
  4580.  
  4581. CMD:master(playerid, params[])
  4582. {
  4583.     new banreason[10] = "SilentAim";
  4584.     SystemBan(playerid, banreason);
  4585.    
  4586.     return 1;
  4587. }
  4588.  
  4589. CMD:master1(playerid, params[])
  4590. {
  4591.     new banreason[10] = "SilentAim";
  4592.     SystemBan(playerid, banreason);
  4593.    
  4594.     return 1;
  4595. }
  4596.  
  4597. CMD:ipban(playerid, params[])
  4598. {
  4599.     if(Player[playerid][Level] < 2 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang2Name" sein um diesen Command benutzen zu können.");
  4600.  
  4601.     new targetid, Reason[128];
  4602.     if(sscanf(params, "ds", targetid, Reason)) return SendUsageMessage(playerid,"/ipban [ID] [Grund]");
  4603.    
  4604.     if(Player[targetid][LocalHost] == true) return SendErrorMessage(playerid, "Der gewählte Spieler ist Localhost.");
  4605.     if(!IsPlayerConnected(targetid)) return SendErrorMessage(playerid,"Der gewählte Spieler ist nicht auf dem Server.");
  4606.    
  4607.     if(strlen(Reason) > 128) return SendErrorMessage(playerid,"Der gewählte Grund ist zu lang.");
  4608.     printf("[warning] %s ipbannt %s mit dem Grund %s",GetName(playerid),GetName(targetid),Reason);
  4609.     BanWithReason(playerid, targetid, Reason);
  4610.  
  4611.     return 1;
  4612. }
  4613.  
  4614. CMD:getip(playerid, params[])
  4615. {
  4616.      new target, iString[128], IP[MAX_PLAYER_NAME];
  4617.      if(Player[playerid][Level] < 3) return SendErrorMessage(playerid,"Du musst ein "Rang3Name" sein um diesen Command benutzen zu können.");
  4618.      if(isnull(params)) return SendUsageMessage(playerid,"/getip [ID]");
  4619.      if(!IsPlayerConnected(target)) return SendErrorMessage(playerid,"Der Spieler ist nicht auf dem Server.");
  4620.      
  4621.      GetPlayerIp(target, IP, sizeof(IP));
  4622.      format(iString, sizeof(iString), "Name: %s | IP: %s", GetName(target), IP);
  4623.      SendClientMessage(playerid, COLOR_ORANGE, iString);
  4624.      
  4625.      format(iString,sizeof(iString),"%s checkt die IP von %s",GetName(playerid),GetName(target));
  4626.      CmdLog(iString);
  4627.      
  4628.      return 1;
  4629. }
  4630.  
  4631. CMD:setadmin(playerid, params[])
  4632. {
  4633.     //if(Player[playerid][Level] < 4 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang4Name" sein um diesen Befehl zu benutzen.");
  4634.     new GiveID, LEVEL;
  4635.     if(sscanf(params, "id", GiveID, LEVEL)) return SendUsageMessage(playerid,"/setadmin [ID] [Level]");
  4636.  
  4637.     if(!IsPlayerConnected(GiveID)) return SendErrorMessage(playerid,"Der Spieler ist nicht auf dem Server.");
  4638.     if(Player[GiveID][Logged] == false) return SendErrorMessage(playerid,"Der Spieler ist nicht eingeloggt.");
  4639.     if(Player[GiveID][Level] > Player[playerid][Level]) return SendErrorMessage(playerid,"Der Spieler hat ein höheres Adminlevel als du.");
  4640.     if(LEVEL < 0 || LEVEL > 4) return SendErrorMessage(playerid,"Das Adminlevel muss zwischen 0 und 4 liegen.");
  4641.     if(Player[GiveID][Level] == LEVEL) return SendErrorMessage(playerid,"Der Spieler hat dieses Adminlevel bereits.");
  4642.  
  4643.     if(Player[GiveID][Level] > LEVEL)
  4644.     {
  4645.         new string[148];
  4646.         format(string,sizeof(string),"INFO: %s %s hat dich zum %s (%d) degradiert.",GetRang(playerid),GetName(playerid),GetRangName(LEVEL),LEVEL);
  4647.         SendClientMessage(GiveID,YELLOW_COLOR,string);
  4648.     }
  4649.     else if(Player[GiveID][Level] < LEVEL)
  4650.     {
  4651.         new string[148];
  4652.         format(string,sizeof(string),"INFO: %s %s hat dich zum %s (%d) befördert.",GetRang(playerid),GetName(playerid),GetRangName(LEVEL),LEVEL);
  4653.         SendClientMessage(GiveID,YELLOW_COLOR,string);
  4654.     }
  4655.    
  4656.     Player[GiveID][Level] = LEVEL;
  4657.     SavePlayer(GiveID);
  4658.  
  4659.     new iString[128];
  4660.     format(iString,sizeof(iString),"%s hat %s's Rang geändert zu: %s (%d)", Player[playerid][Name],Player[GiveID][Name], GetRang(GiveID),LEVEL);
  4661.     SendAdminMessage(1, iString);
  4662.    
  4663.     CmdLog(iString);
  4664.    
  4665.     printf("[warning] %s setzt das Adminlevel von %s auf %s(%d)",GetName(playerid),GetName(GiveID),GetRang(GiveID),LEVEL);
  4666.  
  4667.     return 1;
  4668. }
  4669.  
  4670. CMD:toggleac(playerid,params[])
  4671. {
  4672.   #if defined AntiCheat
  4673.   if(Player[playerid][Level] < 4) return SendErrorMessage(playerid,"Du musst ein "Rang4Name" sein um diesen Befehl zu benutzen.");
  4674.   new iString[64];
  4675.   if(AntiCheatActive == true)
  4676.   {
  4677.     AntiCheatActive = false;
  4678.     SendClientMessage(playerid, COLOR_GREEN, "Du hast das AntiCheat erfolgreich deaktiviert.");
  4679.     SendClientMessageToAll(COLOR_RED,"|____________{ANTI CHEAT NACHRICHT}____________|");
  4680.     SendClientMessageToAll(COLOR_RED,"");
  4681.     format(iString, sizeof(iString), "%s hat das komplette AntiCheat deaktiviert.", GetName(playerid));
  4682.     SendClientMessageToAll(COLOR_RED, iString);
  4683.     SendClientMessageToAll(COLOR_RED,"");
  4684.     SendClientMessageToAll(COLOR_RED,"|____________{ANTI CHEAT NACHRICHT}____________|");
  4685.     format(iString,sizeof(iString),"%s hat das AntiCheat deaktiviert.",GetName(playerid));
  4686.     ACLog(iString);
  4687.     printf("[warning] %s deaktiviert das Anticheat.",GetName(playerid));
  4688.   }
  4689.  
  4690.   else if(AntiCheatActive == false)
  4691.   {
  4692.     AntiCheatActive = true;
  4693.     SendClientMessage(playerid, COLOR_GREEN, "Du hast das AntiCheat erfolgreich aktiviert.");
  4694.     SendClientMessageToAll(COLOR_GREEN,"|____________{ANTI CHEAT NACHRICHT}____________|");
  4695.     SendClientMessageToAll(COLOR_GREEN,"");
  4696.     format(iString, sizeof(iString), "%s hat das komplette AntiCheat aktivert.", GetName(playerid));
  4697.     SendClientMessageToAll(COLOR_GREEN, iString);
  4698.     SendClientMessageToAll(COLOR_GREEN,"");
  4699.     SendClientMessageToAll(COLOR_GREEN,"|____________{ANTI CHEAT NACHRICHT}____________|");
  4700.     format(iString,sizeof(iString),"%s hat das AntiCheat aktiviert.",GetName(playerid));
  4701.     ACLog(iString);
  4702.     printf("[warning] %s aktiviert das Anticheat.",GetName(playerid));
  4703.   }
  4704.  
  4705.   else
  4706.   {
  4707.     SendClientMessage(playerid, COLOR_RED, "Es ist ein Fehler aufgetreten.");
  4708.   }
  4709.  
  4710.   #else
  4711.   SendClientMessage(playerid, COLOR_RED, "Das AntiCheat ist vom Script deaktiviert.");
  4712.  
  4713.   #endif
  4714.  
  4715.   return 1;
  4716. }
  4717.  
  4718. /*CMD:rename(playerid, params[])
  4719. {
  4720.      if(Player[playerid][Level] < 3 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang3Name" sein um diesen Command zu benutzen.");
  4721.      new targetid, newname, iString[32];
  4722.      if(sscanf(params, "us", targetid, newname)) return SendUsageMessage(playerid,"/rename [ID] [Neuer Name]");
  4723.      if(!IsPlayerConnected(targetid)) return SendErrorMessage(playerid,"Der Spieler ist nicht auf dem Server.");
  4724.      if(Player[targetid][Logged] == false) return SendErrorMessage(playerid,"Der Spieler ist nicht eingeloggt.");
  4725.      if(newname > 24) return SendErrorMessage(playerid,"Der gewählte Name ist zu lang.");
  4726.      
  4727.      format(iString,sizeof(iString),"Du hast den Namen von %s zu %s geändert.", GetName(targetid), newname);
  4728.      SendClientMessage(playerid, COLOR_GREEN, iString);
  4729.      format(iString,sizeof(iString),"Dein Name wurde von %s geändert. [%s zu %s]", GetName(playerid), GetName(targetid), newname);
  4730.      SendClientMessage(playerid, COLOR_RED, iString);
  4731.      printf("[warning] %s ändert den Namen von %s auf %s",GetName(playerid),GetName(targetid),newname);
  4732.      format(iString,sizeof(iString),"%s", newname);
  4733.      SetPlayerName(targetid,iString);
  4734.      return 1;
  4735. } */
  4736.  
  4737.  
  4738. CMD:v(playerid, params[])
  4739. {
  4740.     if(Player[playerid][Level] < 3 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang3Name" sein um diesen Command zu benutzen.");
  4741.     if(Player[playerid][Specing] == true) return SendErrorMessage(playerid,"Du kannst diesen Command nicht benutzen während du jemanden spectatest.");
  4742.     if(isnull(params)) return SendUsageMessage(playerid,"/v [Fahrzeug]");
  4743.     if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendErrorMessage(playerid,"Du kannst kein Fahrzeug spawnen während du bereits fährst.");
  4744.  
  4745.     new veh = GetVehicleModelID(params);
  4746.     if(veh < 400 || veh > 611) return SendErrorMessage(playerid,"Unzulässiger Fahrzeugname.");
  4747.  
  4748.     if(IsPlayerInAnyVehicle(playerid))
  4749.     {
  4750.         RemovePlayerFromVehicle(playerid);
  4751.         DestroyVehicle(GetPlayerVehicleID(playerid));
  4752.     }
  4753.  
  4754.     new Float:Pos[4];
  4755.     GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  4756.     GetPlayerFacingAngle(playerid, Pos[3]);
  4757.  
  4758.     new MyVehicle = CreateVehicle(veh, Pos[0], Pos[1], Pos[2], Pos[3], -1, -1, -1);
  4759.     new plate[32];
  4760.     format(plate, sizeof(plate), "%s", Player[playerid][Name]);
  4761.     SetVehicleNumberPlate(MyVehicle, plate);
  4762.     SetVehicleToRespawn(MyVehicle);
  4763.     LinkVehicleToInterior(MyVehicle, GetPlayerInterior(playerid));
  4764.     SetVehicleVirtualWorld(MyVehicle, GetPlayerVirtualWorld(playerid));
  4765.     PutPlayerInVehicle(playerid, MyVehicle, 0);
  4766.  
  4767.     new iString[128];
  4768.     format(iString, sizeof(iString), "VEHICLE: Du hast eine(n) %s gespawnt.", aVehicleNames[veh-400]);
  4769.     SendClientMessage(playerid, COLOR_GREEN, iString);
  4770.  
  4771.     format(iString, sizeof(iString), "%s hat eine(n) %s gespawnt.", Player[playerid][Name], aVehicleNames[veh-400]);
  4772.     SendAdminMessage(2, iString);
  4773.    
  4774.     CmdLog(iString);
  4775.    
  4776.     printf("[warning] %s spawnt sich eine(n) %s.",GetName(playerid),aVehicleNames[veh-400]);
  4777.    
  4778.     return 1;
  4779. }
  4780.  
  4781. CMD:getgun(playerid, params[])
  4782. {
  4783.     if(Player[playerid][Level] < 3 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang3Name" sein um diesen Command zu benutzen.");
  4784.     if(Player[playerid][Specing] == true) return SendErrorMessage(playerid,"Du kannst diesen Command nicht benutzen während du jemanden spectatest.");
  4785.     new Weapon[50], Ammo;
  4786.  
  4787.     if(sscanf(params, "sd", Weapon, Ammo))  return SendUsageMessage(playerid,"/getgun [Waffe] [Munition]");
  4788.  
  4789.     if(Ammo < 0 || Ammo > 9999) return SendErrorMessage(playerid,"Unzulässige Munition.");
  4790.  
  4791.     new WeaponID = GetWeaponID(Weapon);
  4792.     if(WeaponID < 1 || WeaponID > 46 || WeaponID == 19 || WeaponID == 20 || WeaponID == 21) return SendErrorMessage(playerid,"Unzulässiger Waffenname.");
  4793.     if(WeaponID == 44 || WeaponID == 45) return SendErrorMessage(playerid,"Diese Waffen sind verboten.");
  4794.  
  4795.     GivePlayerWeapon(playerid, WeaponID, Ammo);
  4796.     Player[playerid][SafeGun] = true;
  4797.  
  4798.     new String[128];
  4799.     format(String, sizeof(String), "%s hat sich die Waffe %s mit %d Munition gegeben.", Player[playerid][Name], WeaponNames[playerid], Ammo);
  4800.     SendAdminMessage(1, String);
  4801.    
  4802.     CmdLog(String);
  4803.    
  4804.     printf("[warning] %s gibt sich die Waffe %s mit %d Munition.",GetName(playerid),WeaponNames,Ammo);
  4805.  
  4806.     return 1;
  4807. }
  4808.  
  4809. CMD:jetpack(playerid,params[])
  4810. {
  4811.     if(Player[playerid][Level] < 3 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang3Name" sein um diesen Command zu benutzen.");
  4812.     if(Player[playerid][Specing] == true) return SendErrorMessage(playerid,"Du kannst diesen Command nicht benutzen während du jemanden spectatest.");
  4813.     new pID = strval(params);
  4814.     if(isnull(params)) pID = playerid;
  4815.     if(!IsPlayerConnected(pID)) return SendErrorMessage(playerid,"Der Spieler ist nicht auf dem Server.");
  4816.  
  4817.     SetPlayerSpecialAction(pID, 2);
  4818.     Player[pID][SafeJetpack] = true;
  4819.  
  4820.     new String[128];
  4821.     format(String, sizeof(String), "%s hat %s ein Jetpack gegeben.", Player[playerid][Name], Player[pID][Name]);
  4822.     SendAdminMessage(3, String);
  4823.    
  4824.     CmdLog(String);
  4825.    
  4826.     printf("[warning] %s gibt %s ein Jetpack.",GetName(playerid),GetName(pID));
  4827.    
  4828.     return 1;
  4829. }
  4830.  
  4831. CMD:lock(playerid, params[])
  4832. {
  4833.     if(Player[playerid][Level] < 3 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang3Name" sein um diesen Command zu benutzen.");
  4834.     if(ServerLocked == true) return SendErrorMessage(playerid,"Server ist bereits gelockt. Nutze /unlock um ihn zu unlocken.");
  4835.  
  4836.     new iString[128];
  4837.     if(isnull(params)) return SendUsageMessage(playerid,"/lock [Passwort]");
  4838.     if(strlen(params) > 10) return SendErrorMessage(playerid,"Server Passwort ist zu lang.");
  4839.  
  4840.     new ServerPass[128];
  4841.     format(ServerPass, sizeof(ServerPass), "password %s", params);
  4842.     SendRconCommand(ServerPass);
  4843.  
  4844.     ServerLocked = true;
  4845.  
  4846.     format(iString, sizeof(iString), "%s hat den Server gelockt. Passwort: {FFFFFF}%s", Player[playerid][Name], params);
  4847.     SendAdminMessage(1, iString);
  4848.    
  4849.     format(iString,sizeof(iString),"%s setzt das Serverpasswort auf %s",GetName(playerid),params);
  4850.     CmdLog(iString);
  4851.    
  4852.     printf("[warning] %s setzt das Serverpasswort auf %s",GetName(playerid),params);
  4853.  
  4854.     return 1;
  4855. }
  4856.  
  4857. CMD:unlock(playerid, params[])
  4858. {
  4859.     if(Player[playerid][Level] < 3 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang3Name" sein um diesen Command zu benutzen.");
  4860.     if(ServerLocked == false) return SendErrorMessage(playerid,"Server ist nicht gelockt.");
  4861.  
  4862.     SendRconCommand("password 0");
  4863.     ServerLocked = false;
  4864.  
  4865.     new String[128];
  4866.     format(String, sizeof(String), "%s hat das Serverpasswort entfernt.", Player[playerid][Name]);
  4867.     SendAdminMessage(1, String);
  4868.    
  4869.     CmdLog(String);
  4870.    
  4871.     printf("[warning] %s entfernt das Serverpasswort.",GetName(playerid));
  4872.  
  4873.     return 1;
  4874. }
  4875.  
  4876. CMD:skipmap(playerid, params[])
  4877. {
  4878.     if(Player[playerid][Level] < 3 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang3Name" sein um diesen Command zu benutzen.");
  4879.     OnRoundEnd(GREENTEAM);
  4880.    
  4881.     new String[128];
  4882.     format(String, sizeof(String), "%s hat die momentane Map übersprungen.", Player[playerid][Name]);
  4883.     SendAdminMessage(1, String);
  4884.    
  4885.     CmdLog(String);
  4886.    
  4887.     printf("[warning] %s überspringt die momentane Map.",GetName(playerid));
  4888.    
  4889.     return 1;
  4890. }
  4891.  
  4892.  
  4893. //////////LEVEL 2////////////////////           /ann   /ban
  4894.  
  4895. CMD:ann(playerid, params[])
  4896. {
  4897.     if(Player[playerid][Level] < 2 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang2Name" sein um diesen Command zu benutzen.");
  4898.     if(isnull(params)) return SendUsageMessage(playerid,"/ann [Text]");
  4899.     new str[128], str2[128];
  4900.     if(sscanf(params, "s", str)) return SendUsageMessage(playerid,"/ann [Text]");
  4901.     if(strlen(str) > 127) return SendErrorMessage(playerid,"Text zu lang. Höchstens 128 Zeichen erlaubt.");
  4902.     if(strfind(str, "`") != -1) return SendErrorMessage(playerid,"` ist nicht erlaubt.");
  4903.  
  4904.     format(str2, sizeof(str2), "~w~%s", str);
  4905.     GameTextForAll(str2, 3000, 4);
  4906.    
  4907.     new String[128];
  4908.     format(String, sizeof(String), "%s hat den /ann Command benutzt.", Player[playerid][Name]);
  4909.     SendAdminMessage(1, String);
  4910.    
  4911.     format(String,sizeof(String),"%s zeigt eine Nachricht auf dem Bildschirm an: %s",GetName(playerid),params);
  4912.     CmdLog(String);
  4913.    
  4914.     printf("[warning] %s benutzt den /ann Befehl mit der Nachricht '%s'",GetName(playerid),params);
  4915.    
  4916.     return 1;
  4917. }
  4918.  
  4919.  
  4920.  
  4921. //////////LEVEL 1////////////////////           /asay   /admins   /slap   /kick   /mute   /unmute   /spec   /specoff   /check
  4922.  
  4923.  
  4924. CMD:asay(playerid, params[])
  4925. {
  4926.     if(Player[playerid][Level] < 1 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang1Name" sein um diesen Command zu benutzen.");
  4927.     if(isnull(params)) return SendUsageMessage(playerid,"/asay [Text]");
  4928.  
  4929.     new iString[160];
  4930.     format(iString, sizeof(iString), "{101080}%s %s: %s", GetRang(playerid),GetName(playerid),params);
  4931.     SendClientMessageToAll(0x6688FFFF, iString);
  4932.  
  4933.     format(iString, sizeof(iString), "%s hat den /asay Command benutzt.", Player[playerid][Name]);
  4934.     SendAdminMessage(1, iString);
  4935.    
  4936.     format(iString,sizeof(iString),"%s sendet eine Admin Nachricht mit dem Text: %s",GetName(playerid),params);
  4937.     CmdLog(iString);
  4938.    
  4939.     printf("[warning] %s benutzt den /asay Befehl mit der Nachricht '%s'",GetName(playerid),params);
  4940.    
  4941.     return 1;
  4942. }
  4943.  
  4944. CMD:admins(playerid, params[])
  4945. {
  4946.     new iString[512] = "Name\tRang\tStatus\n";
  4947.  
  4948.     foreach(new i : Player)
  4949.     {
  4950.         if(Player[i][Level] > 0 && Player[i][IsOnDuty] == true)
  4951.         {
  4952.             format(iString, sizeof(iString), "%s{00c5ff}%s\t{84758A}%s\t{00FF7F}Im Dienst\n", iString, Player[i][Name], GetRang(i));
  4953.         }
  4954.         else if(Player[i][Level] > 0 && Player[i][IsOnDuty] == false && Player[i][IsAFK] == false)
  4955.         {
  4956.             format(iString, sizeof(iString), "%s{00c5ff}%s\t{84758A}%s\t{FECDCA}Online\n", iString, Player[i][Name], GetRang(i));
  4957.         }
  4958.         else if(Player[i][Level] > 0 && Player[i][IsAFK] == true)
  4959.         {
  4960.             format(iString, sizeof(iString), "%s{00c5ff}%s\t{84758A}%s\t{E8702A}AFK\n", iString, Player[i][Name], GetRang(i));
  4961.         }
  4962.     }
  4963.  
  4964.     if(strlen(iString) < 1) ShowPlayerDialog(playerid,DIALOG_HELPS,DIALOG_STYLE_MSGBOX,"{FFFF00}Teammitglieder Online", "Keine Teammitglieder Online","Ok","");
  4965.     else ShowPlayerDialog(playerid,DIALOG_INTERACTION,DIALOG_STYLE_TABLIST_HEADERS,"{FFFF00}Teammitglieder Online", iString,"Ok","");
  4966.  
  4967.     return 1;
  4968. }
  4969.  
  4970. CMD:slap(playerid,params[])
  4971. {
  4972.     new iString[128], string[128];
  4973.     if(Player[playerid][Level] < 1 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang1Name" sein um diesen Command zu benutzen.");
  4974.     if(isnull(params) || !IsNumeric(params)) return SendUsageMessage(playerid,"/slap [ID]");
  4975.  
  4976.     new sid = strval(params);
  4977.     if(!IsPlayerConnected(sid)) return SendErrorMessage(playerid,"Der Spieler ist nicht auf dem Server.");
  4978.  
  4979.     format(iString,sizeof(iString),"SLAP: {FFFFFF}%s {FFFF00}hat dich geslappt.", GetName(playerid));
  4980.     SendClientMessage(sid, COLOR_YELLOW, iString);
  4981.     format(string,sizeof(string),"SLAP: Du hast {FFFFFF}%s {FFFF00}geslappt.",GetName(sid));
  4982.     SendClientMessage(playerid, COLOR_YELLOW, string);
  4983.     new Float:Pos[3];
  4984.     GetPlayerPos(sid,Pos[0],Pos[1],Pos[2]);
  4985.     SetPlayerPos(sid,Pos[0],Pos[1],Pos[2]+5);
  4986.  
  4987.     PlayerPlaySound(playerid,1190,0.0,0.0,0.0);
  4988.     PlayerPlaySound(sid,1190,0.0,0.0,0.0);
  4989.    
  4990.     format(iString, sizeof(iString),"%s slappt %s",GetName(playerid),GetName(sid));
  4991.     CmdLog(iString);
  4992.    
  4993.     printf("[warning] %s slappt %s",GetName(playerid),GetName(sid));
  4994.  
  4995.     return 1;
  4996. }
  4997.  
  4998. CMD:slay(playerid,params[])
  4999. {
  5000.      new iString[128], string[128];
  5001.      if(Player[playerid][Level] < 1) return SendErrorMessage(playerid,"Du musst ein "Rang1Name" sein um diesen Command zu benutzen.");
  5002.      if(isnull(params) || !IsNumeric(params)) return SendUsageMessage(playerid,"/slay [ID]");
  5003.  
  5004.      new sid = strval(params);
  5005.      if(!IsPlayerConnected(sid)) return SendErrorMessage(playerid, "Der Spieler ist nicht auf dem Server.");
  5006.      if(Player[sid][LocalHost] == true) return SendErrorMessage(playerid, "Der gewählte Spieler ist Localhost.");
  5007.      
  5008.      SetPlayerHealth(sid, 0.0);
  5009.      format(iString,sizeof(iString),"SLAY: %s hat dich geslayt.",GetName(playerid));
  5010.      SendClientMessage(sid, COLOR_RED, iString);
  5011.      
  5012.      format(string,sizeof(string),"SLAY: Du hast %s geslayt.",GetName(playerid));
  5013.      SendClientMessage(playerid, COLOR_RED, string);
  5014.      
  5015.      format(string,sizeof(string),"%s hat %s geslayt.",GetName(playerid),GetName(sid));
  5016.      SendAdminMessage(1,string);
  5017.      
  5018.      format(string,sizeof(string),"%s hat %s geslayt",GetName(playerid),GetName(sid));
  5019.      CmdLog(string);
  5020.      
  5021.      printf("[warning] %s hat %s geslayt.",GetName(playerid),GetName(sid));
  5022.      
  5023.      return 1;
  5024. }
  5025.  
  5026. CMD:kick(playerid, params[])
  5027. {
  5028.     if(Player[playerid][Level] < 1 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang1Name" sein um diesen Command zu benutzen.");
  5029.  
  5030.     new targetid, reason[128], iString[256];
  5031.     if(sscanf(params, "ds", targetid, reason)) return SendUsageMessage(playerid,"/kick [ID] [Grund]");
  5032.  
  5033.     if(!IsPlayerConnected(targetid)) return SendErrorMessage(playerid,"Der Spieler ist nicht auf dem Server.");
  5034.     if(Player[targetid][LocalHost] == true) return SendErrorMessage(playerid, "Der gewählte Spieler ist Localhost.");
  5035.  
  5036.     format(iString, sizeof(iString), "KICK: %s hat %s gekickt. [Grund: %s]",GetName(playerid), GetName(targetid), reason);
  5037.     SendClientMessageToAll(YELLOW_COLOR, iString);
  5038.  
  5039.     SetTimerEx("OnPlayerKicked", 500, false, "i", targetid);
  5040.    
  5041.     format(iString,sizeof(iString),"%s kickt %s [Grund: %s]",GetName(playerid),GetName(targetid),reason);
  5042.     KickLog(iString);
  5043.    
  5044.     printf("[warning] %s hat %s gekickt mit dem Grund %s",GetName(playerid),GetName(targetid),reason);
  5045.    
  5046.     return 1;
  5047. }
  5048.  
  5049. CMD:mute(playerid,params[])
  5050. {
  5051.     if(Player[playerid][Level] < 1 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang1Name" sein um diesen Command zu benutzen.");
  5052.  
  5053.     new targetid, reason[128], iString[256];
  5054.     if(sscanf(params, "is", targetid, reason)) return SendUsageMessage(playerid,"/mute [ID] [Grund]");
  5055.     if(!IsPlayerConnected(targetid)) return SendErrorMessage(playerid,"Der Spieler ist nicht auf dem Server.");
  5056.     if(Player[targetid][Muted] == true) return SendErrorMessage(playerid,"Der Spieler ist bereits gemutet.");
  5057.  
  5058.     Player[targetid][Muted] = true;
  5059.  
  5060.     format(iString, sizeof(iString),"MUTE: %s hat %s gemutet. [Grund: %s]",GetName(playerid), GetName(targetid), reason);
  5061.     SendClientMessageToAll(COLOR_DARKGREEN,iString);
  5062.    
  5063.     format(iString,sizeof(iString),"%s mutet %s [Grund: %s]",GetName(playerid),GetName(targetid),reason);
  5064.     MuteLog(iString);
  5065.    
  5066.     printf("[warning] %s hat %s gemuted mit dem Grund %s",GetName(playerid),GetName(targetid),reason);
  5067.  
  5068.     return 1;
  5069. }
  5070.  
  5071. CMD:unmute(playerid, params[])
  5072. {
  5073.     if(Player[playerid][Level] < 1 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang1Name" sein um diesen Command zu benutzen.");
  5074.     new targetid = strval(params);
  5075.     if(isnull(params)) return SendUsageMessage(playerid,"/unmute [ID]");
  5076.     if(!IsPlayerConnected(targetid)) return SendErrorMessage(playerid,"Der Spieler ist nicht auf dem Server.");
  5077.     if(Player[targetid][Muted] == false) return SendErrorMessage(playerid,"Der Spieler ist nicht gemutet.");
  5078.  
  5079.     Player[targetid][Muted] = false;
  5080.  
  5081.     new iString[128];
  5082.     format(iString, sizeof(iString),"MUTE: %s hat %s entmuted.", GetName(playerid),GetName(targetid));
  5083.     SendClientMessageToAll(YELLOW_COLOR,iString);
  5084.    
  5085.     format(iString,sizeof(iString),"%s entmutet %s",GetName(playerid),GetName(targetid));
  5086.     MuteLog(iString);
  5087.    
  5088.     printf("[warning] %s hat %s entmuted.",GetName(playerid),GetName(targetid));
  5089.  
  5090.     return 1;
  5091. }
  5092.  
  5093. CMD:spec(playerid, params[])
  5094. {
  5095.     if(Player[playerid][Level] < 1 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang1Name" sein um diesen Command zu benutzen.");
  5096.  
  5097.     if(isnull(params) || !IsNumeric(params)) return SendUsageMessage(playerid,"/spec [ID]");
  5098.  
  5099.     new sid = strval(params);
  5100.     new iString[128];
  5101.     if(!IsPlayerConnected(sid)) return SendErrorMessage(playerid,"Der Spieler ist nicht auf dem Server.");
  5102.     if(sid == playerid) return SendErrorMessage(playerid,"Du kannst dich nicht selbst spectaten.");
  5103.  
  5104.     format(iString, sizeof(iString), "%s spectatet jetzt: %s (%d)", Player[playerid][Name], Player[sid][Name], sid);
  5105.     SendAdminMessage(1, iString);
  5106.  
  5107.     TogglePlayerSpectating(playerid, true);
  5108.     HideStatisticsTextdraws(playerid);
  5109.     Player[playerid][Specing] = true;
  5110.     Player[playerid][SpecID] = sid;
  5111.     PlayerSpectatePlayer(playerid, sid);
  5112.    
  5113.     format(iString,sizeof(iString),"%s spectatet %s",GetName(playerid),GetName(sid));
  5114.     CmdLog(iString);
  5115.    
  5116.     printf("[warning] %s spectatet %s",GetName(playerid),GetName(sid));
  5117.  
  5118.     return 1;
  5119. }
  5120.  
  5121. CMD:specoff(playerid, params[])
  5122. {
  5123.     if(Player[playerid][Level] < 1 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang1Name" sein um diesen Command zu benutzen.");
  5124.     if(Player[playerid][Specing] == false) return SendErrorMessage(playerid,"Du spectatest niemanden.");
  5125.  
  5126.     TogglePlayerSpectating(playerid, false);
  5127.     ShowStatisticsTextdraws(playerid);
  5128.     Player[playerid][Specing] = false;
  5129.  
  5130.     return 1;
  5131. }
  5132.  
  5133. CMD:check(playerid, params[])
  5134. {
  5135.     if(Player[playerid][Level] < 1 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein "Rang1Name" sein um diesen Command zu benutzen.");
  5136.  
  5137.     if(isnull(params) || !IsNumeric(params)) return SendUsageMessage(playerid,"/check [ID]");
  5138.  
  5139.     new sid = strval(params);
  5140.     if(!IsPlayerConnected(sid)) return SendErrorMessage(playerid,"Der Spieler ist nicht auf dem Server.");
  5141.  
  5142.     Player[playerid][Checking] = true;
  5143.     Player[playerid][SpecID] = sid;
  5144.  
  5145.     return 1;
  5146. }
  5147.  
  5148.  
  5149.  
  5150.  
  5151. //============================================================================
  5152. //==================================Commands==================================
  5153. //============================================================================
  5154.  
  5155. CMD:rules(playerid,params[])
  5156. {
  5157.     new string[1124];
  5158.  
  5159.     string = "";
  5160.     strcat(string, "{6cffb8}Bitte haltet euch an folgende Regeln:");
  5161.     strcat(string, " \n");
  5162.     strcat(string, "{ff4040}1: {1460ab}Wenn jemand die Farbe schwarz hat ist die Person nicht zu stören, dies ist nämlich ein Teammitglied bei seiner Arbeit!\n");
  5163.     strcat(string, "{ff4040}2: {1460ab}Flamen und Capslock ist verboten!\n");
  5164.     strcat(string, "{ff4040}3: {1460ab}Der Befehl /report sollte nicht ausgenutzt werden und nur bei einem wirklichen Verdacht benutzt werden!\n");
  5165.     strcat(string, "{ff4040}4: {1460ab}Schwere und auch leichte Beleidigung ist verboten, seid freundlich zueinander!\n");
  5166.     strcat(string, "{ff4040}5: {1460ab}Offlineflucht ist verboten!\n");
  5167.     strcat(string, "{ff4040}6: {1460ab}Rassismus und Rechtsextremismus wird in keiner Form geduldet!\n");
  5168.     strcat(string, "{ff4040}7: {1460ab}Seid Respektvoll zu Teammitgliedern!\n");
  5169.     strcat(string, "{ff4040}8: {1460ab}Bugusing ({91a8d0}C-Bug, ESC, F8 etc.{1460ab}) ist verboten!\n");
  5170.     strcat(string, "{ff4040}9: {1460ab}Anlügen von Teammitglidern bzw. Betrug ist nicht erlaubt!\n");
  5171.     strcat(string, "{ff4040}10: {1460ab}Cheaten/Hacken ist verboten!\n");
  5172.     strcat(string, "{ff4040}11: {1460ab}Bitte unterlasst Fremdwerbung!\n");
  5173.     strcat(string, " \n");
  5174.     strcat(string, "{caa225}Für weitere Infos guckt euch den Thread im Forum an. ("ForumDomain")");
  5175.    
  5176.    
  5177.     ShowPlayerDialog(playerid,DIALOG_RULES,DIALOG_STYLE_MSGBOX,"{FFFF00}Regeln", string, "OK","");
  5178.     return 1;
  5179. }
  5180.  
  5181. CMD:cmds(playerid, params[])
  5182. {
  5183.     new string[700];
  5184.  
  5185.     string = "";
  5186.     strcat(string, "{FFFFFF}/admins  /rules  /acmds  /weather   /time   /radio  /guns  (ODER)  /gunmenu  /exit   /pm   /r   /blockpm   /changepass");
  5187.     strcat(string, "\n{FFFFFF}/kill   /stats   /wkills (ODER) /wstats   /rewards   /sstats   /vipinfo (ODER) /donate  /bewerben  /updates ");
  5188.     strcat(string, "\n{FFFFFF}/report  /teamspeak  (ODER)  /ts  /hidestats  /showstats  /votekick");
  5189.     strcat(string, "\n");
  5190.    
  5191.     if(Player[playerid][URang] >= 10)
  5192.     {
  5193.         strcat(string, "{FFFF00}Extra Befehle aufgrund deines Levels:\n");
  5194.         strcat(string, "{FFFFFF}Level 10: ///\n");
  5195.        
  5196.         if(Player[playerid][URang] >= 25)
  5197.         {
  5198.             strcat(string, "{FFFFFF}Level 25: ///\n");
  5199.         }
  5200.         if(Player[playerid][URang] >= 50)
  5201.         {
  5202.             strcat(string, "{FFFFFF}Level 50: ///\n");
  5203.         }
  5204.         if(Player[playerid][URang] >= 75)
  5205.         {
  5206.             strcat(string, "{FFFFFF}Level 75: ///\n");
  5207.         }
  5208.         if(Player[playerid][URang] >= 100)
  5209.         {
  5210.             strcat(string, "{FFFFFF}Level 100: ///\n");
  5211.         }
  5212.         if(Player[playerid][URang] >= 150)
  5213.         {
  5214.             strcat(string, "{FFFFFF}Level 150: ///\n");
  5215.         }
  5216.         if(Player[playerid][URang] >= 200)
  5217.         {
  5218.             strcat(string, "{FFFFFF}Level 200: ///\n");
  5219.         }
  5220.        
  5221.     }
  5222.     ShowPlayerDialog(playerid,DIALOG_HELPS,DIALOG_STYLE_MSGBOX,"{FFFF00}Spieler Commands", string, "OK","");
  5223.     return 1;
  5224. }
  5225.  
  5226. CMD:votekick(playerid,params[])
  5227. {
  5228.     if(Player[playerid][Logged] == false) return SendErrorMessage(playerid, "Du musst eingeloggt sein um diesen Befehl zu benutzen.");
  5229.     if(Player[playerid][VotesForKick] > 0) return SendErrorMessage(playerid, "Es läuft bereits ein Votekick gegen dich, du kannst keinen Votekick starten.");
  5230.     if(AdminsOnline > 0) return SendErrorMessage(playerid, "Es ist ein Teammitglied online. Benutze lieber /report.");
  5231.     if(isnull(params)) return SendUsageMessage(playerid, "/votekick [ID/Name]");
  5232.    
  5233.     new target,pName[MAX_PLAYER_NAME], iString[128];
  5234.    
  5235.     if(Player[target][Level] > 0) return SendErrorMessage(playerid, "Du kannst keine Teammitglieder votekicken.");
  5236.    
  5237.     if(!IsNumeric(pName))
  5238.     target = ReturnPlayerID(pName);
  5239.     else
  5240.     target = strval(pName);
  5241.    
  5242.     Player[target][VotesForKick]++;
  5243.     format(iString,sizeof(iString),"VOTEKICK: %s möchte dass %s gekickt wird. [%d/3 Votes]",GetName(playerid),GetName(target),Player[target][VotesForKick]);
  5244.     SendClientMessageToAll(COLOR_BRIGHTRED, iString);
  5245.     KickLog(iString);
  5246.    
  5247.     return 1;
  5248. }
  5249.  
  5250. CMD:hidestats(playerid, params[])
  5251. {
  5252.      HideStatisticsTextdraws(playerid);
  5253.      SendClientMessage(playerid, COLOR_RED, "Du hast deine Statistiken versteckt. Du kannst sie mit /showstats wieder anzeigen lassen.");
  5254.      return 1;
  5255. }
  5256.  
  5257. CMD:showstats(playerid, params[])
  5258. {
  5259.      ShowStatisticsTextdraws(playerid);
  5260.      SendClientMessage(playerid, COLOR_GREEN, "Deine Statistiken werden nun wieder angezeigt. Du kannst sie mit /hidestats wieder verstecken.");
  5261.      return 1;
  5262. }
  5263.  
  5264. CMD:gotocoord(playerid, params[])
  5265. {
  5266.         if(Player[playerid][Level] < 3) return SendErrorMessage(playerid,"Du musst ein "Rang3Name" sein um diesen Befehl nutzen zu können.");
  5267.         new x,y,z;
  5268.         if(sscanf(params, "iii", x, y, z))return SendUsageMessage(playerid,"/gotocoord [X] [Y] [Z]");
  5269.         SetPlayerPos(playerid, x, y, z);
  5270.         return 1;
  5271. }
  5272.  
  5273. CMD:updates(playerid, params[])
  5274. {
  5275.     new string[2048];
  5276.  
  5277.     string = "";
  5278.     strcat(string, "\n{88FF88}16. August 2018 - {88FFBB}v1.1 - Von LeonMrBonnie.");
  5279.     strcat(string, "\n{FFFF00}- Ein Badwordfilter wurde hinzugefügt.");
  5280.     strcat(string, "\n{FFFF00}- Das AntiCheat wurde verbessert.");
  5281.     strcat(string, "\n{FFFF00}- Eine Anti-Abwerbe System wurde hinzugefügt.");
  5282.     strcat(string, "\n ");
  5283.     strcat(string, "\n{88FF88}3. August 2018 - {88FFBB}v1.0 - Von LeonMrBonnie.");
  5284.     strcat(string, "\n{FFFF00}- Das Script ist nun in der Vollversion.");
  5285.     strcat(string, "\n{FFFF00}- Es wurden eine Menge Buggs gefixxt.");
  5286.     strcat(string, "\n{FFFF00}- Befehl /setlevel zu /setadmin geändert.");
  5287.     strcat(string, "\n{FFFF00}- Befehl /seturang zu /setlevel geändert.");
  5288.     strcat(string, "\n{FFFF00}- Plugins geupdatet.");
  5289.     strcat(string, "\n{FFFF00}- Befehl /admins gefixxt.");
  5290.     strcat(string, "\n ");
  5291.     strcat(string, "\n{88FF88}4. April 2017 - {88FFBB}v0.9 - Von LeonMrBonnie.");
  5292.     strcat(string, "\n{FFFF00}- Bei /stats werden nun die gespielten Stunden angezeigt.");
  5293.     strcat(string, "\n{FFFF00}- Das AntiCheat kickt nun automatisch nach 5 AntiCheat Warnungen.");
  5294.     strcat(string, "\n{FFFF00}- Einige unnötige Timer entfernt.");
  5295.     strcat(string, "\n{FFFF00}- Einige unnötige Befehle entfernt.");
  5296.     strcat(string, "\n{FFFF00}- Anti Spawn Kill Protection wurde hinzugefügt.");
  5297.     strcat(string, "\n{FFFF00}- Es wurden einige Datenbankanpassungen vorgenommen.");
  5298.     strcat(string, "\n{FFFF00}- Einige unnötige Timer entfernt.");
  5299.     strcat(string, "\n ");
  5300.     strcat(string, "\n{88FF88}13. März 2017 - {88FFBB}v0.8.1 - Von LeonMrBonnie.");
  5301.     strcat(string, "\n{FFFF00}- Befehl /playerlist hinzugefügt.");
  5302.     strcat(string, "\n{FFFF00}- Whitelist Funktion wurde verbessert.");
  5303.     strcat(string, "\n{FFFF00}- Der Chat ist nun nichtmehr verbuggt.");
  5304.     strcat(string, "\n{FFFF00}- Mehrere Strings die zu klein waren wurden vergrößert.");
  5305.     strcat(string, "\n{FFFF00}- Der Statistiken Textdraw hat jetzt mehrere Farben.");
  5306.     strcat(string, "\n{FFFF00}- Befehl /givescore hinzugefügt.");
  5307.     strcat(string, "\n{FFFF00}- Eine unbenutzte Zeile wurde aus der Datenbank entfernt.");
  5308.     strcat(string, "\n{FFFF00}- Mehrere kleine Buggfixes.");
  5309.     strcat(string, "\n{FFFF00}- Mehrere Textdraws leicht verbessert/verschönert.");
  5310.     strcat(string, "\n ");
  5311.     strcat(string, "\n{88FF88}7. März 2017 - {88FFBB}v0.8 - Von LeonMrBonnie.");
  5312.     strcat(string, "\n{FFFF00}- Befehl /toggleac verbessert.");
  5313.     strcat(string, "\n{FFFF00}- Viele kleine Buggfixes.");
  5314.     strcat(string, "\n{FFFF00}- Neues Errungenschaftensystem.");
  5315.     strcat(string, "\n{FFFF00}- Log System hinzugefügt.");
  5316.     strcat(string, "\n{FFFF00}- Statistiken Textdraw hinzugefügt.");
  5317.     strcat(string, "\n{FFFF00}- Befehl /showstats und /hidestats hinzugefügt.");
  5318.     strcat(string, "\n{FFFF00}- Befehl /togglefly hinzugefügt.");
  5319.     strcat(string, "\n{FFFF00}- Whitelist System hinzugefügt.");
  5320.     strcat(string, "\n{FFFF00}- Befehl /togwhitelist, /awhitelist und /rwhitelist hinzugefügt.");
  5321.     strcat(string, "\n{FFFF00}- Befehl /warn und /unwarn hinzugefügt.");
  5322.     strcat(string, "\n{FFFF00}- ALLE Passwörter werden nun mit SHA256 verschlüsselt. (Mit einem 64 Zeichen Salt)");
  5323.     strcat(string, "\n{FFFF00}- Befehl /joinleavemsg hinzugefügt.");
  5324.     strcat(string, "\n{FFFF00}- Weitere Optionen beim TAB Adminmenü hinzugefügt.");
  5325.    
  5326.  
  5327.     ShowPlayerDialog(playerid,DIALOG_HELPS,DIALOG_STYLE_MSGBOX,"{FFFF00}Updates | Momentane Version: {FFFFFF}"ScriptVersion"", string, "OK","");
  5328.     return 1;
  5329. }
  5330.  
  5331. CMD:credits(playerid, params[])
  5332. {
  5333.     new string[512];
  5334.  
  5335.     string = "";
  5336.     strcat(string, "\n{88FF88}Scripting:");
  5337.     strcat(string, "\n{FFFF00}- LeonMrBonnie");
  5338.     strcat(string, "\n{FFFF00}- X.K.");
  5339.     strcat(string, "\n{FFFF00}- TopShooter");
  5340.     strcat(string, "\n ");
  5341.     strcat(string, "\n{88FF88}Mapping");
  5342.     strcat(string, "\n{FFFF00}- X.K.");
  5343.     strcat(string, "\n{FFFF00}- LeonMrBonnie");
  5344.     strcat(string, "\n{FFFF00}- Michael");
  5345.     strcat(string, "\n ");
  5346.     strcat(string, "\n{88FF88}Beta Tester und andere wichtige Personen die bei der Entwicklung geholfen haben:");
  5347.     strcat(string, "\n{FFFF00}- Bende.Mansion (Einführung in die SAMP Szene)");
  5348.     strcat(string, "\n{FFFF00}- JumGum (Kleine Hilfen beim Scripten und moralische Unterstützung)");
  5349.     strcat(string, "\n{FFFF00}- Jeffry (Große Hilfen beim Scripten)");
  5350.  
  5351.  
  5352.     ShowPlayerDialog(playerid,DIALOG_HELPS,DIALOG_STYLE_MSGBOX,"{FFFF00}Mitwirkende/Credits", string, "OK","");
  5353.     return 1;
  5354. }
  5355.  
  5356. CMD:bewerben(playerid, params[])
  5357. {
  5358.     new string[2048];
  5359.  
  5360.         string = "";
  5361.         strcat(string, "\n{88FF88}An wen soll die Bewerbung geschickt werden:");
  5362.         strcat(string, "\n{FFFF00}- An einen "Rang4Name" im Teamspeak oder im Forum.");
  5363.         strcat(string, "\n ");
  5364.         strcat(string, "\n{88FF88}Was sind die Vorrausetzungen bei einer Bewerbung als "Rang1Name"?");
  5365.         strcat(string, "\n{FFFF00}- Mindestens seit 2 Wochen auf dem Server aktiv");
  5366.         strcat(string, "\n{FFFF00}- Nicht schlecht aufgefallen(wenige Bans/Kicks)");
  5367.         strcat(string, "\n{FFFF00}- Geistige Reife");
  5368.         strcat(string, "\n{FFFF00}- Spaß am Projekt");
  5369.         strcat(string, "\n{FFFF00}- Freundlichkeit und Teamfähigkeit");
  5370.         strcat(string, "\n{FFFF00}- Täglich mindestens 1-2 Stunden Zeit für den Server");
  5371.         strcat(string, "\n ");
  5372.         strcat(string, "\n{88FF88}Was soll in der Bewerbung drinnen stehen:");
  5373.         strcat(string, "\n{FFFF00}- Infos über dich (Name, Alter, Hobbys usw.)");
  5374.         strcat(string, "\n{FFFF00}- Ingame Infos (Ingame Name, Punkte, Wie lange bist du dabei, Erhaltene Strafen usw.)");
  5375.         strcat(string, "\n{FFFF00}- Deine bisherigen Erfahrungen als "Rang1Name"");
  5376.         strcat(string, "\n{FFFF00}- Warum sollten wir dich nehmen");
  5377.         strcat(string, "\n{FFFF00}- Schlusswort");
  5378.         strcat(string, "\n ");
  5379.         strcat(string, "\n{88FF88}Wie wird es ablaufen wenn ich angenommen/abgelehnt werde?:");
  5380.         strcat(string, "\n{FFFF00}- Wenn du abgelehnt wurdest wirst du nur eine kleine Nachricht erhalten");
  5381.         strcat(string, "\n{FFFF00}- dass du leider abgelehnt wurdest.");
  5382.         strcat(string, "\n{FFFF00}- Wenn du angenommen wurdest wirst du eine Nachricht erhalten dass");
  5383.         strcat(string, "\n{FFFF00}- du dich bitte bei einem "Rang4Name" melden sollst um dich einweisen zu lassen.");
  5384.         strcat(string, "\n{FFFF00}- Dann werden dir die Regeln und deine Pflichten erklärt.");
  5385.         strcat(string, "\n ");
  5386.         strcat(string, "\n ");
  5387.         strcat(string, "\n{88FF88}Viel Glück bei deiner Bewerbung wünscht dir das "ServerName" Team!");
  5388.  
  5389.  
  5390.     ShowPlayerDialog(playerid,DIALOG_HELPS,DIALOG_STYLE_MSGBOX,"{FFFF00}Infos über eine Bewerbung", string, "OK","");
  5391.     return 1;
  5392. }
  5393.  
  5394. CMD:teamspeak(playerid, params[])
  5395. {
  5396.      SendClientMessage(playerid, COLOR_YELLOW, "Die IP vom "ServerName" Teamspeak ist: {FFFFFF}"TeamspeakIP"");
  5397.      return 1;
  5398. }
  5399.  
  5400. CMD:ts(playerid, params[])
  5401. {
  5402.      cmd_teamspeak(playerid, params);
  5403.      return 1;
  5404. }
  5405.      
  5406. ////////////////////        /changepass   /weather   /time   /radio   /guns   /exit   /pm   /r   /blockpm  
  5407.  
  5408. CMD:changepass(playerid, params[])
  5409. {
  5410.     if(Player[playerid][Logged] == false) return SendErrorMessage(playerid,"Du musst eingeloggt sein um das Passwort zu ändern.");
  5411.     if(isnull(params)) return SendUsageMessage(playerid,"/changepass [Neues Passwort]");
  5412.     if(strlen(params) < 5) return SendErrorMessage(playerid,"Passwort muss mindestens 5 Zeichen lang sein.");
  5413.  
  5414.     new HashPass[64 + 1];
  5415.     SHA256_PassHash(params, "ENQNwGr7gY8fC5Bml7nqJGGbJhUyBVxcUXY9Umswyjn7qc39pYK6jDqAr3X5sa1n", HashPass, sizeof HashPass);
  5416.  
  5417.     new iString[356];
  5418.     format(iString, sizeof(iString), "UPDATE Players SET Password = '%s' WHERE Name = '%s'", HashPass, DB_Escape(Player[playerid][Name]));
  5419.     db_free_result(db_query(sqliteconnection, iString));
  5420.  
  5421.     format(HashPass, sizeof(HashPass), "ACCOUNT: Dein Passwort wurde geändert zu: {FFFFFF}%s", params);
  5422.     SendClientMessage(playerid, YELLOW_COLOR, HashPass);
  5423.    
  5424.     printf("[warning] %s ändert sein Passwort.",GetName(playerid));
  5425.  
  5426.     return 1;
  5427. }
  5428.  
  5429.  
  5430. CMD:weather(playerid,params[])
  5431. {
  5432.     if(isnull(params)) return SendUsageMessage(playerid,"USAGE: /weather [ID]");
  5433.     if(!IsNumeric(params)) return SendErrorMessage(playerid,"FEHLER: Du musst eine Number zwischen 1 und 50 wählen.");
  5434.  
  5435.     new myweather;
  5436.     myweather = strval(params);
  5437.     SetPlayerWeather(playerid, myweather);
  5438.     Player[playerid][ChangedWeather] = true;
  5439.  
  5440.     new string[64];
  5441.     format(string, sizeof(string), "WETTER: Wetter geändert zu: {FFFFFF}%d", myweather);
  5442.     SendClientMessage(playerid, YELLOW_COLOR, string);
  5443.     return 1;
  5444. }
  5445.  
  5446. CMD:w(playerid, params[])
  5447. {
  5448.     cmd_weather(playerid, params);
  5449.     return 1;
  5450. }
  5451.  
  5452. CMD:time(playerid, params[])
  5453. {
  5454.     if(isnull(params)) return SendUsageMessage(playerid,"USAGE: /time [Zeit]");
  5455.     if(!IsNumeric(params)) return SendErrorMessage(playerid,"FEHLER: Du musst eine Number zwischen 0 und 24 als Zeit wählen.");
  5456.  
  5457.     new mytime;
  5458.     mytime = strval(params);
  5459.     SetPlayerTime(playerid, mytime, 0);
  5460.     Player[playerid][ChangedWeather] = true;
  5461.  
  5462.     new iString[64];
  5463.     format(iString, sizeof(iString), "ZEIT: Uhrzeit geändert zu: {FFFFFF}%d", mytime);
  5464.     SendClientMessage(playerid, YELLOW_COLOR, iString);
  5465.     return 1;
  5466. }
  5467.  
  5468. CMD:t(playerid, params[])
  5469. {
  5470.     cmd_time(playerid, params);
  5471.     return 1;
  5472. }
  5473.  
  5474. CMD:radio(playerid, params[])
  5475. {
  5476.     if(isnull(params) || !IsNumeric(params)) return SendUsageMessage(playerid,"/radio [0 - 6]");
  5477.  
  5478.     new CommandID = strval(params);
  5479.     if(CommandID < 0 || CommandID > 6) return SendUsageMessage(playerid,"/radio [0 - 6]");
  5480.  
  5481.     switch(CommandID)
  5482.     {
  5483.         case 0:
  5484.         {
  5485.             StopAudioStreamForPlayer(playerid);
  5486.             SendClientMessage(playerid,-1,"{FFFFFF}Radio {FF5555}AUS");
  5487.         }
  5488.         case 1: PlayAudioStreamForPlayer(playerid, RADIO1);
  5489.         case 2: PlayAudioStreamForPlayer(playerid, RADIO2);
  5490.         case 3: PlayAudioStreamForPlayer(playerid, RADIO3);
  5491.         case 4: PlayAudioStreamForPlayer(playerid, RADIO4);
  5492.         case 5: PlayAudioStreamForPlayer(playerid, RADIO5);
  5493.         case 6: PlayAudioStreamForPlayer(playerid, RADIO6);
  5494.     }
  5495. //1=Hardcore NL, 2=ChartHits, 3=MUSIK.MAIN, 4=idobi, 5=181.FM Hiphop, 6=Indian Radio HSL
  5496.  
  5497.     return 1;
  5498. }
  5499.  
  5500. CMD:guns(playerid, params[])
  5501. {
  5502.     if(Player[playerid][Specing] == true) return SendErrorMessage(playerid,"Du kannst diesen Command nicht benutzen während du jemanden spectatest.");
  5503.     if(Player[playerid][OnMenu] == true)
  5504.     {
  5505.         SendErrorMessage(playerid,"Du bist bereits in der Waffenauswahl. Nutze /exit um die Waffenauswahl zu verlassen.");
  5506.     } else {
  5507.         Player[playerid][OnMenu] = true;
  5508.        
  5509.         LoadGunsTDs(playerid);
  5510.         ShowGunsTDs(playerid);
  5511.         SendClientMessage(playerid, YELLOW_COLOR, "INFO: Um eine Waffe auszuwählen, klicke auf ihr Icon.");
  5512.         SendClientMessage(playerid, YELLOW_COLOR, "INFO: {00FF00}Grün {FFFF00}= Ausgewählte Waffe");
  5513.         SendClientMessage(playerid, YELLOW_COLOR, "INFO: {FF0000}Rot {FFFF00}= Nicht freigeschaltete Waffe");
  5514.         SendClientMessage(playerid, YELLOW_COLOR, "INFO: {FFFFFF}Weiss {FFFF00}= Freigeschaltene Waffe");
  5515.         SendClientMessage(playerid, YELLOW_COLOR, "INFO: Um das Menü zu verlassen, klick auf {FFFFFF}Waffenauswahl verlassen {FFFF00}oder nutze {FFFFFF}/exit.");
  5516.     }
  5517.     return 1;
  5518. }
  5519.  
  5520. CMD:gunmenu(playerid, params[])
  5521. {
  5522.     cmd_guns(playerid, params);
  5523.     return 1;
  5524. }
  5525.  
  5526. CMD:exit(playerid, params[])
  5527. {
  5528.     if(Player[playerid][OnMenu] == false)
  5529.     {
  5530.         SendErrorMessage(playerid,"Du bist nicht in der Waffenauswahl. Nutze /guns um in die Waffenauswahl zu gelangen.");
  5531.     } else {
  5532.         Player[playerid][OnMenu] = false;
  5533.         CancelSelectTextDraw(playerid);
  5534.         HideGunsTDs(playerid);
  5535.         SendClientMessage(playerid, YELLOW_COLOR, "WAFFENAUSWAHL: Waffenauswahl verlassen.");
  5536.     }
  5537.     return 1;
  5538. }
  5539.  
  5540. CMD:pm(playerid,params[])
  5541. {
  5542.     if(Player[playerid][Muted] == true) return SendErrorMessage(playerid,"Du bist gemuted.");
  5543.  
  5544.     new ReceiverID, text[128];
  5545.  
  5546.     if(sscanf(params,"is",ReceiverID, text)) return SendUsageMessage(playerid,"/pm [ID] [Text]");
  5547.     if(!IsPlayerConnected(ReceiverID)) return SendErrorMessage(playerid,"Der Spieler ist nicht auf dem Server.");
  5548.     if(Player[ReceiverID][BlockedID] == playerid) return SendErrorMessage(playerid,"Der Spieler hat private Nachrichten von dir blockiert.");
  5549.     if(Player[ReceiverID][BlockedAll] == true) return SendErrorMessage(playerid,"Der Spieler hat private Nachrichten von allen blockiert.");
  5550.  
  5551.     new String[128];
  5552.     format(String,sizeof(String),"{cccc00}* Private Nachricht von %s (%d): %s",Player[playerid][Name], playerid, text);
  5553.     SendClientMessage(ReceiverID,-1,String);
  5554.     SendClientMessage(ReceiverID,YELLOW_COLOR,"INFO: Nutze {FFFFFF}/r [Nachricht]{FFFF00} um zu antworten.");
  5555.  
  5556.     Player[ReceiverID][LastMessager] = playerid;
  5557.    
  5558.     format(String,sizeof(String),"%s sendet Nachricht an %s: %s",GetName(playerid),GetName(ReceiverID),text);
  5559.     PMLog(String);
  5560.  
  5561.     format(String,sizeof(String),"{66CC00}* Private Nachricht an %s (%d): %s",Player[ReceiverID][Name], ReceiverID, text);
  5562.     SendClientMessage(playerid,-1,String);
  5563.     PlayerPlaySound(ReceiverID,1054,0,0,0);
  5564.  
  5565.     return 1;
  5566. }
  5567.  
  5568. CMD:r(playerid,params[])
  5569. {
  5570.     if(Player[playerid][Muted] == true) return SendErrorMessage(playerid,"Du bist gemuted.");
  5571.  
  5572.     new ReplyToID, text[128];
  5573.     ReplyToID = Player[playerid][LastMessager];
  5574.  
  5575.     if(!IsPlayerConnected(ReplyToID)) return SendErrorMessage(playerid,"Der Spieler ist nicht auf dem Server.");
  5576.     if(Player[playerid][LastMessager] == -1) return SendErrorMessage(playerid,"Der Spieler ist nicht auf dem Server.");
  5577.     if(Player[ReplyToID][BlockedID] == playerid) return SendErrorMessage(playerid,"Der Spieler hat private Nachrichten von dir blockiert.");
  5578.     if(Player[ReplyToID][BlockedAll] == true) return SendErrorMessage(playerid,"Der Spieler hat private Nachrichten von allen blockiert");
  5579.  
  5580.     sscanf(params, "s", text);
  5581.  
  5582.     if(isnull(text)) return SendUsageMessage(playerid,"/r [Nachricht]");
  5583.     if(strlen(text) > 100) return SendErrorMessage(playerid,"Die Nachricht muss kürzer als 100 Zeichen sein.");
  5584.  
  5585.     new String[128];
  5586.     format(String,sizeof(String),"{cccc00}* Private Nachricht von %s (%d): %s",Player[playerid][Name], playerid, text);
  5587.     SendClientMessage(ReplyToID,-1,String);
  5588.    
  5589.     format(String,sizeof(String),"%s sendet Nachricht an %s: %s",GetName(playerid),GetName(ReplyToID),text);
  5590.     PMLog(String);
  5591.    
  5592.     format(String,sizeof(String),"{66CC00}* Private Nachricht an %s (%d): %s",Player[ReplyToID][Name], ReplyToID, text);
  5593.     SendClientMessage(playerid,-1,String);
  5594.  
  5595.     Player[ReplyToID][LastMessager] = playerid;
  5596.     PlayerPlaySound(ReplyToID,1054,0,0,0);
  5597.  
  5598.     return 1;
  5599. }
  5600.  
  5601. CMD:blockpm(playerid,params[])
  5602. {
  5603.     if(isnull(params)) return SendUsageMessage(playerid,"/blockpm [ID]");
  5604.  
  5605.     new pID = strval(params);
  5606.     if(!IsPlayerConnected(pID)) return SendErrorMessage(playerid,"Der Spieler ist nicht auf dem Server.");
  5607.  
  5608.     Player[playerid][BlockedID] = pID;
  5609.  
  5610.     new String[128];
  5611.     format(String,sizeof(String),"PM: Du hast private Nachrichten von {FFFFFF}%s (%d) {ff0000}DEAKTIVIERT.", Player[pID][Name], pID);
  5612.     SendClientMessage(playerid,YELLOW_COLOR,String);
  5613.  
  5614.     return 1;
  5615. }
  5616.  
  5617. /////////////   /kill   /stats   /wkills   /wstats   /rewards   /sstats   /vipinfo (OR) /donate   /credits   /updates
  5618.  
  5619.  
  5620. CMD:kill(playerid, params[])
  5621. {
  5622.     if(Player[playerid][Specing] == true) return SendErrorMessage(playerid,"Du kannst diesen Command nicht benutzen während du jemanden spectatest.");
  5623.     SetPlayerHealth(playerid, 0.0);
  5624.     SetPlayerArmour(playerid, 0.0);
  5625.     SendClientMessage(playerid, YELLOW_COLOR, "SUIZID: Du hast Suizid begangen.");
  5626.     printf("[warning] %s hat mit dem Befehl /kill Suizid begangen.",GetName(playerid));
  5627.     return 1;
  5628. }
  5629.  
  5630. CMD:stats(playerid, params[])
  5631. {
  5632.     new pid, msg1[256], msg2[256], capt[64], text[512];
  5633.     if(isnull(params)) pid = playerid;
  5634.     else
  5635.     {
  5636.         if(sscanf(params, "d", pid)) return SendUsageMessage(playerid, "/stats [ID]");
  5637.         if(!IsPlayerConnected(pid)) return SendErrorMessage(playerid, "Der Spieler ist nicht auf dem Server.");
  5638.     }
  5639.  
  5640.     new Float:ratio, killz = Player[pid][Kills], deathz = Player[pid][Deaths];
  5641.     if(killz && deathz) ratio = floatdiv(killz, deathz);
  5642.     else ratio = 0;
  5643.  
  5644.     new vip[8] = "Nein";
  5645.     if(Player[pid][VIP] == 1) vip = "Ja";
  5646.  
  5647.     format(capt, sizeof(capt), "Statistiken von %s (%d)", Player[pid][Name], pid);
  5648.     format(msg1, sizeof(msg1), "Kills\t%d\nTode\t%d\nK/D\t%.2f\nPunkte\t%d\nVIP\t%s\nGetroffene Schüsse\t%d\nSpielzeit\t%d Stunden\n", Player[pid][Kills], Player[pid][Deaths], ratio, Player[pid][Score], vip, Player[pid][Hits], Player[pid][PlayHours]);
  5649.     format(msg2, sizeof(msg2), "Headshots\t%d\nT-bags\t%d\nHöchste Rundenkills\t%d\nHöchster Rundenschaden\t%.2f\nLevel\t%d\nRegistriert am\t%s\n", Player[pid][Headshots], Player[pid][Tbags], Player[pid][MaxRoundKills], Player[pid][MaxRoundDamage], Player[pid][URang], Player[pid][RegDate]);
  5650.     format(text, sizeof(text), "%s%s", msg1, msg2);
  5651.     ShowPlayerDialog(playerid, 94324, DIALOG_STYLE_TABLIST, capt, text, "Ok", "");
  5652.     return 1;
  5653. }
  5654.  
  5655. CMD:wkills(playerid, params[])
  5656. {
  5657.     new pid, msg[128];
  5658.     if(isnull(params)) pid = playerid;
  5659.     else
  5660.     {
  5661.         if(sscanf(params, "d", pid)) return SendUsageMessage(playerid, "/wkills [ID]");
  5662.         if(!IsPlayerConnected(pid)) return SendErrorMessage(playerid, "Der Spieler ist nicht auf dem Server.");
  5663.     }
  5664.  
  5665.     format(msg, sizeof(msg), "_____________ Waffen Kills von %s (%d) _____________", Player[pid][Name], pid);
  5666.     switch(Player[pid][Team])
  5667.     {
  5668.         case GREENTEAM: SendClientMessage(playerid, GREEN_COLOR, msg);
  5669.         case BLUETEAM: SendClientMessage(playerid, BLUE_COLOR, msg);
  5670.     }
  5671.     format(msg, sizeof(msg), "Fäuste: [%d]   Deagle: [%d]   Shotgun: [%d]   Spas: [%d]   MP5: [%d]", Player[pid][PunchK], Player[pid][DeagleK], Player[pid][ShotgunK], Player[pid][SpasK], Player[pid][MP5K]);
  5672.     SendClientMessage(playerid, -1, msg);
  5673.  
  5674.     format(msg, sizeof(msg), "AK47: [%d]   M4: [%d]   Rifle: [%d]   Sniper: [%d]   Granate: [%d]", Player[pid][AK47K], Player[pid][M4K], Player[pid][RifleK], Player[pid][SniperK], Player[pid][GrenadeK]);
  5675.     SendClientMessage(playerid, -1, msg);
  5676.  
  5677.     return 1;
  5678. }
  5679.  
  5680. CMD:wstats(playerid, params[])
  5681. {
  5682.     cmd_wkills(playerid, params);
  5683.     return 1;
  5684. }
  5685.  
  5686. CMD:rewards(playerid, params[])
  5687. {
  5688.     new TotalStr[1280];
  5689.     new statsSTR[10][128];
  5690.  
  5691.     format(statsSTR[0], sizeof(statsSTR[]), "{FFFF00}Reward\t\t\t\tErforderliche Kills\t\tDeine Kills\n");
  5692.  
  5693.     format(statsSTR[1], sizeof(statsSTR[]), "{FFFFFF}MP5\t\t\t\t{0080FF}250 Deagle Kills\t{55FF55}%d Deagle Kills\n", Player[playerid][DeagleK]);
  5694.     format(statsSTR[2], sizeof(statsSTR[]), "{FFFFFF}Spas\t\t\t\t{0080FF}1000 Shotgun Kills\t{55FF55}%d Shotgun Kills\n", Player[playerid][ShotgunK]);
  5695.     format(statsSTR[3], sizeof(statsSTR[]), "{FFFFFF}Sniper\t\t\t\t{0080FF}250 Rifle Kills oder {FFFF00}VIP\t{55FF55}%d Rifle Kills\n", Player[playerid][RifleK]);
  5696.  
  5697.     format(statsSTR[4], sizeof(statsSTR[]), "{FFFFFF}AK47\t\t\t\t{0080FF}50 MP5 Kills\t\t{55FF55}%d MP5 Kills\n", Player[playerid][MP5K]);
  5698.     format(statsSTR[5], sizeof(statsSTR[]), "{FFFFFF}M4\t\t\t\t{0080FF}100 AK47 Kills oder {FFFF00}VIP\t{55FF55}%d AK47 Kills\n", Player[playerid][AK47K]);
  5699.     format(statsSTR[6], sizeof(statsSTR[]), "{FFFFFF}Granate\t\t\t{0080FF}250 M4 Kills\t\t{55FF55}%d M4 Kills\n", Player[playerid][M4K]);
  5700.  
  5701.     format(statsSTR[7], sizeof(statsSTR[]), "{FF7777}Geheime Belohnung 1\t\t{0080FF}50 Headshots\t\t{55FF55}%d Headshots\n", Player[playerid][Headshots]);
  5702.     format(statsSTR[8], sizeof(statsSTR[]), "{FF7777}Geheime Belohnung 2\t\t{0080FF}50 T-bags\t\t{55FF55}%d T-bags\n", Player[playerid][Tbags]);
  5703.     format(statsSTR[9], sizeof(statsSTR[]), "{FF7777}Geheime Belohnung 3\t\t{0080FF}50 Granaten Kills\t{55FF55}%d Grenade Kills", Player[playerid][GrenadeK]);
  5704.  
  5705.     format(TotalStr, sizeof(TotalStr), "%s%s%s%s%s%s%s%s%s%s", statsSTR[0], statsSTR[1], statsSTR[2], statsSTR[3], statsSTR[4], statsSTR[5], statsSTR[6], statsSTR[7], statsSTR[8], statsSTR[9]);
  5706.  
  5707.     ShowPlayerDialog(playerid,DIALOG_REWARDS,DIALOG_STYLE_TABLIST_HEADERS,"{FFFF00}Freischaltbare Belohnungen", TotalStr, "OK","");
  5708.  
  5709.     return 1;
  5710. }
  5711.  
  5712. CMD:sstats(playerid, params[])
  5713. {
  5714.     new stats[450];
  5715.     GetNetworkStats(stats, sizeof(stats));
  5716.     ShowPlayerDialog(playerid, DIALOG_HELPS, DIALOG_STYLE_MSGBOX, "{FFFF00}Server Netzwerk Statistiken", stats, "OK", "");
  5717.     return 1;
  5718. }
  5719.  
  5720. CMD:vipinfo(playerid, params[])
  5721. {
  5722.     new string[1024];
  5723.  
  5724.     string = "";
  5725.     strcat(string, "{88FF88}Du kannst bei LeonMrBonnie donaten um den Server am Leben zu halten.\n");
  5726.     strcat(string, "{91a8d0}Als Dankeschön dass du uns unterstützt hast du folgende Vorteile:\n");
  5727.     strcat(string, "{88FF88}> {1460ab}25 Rüstung bei jedem Spawn und ein Rüstungsobjekt zum anziehen\n");
  5728.     strcat(string, "{88FF88}> {1460ab}VIP Skins\n");
  5729.     strcat(string, "{88FF88}> {1460ab}Freigeschaltete M4\n");
  5730.     strcat(string, "{88FF88}> {1460ab}Freigeschaltete Sniper\n");
  5731.     strcat(string, "{88FF88}> {1460ab}Doppelte Munition für alle Waffen\n");
  5732.     strcat(string, "{88FF88}> {1460ab}VIP 3DText Ingame und Teamspeak Rang\n");
  5733.     strcat(string, "{88FF88}> {1460ab}Exclusiver Helm der gegen Headshots schützt \n");
  5734.     strcat(string, " \n");
  5735.     strcat(string, "{caa225}Bezahlungsmöglichkeiten:\n");
  5736.     strcat(string, "{e16600}Wenn du dir VIP kaufst ist es permanent. Du kannst es mit einer 5€ Paysafecard bei {ff4040}LeonMrBonnie {e16600}kaufen ODER mit einem Score von 15000 bezahlen.\n");
  5737.     strcat(string, "{1460ab}Für weitere Infos, melde dich bei {ff4040}LeonMrBonnie.");
  5738.  
  5739.     ShowPlayerDialog(playerid,DIALOG_HELPS,DIALOG_STYLE_MSGBOX,"{FFFF00}VIP Informationen", string, "OK","");
  5740.     return 1;
  5741. }
  5742.  
  5743. CMD:donate(playerid, params[])
  5744. {
  5745.     cmd_vipinfo(playerid, params);
  5746.     return 1;
  5747. }
  5748.  
  5749.  
  5750. //============================ Forwards & Stocks ===============================
  5751.  
  5752. forward BanLog(string[]);
  5753. public BanLog(string[])
  5754. {
  5755.     new d,m,y,h,M,s;
  5756.     getdate(y,m,d);
  5757.     gettime(h,M,s);
  5758.     new entry[128];
  5759.     format(entry, sizeof(entry), "[%02d:%02d:%02d | %02d.%02d.%04d] %s\n",h, M, s, d, m, y, string);
  5760.     new File:hFile;
  5761.     hFile = fopen("/Logs/bans.log", io_append);
  5762.     fwrite(hFile, entry);
  5763.     fclose(hFile);
  5764. }
  5765.  
  5766. forward KickLog(string[]);
  5767. public KickLog(string[])
  5768. {
  5769.     new d,m,y,h,M,s;
  5770.     getdate(y,m,d);
  5771.     gettime(h,M,s);
  5772.     new entry[128];
  5773.     format(entry, sizeof(entry), "[%02d:%02d:%02d | %02d.%02d.%04d] %s\n",h, M, s, d, m, y, string);
  5774.     new File:hFile;
  5775.     hFile = fopen("/Logs/kicks.log", io_append);
  5776.     fwrite(hFile, entry);
  5777.     fclose(hFile);
  5778. }
  5779.  
  5780. forward CmdLog(string[]);
  5781. public CmdLog(string[])
  5782. {
  5783.     new d,m,y,h,M,s;
  5784.     getdate(y,m,d);
  5785.     gettime(h,M,s);
  5786.     new entry[128];
  5787.     format(entry, sizeof(entry), "[%02d:%02d:%02d | %02d.%02d.%04d] %s\n",h, M, s, d, m, y, string);
  5788.     new File:hFile;
  5789.     hFile = fopen("/Logs/cmds.log", io_append);
  5790.     fwrite(hFile, entry);
  5791.     fclose(hFile);
  5792. }
  5793.  
  5794. forward MuteLog(string[]);
  5795. public MuteLog(string[])
  5796. {
  5797.     new d,m,y,h,M,s;
  5798.     getdate(y,m,d);
  5799.     gettime(h,M,s);
  5800.     new entry[128];
  5801.     format(entry, sizeof(entry), "[%02d:%02d:%02d | %02d.%02d.%04d] %s\n",h, M, s, d, m, y, string);
  5802.     new File:hFile;
  5803.     hFile = fopen("/Logs/mutes.log", io_append);
  5804.     fwrite(hFile, entry);
  5805.     fclose(hFile);
  5806. }
  5807.  
  5808. forward JailLog(string[]);
  5809. public JailLog(string[])
  5810. {
  5811.     new d,m,y,h,M,s;
  5812.     getdate(y,m,d);
  5813.     gettime(h,M,s);
  5814.     new entry[128];
  5815.     format(entry, sizeof(entry), "[%02d:%02d:%02d | %02d.%02d.%04d] %s\n",h, M, s, d, m, y, string);
  5816.     new File:hFile;
  5817.     hFile = fopen("/Logs/jails.log", io_append);
  5818.     fwrite(hFile, entry);
  5819.     fclose(hFile);
  5820. }
  5821.  
  5822. forward TpLog(string[]);
  5823. public TpLog(string[])
  5824. {
  5825.     new d,m,y,h,M,s;
  5826.     getdate(y,m,d);
  5827.     gettime(h,M,s);
  5828.     new entry[128];
  5829.     format(entry, sizeof(entry), "[%02d:%02d:%02d | %02d.%02d.%04d] %s\n",h, M, s, d, m, y, string);
  5830.     new File:hFile;
  5831.     hFile = fopen("/Logs/teleports.log", io_append);
  5832.     fwrite(hFile, entry);
  5833.     fclose(hFile);
  5834. }
  5835.  
  5836. forward PMLog(string[]);
  5837. public PMLog(string[])
  5838. {
  5839.     new d,m,y,h,M,s;
  5840.     getdate(y,m,d);
  5841.     gettime(h,M,s);
  5842.     new entry[128];
  5843.     format(entry, sizeof(entry), "[%02d:%02d:%02d | %02d.%02d.%04d] %s\n",h, M, s, d, m, y, string);
  5844.     new File:hFile;
  5845.     hFile = fopen("/Logs/pms.log", io_append);
  5846.     fwrite(hFile, entry);
  5847.     fclose(hFile);
  5848. }
  5849.  
  5850. forward ACLog(string[]);
  5851. public ACLog(string[])
  5852. {
  5853.     new d,m,y,h,M,s;
  5854.     getdate(y,m,d);
  5855.     gettime(h,M,s);
  5856.     new entry[128];
  5857.     format(entry, sizeof(entry), "[%02d:%02d:%02d | %02d.%02d.%04d] %s\n",h, M, s, d, m, y, string);
  5858.     new File:hFile;
  5859.     hFile = fopen("/Logs/AntiCheat.log", io_append);
  5860.     fwrite(hFile, entry);
  5861.     fclose(hFile);
  5862. }
  5863.  
  5864. forward ReportLog(string[]);
  5865. public ReportLog(string[])
  5866. {
  5867.     new d,m,y,h,M,s;
  5868.     getdate(y,m,d);
  5869.     gettime(h,M,s);
  5870.     new entry[128];
  5871.     format(entry, sizeof(entry), "[%02d:%02d:%02d | %02d.%02d.%04d] %s\n",h, M, s, d, m, y, string);
  5872.     new File:hFile;
  5873.     hFile = fopen("/Logs/Reports.log", io_append);
  5874.     fwrite(hFile, entry);
  5875.     fclose(hFile);
  5876. }
  5877.  
  5878. forward ChatLog(string[]);
  5879. public ChatLog(string[])
  5880. {
  5881.     new d,m,y,h,M,s;
  5882.     getdate(y,m,d);
  5883.     gettime(h,M,s);
  5884.     new entry[128];
  5885.     format(entry, sizeof(entry), "[%02d:%02d:%02d | %02d.%02d.%04d] %s\n",h, M, s, d, m, y, string);
  5886.     new File:hFile;
  5887.     hFile = fopen("/Logs/chat.log", io_append);
  5888.     fwrite(hFile, entry);
  5889.     fclose(hFile);
  5890. }
  5891.  
  5892. forward WarnLog(string[]);
  5893. public WarnLog(string[])
  5894. {
  5895.     new d,m,y,h,M,s;
  5896.     getdate(y,m,d);
  5897.     gettime(h,M,s);
  5898.     new entry[128];
  5899.     format(entry, sizeof(entry), "[%02d:%02d:%02d | %02d.%02d.%04d] %s\n",h, M, s, d, m, y, string);
  5900.     new File:hFile;
  5901.     hFile = fopen("/Logs/warns.log", io_append);
  5902.     fwrite(hFile, entry);
  5903.     fclose(hFile);
  5904. }
  5905.  
  5906. stock randomEx(min, max)
  5907. {
  5908.     //Credits to y_less
  5909.     new rand = random(max-min)+min;
  5910.     return rand;
  5911. }
  5912.  
  5913. stock GetRang(playerid)
  5914. {
  5915.     new string[36];
  5916.     switch(Player[playerid][Level]) {
  5917.         case 0: string = "Spieler";
  5918.         case 1: string = ""Rang1Name"";
  5919.         case 2: string = ""Rang2Name"";
  5920.         case 3: string = ""Rang3Name"";
  5921.         case 4: string = ""Rang4Name"";
  5922.     }
  5923.     return string;
  5924. }
  5925.  
  5926. stock GetRangName(level)
  5927. {
  5928.     new string[36];
  5929.     switch(level) {
  5930.         case 0: string = "Spieler";
  5931.         case 1: string = ""Rang1Name"";
  5932.         case 2: string = ""Rang2Name"";
  5933.         case 3: string = ""Rang3Name"";
  5934.         case 4: string = ""Rang4Name"";
  5935.     }
  5936.     return string;
  5937. }
  5938.  
  5939. forward KickTimer(playerid);
  5940. public KickTimer(playerid)
  5941. {
  5942.     Player[playerid][IsKicked] = true;
  5943.     Kick(playerid);
  5944.     return 1;
  5945. }
  5946.  
  5947. forward HideScoreTD(playerid);
  5948. public HideScoreTD(playerid) {
  5949.     PlayerTextDrawHide(playerid, ScoreTD);
  5950. }
  5951.  
  5952. forward HideAnn1TD(playerid);
  5953. public HideAnn1TD(playerid) {
  5954.     PlayerTextDrawHide(playerid, Ann1TD);
  5955. }
  5956.  
  5957. forward HideAnn2TD(playerid);
  5958. public HideAnn2TD(playerid) {
  5959.     PlayerTextDrawHide(playerid, Ann2TD);
  5960. }
  5961.  
  5962. forward HideAchTD(playerid);
  5963. public HideAchTD(playerid) {
  5964.     PlayerTextDrawHide(playerid, AchTD);
  5965.     HidePlayerProgressBar(playerid, Bar1);
  5966. }
  5967.  
  5968. forward DeathMessage(killerid, playerid);
  5969. public DeathMessage(killerid, playerid) {
  5970.     PlayerTextDrawHide(killerid, DeathText[0]);
  5971.     PlayerTextDrawHide(playerid, DeathText[1]);
  5972. }
  5973.  
  5974. forward OnPlayerKicked(playerid);
  5975. public OnPlayerKicked(playerid) {
  5976.     Player[playerid][IsKicked] = true;
  5977.     Kick(playerid);
  5978.     return 1;
  5979. }
  5980.  
  5981. forward Float:GetPlayerPacketLoss(playerid);
  5982. public Float:GetPlayerPacketLoss(playerid) {
  5983.     return NetStats_PacketLossPercent(playerid);
  5984. }
  5985.  
  5986. stock IsValidSound(soundid) {
  5987.     for(new i=0; i < sizeof(ValidSounds); ++i) {
  5988.         if(ValidSounds[i] == soundid) return 1;
  5989.     }
  5990.     return 0;
  5991. }
  5992.  
  5993. stock BanWithReason(playerid = INVALID_PLAYER_ID, targetid, reason[])
  5994. {
  5995.     if(playerid == INVALID_PLAYER_ID) return 1;
  5996.     new Query[256], string[145], day, month, year, second, minute, hour, datestring[24], timestring[24];
  5997.     BansCount++;
  5998.     getdate(day, month, year);
  5999.     gettime(hour, minute, second);
  6000.     format(datestring, sizeof(datestring), "%i.%i.%i", day, month, year);
  6001.     format(timestring, sizeof(timestring), "%i:%i:%i", hour, minute, second);
  6002.  
  6003.     format(Query, sizeof(Query), "INSERT INTO `BANNED` (`NAME`, `IP`, `REASON`, `ADMIN`, `DATE`, `TIME`) VALUES ('%s', '%s', '%s', '%s', '%s', '%s')", DB_Escape(GetName(targetid)), DB_Escape(PlayerIP(targetid)), DB_Escape(reason), DB_Escape(GetName(playerid)), DB_Escape(datestring), DB_Escape(timestring));
  6004.     db_query(bans,Query);
  6005.     format(string, sizeof(string), "BAN: %s hat %s permanent IP gebannt. [Grund: %s]", GetName(playerid), GetName(targetid), reason);
  6006.     SendClientMessageToAll(COLOR_LIGHTRED, string), string = "\1";
  6007.     format(string,sizeof(string), "BAN: Es wurden bereits %d Accounts gebannt.",BansCount);
  6008.     SendAdminMessage(1, string);
  6009.     format(string, sizeof(string), "%s ipbannt %s [Grund: %s]",GetName(playerid),GetName(targetid),reason);
  6010.     BanLog(string);
  6011.     SetTimerEx("KickTimer", 100, true, "i", targetid);
  6012.     return 1;
  6013. }
  6014.  
  6015. stock BanWithReasonNoIP(playerid = INVALID_PLAYER_ID, targetid, reason[])
  6016. {
  6017.     if(playerid == INVALID_PLAYER_ID) return 1;
  6018.     new Query[256], string[145], day, month, year, second, minute, hour, datestring[24], timestring[24];
  6019.     BansCount++;
  6020.     getdate(day, month, year);
  6021.     gettime(hour, minute, second);
  6022.     format(datestring, sizeof(datestring), "%i.%i.%i", day, month, year);
  6023.     format(timestring, sizeof(timestring), "%i:%i:%i", hour, minute, second);
  6024.  
  6025.     format(Query, sizeof(Query), "INSERT INTO `BANNED` (`NAME`, `IP`, `REASON`, `ADMIN`, `DATE`, `TIME`) VALUES ('%s', 'N/A', '%s', '%s', '%s', '%s')", DB_Escape(GetName(targetid)), DB_Escape(reason), DB_Escape(GetName(playerid)), DB_Escape(datestring), DB_Escape(timestring));
  6026.     db_query(bans,Query);
  6027.     format(string, sizeof(string), "BAN: %s hat %s permanent gebannt. [Grund: %s]", GetName(playerid), GetName(targetid), reason);
  6028.     SendClientMessageToAll(COLOR_LIGHTRED, string), string = "\1";
  6029.     format(string,sizeof(string), "BAN: Es wurden bereits %d Accounts gebannt.",BansCount);
  6030.     SendAdminMessage(1, string);
  6031.     format(string, sizeof(string), "%s bannt %s [Grund: %s]",GetName(playerid),GetName(targetid),reason);
  6032.     BanLog(string);
  6033.     SetTimerEx("KickTimer", 100, true, "i", targetid);
  6034.     return 1;
  6035. }
  6036.  
  6037. stock SystemBan(targetid, reason[])
  6038. {
  6039.     new Query[256], string[145], day, month, year, second, minute, hour, datestring[24], timestring[24];
  6040.     BansCount++;
  6041.     getdate(day, month, year);
  6042.     gettime(hour, minute, second);
  6043.     format(datestring, sizeof(datestring), "%i-%i-%i", day, month, year);
  6044.     format(timestring, sizeof(timestring), "%i:%i:%i", hour, minute, second);
  6045.  
  6046.     format(Query, sizeof(Query), "INSERT INTO `BANNED` (`NAME`, `IP`, `REASON`, `ADMIN`, `DATE`, `TIME`) VALUES ('%s', 'N/A', '%s', 'System', '%s', '%s')", DB_Escape(GetName(targetid)), DB_Escape(reason), DB_Escape(datestring), DB_Escape(timestring));
  6047.     db_query(bans,Query);
  6048.     format(string, sizeof(string), "BAN: Das System hat %s permanent gebannt. [Grund: %s]", GetName(targetid), reason);
  6049.     SendClientMessageToAll(COLOR_LIGHTRED, string), string = "\1";
  6050.     format(string,sizeof(string), "BAN: Es wurden bereits %d Accounts gebannt.",BansCount);
  6051.     SendAdminMessage(1, string);
  6052.     format(string, sizeof(string), "System bannt %s [Grund: %s]",GetName(targetid),reason);
  6053.     BanLog(string);
  6054.     SetTimerEx("KickTimer", 100, true, "i", targetid);
  6055.     return 1;
  6056. }
  6057.  
  6058. stock DB_Escape(text[])
  6059. {
  6060.     new
  6061.         ret[80 * 2],
  6062.         ch,
  6063.         i,
  6064.         j
  6065.     ;
  6066.     while ((ch = text[i++]) && j < sizeof (ret))
  6067.     {
  6068.         if (ch == '\'')
  6069.         {
  6070.             if (j < sizeof (ret) - 2)
  6071.             {
  6072.                 ret[j++] = '\'';
  6073.                 ret[j++] = '\'';
  6074.             }
  6075.         }
  6076.         else if (j < sizeof (ret))
  6077.         {
  6078.             ret[j++] = ch;
  6079.         }
  6080.         else
  6081.         {
  6082.             j++;
  6083.         }
  6084.     }
  6085.     ret[sizeof (ret) - 1] = '\0';
  6086.     return ret;
  6087. }
  6088. stock GetName(playerid)
  6089. {
  6090.     new pnameid[24];
  6091.     GetPlayerName(playerid,pnameid,sizeof(pnameid));
  6092.     return pnameid;
  6093. }
  6094. stock PlayerIP(playerid)
  6095. {
  6096.     new str[16];
  6097.     GetPlayerIp(playerid, str, sizeof(str));
  6098.     return str;
  6099. }
  6100.  
  6101. stock GiveScore(playerid, number)
  6102. {
  6103.     new scorez;
  6104.     Player[playerid][Score] = Player[playerid][Score]+number;
  6105.     scorez = Player[playerid][Score];
  6106.     SetPlayerScore(playerid, scorez);
  6107.  
  6108.     new iString[64];
  6109.     format(iString, sizeof(iString), "%sScore:+%d", TDColor[Player[playerid][Team]], number);
  6110.     PlayerTextDrawSetString(playerid, ScoreTD, iString);
  6111.  
  6112.     PlayerTextDrawShow(playerid, ScoreTD);
  6113.  
  6114.     SetTimerEx("HideScoreTD", 4000, false, "i", playerid);
  6115. }
  6116.  
  6117. stock ShowAnn1(playerid, text[])
  6118. {
  6119.     PlayerTextDrawSetString(playerid, Ann1TD, text);
  6120.     PlayerTextDrawShow(playerid, Ann1TD);
  6121.     SetTimerEx("HideAnn1TD", 4000, false, "i", playerid);
  6122. }
  6123.  
  6124. stock ShowAnn2(playerid, text[])
  6125. {
  6126.     PlayerTextDrawSetString(playerid, Ann2TD, text);
  6127.     PlayerTextDrawShow(playerid, Ann2TD);
  6128.     SetTimerEx("HideAnn2TD", 4000, false, "i", playerid);
  6129. }
  6130.  
  6131. stock ShowAch(playerid, text[], prog, max)
  6132. {
  6133.     PlayerTextDrawSetString(playerid, AchTD, text);
  6134.     PlayerTextDrawShow(playerid, AchTD);
  6135.  
  6136.     SetPlayerProgressBarMaxValue(playerid, Bar1, max);
  6137.     SetPlayerProgressBarValue(playerid, Bar1, prog);
  6138.    
  6139.     SetTimerEx("HideAchTD", 7000, false, "i", playerid);
  6140. }
  6141.  
  6142. stock GiveKill(playerid)
  6143. {
  6144.     Player[playerid][Kills]++;
  6145.     Player[playerid][RKills]++;
  6146. }
  6147.  
  6148. stock GiveDeath(playerid)
  6149. {
  6150.     Player[playerid][Deaths]++;
  6151.     Player[playerid][RDeaths]++;
  6152. }
  6153.  
  6154. stock GiveWKill(playerid, wep)
  6155. {
  6156.     switch(wep)
  6157.     {
  6158.         case 0:     Player[playerid][PunchK]++;
  6159.         case 24:    Player[playerid][DeagleK]++;
  6160.         case 25:    Player[playerid][ShotgunK]++;
  6161.         case 27:    Player[playerid][SpasK]++;
  6162.         case 29:    Player[playerid][MP5K]++;
  6163.         case 30:    Player[playerid][AK47K]++;
  6164.         case 31:    Player[playerid][M4K]++;
  6165.         case 33:    Player[playerid][RifleK]++;
  6166.         case 34:    Player[playerid][SniperK]++;
  6167.         case 51:    Player[playerid][GrenadeK]++;
  6168.     }
  6169. }
  6170.  
  6171. stock ShowMap(playerid, time)
  6172. {
  6173.     TogglePlayerSpectating(playerid, true);
  6174.     SetPlayerCameraLookAt(playerid, (Min[0] + Max[0])/2, (Min[1] + Max[1])/2, GSpawn1[2]);
  6175.     SetPlayerCameraPos(playerid, (Min[0] + Max[0])/2, (Min[1] + Max[1])/2, GSpawn1[2]+40);
  6176.     switch(Player[playerid][Team])
  6177.     {
  6178.         case GREENTEAM: InterpolateCameraPos(playerid, Min[0], Min[1], GSpawn1[2]+40, Max[0], Max[1], GSpawn1[2]+40, time, CAMERA_MOVE);
  6179.         case BLUETEAM: InterpolateCameraPos(playerid, Max[0], Max[1], GSpawn1[2]+40, Min[0], Min[1], GSpawn1[2]+40, time, CAMERA_MOVE);
  6180.     }
  6181.     InterpolateCameraLookAt(playerid, (Min[0] + Max[0])/2, (Min[1] + Max[1])/2, GSpawn1[2], (Min[0] + Max[0])/2, (Min[1] + Max[1])/2, GSpawn1[2], time, CAMERA_MOVE);
  6182. }
  6183.  
  6184. stock CheckRewards(playerid)
  6185. {
  6186.     if(Player[playerid][SniperK] > 499)     Player[playerid][UnlockedEagleEye] = true;
  6187.     if(Player[playerid][DeagleK] > 249)     Player[playerid][UnlockedMP5] = true;
  6188.     if(Player[playerid][ShotgunK] > 999)    Player[playerid][UnlockedSpas] = true;
  6189.     if(Player[playerid][RifleK] > 249)      Player[playerid][UnlockedSniper] = true;
  6190.     if(Player[playerid][MP5K] > 49)         Player[playerid][UnlockedAK47] = true;
  6191.     if(Player[playerid][AK47K] > 99)        Player[playerid][UnlockedM4] = true;
  6192.     if(Player[playerid][M4K] > 249)         Player[playerid][UnlockedGrenade] = true;
  6193.     if(Player[playerid][Headshots] > 49)    Player[playerid][UnlockedCigar] = true;
  6194.     if(Player[playerid][Tbags] > 49)        Player[playerid][UnlockedHorns] = true;
  6195.     if(Player[playerid][GrenadeK] > 49)     Player[playerid][UnlockedFlame] = true;
  6196. }
  6197.  
  6198. stock IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy) {
  6199.     new Float:x, Float:y, Float:z;
  6200.     GetPlayerPos(playerid, x, y, z);
  6201.     if (x > minx && x < maxx && y > miny && y < maxy) return 1;
  6202.     return 0;
  6203. }
  6204.  
  6205. stock GetPlayerFPS(playerid) {
  6206.     new drunk2 = GetPlayerDrunkLevel(playerid);
  6207.     if(drunk2 < 100){
  6208.         SetPlayerDrunkLevel(playerid,2000);
  6209.     }else{
  6210.         if(Player[playerid][DLlast] != drunk2){
  6211.             new fps = Player[playerid][DLlast] - drunk2;
  6212.             if((fps > 0) && (fps < 200))
  6213.             Player[playerid][FPS] = fps;
  6214.             Player[playerid][DLlast] = drunk2;
  6215.         }
  6216.     }
  6217. }
  6218.  
  6219. stock IsNumeric(string[]){
  6220.     for (new i = 0, j = strlen(string); i < j; i++){
  6221.         if (string[i] > '9' || string[i] < '0') return 0;
  6222.     }
  6223.     return 1;
  6224. }
  6225.  
  6226. stock GetVehicleModelID(vehiclename[])
  6227. {
  6228.     for(new i = 0; i < 211; i++){
  6229.         if(strfind(aVehicleNames[i], vehiclename, true) != -1)
  6230.         return i + 400;
  6231.     } return -1;
  6232. }
  6233.  
  6234. stock GetWeaponID(weaponname[]) {
  6235.     for(new i = 0; i < 55; ++i) {
  6236.         if(strfind(WeaponNames[i], weaponname, true) != -1)
  6237.         return i;
  6238.     }
  6239.     return -1;
  6240. }
  6241.  
  6242. stock SendErrorMessage(playerid, text[])
  6243. {
  6244.     new str[160];
  6245.     format(str,sizeof(str),"FEHLER:{FFFFFF} %s",text);
  6246.     SendClientMessage(playerid,0xFF0000FF,str);
  6247.     return 1;
  6248. }
  6249.  
  6250. stock SendUsageMessage(playerid, text[])
  6251. {
  6252.     new str[160];
  6253.     format(str,sizeof(str),"NUTZE:{FFFFFF} %s",text);
  6254.     SendClientMessage(playerid,0xFFFF00FF,str);
  6255.     return 1;
  6256. }
  6257.  
  6258. stock SendAdminMessage(level, text[])
  6259. {
  6260.     foreach(new i : Player)
  6261.     {
  6262.         if((Player[i][Level] >= level) && (Player[i][Logged] == true))
  6263.         {
  6264.             new str[160];
  6265.             format(str,sizeof(str), "[ADMIN] %s", text);
  6266.             SendClientMessage(i, ADMIN_COLOR, str);
  6267.         }
  6268.     }
  6269.     return 1;
  6270. }
  6271.  
  6272. stock SendReportMessage(sender, receiver, reason[])
  6273. {
  6274.     new str[260];
  6275.     format(str, sizeof(str), "[REPORT] %s (%d) hat %s (%d) reportet. [Grund: %s]", GetName(sender), sender, GetName(receiver), receiver,reason);
  6276.    
  6277.     foreach(new i : Player)
  6278.     {
  6279.         if((Player[i][Level] > 0) && (Player[i][Logged] == true))
  6280.         {
  6281.             SendClientMessage(i, COLOR_PINK, str);
  6282.         }
  6283.     }
  6284.     return 1;
  6285. }
  6286.  
  6287. stock SendMessageToAdmins(message[])
  6288. {
  6289.     new pCount;
  6290.     for(new i = 0; i < MAX_PLAYERS; i++)
  6291.     {
  6292.         if((Player[i][Level] >= 1) || !IsPlayerAdmin(i)) continue;
  6293.         pCount++;
  6294.         SendClientMessage(i, 0x00FF00AA, message);
  6295.     }
  6296.     CallLocalFunction("OnMessageToAdminsSent", "sd", message, pCount); //<-- !!!
  6297.     return 1;
  6298. }
  6299.  
  6300. stock SendACWarning(playerid, text[])
  6301. {
  6302.     foreach(new i : Player)
  6303.     {
  6304.         if((Player[i][Level] >= 0) && (Player[i][Logged] == true))
  6305.         {
  6306.             new str[160];
  6307.             format(str,sizeof(str), "[AntiCheat] %s (%d) hat den Verdacht zu hacken/cheaten! [%s]", Player[playerid][Name], playerid, text);
  6308.             SendClientMessage(i, AC_COLOR, str);
  6309.         }
  6310.     }
  6311.     return 1;
  6312. }
  6313.  
  6314. LoadNextMap()
  6315. {
  6316.     if(fexist(MAPLISTFILE))
  6317.     {
  6318.         new filename[64];
  6319.         new linenr;
  6320.         new File:maplist = fopen(MAPLISTFILE, io_read);
  6321.         while(fread(maplist, filename))
  6322.         {
  6323.             linenr++;
  6324.             if(linenr > CurrentMap)
  6325.             {
  6326.                 StripNL(filename);
  6327.                 if(filename[0])
  6328.                 {
  6329.                     strins(filename, "Maps/", 0, sizeof(filename));
  6330.                     if(fexist(filename))
  6331.                     {
  6332.                         CurrentMap = linenr;
  6333.                         fclose(maplist);
  6334.                         LoadMap(filename);
  6335.                         return 1;
  6336.                     }
  6337.                 }
  6338.             }
  6339.         }
  6340.         fclose(maplist);
  6341.         CurrentMap = 0;
  6342.         maplist = fopen(MAPLISTFILE, io_read);
  6343.         while(fread(maplist, filename))
  6344.         {
  6345.             CurrentMap++;
  6346.             StripNL(filename);
  6347.             if(filename[0])
  6348.             {
  6349.                 strins(filename, "Maps/", 0, sizeof(filename));
  6350.                 if(fexist(filename))
  6351.                 {
  6352.                     fclose(maplist);
  6353.                     LoadMap(filename);
  6354.                     return 1;
  6355.                 }
  6356.             }
  6357.         }
  6358.         fclose(maplist);
  6359.         print("FEHLER: Kann keine Map zum laden finden!");
  6360.         return 0;
  6361.     }
  6362.     else
  6363.     {
  6364.         printf("FEHLER: %s existiert nicht!", MAPLISTFILE);
  6365.         return 0;
  6366.     }
  6367. }
  6368.  
  6369. LoadMap(filename[])
  6370. {
  6371.     if(!fexist(filename))
  6372.     {
  6373.         printf("FEHLER: %s konnte nicht geladen werden", filename);
  6374.         return 0;
  6375.     }
  6376.     new string[128];
  6377.     new model, Float:pos[3], Float:rot[3];
  6378.     new start, end;
  6379.     new obidx;
  6380.     // -- Brief Case Vars
  6381.     new Float:BCPos[3];
  6382.     //new rand = random(2) + 1; // Get the random int spawn
  6383.     // --
  6384.     strcpy(MapFileName, filename);
  6385.     MapName[0] = 0;
  6386.     MapperName[0] = 0;
  6387.     new line[256], s, key[64];
  6388.     new File:handle = fopen(filename, io_read);
  6389.     if(!handle)
  6390.     {
  6391.         printf("FEHLER: %s konnte nicht geladen werden", filename);
  6392.         return 0;
  6393.     }
  6394.     while(fread(handle, line))
  6395.     {
  6396.         StripNL(line);
  6397.         if(!line[0]) continue;
  6398.         s = strfind(line, "=");
  6399.         if(s < 1)
  6400.         {
  6401.             if(strcmp(line, "CreateObject", false, 12) == 0)
  6402.             {
  6403.                 if(obidx < sizeof(MapObjects))
  6404.                 {
  6405.                     start = strfind(line, "(", true);
  6406.                     end = strfind(line, ")", true);
  6407.                     if(start != -1 && end != -1)
  6408.                     {
  6409.                         strmid(line, line, start+1, end, sizeof(line));
  6410.                         sscanf(line, "p,dffffff", model, pos[0], pos[1], pos[2], rot[0], rot[1], rot[2]);
  6411.                         MapObjects[obidx] = CreateObject(model, pos[0], pos[1], pos[2] - 0.5, rot[0], rot[1], rot[2]);
  6412.                         obidx++;
  6413.                         //easter
  6414.  
  6415.                         EasterX = pos[0];
  6416.                         EasterY = pos[1];
  6417.                         EasterText = Create3DTextLabel("Drücke F zum öffnen", 0x00FF00FF, pos[0], pos[1], pos[2], 5.0, 0, 0);
  6418.  
  6419.                     }
  6420.                 }
  6421.                 else
  6422.                 {
  6423.                     print("WARNUNG: Objekt auf der Map konnte nicht geladen werden (zu viele Objekte)");
  6424.                 }
  6425.             }
  6426.             continue;
  6427.         }
  6428.         strmid(key, line, 0, s++);
  6429.         if(strcmp(key, "Name") == 0)
  6430.         {
  6431.             strcpy(MapName, line[s]);
  6432.             format(string, sizeof(string), "mapname %s", MapName);
  6433.             SendRconCommand(string);
  6434.         }
  6435.         else if(strcmp(key, "Mapper") == 0) strcpy(MapperName, line[s]);
  6436.         else if(strcmp(key, "MinXY") == 0) sscanf(line[s], "p,ff", Min[0], Min[1]);
  6437.         else if(strcmp(key, "MaxXY") == 0) sscanf(line[s], "p,ff", Max[0], Max[1]);
  6438.         else if(strcmp(key, "Interior") == 0) MapInterior = strval(line[s]);
  6439.         else if(strcmp(key, "GSpawn1") == 0) sscanf(line[s], "p,ffff", GSpawn1[0], GSpawn1[1], GSpawn1[2], GSpawn1[3]);
  6440.         else if(strcmp(key, "GSpawn2") == 0) sscanf(line[s], "p,ffff", GSpawn2[0], GSpawn2[1], GSpawn2[2], GSpawn2[3]);
  6441.         else if(strcmp(key, "GSpawn3") == 0) sscanf(line[s], "p,ffff", GSpawn3[0], GSpawn3[1], GSpawn3[2], GSpawn3[3]);
  6442.         else if(strcmp(key, "BSpawn1") == 0) sscanf(line[s], "p,ffff", BSpawn1[0], BSpawn1[1], BSpawn1[2], BSpawn1[3]);
  6443.         else if(strcmp(key, "BSpawn2") == 0) sscanf(line[s], "p,ffff", BSpawn2[0], BSpawn2[1], BSpawn2[2], BSpawn2[3]);
  6444.         else if(strcmp(key, "BSpawn3") == 0) sscanf(line[s], "p,ffff", BSpawn3[0], BSpawn3[1], BSpawn3[2], BSpawn3[3]);
  6445.         else if(strcmp(key, "BSpawn3") == 0) sscanf(line[s], "p,ffff", BSpawn3[0], BSpawn3[1], BSpawn3[2], BSpawn3[3]);
  6446.     }
  6447.     fclose(handle);
  6448.  
  6449.     MapZone = GangZoneCreate(Min[0]-20,Min[1]-20,Max[0]+20,Max[1]+20);
  6450.     GangZoneShowForAll(MapZone, BLUE_COLOR);
  6451.     foreach(new i : Player)
  6452.     {
  6453.         if(IsPlayerConnected(i))
  6454.         {
  6455.             SetPlayerInterior(i, MapInterior);
  6456.             SetPlayerVirtualWorld(i, 0);
  6457.         }
  6458.     }
  6459.     BCID = CreatePickup(BC_MODEL,19,BCPos[0], BCPos[1], BCPos[2],0);
  6460.     EndTime = 425;
  6461.     GKills = 0;
  6462.     BKills = 0;
  6463.  
  6464.     printf("[SCRIPT] Map %s geladen.", filename);
  6465.     return 1;
  6466. }
  6467.  
  6468. UnloadMap()
  6469. {
  6470.     GangZoneDestroy(MapZone);
  6471.  
  6472.     for(new i=0; i < sizeof(MapObjects); i++)
  6473.     {
  6474.         if(MapObjects[i])
  6475.         {
  6476.             DestroyObject(MapObjects[i]);
  6477.             MapObjects[i] = 0;
  6478.             if(BCID != -1)
  6479.             {
  6480.                 DestroyPickup(BCID);
  6481.                 // -- Put some message here :)
  6482.                
  6483.             }
  6484.             //easter
  6485.  
  6486.             EasterX = 0.0;
  6487.             EasterY = 0.0;
  6488.             EggFound = false;
  6489.             Delete3DTextLabel(EasterText);
  6490.  
  6491.         }
  6492.     }
  6493. }
  6494.  
  6495. SendNextMapMessage()
  6496. {
  6497.     new string[128];
  6498.     format(string, sizeof(string), "~g~~h~~h~%s", MapName);
  6499.     if(MapperName[0])
  6500.     {
  6501.         strcat(string, "~n~~w~Von: ");
  6502.         strcat(string, MapperName);
  6503.     }
  6504.     GameTextForAll(string, 1000, 1);
  6505. }
  6506.  
  6507. forward GetCurrentMap();
  6508. public GetCurrentMap()
  6509. {
  6510.     return CurrentMap;
  6511. }
  6512.  
  6513. forward SetCurrentMap(mapid);
  6514. public SetCurrentMap(mapid)
  6515. {
  6516.     CurrentMap = mapid;
  6517. }
  6518.  
  6519. OnRoundEnd(winner)
  6520. {
  6521.     SetTimer("ExitMap", 5000, false);
  6522.     foreach(new i : Player)
  6523.     {
  6524.         if(IsPlayerConnected(i) && Player[i][Spawned] == true)
  6525.         {
  6526.             TogglePlayerControllable(i, false);
  6527.             SetPlayerVirtualWorld(i, i);
  6528.         }
  6529.     }
  6530.  
  6531.     switch(winner)
  6532.     {
  6533.         case GREENTEAM:
  6534.         {
  6535.             foreach(new i : Player)
  6536.             {
  6537.                 if(IsPlayerConnected(i) && Player[i][Spawned] == true && Player[i][Team] == GREENTEAM)
  6538.                 {
  6539.                     GiveScore(i, 5);
  6540.                     GivePlayerMoney(i, 5000);
  6541.                     SendClientMessage(i, GREEN_COLOR, "Dein Team hat die Runde gewonnen, +5 Punkte!");
  6542.                     PlayerPlaySound(i, 1097, 0.0, 0.0, 0.0);
  6543.                 }
  6544.             }
  6545.         }
  6546.         case BLUETEAM:
  6547.         {
  6548.             foreach(new i : Player)
  6549.             {
  6550.                 if(IsPlayerConnected(i) && Player[i][Spawned] == true && Player[i][Team] == BLUETEAM)
  6551.                 {
  6552.                     GiveScore(i, 5);
  6553.                     SendClientMessage(i, BLUE_COLOR, "+5 Punkte für das Gewinnen der Runde!");
  6554.                     PlayerPlaySound(i, 1097, 0.0, 0.0, 0.0);
  6555.                 }
  6556.             }
  6557.         }
  6558.     }
  6559. }
  6560.  
  6561.  
  6562. forward ExitMap();
  6563. public ExitMap()
  6564. {
  6565.     UpdateScoreTable();
  6566.     UnloadMap();
  6567.     AllowEnter = 0;
  6568.     SetTimer("SetAllowEnter", 5000, false);
  6569.     foreach(new i : Player)
  6570.     {
  6571.         if(IsPlayerConnected(i))
  6572.         {
  6573.             if(Player[i][RKills] > Player[i][MaxRoundKills])
  6574.             {
  6575.                 Player[i][MaxRoundKills] = Player[i][RKills];
  6576.                 SavePlayer(i);
  6577.             }
  6578.             if(Player[i][RDamage] > Player[i][MaxRoundDamage])
  6579.             {
  6580.                 Player[i][MaxRoundDamage] = Player[i][RDamage];
  6581.                 SavePlayer(i);
  6582.             }
  6583.             ClearAnimations(i);
  6584.             Player[i][RKills] = 0;
  6585.             Player[i][RDeaths] = 0;
  6586.             Player[i][RDamage] = 0;
  6587.             if(Player[i][Spawned] == true)
  6588.             {
  6589.                 for(new t=0; t < sizeof(ScoreTableTD); t++)
  6590.                 {
  6591.                     TextDrawShowForPlayer(i, ScoreTableTD[t]);
  6592.                     HideStatisticsTextdraws(i);
  6593.                 }
  6594.                 Player[i][TableOnScreen] = true;
  6595.                 TextDrawHideForPlayer(i, RoundStatsTD);
  6596.             }
  6597.         }
  6598.     }
  6599.     LoadNextMap();
  6600.     SendNextMapMessage();
  6601.  
  6602.     foreach(new i : Player)
  6603.     {
  6604.         if(IsPlayerConnected(i))
  6605.         {
  6606.             ShowMap(i, 7000);
  6607.             SetPlayerSpawn(i);
  6608.         }
  6609.     }
  6610.     GKills = 0;
  6611.     BKills = 0;
  6612. }
  6613.  
  6614. SetPlayerSpawn(playerid)
  6615. {
  6616.     new Float:Pos[4];
  6617.     switch(Player[playerid][Team])
  6618.     {
  6619.         case GREENTEAM:
  6620.         {
  6621.             new randomspawn = random(3);
  6622.             switch(randomspawn)
  6623.             {
  6624.                 case 0: Pos = GSpawn1;
  6625.                 case 1: Pos = GSpawn2;
  6626.                 case 2: Pos = GSpawn3;
  6627.             }
  6628.         }
  6629.         case BLUETEAM:
  6630.         {
  6631.             new randomspawn = random(3);
  6632.             switch(randomspawn)
  6633.             {
  6634.                 case 0: Pos = BSpawn1;
  6635.                 case 1: Pos = BSpawn2;
  6636.                 case 2: Pos = BSpawn3;
  6637.             }
  6638.         }
  6639.     }
  6640.     SetSpawnInfo(playerid, GetPlayerTeam(playerid), GetPlayerSkin(playerid), Pos[0]+RandomRange(-1, 1), Pos[1]+RandomRange(-1, 1), Pos[2]+1, Pos[3], 0, 0, 0, 0, 0, 0);
  6641. }
  6642.  
  6643. CloseTable(playerid)
  6644. {
  6645.     if(Player[playerid][TableOnScreen] == true)
  6646.     {
  6647.         if(AllowEnter == 1)
  6648.         {
  6649.             for(new t=0; t < sizeof(ScoreTableTD); t++)
  6650.             {
  6651.                 TextDrawHideForPlayer(playerid, ScoreTableTD[t]);
  6652.             }
  6653.             Player[playerid][TableOnScreen] = false;
  6654.             ShowStatisticsTextdraws(playerid);
  6655.             SetPlayerSpawn(playerid);
  6656.             TogglePlayerSpectating(playerid, false);
  6657.             PlayerPlaySound(playerid, 1098, 0, 0, 0);
  6658.         }
  6659.     }
  6660. }
  6661.  
  6662. forward SetAllowEnter();
  6663. public SetAllowEnter()
  6664. {
  6665.     AllowEnter = 1;
  6666.     foreach(new i : Player)
  6667.     {
  6668.         GameTextForPlayer(i, "~w~Drücke um zu ~n~spawnen", 1000, 1);
  6669.     }
  6670. }
  6671.  
  6672. stock strcpy(dest[], const source[], maxlength=sizeof dest)
  6673. {
  6674.     return strmid(dest, source, 0, maxlength, maxlength);
  6675. }
  6676.  
  6677. stock StripNL(str[])
  6678. {
  6679.     new
  6680.         i = strlen(str);
  6681.     while (i-- && str[i] <= ' ') str[i] = '\0';
  6682. }
  6683.  
  6684. GetTeamBalance(teamid)
  6685. {
  6686.     new count;
  6687.     foreach(new i : Player)
  6688.     {
  6689.         if(IsPlayerConnected(i))
  6690.         {
  6691.             if(Player[i][Team] == teamid && Player[i][Spawned] == true)
  6692.             {
  6693.                 count++;
  6694.             }
  6695.         }
  6696.     }
  6697.     return count;
  6698. }
  6699.  
  6700. UpdateAInfo(playerid)
  6701. {
  6702.     new sid = Player[playerid][SpecID];
  6703.     new ip[24];
  6704.     GetPlayerIp(sid, ip, sizeof(ip));
  6705.     new Float:health, Float:armor;
  6706.     new Float:pPacket = GetPlayerPacketLoss(sid);
  6707.  
  6708.     new FPSstr[16];
  6709.     if(Player[sid][FPS] < 30) format(FPSstr, sizeof(FPSstr), "~r~~h~%d~l~", Player[sid][FPS]);
  6710.     if(Player[sid][FPS] >= 30) format(FPSstr, sizeof(FPSstr), "%d", Player[sid][FPS]);
  6711.  
  6712.     new Pingstr[16];
  6713.     if(GetPlayerPing(sid) >= 150) format(Pingstr, sizeof(Pingstr), "~r~~h~%d~l~", GetPlayerPing(sid));
  6714.     if(GetPlayerPing(sid) < 150) format(Pingstr, sizeof(Pingstr), "%d", GetPlayerPing(sid));
  6715.  
  6716.     new PLstr[16];
  6717.     if(pPacket >= 2) format(PLstr, sizeof(PLstr), "~r~~h~%.2f~l~", pPacket);
  6718.     if(pPacket < 2) format(PLstr, sizeof(PLstr), "%.1f%%", pPacket);
  6719.    
  6720.     GetPlayerHealth(sid, health);
  6721.     GetPlayerArmour(sid, armor);
  6722.     new msg[128], info[512];
  6723.     format(msg, sizeof(msg), "%s%s [%d]  %s~n~", TDColor[Player[sid][Team]], Player[sid][Name], sid, ip);
  6724.     strcat(info, msg, sizeof(info));
  6725.     format(msg, sizeof(msg), "Leben: [%.2f]  Ruestung: [%.2f]~n~", health, armor);
  6726.     strcat(info, msg, sizeof(info));
  6727.     format(msg, sizeof(msg), "FPS: [%s]  Ping: [%s]  PacketLoss: [%s]", FPSstr, Pingstr, PLstr);
  6728.     strcat(info, msg);
  6729.     new count, weaponname[24];
  6730.     new weaponid, ammo;
  6731.     for(new s=1; s < 12; s++)
  6732.     {
  6733.         GetPlayerWeaponData(sid, s, weaponid, ammo);
  6734.         if(ammo)
  6735.         {
  6736.             GetWeaponName(weaponid, weaponname, sizeof(weaponname));
  6737.             if(!count)
  6738.             {
  6739.                 format(msg, sizeof(msg), "%s: [%d]", weaponname, ammo);
  6740.             }
  6741.             else
  6742.             {
  6743.                 format(msg, sizeof(msg), "%s  %s: [%d]", msg, weaponname, ammo);
  6744.             }
  6745.             count++;
  6746.             if(count >= 2)
  6747.             {
  6748.                 strcat(info, "~n~");
  6749.                 strcat(info, msg);
  6750.                 count = 0;
  6751.             }
  6752.         }
  6753.     }
  6754.     if(count)
  6755.     {
  6756.         strcat(info, "~n~");
  6757.         strcat(info, msg);
  6758.     }
  6759.     PlayerTextDrawSetString(playerid, AInfoTD, info);
  6760. }
  6761.  
  6762. UpdateScoreTable()
  6763. {
  6764.     new
  6765.         Players[MAX_PLAYERS],
  6766.         Kills1[MAX_PLAYERS],
  6767.         Deaths1[MAX_PLAYERS],
  6768.         Float:Damage1[MAX_PLAYERS];
  6769.  
  6770.     new count;
  6771.     for(new i=0; i < MAX_PLAYERS; i++)
  6772.     {
  6773.         if(IsPlayerConnected(i))
  6774.         {
  6775.             Players[count] = i;
  6776.             Kills1[count] = Player[i][RKills];
  6777.             Deaths1[count] = Player[i][RDeaths];
  6778.             Damage1[count] = Player[i][RDamage];
  6779.             count++;
  6780.         }
  6781.     }
  6782.     new m, temp, Float:temp2;
  6783.     for(new i=0; i < 15; i++)
  6784.     {
  6785.         m = i;
  6786.         for(new j=i+1; j < count; j++)
  6787.             if((Kills1[m] < Kills1[j]) || (Kills1[m] == Kills1[j] && Deaths1[m] > Deaths1[j]))
  6788.                 m = j;
  6789.  
  6790.         temp = Players[i];
  6791.         Players[i] = Players[m];
  6792.         Players[m] = temp;
  6793.         temp = Kills1[i];
  6794.         Kills1[i] = Kills1[m];
  6795.         Kills1[m] = temp;
  6796.         temp = Deaths1[i];
  6797.         Deaths1[i] = Deaths1[m];
  6798.         Deaths1[m] = temp;
  6799.         temp2 = Damage1[i];
  6800.         Damage1[i] = Damage1[m];
  6801.         Damage1[m] = temp2;
  6802.     }
  6803.     new string[1024];
  6804.     string = "~g~~h~~h~Name~n~";
  6805.     for(new i=0; i < 15; i++)
  6806.     {
  6807.         strcat(string, "~n~", sizeof(string));
  6808.         if(i < count)
  6809.         {
  6810.             strcat(string, Player[Players[i]][Name], sizeof(string));
  6811.         }
  6812.         else
  6813.         {
  6814.             strcat(string, " ", sizeof(string));
  6815.         }
  6816.         if(i == 14)
  6817.         {
  6818.             TextDrawSetString(ScoreTableTD[2], string);
  6819.             string = "~g~~h~~h~Name~n~";
  6820.         }
  6821.     }
  6822.  
  6823.     string = "~g~~h~~h~Kills~n~";
  6824.     for(new i=0; i < 15; i++)
  6825.     {
  6826.         strcat(string, "~n~", sizeof(string));
  6827.         if(i < count)
  6828.         {
  6829.             format(string, sizeof(string), "%s%d", string, Kills1[i]);
  6830.         }
  6831.         else
  6832.         {
  6833.             strcat(string, " ", sizeof(string));
  6834.         }
  6835.         if(i == 14)
  6836.         {
  6837.             TextDrawSetString(ScoreTableTD[3], string);
  6838.             string = "~g~~h~~h~Kills~n~";
  6839.         }
  6840.     }
  6841.  
  6842.     string = "~g~~h~~h~Tode~n~";
  6843.     for(new i=0; i < 15; i++)
  6844.     {
  6845.         strcat(string, "~n~", sizeof(string));
  6846.         if(i < count)
  6847.         {
  6848.             format(string, sizeof(string), "%s%d", string, Deaths1[i]);
  6849.         }
  6850.         else
  6851.         {
  6852.             strcat(string, " ", sizeof(string));
  6853.         }
  6854.         if(i == 14)
  6855.         {
  6856.             TextDrawSetString(ScoreTableTD[4], string);
  6857.             string = "~g~~h~~h~Tode~n~";
  6858.         }
  6859.     }
  6860.  
  6861.     string = "~g~~h~~h~Schaden~n~";
  6862.     for(new i=0; i < 15; i++)
  6863.     {
  6864.         strcat(string, "~n~", sizeof(string));
  6865.         if(i < count)
  6866.         {
  6867.             format(string, sizeof(string), "%s%.2f", string, Damage1[i]);
  6868.         }
  6869.         else
  6870.         {
  6871.             strcat(string, " ", sizeof(string));
  6872.         }
  6873.         if(i == 14)
  6874.         {
  6875.             TextDrawSetString(ScoreTableTD[5], string);
  6876.             string = "~g~~h~~h~Schaden~n~";
  6877.         }
  6878.     }
  6879. }
  6880.  
  6881. RandomCheckPointCreate(playerid)
  6882. {
  6883.   new cprandom = random(sizeof rCheckPoints);
  6884.   pCheckpoint[playerid] = CreateDynamicCP(rCheckPoints[cprandom][0], rCheckPoints[cprandom][1], rCheckPoints[cprandom][2], 2.5, -1, 15, playerid, 300.0);
  6885. }
  6886.  
  6887.  
  6888. SaveOldData(playerid)
  6889. {
  6890.   new Float:Health,Float:Armour, Float:x, Float:y, Float:z, Float:a;
  6891.   GetPlayerPos(playerid, x, y, z);
  6892.   GetPlayerFacingAngle(playerid, a);
  6893.   GetPlayerHealth(playerid, Health);
  6894.   GetPlayerArmour(playerid, Armour);
  6895.   GetPlayerSkin(playerid);
  6896.   for (new i = 0; i <= 12; i++) GetPlayerWeaponData(playerid, i, pData[playerid][weapons][i], pData[playerid][ammunation][i]);
  6897.   pData[playerid][p_X] = x;
  6898.   pData[playerid][p_Y] = y;
  6899.   pData[playerid][p_Z] = z;
  6900.   pData[playerid][p_A] = a;
  6901.   pData[playerid][p_Interior] = GetPlayerInterior(playerid);
  6902.   pData[playerid][p_VirtualWorld] = GetPlayerVirtualWorld(playerid);
  6903. }
  6904.  
  6905. GiveOldData(playerid)
  6906. {
  6907.   ResetPlayerWeapons(playerid);
  6908.   for(new i=0; i < 13; i++)
  6909.   GivePlayerWeapon(playerid,pData[playerid][weapons][i], pData[playerid][ammunation][i]);
  6910.   SetPlayerPos(playerid, pData[playerid][p_X], pData[playerid][p_Y], pData[playerid][p_Z]);
  6911.   SetPlayerFacingAngle(playerid, pData[playerid][p_A]);
  6912.   SetPlayerInterior(playerid, pData[playerid][p_Interior]);
  6913.   SetPlayerVirtualWorld(playerid, pData[playerid][p_VirtualWorld]);
  6914.   GivePlayerWeapon(playerid,pData[playerid][weapons], pData[playerid][ammunation]);
  6915. }
  6916.  
  6917. CreateCPTextDraws(playerid)
  6918. {
  6919.   CheckpointTD[playerid][0] = CreatePlayerTextDraw(playerid,18.000000, 210.000000, "_");
  6920.   PlayerTextDrawBackgroundColor(playerid,CheckpointTD[playerid][0], 255);
  6921.   PlayerTextDrawFont(playerid,CheckpointTD[playerid][0], 1);
  6922.   PlayerTextDrawLetterSize(playerid,CheckpointTD[playerid][0], 0.500000, 10.000000);
  6923.   PlayerTextDrawColor(playerid,CheckpointTD[playerid][0], -1);
  6924.   PlayerTextDrawSetOutline(playerid,CheckpointTD[playerid][0], 0);
  6925.   PlayerTextDrawSetProportional(playerid,CheckpointTD[playerid][0], 1);
  6926.   PlayerTextDrawSetShadow(playerid,CheckpointTD[playerid][0], 1);
  6927.   PlayerTextDrawUseBox(playerid,CheckpointTD[playerid][0], 1);
  6928.   PlayerTextDrawBoxColor(playerid,CheckpointTD[playerid][0], 255);
  6929.   PlayerTextDrawTextSize(playerid,CheckpointTD[playerid][0], 111.000000, 0.000000);
  6930.   PlayerTextDrawSetSelectable(playerid,CheckpointTD[playerid][0], 0);
  6931.  
  6932.   CheckpointTD[playerid][1] = CreatePlayerTextDraw(playerid,19.000000, 211.000000, "__");
  6933.   PlayerTextDrawBackgroundColor(playerid,CheckpointTD[playerid][1], 255);
  6934.   PlayerTextDrawFont(playerid,CheckpointTD[playerid][1], 1);
  6935.   PlayerTextDrawLetterSize(playerid,CheckpointTD[playerid][1], 0.500000, 9.699997);
  6936.   PlayerTextDrawColor(playerid,CheckpointTD[playerid][1], -1);
  6937.   PlayerTextDrawSetOutline(playerid,CheckpointTD[playerid][1], 0);
  6938.   PlayerTextDrawSetProportional(playerid,CheckpointTD[playerid][1], 1);
  6939.   PlayerTextDrawSetShadow(playerid,CheckpointTD[playerid][1], 1);
  6940.   PlayerTextDrawUseBox(playerid,CheckpointTD[playerid][1], 1);
  6941.   PlayerTextDrawBoxColor(playerid,CheckpointTD[playerid][1], 8438015);
  6942.   PlayerTextDrawTextSize(playerid,CheckpointTD[playerid][1], 110.000000, 0.000000);
  6943.   PlayerTextDrawSetSelectable(playerid,CheckpointTD[playerid][1], 0);
  6944.  
  6945.   CheckpointTD[playerid][2] = CreatePlayerTextDraw(playerid,28.000000, 202.000000, "~r~~h~C~w~heckpoint ~r~~h~P~w~rison");
  6946.   PlayerTextDrawBackgroundColor(playerid,CheckpointTD[playerid][2], 255);
  6947.   PlayerTextDrawFont(playerid,CheckpointTD[playerid][2], 2);
  6948.   PlayerTextDrawLetterSize(playerid,CheckpointTD[playerid][2], 0.180000, 1.700000);
  6949.   PlayerTextDrawColor(playerid,CheckpointTD[playerid][2], 16711935);
  6950.   PlayerTextDrawSetOutline(playerid,CheckpointTD[playerid][2], 1);
  6951.   PlayerTextDrawSetProportional(playerid,CheckpointTD[playerid][2], 1);
  6952.   PlayerTextDrawSetSelectable(playerid,CheckpointTD[playerid][2], 0);
  6953.  
  6954.   CheckpointTD[playerid][3] = CreatePlayerTextDraw(playerid,38.000000, 265.000000, "~r~~h~C~w~heckpoints~n~  ~r~~h~a~w~bgelaufen");
  6955.   PlayerTextDrawBackgroundColor(playerid,CheckpointTD[playerid][3], 255);
  6956.   PlayerTextDrawFont(playerid,CheckpointTD[playerid][3], 2);
  6957.   PlayerTextDrawLetterSize(playerid,CheckpointTD[playerid][3], 0.180000, 1.700000);
  6958.   PlayerTextDrawColor(playerid,CheckpointTD[playerid][3], 16711935);
  6959.   PlayerTextDrawSetOutline(playerid,CheckpointTD[playerid][3], 1);
  6960.   PlayerTextDrawSetProportional(playerid,CheckpointTD[playerid][3], 1);
  6961.   PlayerTextDrawSetSelectable(playerid,CheckpointTD[playerid][3], 0);
  6962.  
  6963.   CheckpointTD[playerid][4] = CreatePlayerTextDraw(playerid,34.000000, 232.000000, "00");
  6964.   PlayerTextDrawBackgroundColor(playerid,CheckpointTD[playerid][4], 255);
  6965.   PlayerTextDrawFont(playerid,CheckpointTD[playerid][4], 2);
  6966.   PlayerTextDrawLetterSize(playerid,CheckpointTD[playerid][4], 0.479999, 2.499999);
  6967.   PlayerTextDrawColor(playerid,CheckpointTD[playerid][4], 16711935);
  6968.   PlayerTextDrawSetOutline(playerid,CheckpointTD[playerid][4], 1);
  6969.   PlayerTextDrawSetProportional(playerid,CheckpointTD[playerid][4], 1);
  6970.   PlayerTextDrawSetSelectable(playerid,CheckpointTD[playerid][4], 0);
  6971.  
  6972.   CheckpointTD[playerid][5] = CreatePlayerTextDraw(playerid,63.000000, 232.000000, "/");
  6973.   PlayerTextDrawBackgroundColor(playerid,CheckpointTD[playerid][5], 255);
  6974.   PlayerTextDrawFont(playerid,CheckpointTD[playerid][5], 2);
  6975.   PlayerTextDrawLetterSize(playerid,CheckpointTD[playerid][5], 0.479999, 2.499999);
  6976.   PlayerTextDrawColor(playerid,CheckpointTD[playerid][5], -16776961);
  6977.   PlayerTextDrawSetOutline(playerid,CheckpointTD[playerid][5], 1);
  6978.   PlayerTextDrawSetProportional(playerid,CheckpointTD[playerid][5], 1);
  6979.   PlayerTextDrawSetSelectable(playerid,CheckpointTD[playerid][5], 0);
  6980.  
  6981.   CheckpointTD[playerid][6] = CreatePlayerTextDraw(playerid,75.000000, 232.000000, "99");
  6982.   PlayerTextDrawBackgroundColor(playerid,CheckpointTD[playerid][6], 255);
  6983.   PlayerTextDrawFont(playerid,CheckpointTD[playerid][6], 2);
  6984.   PlayerTextDrawLetterSize(playerid,CheckpointTD[playerid][6], 0.479999, 2.499999);
  6985.   PlayerTextDrawColor(playerid,CheckpointTD[playerid][6], 16711935);
  6986.   PlayerTextDrawSetOutline(playerid,CheckpointTD[playerid][6], 1);
  6987.   PlayerTextDrawSetProportional(playerid,CheckpointTD[playerid][6], 1);
  6988.   PlayerTextDrawSetSelectable(playerid,CheckpointTD[playerid][6], 0);
  6989. }
  6990.  
  6991. DestroyCPTextDraws(playerid)
  6992. {
  6993.   for(new i; i < sizeof(CheckpointTD[]); i++)
  6994.   {
  6995.     PlayerTextDrawDestroy(playerid, CheckpointTD[playerid][i]);
  6996.   }
  6997.   return 1;
  6998. }
  6999.  
  7000. ShowCPTextDraws(playerid)
  7001. {
  7002.   new str[64];
  7003.   for(new i; i < sizeof(CheckpointTD[]); i++)
  7004.   {
  7005.     PlayerTextDrawShow(playerid, CheckpointTD[playerid][i]);
  7006.   }
  7007.  
  7008.   format(str, sizeof(str),"%02d", CheckPointCounter[playerid]);
  7009.   PlayerTextDrawSetString(playerid, CheckpointTD[playerid][4], str);
  7010.  
  7011.   format(str, sizeof(str),"%02d", CheckPointCounter[playerid]);
  7012.   PlayerTextDrawSetString(playerid, CheckpointTD[playerid][4], str);
  7013.  
  7014.   format(str, sizeof(str),"%02d", MaxCheckPoints[playerid]);
  7015.   PlayerTextDrawSetString(playerid, CheckpointTD[playerid][6], str);
  7016.  
  7017.   format(str, sizeof(str),"%02d", MaxCheckPoints[playerid]);
  7018.   PlayerTextDrawSetString(playerid, CheckpointTD[playerid][6], str);
  7019.   return 1;
  7020. }
  7021.  
  7022. HideCPTextDraws(playerid)
  7023. {
  7024.   for(new i; i < sizeof(CheckpointTD[]); i++)
  7025.   {
  7026.     PlayerTextDrawHide(playerid, CheckpointTD[playerid][i]);
  7027.   }
  7028.   return 1;
  7029. }
  7030.  
  7031. stock RandomRange(min, max)
  7032. {
  7033.     return (random((max + 1) - min) + min);
  7034. }
  7035.  
  7036. SyncPlayer(playerid)
  7037. {
  7038.     new Weapon[13], Ammo[13];
  7039.     for(new k = 0; k < 13; k++) GetPlayerWeaponData(playerid, k, Weapon[k], Ammo[k]);
  7040.    
  7041.     if(IsPlayerInAnyVehicle(playerid)) return 1;
  7042.     if(Player[playerid][Syncing] == true) return 1;
  7043.     if(Player[playerid][TableOnScreen] == true) return 1;
  7044.     if(EndTime < 1) return 1;
  7045.  
  7046.     Player[playerid][Syncing] = true;
  7047.     SetTimerEx("SyncInProgress", 1000, false, "i", playerid);
  7048.  
  7049.     new Float:HP[2], Float:Pos[4], Int, VirtualWorld, CurrWep;
  7050.     GetPlayerHealth(playerid, HP[0]);
  7051.     GetPlayerArmour(playerid, HP[1]);
  7052.  
  7053.     CurrWep = GetPlayerWeapon(playerid);
  7054.  
  7055.     GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  7056.     GetPlayerFacingAngle(playerid, Pos[3]);
  7057.  
  7058.     Int = GetPlayerInterior(playerid);
  7059.     VirtualWorld = GetPlayerVirtualWorld(playerid);
  7060.  
  7061.     ClearAnimations(playerid);
  7062.  
  7063.     SetSpawnInfo(playerid, GetPlayerTeam(playerid), GetPlayerSkin(playerid), Pos[0], Pos[1], Pos[2]-0.4, Pos[3], 0, 0, 0, 0, 0, 0);
  7064.  
  7065.     SpawnPlayerEx(playerid);
  7066.  
  7067.     SetPlayerHealth(playerid, HP[0]);
  7068.     SetPlayerArmour(playerid, HP[1]);
  7069.  
  7070.     SetPlayerInterior(playerid, Int);
  7071.     SetPlayerVirtualWorld(playerid, VirtualWorld);
  7072.  
  7073. //  SetPlayerSpawn(playerid);
  7074.    
  7075.     SetPlayerAmmo(playerid, DEAGLE, Ammo[2]); //deagle
  7076.     SetPlayerAmmo(playerid, Player[playerid][Gun2], Ammo[3]); //shotgun
  7077.     SetPlayerAmmo(playerid, Player[playerid][Gun3], Ammo[4]); //ak
  7078.     SetPlayerAmmo(playerid, Player[playerid][Gun4], Ammo[5]); //mp5
  7079.     SetPlayerAmmo(playerid, Player[playerid][Gun5], Ammo[6]); //sniper
  7080.     SetPlayerAmmo(playerid, Player[playerid][Gun6], Ammo[8]); //grenade
  7081.    
  7082.     SetPlayerArmedWeapon(playerid, CurrWep);
  7083.  
  7084.     return 1;
  7085. }
  7086.  
  7087. forward SyncInProgress(playerid);
  7088. public SyncInProgress(playerid) {
  7089.     Player[playerid][Syncing] = false;
  7090. }
  7091.  
  7092. stock ReturnPlayerID(l_PlayerName[]) //by Jeffry
  7093. {
  7094.   new l_name[MAX_PLAYER_NAME];
  7095.   for(new i = 0; i < MAX_PLAYERS; i++)
  7096.   {
  7097.     if(GetPlayerName(i, l_name, MAX_PLAYER_NAME))
  7098.     {
  7099.       if(!strcmp(l_name,l_PlayerName, true)) return i;
  7100.     }
  7101.   }
  7102.   for(new i = 0; i < MAX_PLAYERS; i++)
  7103.   {
  7104.     if(GetPlayerName(i, l_name, MAX_PLAYER_NAME))
  7105.     {
  7106.       if(strfind(l_name,l_PlayerName,true)!=-1) return i;
  7107.     }
  7108.   }
  7109.   return INVALID_PLAYER_ID;
  7110. }
  7111.  
  7112. UpdateTDs(playerid)
  7113. {
  7114.     HideGunsTDs(playerid);
  7115.  
  7116.     if(Player[playerid][Gun2] == SHOTGUN)
  7117.     {
  7118.         PlayerTextDrawBackgroundColor(playerid, G2TD, 0x00FF0022);
  7119.     } else {
  7120.         PlayerTextDrawBackgroundColor(playerid, G2TD, 0xFFFFFF22);
  7121.     }
  7122.  
  7123.     if(Player[playerid][Gun2] == SPAS)
  7124.     {
  7125.         PlayerTextDrawBackgroundColor(playerid, G2bTD, 0x00FF0022);
  7126.     } else {
  7127.         if(Player[playerid][UnlockedSpas] == true)
  7128.         {
  7129.             PlayerTextDrawBackgroundColor(playerid, G2bTD, 0xFFFFFF22);
  7130.         } else {
  7131.             PlayerTextDrawBackgroundColor(playerid, G2bTD, 0xFF000022);
  7132.         }
  7133.     }
  7134.  
  7135.     if(Player[playerid][Gun3] == 0)
  7136.     {
  7137.         PlayerTextDrawBackgroundColor(playerid, G30TD, 0x00FF0022);
  7138.     } else {
  7139.         PlayerTextDrawBackgroundColor(playerid, G30TD, 0xFFFFFF22);
  7140.     }
  7141.  
  7142.     if(Player[playerid][Gun3] == AK47)
  7143.     {
  7144.         PlayerTextDrawBackgroundColor(playerid, G3TD, 0x00FF0022);
  7145.     } else {
  7146.         if(Player[playerid][UnlockedAK47] == true)
  7147.         {
  7148.             PlayerTextDrawBackgroundColor(playerid, G3TD, 0xFFFFFF22);
  7149.         } else {
  7150.             PlayerTextDrawBackgroundColor(playerid, G3TD, 0xFF000022);
  7151.         }
  7152.     }
  7153.  
  7154.     if(Player[playerid][Gun3] == M4)
  7155.     {
  7156.         PlayerTextDrawBackgroundColor(playerid, G3bTD, 0x00FF0022);
  7157.     } else {
  7158.         if(Player[playerid][UnlockedM4] == true)
  7159.         {
  7160.             PlayerTextDrawBackgroundColor(playerid, G3bTD, 0xFFFFFF22);
  7161.         } else {
  7162.             PlayerTextDrawBackgroundColor(playerid, G3bTD, 0xFF000022);
  7163.         }
  7164.     }
  7165.  
  7166.     if(Player[playerid][Gun4] == 0)
  7167.     {
  7168.         PlayerTextDrawBackgroundColor(playerid, G40TD, 0x00FF0022);
  7169.     } else {
  7170.         PlayerTextDrawBackgroundColor(playerid, G40TD, 0xFFFFFF22);
  7171.     }
  7172.  
  7173.     if(Player[playerid][Gun4] == MP5)
  7174.     {
  7175.         PlayerTextDrawBackgroundColor(playerid, G4TD, 0x00FF0022);
  7176.     } else {
  7177.         if(Player[playerid][UnlockedMP5] == true)
  7178.         {
  7179.             PlayerTextDrawBackgroundColor(playerid, G4TD, 0xFFFFFF22);
  7180.         } else {
  7181.             PlayerTextDrawBackgroundColor(playerid, G4TD, 0xFF000022);
  7182.         }
  7183.     }
  7184.  
  7185.     if(Player[playerid][Gun5] == RIFLE)
  7186.     {
  7187.         PlayerTextDrawBackgroundColor(playerid, G5TD, 0x00FF0022);
  7188.     } else {
  7189.         PlayerTextDrawBackgroundColor(playerid, G5TD, 0xFFFFFF22);
  7190.     }
  7191.  
  7192.     if(Player[playerid][Gun5] == SNIPER)
  7193.     {
  7194.         PlayerTextDrawBackgroundColor(playerid, G5bTD, 0x00FF0022);
  7195.     } else {
  7196.         if(Player[playerid][UnlockedSniper] == true)
  7197.         {
  7198.             PlayerTextDrawBackgroundColor(playerid, G5bTD, 0xFFFFFF22);
  7199.         } else {
  7200.             PlayerTextDrawBackgroundColor(playerid, G5bTD, 0xFF000022);
  7201.         }
  7202.     }
  7203.  
  7204.     if(Player[playerid][Gun6] == 0)
  7205.     {
  7206.         PlayerTextDrawBackgroundColor(playerid, G60TD, 0x00FF0022);
  7207.     } else {
  7208.         PlayerTextDrawBackgroundColor(playerid, G60TD, 0xFFFFFF22);
  7209.     }
  7210.  
  7211.     if(Player[playerid][Gun6] == GRENADE)
  7212.     {
  7213.         PlayerTextDrawBackgroundColor(playerid, G6TD, 0x00FF0022);
  7214.     } else {
  7215.         if(Player[playerid][UnlockedGrenade] == true)
  7216.         {
  7217.             PlayerTextDrawBackgroundColor(playerid, G6TD, 0xFFFFFF22);
  7218.         } else {
  7219.             PlayerTextDrawBackgroundColor(playerid, G6TD, 0xFF000022);
  7220.         }
  7221.     }
  7222.  
  7223.     ShowGunsTDs(playerid);
  7224. }
  7225.  
  7226. LoadGunsTDs(playerid)
  7227. {
  7228.     SelectTextDraw(playerid, 0xFFFFFFFF);
  7229.  
  7230.     GboxTD = CreatePlayerTextDraw(playerid, 330.0000000, 90.000000, "Waffen_Auswahl_Menu~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~");
  7231.     PlayerTextDrawAlignment(playerid, GboxTD, 2);
  7232.     PlayerTextDrawBackgroundColor(playerid, GboxTD, 255);
  7233.     PlayerTextDrawFont(playerid, GboxTD, 2);
  7234.     PlayerTextDrawLetterSize(playerid, GboxTD, 0.500000, 1.800000);
  7235.     PlayerTextDrawColor(playerid, GboxTD, 8454143);
  7236.     PlayerTextDrawSetOutline(playerid, GboxTD, 0);
  7237.     PlayerTextDrawSetProportional(playerid, GboxTD, 1);
  7238.     PlayerTextDrawSetShadow(playerid, GboxTD, 1);
  7239.     PlayerTextDrawUseBox(playerid, GboxTD, 1);
  7240.     PlayerTextDrawBoxColor(playerid, GboxTD, 8453896);
  7241.     PlayerTextDrawTextSize(playerid, GboxTD, 0.000000, -390.000000);
  7242.  
  7243.  
  7244.     G1TD = CreatePlayerTextDraw(playerid, 370, 126.0, "_");
  7245.     PlayerTextDrawFont(playerid, G1TD, 5);
  7246.     PlayerTextDrawTextSize(playerid, G1TD, 70.0, 45.0);
  7247.     PlayerTextDrawUseBox(playerid, G1TD, 1);
  7248.     PlayerTextDrawBackgroundColor(playerid, G1TD, 0x00FF0022);
  7249.     PlayerTextDrawSetPreviewRot(playerid, G1TD, 0.0, 30.0, 225.0, 0.7);
  7250.     PlayerTextDrawSetPreviewModel(playerid, G1TD, 348); //deagle
  7251.     PlayerTextDrawSetSelectable(playerid, PlayerText:G1TD, 1);
  7252.  
  7253.  
  7254.     G2TD = CreatePlayerTextDraw(playerid, 370, 174.0, "_");
  7255.     PlayerTextDrawFont(playerid, G2TD, 5);
  7256.     PlayerTextDrawTextSize(playerid, G2TD, 70.0, 45.0);
  7257.     PlayerTextDrawUseBox(playerid, G2TD, 1);
  7258.     if(Player[playerid][Gun2] == SHOTGUN)
  7259.     {
  7260.         PlayerTextDrawBackgroundColor(playerid, G2TD, 0x00FF0022);
  7261.     } else {
  7262.         PlayerTextDrawBackgroundColor(playerid, G2TD, 0xFFFFFF22);
  7263.     }
  7264.     PlayerTextDrawSetPreviewRot(playerid, G2TD, 0.0, 30.0, 225.0, 0.9);
  7265.     PlayerTextDrawSetPreviewModel(playerid, G2TD, 349); //shotgun
  7266.     PlayerTextDrawSetSelectable(playerid, PlayerText:G2TD, 1);
  7267.  
  7268.  
  7269.     G2bTD = CreatePlayerTextDraw(playerid, 370.0 + 74.0, 174.0, "_");
  7270.     PlayerTextDrawFont(playerid, G2bTD, 5);
  7271.     PlayerTextDrawTextSize(playerid, G2bTD, 70.0, 45.0);
  7272.     PlayerTextDrawUseBox(playerid, G2bTD, 1);
  7273.     if(Player[playerid][Gun2] == SPAS)
  7274.     {
  7275.         PlayerTextDrawBackgroundColor(playerid, G2bTD, 0x00FF0022);
  7276.     } else {
  7277.         if(Player[playerid][UnlockedSpas] == true)
  7278.         {
  7279.             PlayerTextDrawBackgroundColor(playerid, G2bTD, 0xFFFFFF22);
  7280.         } else {
  7281.             PlayerTextDrawBackgroundColor(playerid, G2bTD, 0xFF000022);
  7282.         }
  7283.     }
  7284.     PlayerTextDrawSetPreviewRot(playerid, G2bTD, 0.0, 30.0, 225.0, 0.9);
  7285.     PlayerTextDrawSetPreviewModel(playerid, G2bTD, 351); //spas
  7286.     PlayerTextDrawSetSelectable(playerid, PlayerText:G2bTD, 1);
  7287.  
  7288.  
  7289.     G30TD = CreatePlayerTextDraw(playerid, 370 - 74.0, 222.0, "_");
  7290.     PlayerTextDrawFont(playerid, G30TD, 5);
  7291.     PlayerTextDrawTextSize(playerid, G30TD, 70.0, 45.0);
  7292.     PlayerTextDrawUseBox(playerid, G30TD, 1);
  7293.     if(Player[playerid][Gun3] == 0)
  7294.     {
  7295.         PlayerTextDrawBackgroundColor(playerid, G30TD, 0x00FF0022);
  7296.     } else {
  7297.         PlayerTextDrawBackgroundColor(playerid, G30TD, 0xFFFFFF22);
  7298.     }
  7299.     PlayerTextDrawSetPreviewRot(playerid, G30TD, 0.0, 30.0, 225.0, 20.0);
  7300.     PlayerTextDrawSetPreviewModel(playerid, G30TD, 331); //aknone
  7301.     PlayerTextDrawSetSelectable(playerid, PlayerText:G30TD, 1);
  7302.  
  7303.  
  7304.     G3TD = CreatePlayerTextDraw(playerid, 370, 222.0, "_");
  7305.     PlayerTextDrawFont(playerid, G3TD, 5);
  7306.     PlayerTextDrawTextSize(playerid, G3TD, 70.0, 45.0);
  7307.     PlayerTextDrawUseBox(playerid, G3TD, 1);
  7308.     if(Player[playerid][Gun3] == AK47)
  7309.     {
  7310.         PlayerTextDrawBackgroundColor(playerid, G3TD, 0x00FF0022);
  7311.     } else {
  7312.         if(Player[playerid][UnlockedAK47] == true)
  7313.         {
  7314.             PlayerTextDrawBackgroundColor(playerid, G3TD, 0xFFFFFF22);
  7315.         } else {
  7316.             PlayerTextDrawBackgroundColor(playerid, G3TD, 0xFF000022);
  7317.         }
  7318.     }
  7319.     PlayerTextDrawSetPreviewRot(playerid, G3TD, 0.0, 30.0, 225.0, 1.0);
  7320.     PlayerTextDrawSetPreviewModel(playerid, G3TD, 355); //ak
  7321.     PlayerTextDrawSetSelectable(playerid, PlayerText:G3TD, 1);
  7322.  
  7323.  
  7324.     G3bTD = CreatePlayerTextDraw(playerid, 370.0 + 74.0, 222.0, "_");
  7325.     PlayerTextDrawFont(playerid, G3bTD, 5);
  7326.     PlayerTextDrawTextSize(playerid, G3bTD, 70.0, 45.0);
  7327.     PlayerTextDrawUseBox(playerid, G3bTD, 1);
  7328.     if(Player[playerid][Gun3] == M4)
  7329.     {
  7330.         PlayerTextDrawBackgroundColor(playerid, G3bTD, 0x00FF0022);
  7331.     } else {
  7332.         if(Player[playerid][UnlockedM4] == true)
  7333.         {
  7334.             PlayerTextDrawBackgroundColor(playerid, G3bTD, 0xFFFFFF22);
  7335.         } else {
  7336.             PlayerTextDrawBackgroundColor(playerid, G3bTD, 0xFF000022);
  7337.         }
  7338.     }
  7339.     PlayerTextDrawSetPreviewRot(playerid, G3bTD, 0.0, 30.0, 225.0, 1.0);
  7340.     PlayerTextDrawSetPreviewModel(playerid, G3bTD, 356); //m4
  7341.     PlayerTextDrawSetSelectable(playerid, PlayerText:G3bTD, 1);
  7342.  
  7343.  
  7344.     G40TD = CreatePlayerTextDraw(playerid, 370 - 74.0, 270.0, "_");
  7345.     PlayerTextDrawFont(playerid, G40TD, 5);
  7346.     PlayerTextDrawTextSize(playerid, G40TD, 70.0, 45.0);
  7347.     PlayerTextDrawUseBox(playerid, G40TD, 1);
  7348.     if(Player[playerid][Gun4] == 0)
  7349.     {
  7350.         PlayerTextDrawBackgroundColor(playerid, G40TD, 0x00FF0022);
  7351.     } else {
  7352.         PlayerTextDrawBackgroundColor(playerid, G40TD, 0xFFFFFF22);
  7353.     }
  7354.     PlayerTextDrawSetPreviewRot(playerid, G40TD, 0.0, 30.0, 225.0, 20.0);
  7355.     PlayerTextDrawSetPreviewModel(playerid, G40TD, 331); //mp5none
  7356.     PlayerTextDrawSetSelectable(playerid, PlayerText:G40TD, 1);
  7357.  
  7358.  
  7359.     G4TD = CreatePlayerTextDraw(playerid, 370, 270.0, "_");
  7360.     PlayerTextDrawFont(playerid, G4TD, 5);
  7361.     PlayerTextDrawTextSize(playerid, G4TD, 70.0, 45.0);
  7362.     PlayerTextDrawUseBox(playerid, G4TD, 1);
  7363.     if(Player[playerid][Gun4] == MP5)
  7364.     {
  7365.         PlayerTextDrawBackgroundColor(playerid, G4TD, 0x00FF0022);
  7366.     } else {
  7367.         if(Player[playerid][UnlockedMP5] == true)
  7368.         {
  7369.             PlayerTextDrawBackgroundColor(playerid, G4TD, 0xFFFFFF22);
  7370.         } else {
  7371.             PlayerTextDrawBackgroundColor(playerid, G4TD, 0xFF000022);
  7372.         }
  7373.     }
  7374.     PlayerTextDrawSetPreviewRot(playerid, G4TD, 0.0, 30.0, 225.0, 0.9);
  7375.     PlayerTextDrawSetPreviewModel(playerid, G4TD, 353); //mp5
  7376.     PlayerTextDrawSetSelectable(playerid, PlayerText:G4TD, 1);
  7377.  
  7378.  
  7379.     G5TD = CreatePlayerTextDraw(playerid, 370, 318.0, "_");
  7380.     PlayerTextDrawFont(playerid, G5TD, 5);
  7381.     PlayerTextDrawTextSize(playerid, G5TD, 70.0, 45.0);
  7382.     PlayerTextDrawUseBox(playerid, G5TD, 1);
  7383.     if(Player[playerid][Gun5] == RIFLE)
  7384.     {
  7385.         PlayerTextDrawBackgroundColor(playerid, G5TD, 0x00FF0022);
  7386.     } else {
  7387.         PlayerTextDrawBackgroundColor(playerid, G5TD, 0xFFFFFF22);
  7388.     }
  7389.     PlayerTextDrawSetPreviewRot(playerid, G5TD, 0.0, 30.0, 225.0, 1.0);
  7390.     PlayerTextDrawSetPreviewModel(playerid, G5TD, 357); //rifle
  7391.     PlayerTextDrawSetSelectable(playerid, PlayerText:G5TD, 1);
  7392.  
  7393.  
  7394.     G5bTD = CreatePlayerTextDraw(playerid, 370.0 + 74.0, 318.0, "_");
  7395.     PlayerTextDrawFont(playerid, G5bTD, 5);
  7396.     PlayerTextDrawTextSize(playerid, G5bTD, 70.0, 45.0);
  7397.     PlayerTextDrawUseBox(playerid, G5bTD, 1);
  7398.     if(Player[playerid][Gun5] == SNIPER)
  7399.     {
  7400.         PlayerTextDrawBackgroundColor(playerid, G5bTD, 0x00FF0022);
  7401.     } else {
  7402.         if(Player[playerid][UnlockedSniper] == true)
  7403.         {
  7404.             PlayerTextDrawBackgroundColor(playerid, G5bTD, 0xFFFFFF22);
  7405.         } else {
  7406.             PlayerTextDrawBackgroundColor(playerid, G5bTD, 0xFF000022);
  7407.         }
  7408.     }
  7409.     PlayerTextDrawSetPreviewRot(playerid, G5bTD, 0.0, 30.0, 225.0, 1.0);
  7410.     PlayerTextDrawSetPreviewModel(playerid, G5bTD, 358); //sniper
  7411.     PlayerTextDrawSetSelectable(playerid, PlayerText:G5bTD, 1);
  7412.  
  7413.  
  7414.     G60TD = CreatePlayerTextDraw(playerid, 370 - 74.0, 366.0, "_");
  7415.     PlayerTextDrawFont(playerid, G60TD, 5);
  7416.     PlayerTextDrawTextSize(playerid, G60TD, 70.0, 45.0);
  7417.     PlayerTextDrawUseBox(playerid, G60TD, 1);
  7418.     if(Player[playerid][Gun6] == 0)
  7419.     {
  7420.         PlayerTextDrawBackgroundColor(playerid, G60TD, 0x00FF0022);
  7421.     } else {
  7422.         PlayerTextDrawBackgroundColor(playerid, G60TD, 0xFFFFFF22);
  7423.     }
  7424.     PlayerTextDrawSetPreviewRot(playerid, G60TD, 0.0, 30.0, 225.0, 20.0);
  7425.     PlayerTextDrawSetPreviewModel(playerid, G60TD, 331); //grenadenone
  7426.     PlayerTextDrawSetSelectable(playerid, PlayerText:G60TD, 1);
  7427.  
  7428.  
  7429.     G6TD = CreatePlayerTextDraw(playerid, 370, 366.0, "_");
  7430.     PlayerTextDrawFont(playerid, G6TD, 5);
  7431.     PlayerTextDrawTextSize(playerid, G6TD, 70.0, 45.0);
  7432.     PlayerTextDrawUseBox(playerid, G6TD, 1);
  7433.     if(Player[playerid][Gun6] == GRENADE)
  7434.     {
  7435.         PlayerTextDrawBackgroundColor(playerid, G6TD, 0x00FF0022);
  7436.     } else {
  7437.         if(Player[playerid][UnlockedGrenade] == true)
  7438.         {
  7439.             PlayerTextDrawBackgroundColor(playerid, G6TD, 0xFFFFFF22);
  7440.         } else {
  7441.             PlayerTextDrawBackgroundColor(playerid, G6TD, 0xFF000022);
  7442.         }
  7443.     }
  7444.     PlayerTextDrawSetPreviewRot(playerid, G6TD, 0.0, 30.0, 225.0, 0.9);
  7445.     PlayerTextDrawSetPreviewModel(playerid, G6TD, 342); //grenade
  7446.     PlayerTextDrawSetSelectable(playerid, PlayerText:G6TD, 1);
  7447.  
  7448.  
  7449.  
  7450.     GunTypes = CreatePlayerTextDraw(playerid, 167.000000 - 20, 153.000000, "Primaer~n~~n~~n~Sekundaer~n~~n~~n~Dritt~n~~n~~n~Kurze Distanz~n~~n~~n~Grosse Distanz~n~~n~~n~Werfbar");
  7451.     PlayerTextDrawBackgroundColor(playerid, GunTypes, 255);
  7452.     PlayerTextDrawFont(playerid, GunTypes, 2);
  7453.     PlayerTextDrawLetterSize(playerid, GunTypes, 0.400000, 1.800000);
  7454.     PlayerTextDrawColor(playerid, GunTypes, -1);
  7455.     PlayerTextDrawSetOutline(playerid, GunTypes, 0);
  7456.     PlayerTextDrawSetProportional(playerid, GunTypes, 1);
  7457.     PlayerTextDrawSetShadow(playerid, GunTypes, 1);
  7458.  
  7459.     GunNames1 = CreatePlayerTextDraw(playerid, 385.000000 + 20, 153.000000, "Deagle~n~~n~~n~Shotgun~n~~n~~n~AK47~n~~n~~n~MP5~n~~n~~n~Rifle~n~~n~~n~Grenade");
  7460.     PlayerTextDrawAlignment(playerid, GunNames1, 2);
  7461.     PlayerTextDrawBackgroundColor(playerid, GunNames1, 255);
  7462.     PlayerTextDrawFont(playerid, GunNames1, 1);
  7463.     PlayerTextDrawLetterSize(playerid, GunNames1, 0.400000, 1.800000);
  7464.     PlayerTextDrawColor(playerid, GunNames1, -1);
  7465.     PlayerTextDrawSetOutline(playerid, GunNames1, 0);
  7466.     PlayerTextDrawSetProportional(playerid, GunNames1, 1);
  7467.     PlayerTextDrawSetShadow(playerid, GunNames1, 1);
  7468.  
  7469.     GunNames2 = CreatePlayerTextDraw(playerid, 459.000000 + 20, 202.000000, "Spas~n~~n~~n~M4~n~~n~~n~~n~~n~~n~Sniper");
  7470.     PlayerTextDrawAlignment(playerid, GunNames2, 2);
  7471.     PlayerTextDrawBackgroundColor(playerid, GunNames2, 255);
  7472.     PlayerTextDrawFont(playerid, GunNames2, 1);
  7473.     PlayerTextDrawLetterSize(playerid, GunNames2, 0.400000, 1.800000);
  7474.     PlayerTextDrawColor(playerid, GunNames2, -1);
  7475.     PlayerTextDrawSetOutline(playerid, GunNames2, 0);
  7476.     PlayerTextDrawSetProportional(playerid, GunNames2, 1);
  7477.     PlayerTextDrawSetShadow(playerid, GunNames2, 1);
  7478.  
  7479.     GunNames3 = CreatePlayerTextDraw(playerid, 311.000000 + 20, 250.000000, "Keine~n~~n~~n~Keine~n~~n~~n~~n~~n~~n~Keine");
  7480.     PlayerTextDrawAlignment(playerid, GunNames3, 2);
  7481.     PlayerTextDrawBackgroundColor(playerid, GunNames3, 255);
  7482.     PlayerTextDrawFont(playerid, GunNames3, 1);
  7483.     PlayerTextDrawLetterSize(playerid, GunNames3, 0.400000, 1.800000);
  7484.     PlayerTextDrawColor(playerid, GunNames3, -1);
  7485.     PlayerTextDrawSetOutline(playerid, GunNames3, 0);
  7486.     PlayerTextDrawSetProportional(playerid, GunNames3, 1);
  7487.     PlayerTextDrawSetShadow(playerid, GunNames3, 1);
  7488.  
  7489.     ExitTD = CreatePlayerTextDraw(playerid, 581.000000, 371.000000, "Auswahl verlassen");
  7490.     PlayerTextDrawAlignment(playerid, ExitTD, 2);
  7491.     PlayerTextDrawBackgroundColor(playerid, ExitTD, 255);
  7492.     PlayerTextDrawFont(playerid, ExitTD, 2);
  7493.     PlayerTextDrawLetterSize(playerid, ExitTD, 0.450000, 2.000000);
  7494.     PlayerTextDrawColor(playerid, ExitTD, -1);
  7495.     PlayerTextDrawSetOutline(playerid, ExitTD, 0);
  7496.     PlayerTextDrawSetProportional(playerid, ExitTD, 1);
  7497.     PlayerTextDrawSetShadow(playerid, ExitTD, 1);
  7498.     PlayerTextDrawUseBox(playerid, ExitTD, 1);
  7499.     PlayerTextDrawBoxColor(playerid, ExitTD, 0x0080FF22);
  7500.     PlayerTextDrawBackgroundColor(playerid, ExitTD, 0x0080FF22);
  7501.     PlayerTextDrawTextSize(playerid, ExitTD, 70.000000, 105.000000);
  7502.     PlayerTextDrawSetSelectable(playerid, PlayerText:ExitTD, 1);
  7503.  
  7504. }
  7505.  
  7506.  
  7507.  
  7508. HideGunsTDs(playerid)
  7509. {
  7510.     PlayerTextDrawHide(playerid, GboxTD);
  7511.     PlayerTextDrawHide(playerid, GunTypes);
  7512.     PlayerTextDrawHide(playerid, GunNames1);
  7513.     PlayerTextDrawHide(playerid, GunNames2);
  7514.     PlayerTextDrawHide(playerid, GunNames3);
  7515.     PlayerTextDrawHide(playerid, ExitTD);
  7516.     PlayerTextDrawHide(playerid, G1TD);
  7517.     PlayerTextDrawHide(playerid, G2TD);
  7518.     PlayerTextDrawHide(playerid, G2bTD);
  7519.     PlayerTextDrawHide(playerid, G30TD);
  7520.     PlayerTextDrawHide(playerid, G3TD);
  7521.     PlayerTextDrawHide(playerid, G3bTD);
  7522.     PlayerTextDrawHide(playerid, G40TD);
  7523.     PlayerTextDrawHide(playerid, G4TD);
  7524.     PlayerTextDrawHide(playerid, G5TD);
  7525.     PlayerTextDrawHide(playerid, G5bTD);
  7526.     PlayerTextDrawHide(playerid, G60TD);
  7527.     PlayerTextDrawHide(playerid, G6TD);
  7528. }
  7529.  
  7530. stock stringContainsIP(const szStr[], bool:fixedSeparation = false, bool:ignoreNegatives = false, bool:ranges = true) // bool:ipMustHavePort = true
  7531. {
  7532.     new
  7533.         i = 0, ch, lastCh, len = strlen(szStr), trueIPInts = 0, bool:isNumNegative = false, bool:numIsValid = true, // Invalid numbers are 1-1
  7534.         numberFound = -1, numLen = 0, numStr[5], numSize = sizeof(numStr),
  7535.         lastSpacingPos = -1, numSpacingDiff, numLastSpacingDiff, numSpacingDiffCount // -225\0 (4 len)
  7536.     ;
  7537.     while(i <= len)
  7538.     {
  7539.         lastCh = ch;
  7540.         ch = szStr[i];
  7541.         if(ch >= '0' && ch <= '9' || (ranges == true && ch == '*')) {
  7542.             if(numIsValid && numLen < numSize) {
  7543.                 if(lastCh == '-') {
  7544.                     if(numLen == 0 && ignoreNegatives == false) {
  7545.                         isNumNegative = true;
  7546.                     }
  7547.                     else if(numLen > 0) {
  7548.                         numIsValid = false;
  7549.                     }
  7550.                 }
  7551.                 numberFound = strval(numStr);
  7552.                 if(numLen == (3 + _:isNumNegative) && !(numberFound >= -255 && numberFound <= 255)) { // IP Num is valid up to 4 characters.. -255
  7553.                     for(numLen = 3; numLen > 0; numLen--) {
  7554.                         numStr[numLen] = EOS;
  7555.                     }
  7556.                 }
  7557.                 else if(lastCh == '-' && ignoreNegatives) {
  7558.                     i++;
  7559.                     continue;
  7560.                 } else {
  7561.                     if(numLen == 0 && numIsValid == true && isNumNegative == true && lastCh == '-') {
  7562.                         numStr[numLen++] = lastCh;
  7563.                     }
  7564.                     numStr[numLen++] = ch;
  7565.                 }
  7566.             }
  7567.         } else {
  7568.             if(numLen && numIsValid) {
  7569.                 numberFound = strval(numStr);
  7570.                 if(numberFound >= -255 && numberFound <= 255) {
  7571.                     if(fixedSeparation) {
  7572.                         if(lastSpacingPos != -1) {
  7573.                             numLastSpacingDiff = numSpacingDiff;
  7574.                             numSpacingDiff = i - lastSpacingPos - numLen;
  7575.                             if(trueIPInts == 1 || numSpacingDiff == numLastSpacingDiff) {
  7576.                                 ++numSpacingDiffCount;
  7577.                             }
  7578.                         }
  7579.                         lastSpacingPos = i;
  7580.                     }
  7581.                     if(++trueIPInts >= 4) {
  7582.                         break;
  7583.                     }
  7584.                 }
  7585.                 for(numLen = 3; numLen > 0; numLen--) {
  7586.                     numStr[numLen] = EOS;
  7587.                 }
  7588.                 isNumNegative = false;
  7589.             } else {
  7590.                 numIsValid = true;
  7591.             }
  7592.         }
  7593.         i++;
  7594.     }
  7595.     if(fixedSeparation == true && numSpacingDiffCount < 3) {
  7596.         return 0;
  7597.     }
  7598.     return (trueIPInts >= 4);
  7599. }
  7600.  
  7601. ShowGunsTDs(playerid)
  7602. {
  7603.     PlayerTextDrawShow(playerid, GboxTD);
  7604.     PlayerTextDrawShow(playerid, GunTypes);
  7605.     PlayerTextDrawShow(playerid, GunNames1);
  7606.     PlayerTextDrawShow(playerid, GunNames2);
  7607.     PlayerTextDrawShow(playerid, GunNames3);
  7608.     PlayerTextDrawShow(playerid, ExitTD);
  7609.     PlayerTextDrawShow(playerid, G1TD);
  7610.     PlayerTextDrawShow(playerid, G2TD);
  7611.     PlayerTextDrawShow(playerid, G2bTD);
  7612.     PlayerTextDrawShow(playerid, G30TD);
  7613.     PlayerTextDrawShow(playerid, G3TD);
  7614.     PlayerTextDrawShow(playerid, G3bTD);
  7615.     PlayerTextDrawShow(playerid, G40TD);
  7616.     PlayerTextDrawShow(playerid, G4TD);
  7617.     PlayerTextDrawShow(playerid, G5TD);
  7618.     PlayerTextDrawShow(playerid, G5bTD);
  7619.     PlayerTextDrawShow(playerid, G60TD);
  7620.     PlayerTextDrawShow(playerid, G6TD);
  7621. }
  7622.  
  7623. stock SpawnPlayerEx(playerid)
  7624. {
  7625.     if(Player[playerid][Spawned] == true)
  7626.     {
  7627.         if(IsPlayerInAnyVehicle(playerid)) RemovePlayerFromVehicle(playerid);
  7628.         SetPlayerPos(playerid, 0, 0, 0);
  7629.         SpawnPlayer(playerid);
  7630.     }
  7631.     return 1;
  7632. }
  7633.  
  7634. stock sscanf(string[], format[], {Float,_}:...)
  7635. {
  7636.     #if defined isnull
  7637.         if (isnull(string))
  7638.     #else
  7639.         if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  7640.     #endif
  7641.         {
  7642.             return format[0];
  7643.         }
  7644.     #pragma tabsize 4
  7645.     new
  7646.         formatPos = 0,
  7647.         stringPos = 0,
  7648.         paramPos = 2,
  7649.         paramCount = numargs(),
  7650.         delim = ' ';
  7651.     while (string[stringPos] && string[stringPos] <= ' ')
  7652.     {
  7653.         stringPos++;
  7654.     }
  7655.     while (paramPos < paramCount && string[stringPos])
  7656.     {
  7657.         switch (format[formatPos++])
  7658.         {
  7659.             case '\0':
  7660.             {
  7661.                 return 0;
  7662.             }
  7663.             case 'i', 'd':
  7664.             {
  7665.                 new
  7666.                     neg = 1,
  7667.                     num = 0,
  7668.                     ch = string[stringPos];
  7669.                 if (ch == '-')
  7670.                 {
  7671.                     neg = -1;
  7672.                     ch = string[++stringPos];
  7673.                 }
  7674.                 do
  7675.                 {
  7676.                     stringPos++;
  7677.                     if ('0' <= ch <= '9')
  7678.                     {
  7679.                         num = (num * 10) + (ch - '0');
  7680.                     }
  7681.                     else
  7682.                     {
  7683.                         return -1;
  7684.                     }
  7685.                 }
  7686.                 while ((ch = string[stringPos]) > ' ' && ch != delim);
  7687.                 setarg(paramPos, 0, num * neg);
  7688.             }
  7689.             case 'h', 'x':
  7690.             {
  7691.                 new
  7692.                     num = 0,
  7693.                     ch = string[stringPos];
  7694.                 do
  7695.                 {
  7696.                     stringPos++;
  7697.                     switch (ch)
  7698.                     {
  7699.                         case 'x', 'X':
  7700.                         {
  7701.                             num = 0;
  7702.                             continue;
  7703.                         }
  7704.                         case '0' .. '9':
  7705.                         {
  7706.                             num = (num << 4) | (ch - '0');
  7707.                         }
  7708.                         case 'a' .. 'f':
  7709.                         {
  7710.                             num = (num << 4) | (ch - ('a' - 10));
  7711.                         }
  7712.                         case 'A' .. 'F':
  7713.                         {
  7714.                             num = (num << 4) | (ch - ('A' - 10));
  7715.                         }
  7716.                         default:
  7717.                         {
  7718.                             return -1;
  7719.                         }
  7720.                     }
  7721.                 }
  7722.                 while ((ch = string[stringPos]) > ' ' && ch != delim);
  7723.                 setarg(paramPos, 0, num);
  7724.             }
  7725.             case 'c':
  7726.             {
  7727.                 setarg(paramPos, 0, string[stringPos++]);
  7728.             }
  7729.             case 'f':
  7730.             {
  7731.  
  7732.                 new changestr[256], changepos = 0, strpos = stringPos;
  7733.                 while(changepos < 16 && string[strpos] && string[strpos] != delim)
  7734.                 {
  7735.                     changestr[changepos++] = string[strpos++];
  7736.                     }
  7737.                 changestr[changepos] = '\0';
  7738.                 setarg(paramPos,0,_:floatstr(changestr));
  7739.             }
  7740.             case 'p':
  7741.             {
  7742.                 delim = format[formatPos++];
  7743.                 continue;
  7744.             }
  7745.             case '\'':
  7746.             {
  7747.                 new
  7748.                     end = formatPos - 1,
  7749.                     ch;
  7750.                 while ((ch = format[++end]) && ch != '\'') {}
  7751.                 if (!ch)
  7752.                 {
  7753.                     return -1;
  7754.                 }
  7755.                 format[end] = '\0';
  7756.                 if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  7757.                 {
  7758.                     if (format[end + 1])
  7759.                     {
  7760.                         return -1;
  7761.                     }
  7762.                     return 0;
  7763.                 }
  7764.                 format[end] = '\'';
  7765.                 stringPos = ch + (end - formatPos);
  7766.                 formatPos = end + 1;
  7767.             }
  7768.             case 'u':
  7769.             {
  7770.                 new
  7771.                     end = stringPos - 1,
  7772.                     id = 0,
  7773.                     bool:num = true,
  7774.                     ch;
  7775.                 while ((ch = string[++end]) && ch != delim)
  7776.                 {
  7777.                     if (num)
  7778.                     {
  7779.                         if ('0' <= ch <= '9')
  7780.                         {
  7781.                             id = (id * 10) + (ch - '0');
  7782.                         }
  7783.                         else
  7784.                         {
  7785.                             num = false;
  7786.                         }
  7787.                     }
  7788.                 }
  7789.                 if (num && IsPlayerConnected(id))
  7790.                 {
  7791.                     setarg(paramPos, 0, id);
  7792.                 }
  7793.                 else
  7794.                 {
  7795.                     #if !defined foreach
  7796.                         #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  7797.                         #define __SSCANF_FOREACH__
  7798.                     #endif
  7799.                     string[end] = '\0';
  7800.                     num = false;
  7801.                     new
  7802.                         name[MAX_PLAYER_NAME];
  7803.                     id = end - stringPos;
  7804.                     foreach (Player, playerid)
  7805.                     {
  7806.                         GetPlayerName(playerid, name, sizeof (name));
  7807.                         if (!strcmp(name, string[stringPos], true, id))
  7808.                         {
  7809.                             setarg(paramPos, 0, playerid);
  7810.                             num = true;
  7811.                             break;
  7812.                         }
  7813.                     }
  7814.                     if (!num)
  7815.                     {
  7816.                         setarg(paramPos, 0, INVALID_PLAYER_ID);
  7817.                     }
  7818.                     string[end] = ch;
  7819.                     #if defined __SSCANF_FOREACH__
  7820.                         #undef foreach
  7821.                         #undef __SSCANF_FOREACH__
  7822.                     #endif
  7823.                 }
  7824.                 stringPos = end;
  7825.             }
  7826.             case 's', 'z':
  7827.             {
  7828.                 new
  7829.                     i = 0,
  7830.                     ch;
  7831.                 if (format[formatPos])
  7832.                 {
  7833.                     while ((ch = string[stringPos++]) && ch != delim)
  7834.                     {
  7835.                         setarg(paramPos, i++, ch);
  7836.                     }
  7837.                     if (!i)
  7838.                     {
  7839.                         return -1;
  7840.                     }
  7841.                 }
  7842.                 else
  7843.                 {
  7844.                     while ((ch = string[stringPos++]))
  7845.                     {
  7846.                         setarg(paramPos, i++, ch);
  7847.                     }
  7848.                 }
  7849.                 stringPos--;
  7850.                 setarg(paramPos, i, '\0');
  7851.             }
  7852.             default:
  7853.             {
  7854.                 continue;
  7855.             }
  7856.         }
  7857.         while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  7858.         {
  7859.             stringPos++;
  7860.         }
  7861.         while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  7862.         {
  7863.             stringPos++;
  7864.         }
  7865.         paramPos++;
  7866.     }
  7867.     do
  7868.     {
  7869.         if ((delim = format[formatPos++]) > ' ')
  7870.         {
  7871.             if (delim == '\'')
  7872.             {
  7873.                 while ((delim = format[formatPos++]) && delim != '\'') {}
  7874.             }
  7875.             else if (delim != 'z')
  7876.             {
  7877.                 return delim;
  7878.             }
  7879.         }
  7880.     }
  7881.     while (delim > ' ');
  7882.     return 0;
  7883. }
  7884.  
  7885. stock GetPlayerAKA(playerid)
  7886. {
  7887.     new IP[MAX_PLAYER_NAME];
  7888.     GetPlayerIp(playerid, IP, sizeof(IP));
  7889.     new string[128];
  7890.     format(string, sizeof(string), "SELECT `Names` FROM `AKAs` WHERE `IP` = '%s'", IP);
  7891.     new DBResult:dbres = db_query(sqliteconnection, string);
  7892.  
  7893.     AKAString = "";
  7894.     if(db_num_rows(dbres) > 0) {
  7895.         db_get_field_assoc(dbres, "Names", AKAString, sizeof(AKAString));
  7896.     } else {
  7897.         format(string, sizeof(string), "INSERT INTO `AKAs` (`IP`, `Names`) VALUES ('%s', '%s')", IP, "");
  7898.         db_free_result(db_query(sqliteconnection, string));
  7899.     }
  7900.  
  7901.     db_free_result(dbres);
  7902.     return AKAString;
  7903. }
  7904.  
  7905.  
  7906. stock MatchAKA(playerid)
  7907. {
  7908.     AKAString = "";
  7909.     AKAString = GetPlayerAKA(playerid);
  7910.  
  7911.     new idx;
  7912.     do {
  7913.         idx = strfind(AKAString, ",", true, idx == 0 ? 0 : idx+1);
  7914.         new compare[MAX_PLAYER_NAME];
  7915.         new idx2 = strfind(AKAString, ",", true, idx+1);
  7916.         strmid(compare, AKAString, idx+1, (idx2 == -1 ? strlen(AKAString) : idx2) );
  7917.  
  7918.         if(!strcmp(compare, Player[playerid][Name], true) && strlen(Player[playerid][Name]) > 0 && strlen(compare) > 0) {
  7919.             return 1;
  7920.         }
  7921.  
  7922.     } while(idx != -1);
  7923.     return 0;
  7924. }
  7925.  
  7926. stock RemovePlayerWeapon( playerid, weaponid )
  7927. {
  7928.     new
  7929.         plyWeapons[ 12 ], plyAmmo[ 12 ];
  7930.  
  7931.     for( new slot = 0; slot != 12; slot ++ )
  7932.     {
  7933.         new
  7934.             weap, ammo;
  7935.  
  7936.         GetPlayerWeaponData( playerid, slot, weap, ammo );
  7937.         if( weap != weaponid )
  7938.         {
  7939.             GetPlayerWeaponData( playerid, slot, plyWeapons[ slot ], plyAmmo[ slot ] );
  7940.         }
  7941.     }
  7942.     ResetPlayerWeapons( playerid );
  7943.     for( new slot = 0; slot != 12; slot ++ )
  7944.     {
  7945.         GivePlayerWeapon( playerid, plyWeapons[ slot ], plyAmmo[ slot ] );
  7946.     }
  7947. }
  7948.  
  7949. //================================= Textdraws ==================================
  7950.  
  7951.  
  7952. LoadMainTextDraws()
  7953. {
  7954.     WebTextTD = TextDrawCreate(98.5000000, 325.000000, "~y~~h~~h~ New Deathmatch - 1 Hit Deathmatch!");
  7955.     TextDrawFont(WebTextTD, 2);
  7956.     TextDrawLetterSize(WebTextTD, 0.230000, 1.200000);
  7957.     TextDrawBackgroundColor(WebTextTD, 8453905);
  7958.     TextDrawColor(WebTextTD, 0x000000FF);
  7959.     TextDrawSetOutline(WebTextTD, 1);
  7960.     TextDrawSetShadow(WebTextTD, 0);
  7961.     TextDrawSetProportional(WebTextTD, 1);
  7962.     TextDrawAlignment(WebTextTD, 2);
  7963.  
  7964.     RoundStatsTD = TextDrawCreate(315.0, 428.0, "_");
  7965.     TextDrawFont(RoundStatsTD, 2);
  7966.     TextDrawLetterSize(RoundStatsTD, 0.36 + 0.04, 1.70);
  7967.     TextDrawBackgroundColor(RoundStatsTD,0x00444433);
  7968.     TextDrawColor(RoundStatsTD,0x000000FF);
  7969.     TextDrawSetOutline(RoundStatsTD,1);
  7970.     TextDrawSetShadow(RoundStatsTD,0);
  7971.     TextDrawAlignment(RoundStatsTD,2);
  7972.     TextDrawSetProportional(RoundStatsTD, 1);
  7973.  
  7974.     BalanceTD = TextDrawCreate(575.000000, 28.000000, "_");
  7975.     TextDrawAlignment(BalanceTD, 2);
  7976.     TextDrawFont(BalanceTD, 2);
  7977.     TextDrawLetterSize(BalanceTD, 0.260000, 1.400000);
  7978.     TextDrawColor(BalanceTD,-65281);
  7979. //  TextDrawBackgroundColor(BalanceTD,0x00000044);
  7980.     TextDrawBackgroundColor(BalanceTD,0x00444433);
  7981.     TextDrawSetOutline(BalanceTD, 1);
  7982.     TextDrawSetShadow(BalanceTD, 0);
  7983.  
  7984.     ScoreTableTD[0] = TextDrawCreate(171.000000 - 20.00, 135.000000 + 30.00, "LD_POKE:cd9s");
  7985.     TextDrawLetterSize(ScoreTableTD[0], 0.000000, 0.000000);
  7986.     TextDrawTextSize(ScoreTableTD[0], 270.000000, 230.000000);
  7987.     TextDrawAlignment(ScoreTableTD[0], 1);
  7988.     TextDrawColor(ScoreTableTD[0], 0x00000099);
  7989.     TextDrawSetShadow(ScoreTableTD[0], 0);
  7990.     TextDrawSetOutline(ScoreTableTD[0], 0);
  7991.     TextDrawFont(ScoreTableTD[0], 4);
  7992.  
  7993.     ScoreTableTD[1] = TextDrawCreate(180.000000 - 20.00, 140.000000 + 30.00, "~g~~h~~h~#~n~~n~01~n~02~n~03~n~04~n~05~n~06~n~07~n~08~n~09~n~10~n~11~n~12~n~13~n~14~n~15");
  7994.     ScoreTableTD[2] = TextDrawCreate(200.000000 - 20.00, 140.000000 + 30.00, "~g~~h~~h~Name~n~");
  7995.     ScoreTableTD[3] = TextDrawCreate(310.000000 - 20.00, 140.000000 + 30.00, "~g~~h~~h~Kills~n~");
  7996.     ScoreTableTD[4] = TextDrawCreate(340.000000 - 20.00, 140.000000 + 30.00, "~g~~h~~h~Tode~n~");
  7997.     ScoreTableTD[5] = TextDrawCreate(390.000000 - 20.00, 140.000000 + 30.00, "~g~~h~~h~Schaden~n~");
  7998.     for(new t=1; t < sizeof(ScoreTableTD); t++)
  7999.     {
  8000.         TextDrawFont(ScoreTableTD[t], 1);
  8001.         TextDrawLetterSize(ScoreTableTD[t], 0.300000, 1.40000);
  8002.         TextDrawSetShadow(ScoreTableTD[t], 0);
  8003.     }
  8004.  
  8005. }
  8006.  
  8007. LoadLoginTextdraws(playerid)
  8008. {
  8009. LoginTD[playerid][0] = CreatePlayerTextDraw(playerid, 263.766967, 108.899925, "Anmeldung");
  8010. PlayerTextDrawLetterSize(playerid, LoginTD[playerid][0], 0.480666, 2.458667);
  8011. PlayerTextDrawAlignment(playerid, LoginTD[playerid][0], 1);
  8012. PlayerTextDrawColor(playerid, LoginTD[playerid][0], -1);
  8013. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][0], 10);
  8014. PlayerTextDrawSetOutline(playerid, LoginTD[playerid][0], 1);
  8015. PlayerTextDrawBackgroundColor(playerid, LoginTD[playerid][0], 85);
  8016. PlayerTextDrawFont(playerid, LoginTD[playerid][0], 3);
  8017. PlayerTextDrawSetProportional(playerid, LoginTD[playerid][0], 1);
  8018. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][0], 10);
  8019.  
  8020. LoginTD[playerid][1] = CreatePlayerTextDraw(playerid, 180.333343, 141.881423, "box");
  8021. PlayerTextDrawLetterSize(playerid, LoginTD[playerid][1], 0.000000, 29.333353);
  8022. PlayerTextDrawTextSize(playerid, LoginTD[playerid][1], 441.000000, 0.000000);
  8023. PlayerTextDrawAlignment(playerid, LoginTD[playerid][1], 1);
  8024. PlayerTextDrawColor(playerid, LoginTD[playerid][1], 16711935);
  8025. PlayerTextDrawUseBox(playerid, LoginTD[playerid][1], 1);
  8026. PlayerTextDrawBoxColor(playerid, LoginTD[playerid][1], -1378294167);
  8027. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][1], 0);
  8028. PlayerTextDrawSetOutline(playerid, LoginTD[playerid][1], 0);
  8029. PlayerTextDrawBackgroundColor(playerid, LoginTD[playerid][1], 255);
  8030. PlayerTextDrawFont(playerid, LoginTD[playerid][1], 1);
  8031. PlayerTextDrawSetProportional(playerid, LoginTD[playerid][1], 1);
  8032. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][1], 0);
  8033.  
  8034. LoginTD[playerid][2] = CreatePlayerTextDraw(playerid, 191.499786, 207.259460, "gib_dein_passwort_ein_um_fortzufahren");
  8035. PlayerTextDrawLetterSize(playerid, LoginTD[playerid][2], 0.261999, 1.429926);
  8036. PlayerTextDrawAlignment(playerid, LoginTD[playerid][2], 1);
  8037. PlayerTextDrawColor(playerid, LoginTD[playerid][2], -1378294017);
  8038. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][2], 1);
  8039. PlayerTextDrawSetOutline(playerid, LoginTD[playerid][2], 1);
  8040. PlayerTextDrawBackgroundColor(playerid, LoginTD[playerid][2], 255);
  8041. PlayerTextDrawFont(playerid, LoginTD[playerid][2], 2);
  8042. PlayerTextDrawSetProportional(playerid, LoginTD[playerid][2], 1);
  8043. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][2], 1);
  8044.  
  8045. LoginTD[playerid][3] = CreatePlayerTextDraw(playerid, 241.066207, 156.159790, "Willkommen,_NAME!");
  8046. PlayerTextDrawLetterSize(playerid, LoginTD[playerid][3], 0.400000, 1.600000);
  8047. PlayerTextDrawAlignment(playerid, LoginTD[playerid][3], 1);
  8048. PlayerTextDrawColor(playerid, LoginTD[playerid][3], -5963521);
  8049. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][3], -285);
  8050. PlayerTextDrawSetOutline(playerid, LoginTD[playerid][3], 1);
  8051. PlayerTextDrawBackgroundColor(playerid, LoginTD[playerid][3], 255);
  8052. PlayerTextDrawFont(playerid, LoginTD[playerid][3], 1);
  8053. PlayerTextDrawSetProportional(playerid, LoginTD[playerid][3], 1);
  8054. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][3], -285);
  8055.  
  8056. LoginTD[playerid][4] = CreatePlayerTextDraw(playerid, 178.933288, 133.826202, "LD_SPAC:white");
  8057. PlayerTextDrawLetterSize(playerid, LoginTD[playerid][4], 0.000000, 0.000000);
  8058. PlayerTextDrawTextSize(playerid, LoginTD[playerid][4], 263.000000, 7.000000);
  8059. PlayerTextDrawAlignment(playerid, LoginTD[playerid][4], 1);
  8060. PlayerTextDrawColor(playerid, LoginTD[playerid][4], -1);
  8061. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][4], 0);
  8062. PlayerTextDrawSetOutline(playerid, LoginTD[playerid][4], 0);
  8063. PlayerTextDrawBackgroundColor(playerid, LoginTD[playerid][4], 255);
  8064. PlayerTextDrawFont(playerid, LoginTD[playerid][4], 4);
  8065. PlayerTextDrawSetProportional(playerid, LoginTD[playerid][4], 0);
  8066. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][4], 0);
  8067.  
  8068. LoginTD[playerid][5] = CreatePlayerTextDraw(playerid, 192.999954, 366.711181, "box");
  8069. PlayerTextDrawLetterSize(playerid, LoginTD[playerid][5], 0.000000, 3.033333);
  8070. PlayerTextDrawTextSize(playerid, LoginTD[playerid][5], 287.000000, 0.000000);
  8071. PlayerTextDrawAlignment(playerid, LoginTD[playerid][5], 1);
  8072. PlayerTextDrawColor(playerid, LoginTD[playerid][5], -1);
  8073. PlayerTextDrawUseBox(playerid, LoginTD[playerid][5], 1);
  8074. PlayerTextDrawBoxColor(playerid, LoginTD[playerid][5], 146);
  8075. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][5], 9);
  8076. PlayerTextDrawSetOutline(playerid, LoginTD[playerid][5], -178);
  8077. PlayerTextDrawBackgroundColor(playerid, LoginTD[playerid][5], 255);
  8078. PlayerTextDrawFont(playerid, LoginTD[playerid][5], 1);
  8079. PlayerTextDrawSetProportional(playerid, LoginTD[playerid][5], 1);
  8080. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][5], 9);
  8081.  
  8082. LoginTD[playerid][6] = CreatePlayerTextDraw(playerid, 198.799728, 370.014953, "Anmelden");
  8083. PlayerTextDrawLetterSize(playerid, LoginTD[playerid][6], 0.468665, 2.251259);
  8084. PlayerTextDrawAlignment(playerid, LoginTD[playerid][6], 1);
  8085. PlayerTextDrawColor(playerid, LoginTD[playerid][6], 16711935);
  8086. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][6], 2);
  8087. PlayerTextDrawSetOutline(playerid, LoginTD[playerid][6], 2);
  8088. PlayerTextDrawBackgroundColor(playerid, LoginTD[playerid][6], 255);
  8089. PlayerTextDrawFont(playerid, LoginTD[playerid][6], 3);
  8090. PlayerTextDrawSetProportional(playerid, LoginTD[playerid][6], 1);
  8091. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][6], 2);
  8092. PlayerTextDrawSetSelectable(playerid, LoginTD[playerid][6], true);
  8093.  
  8094. LoginTD[playerid][7] = CreatePlayerTextDraw(playerid, 332.069183, 366.135467, "box");
  8095. PlayerTextDrawLetterSize(playerid, LoginTD[playerid][7], 0.000000, 3.107347);
  8096. PlayerTextDrawTextSize(playerid, LoginTD[playerid][7], 427.602600, 0.000000);
  8097. PlayerTextDrawAlignment(playerid, LoginTD[playerid][7], 1);
  8098. PlayerTextDrawColor(playerid, LoginTD[playerid][7], -1);
  8099. PlayerTextDrawUseBox(playerid, LoginTD[playerid][7], 1);
  8100. PlayerTextDrawBoxColor(playerid, LoginTD[playerid][7], 146);
  8101. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][7], 0);
  8102. PlayerTextDrawSetOutline(playerid, LoginTD[playerid][7], 0);
  8103. PlayerTextDrawBackgroundColor(playerid, LoginTD[playerid][7], 255);
  8104. PlayerTextDrawFont(playerid, LoginTD[playerid][7], 1);
  8105. PlayerTextDrawSetProportional(playerid, LoginTD[playerid][7], 1);
  8106. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][7], 0);
  8107.  
  8108. LoginTD[playerid][8] = CreatePlayerTextDraw(playerid, 336.599792, 369.155639, "Abbrechen");
  8109. PlayerTextDrawLetterSize(playerid, LoginTD[playerid][8], 0.460999, 2.520889);
  8110. PlayerTextDrawAlignment(playerid, LoginTD[playerid][8], 1);
  8111. PlayerTextDrawColor(playerid, LoginTD[playerid][8], -2147483393);
  8112. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][8], 0);
  8113. PlayerTextDrawSetOutline(playerid, LoginTD[playerid][8], 2);
  8114. PlayerTextDrawBackgroundColor(playerid, LoginTD[playerid][8], 255);
  8115. PlayerTextDrawFont(playerid, LoginTD[playerid][8], 3);
  8116. PlayerTextDrawSetProportional(playerid, LoginTD[playerid][8], 1);
  8117. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][8], 0);
  8118. PlayerTextDrawSetSelectable(playerid, LoginTD[playerid][8], true);
  8119.  
  8120. LoginTD[playerid][9] = CreatePlayerTextDraw(playerid, 205.531555, 243.132949, "box");
  8121. PlayerTextDrawLetterSize(playerid, LoginTD[playerid][9], 0.000000, 2.733334);
  8122. PlayerTextDrawTextSize(playerid, LoginTD[playerid][9], 415.999816, 0.000000);
  8123. PlayerTextDrawAlignment(playerid, LoginTD[playerid][9], 1);
  8124. PlayerTextDrawColor(playerid, LoginTD[playerid][9], -1);
  8125. PlayerTextDrawUseBox(playerid, LoginTD[playerid][9], 1);
  8126. PlayerTextDrawBoxColor(playerid, LoginTD[playerid][9], -1061109630);
  8127. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][9], 0);
  8128. PlayerTextDrawSetOutline(playerid, LoginTD[playerid][9], 0);
  8129. PlayerTextDrawBackgroundColor(playerid, LoginTD[playerid][9], 255);
  8130. PlayerTextDrawFont(playerid, LoginTD[playerid][9], 1);
  8131. PlayerTextDrawSetProportional(playerid, LoginTD[playerid][9], 1);
  8132. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][9], 0);
  8133. PlayerTextDrawSetSelectable(playerid, LoginTD[playerid][9], true);
  8134.  
  8135. LoginTD[playerid][10] = CreatePlayerTextDraw(playerid, 209.633666, 242.855422, "--------------------------");
  8136. PlayerTextDrawLetterSize(playerid, LoginTD[playerid][10], 0.553999, 2.375703);
  8137. PlayerTextDrawAlignment(playerid, LoginTD[playerid][10], 1);
  8138. PlayerTextDrawColor(playerid, LoginTD[playerid][10], 8388863);
  8139. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][10], 0);
  8140. PlayerTextDrawSetOutline(playerid, LoginTD[playerid][10], 0);
  8141. PlayerTextDrawBackgroundColor(playerid, LoginTD[playerid][10], 255);
  8142. PlayerTextDrawFont(playerid, LoginTD[playerid][10], 3);
  8143. PlayerTextDrawSetProportional(playerid, LoginTD[playerid][10], 1);
  8144. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][10], 0);
  8145.  
  8146. LoginTD[playerid][11] = CreatePlayerTextDraw(playerid, 228.766891, 81.833312, ""ServerName"");
  8147. PlayerTextDrawLetterSize(playerid, LoginTD[playerid][11], 0.514333, 2.296888);
  8148. PlayerTextDrawAlignment(playerid, LoginTD[playerid][11], 1);
  8149. PlayerTextDrawColor(playerid, LoginTD[playerid][11], -2139094785);
  8150. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][11], 0);
  8151. PlayerTextDrawSetOutline(playerid, LoginTD[playerid][11], 2);
  8152. PlayerTextDrawBackgroundColor(playerid, LoginTD[playerid][11], 255);
  8153. PlayerTextDrawFont(playerid, LoginTD[playerid][11], 2);
  8154. PlayerTextDrawSetProportional(playerid, LoginTD[playerid][11], 1);
  8155. PlayerTextDrawSetShadow(playerid, LoginTD[playerid][11], 0);
  8156. }
  8157.  
  8158. LoadDigiTextdraws(playerid)
  8159. {
  8160.     DigiHP[playerid] = TextDrawCreate(566.000000, 67.000000, "100");
  8161.     TextDrawBackgroundColor(DigiHP[playerid], 255);
  8162.     TextDrawFont(DigiHP[playerid], 1);
  8163.     TextDrawLetterSize(DigiHP[playerid], 0.340000, 0.799998);
  8164.     TextDrawColor(DigiHP[playerid], -6291201);
  8165.     TextDrawSetOutline(DigiHP[playerid], 1);
  8166.     TextDrawSetProportional(DigiHP[playerid], 1);
  8167.  
  8168.     DigiAP[playerid] = TextDrawCreate(566.000000, 45.000000, "100");
  8169.     TextDrawBackgroundColor(DigiAP[playerid], 255);
  8170.     TextDrawFont(DigiAP[playerid], 1);
  8171.     TextDrawLetterSize(DigiAP[playerid], 0.340000, 0.799998);
  8172.     TextDrawColor(DigiAP[playerid], 1778319615);
  8173.     TextDrawSetOutline(DigiAP[playerid], 1);
  8174.     TextDrawSetProportional(DigiAP[playerid], 1);
  8175. }
  8176.  
  8177. LoadStatisticsTextdraws(playerid)
  8178. {
  8179. TDEditor_PTD[playerid][0] = CreatePlayerTextDraw(playerid, 523.333374, 237.703811, "box");
  8180. PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][0], 0.000000, 19.300001);
  8181. PlayerTextDrawTextSize(playerid, TDEditor_PTD[playerid][0], 639.000000, 0.000000);
  8182. PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][0], 1);
  8183. PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][0], -1);
  8184. PlayerTextDrawUseBox(playerid, TDEditor_PTD[playerid][0], 1);
  8185. PlayerTextDrawBoxColor(playerid, TDEditor_PTD[playerid][0], -203);
  8186. PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][0], 0);
  8187. PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][0], 0);
  8188. PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][0], 255);
  8189. PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][0], 1);
  8190. PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][0], 0);
  8191. PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][0], 0);
  8192.  
  8193. TDEditor_PTD[playerid][1] = CreatePlayerTextDraw(playerid, 530.998291, 238.177795, "Statistiken");
  8194. PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][1], 0.500333, 1.421630);
  8195. PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][1], 1);
  8196. PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][1], -2147483393);
  8197. PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][1], 0);
  8198. PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][1], 1);
  8199. PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][1], 255);
  8200. PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][1], 3);
  8201. PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][1], 1);
  8202. PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][1], 0);
  8203.  
  8204. TDEditor_PTD[playerid][2] = CreatePlayerTextDraw(playerid, 526.998962, 262.003112, "Kills:");
  8205. PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][2], 0.407333, 1.678814);
  8206. PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][2], 1);
  8207. PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][2], -1523963137);
  8208. PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][2], 1);
  8209. PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][2], 0);
  8210. PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][2], 255);
  8211. PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][2], 2);
  8212. PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][2], 1);
  8213. PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][2], 1);
  8214.  
  8215. TDEditor_PTD[playerid][3] = CreatePlayerTextDraw(playerid, 526.000000, 286.503234, "Tode:");
  8216. PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][3], 0.418333, 1.807407);
  8217. PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][3], 1);
  8218. PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][3], -1523963137);
  8219. PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][3], 1);
  8220. PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][3], 0);
  8221. PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][3], 255);
  8222. PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][3], 2);
  8223. PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][3], 1);
  8224. PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][3], 1);
  8225.  
  8226. TDEditor_PTD[playerid][4] = CreatePlayerTextDraw(playerid, 526.333251, 309.051849, "Score:");
  8227. PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][4], 0.398666, 1.952592);
  8228. PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][4], 1);
  8229. PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][4], -1523963137);
  8230. PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][4], 1);
  8231. PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][4], 0);
  8232. PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][4], 255);
  8233. PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][4], 2);
  8234. PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][4], 1);
  8235. PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][4], 1);
  8236.  
  8237. TDEditor_PTD[playerid][5] = CreatePlayerTextDraw(playerid, 571.433288, 388.855682, "VIP");
  8238. PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][5], 0.482000, 2.537481);
  8239. PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][5], 1);
  8240. PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][5], -65281);
  8241. PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][5], 84);
  8242. PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][5], 3);
  8243. PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][5], 255);
  8244. PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][5], 1);
  8245. PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][5], 1);
  8246. PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][5], 84);
  8247.  
  8248. TDEditor_PTD[playerid][6] = CreatePlayerTextDraw(playerid, 525.732910, 364.466613, "Rang:");
  8249. PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][6], 0.255332, 2.077035);
  8250. PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][6], 1);
  8251. PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][6], -16776961);
  8252. PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][6], 1);
  8253. PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][6], 0);
  8254. PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][6], 255);
  8255. PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][6], 2);
  8256. PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][6], 1);
  8257. PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][6], 1);
  8258.  
  8259. TDEditor_PTD[playerid][7] = CreatePlayerTextDraw(playerid, 544.328186, 337.496093, "IM_DIENST");
  8260. PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][7], 0.458666, 2.002369);
  8261. PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][7], 1);
  8262. PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][7], 65535);
  8263. PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][7], 0);
  8264. PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][7], 1);
  8265. PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][7], 255);
  8266. PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][7], 1);
  8267. PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][7], 1);
  8268. PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][7], 0);
  8269. }
  8270.  
  8271. ShowStatisticsTextdraws(playerid)
  8272. {
  8273. PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][0]);
  8274. PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][1]);
  8275. PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][2]);
  8276. PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][3]);
  8277. PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][4]);
  8278. PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][6]);
  8279. }
  8280.  
  8281. HideStatisticsTextdraws(playerid)
  8282. {
  8283. PlayerTextDrawHide(playerid, TDEditor_PTD[playerid][0]);
  8284. PlayerTextDrawHide(playerid, TDEditor_PTD[playerid][1]);
  8285. PlayerTextDrawHide(playerid, TDEditor_PTD[playerid][2]);
  8286. PlayerTextDrawHide(playerid, TDEditor_PTD[playerid][3]);
  8287. PlayerTextDrawHide(playerid, TDEditor_PTD[playerid][4]);
  8288. PlayerTextDrawHide(playerid, TDEditor_PTD[playerid][5]);
  8289. PlayerTextDrawHide(playerid, TDEditor_PTD[playerid][6]);
  8290. }
  8291.  
  8292. ShowStatVIPTextDraw(playerid)
  8293. {
  8294. PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][5]);
  8295. }
  8296.  
  8297. ShowLoginTextdraws(playerid)
  8298. {
  8299. PlayerTextDrawShow(playerid, LoginTD[playerid][0]);
  8300. PlayerTextDrawShow(playerid, LoginTD[playerid][1]);
  8301. PlayerTextDrawShow(playerid, LoginTD[playerid][2]);
  8302. PlayerTextDrawShow(playerid, LoginTD[playerid][3]);
  8303. PlayerTextDrawShow(playerid, LoginTD[playerid][4]);
  8304. PlayerTextDrawShow(playerid, LoginTD[playerid][5]);
  8305. PlayerTextDrawShow(playerid, LoginTD[playerid][6]);
  8306. PlayerTextDrawShow(playerid, LoginTD[playerid][7]);
  8307. PlayerTextDrawShow(playerid, LoginTD[playerid][8]);
  8308. PlayerTextDrawShow(playerid, LoginTD[playerid][9]);
  8309. PlayerTextDrawShow(playerid, LoginTD[playerid][11]);
  8310.  
  8311. SelectTextDraw(playerid, 0x808080FF);
  8312. }
  8313.  
  8314. ShowLoginBars(playerid)
  8315. {
  8316.     PlayerTextDrawShow(playerid, LoginTD[playerid][10]);
  8317. }
  8318.  
  8319. ShowOnDutyTextdraw(playerid)
  8320. {
  8321. PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][7]);
  8322. }
  8323.  
  8324. HideOnDutyTextdraw(playerid)
  8325. {
  8326. PlayerTextDrawHide(playerid, TDEditor_PTD[playerid][7]);
  8327. }
  8328.  
  8329. LoadPlayerTextDraws(playerid)
  8330. {
  8331. /*
  8332.     AchTD = CreatePlayerTextDraw(playerid, 620, 350, "_");
  8333.     PlayerTextDrawBackgroundColor(playerid, AchTD, 0x00AAAA33);
  8334.     PlayerTextDrawFont(playerid, AchTD, 1);
  8335.     PlayerTextDrawLetterSize(playerid, AchTD, 0.250000, 1.100000);
  8336.     PlayerTextDrawColor(playerid, AchTD, 0x000000FF);
  8337.     PlayerTextDrawSetOutline(playerid, AchTD, 1);
  8338.     PlayerTextDrawAlignment(playerid, AchTD, 3);
  8339. */
  8340.  
  8341.     Bar1 = CreatePlayerProgressBar(playerid, 497, 376, 140.500000, 1.700000, 0x00FFFF99, 250, BAR_DIRECTION_RIGHT);
  8342.  
  8343.     AchTD = CreatePlayerTextDraw(playerid, 495, 360, "_");
  8344.     PlayerTextDrawBackgroundColor(playerid, AchTD, 0x00AAAA33);
  8345.     PlayerTextDrawFont(playerid, AchTD, 1);
  8346.     PlayerTextDrawLetterSize(playerid, AchTD, 0.25, 1.2);
  8347.     PlayerTextDrawColor(playerid, AchTD, 0x000000FF);
  8348.     PlayerTextDrawSetOutline(playerid, AchTD, 1);
  8349.     PlayerTextDrawUseBox(playerid, AchTD, 1);
  8350.     PlayerTextDrawTextSize(playerid, AchTD, 635, 0);
  8351.     PlayerTextDrawBoxColor(playerid, AchTD, 0x00000022);
  8352.  
  8353.     AInfoTD = CreatePlayerTextDraw(playerid, 12, 200, "_");
  8354. //  PlayerTextDrawBackgroundColor(playerid, AInfoTD, 8453905);
  8355.     PlayerTextDrawBackgroundColor(playerid, AInfoTD, 0x0080FF22);
  8356.     PlayerTextDrawFont(playerid, AInfoTD, 1);
  8357.     PlayerTextDrawLetterSize(playerid, AInfoTD, 0.250000, 1.100000);
  8358.     PlayerTextDrawColor(playerid, AInfoTD, 0x000000FF);
  8359.     PlayerTextDrawSetOutline(playerid, AInfoTD, 1);
  8360.    
  8361.     HideTD = CreatePlayerTextDraw(playerid, 12, 280, "~l~Druecke ~g~~h~~h~~k~~VEHICLE_ENTER_EXIT~ ~l~um diese Info zu verbergen");
  8362.     PlayerTextDrawBackgroundColor(playerid, HideTD, 0x0080FF22);
  8363.     PlayerTextDrawFont(playerid, HideTD, 1);
  8364.     PlayerTextDrawLetterSize(playerid, HideTD, 0.250000, 1.100000);
  8365.     PlayerTextDrawColor(playerid, HideTD, 0x000000FF);
  8366.     PlayerTextDrawSetOutline(playerid, HideTD, 1);
  8367.  
  8368.     FPSPingPacket = CreatePlayerTextDraw(playerid,630, 1.4, "_");
  8369.     PlayerTextDrawBackgroundColor(playerid, FPSPingPacket, 0x00666644);
  8370.     PlayerTextDrawFont(playerid, FPSPingPacket, 2);
  8371.     PlayerTextDrawLetterSize(playerid, FPSPingPacket, 0.190000, 1.2000);
  8372.     PlayerTextDrawColor(playerid, FPSPingPacket, 0x000000FF);
  8373.     PlayerTextDrawSetOutline(playerid, FPSPingPacket, 1);
  8374.     PlayerTextDrawSetProportional(playerid, FPSPingPacket, 1);
  8375.     PlayerTextDrawSetShadow(playerid, FPSPingPacket,0);
  8376.     PlayerTextDrawAlignment(playerid, FPSPingPacket, 3);
  8377.  
  8378.     DoingDamage[0] = CreatePlayerTextDraw(playerid,140.0,372.0,"_");
  8379.     PlayerTextDrawFont(playerid, DoingDamage[0], 1);
  8380.     PlayerTextDrawLetterSize(playerid, DoingDamage[0], 0.18000, 0.9);
  8381.     PlayerTextDrawBackgroundColor(playerid, DoingDamage[0],0x00000044);
  8382.     PlayerTextDrawColor(playerid, DoingDamage[0], 16727295);
  8383.     PlayerTextDrawSetProportional(playerid, DoingDamage[0], 1);
  8384.     PlayerTextDrawSetOutline(playerid, DoingDamage[0],1);
  8385.     PlayerTextDrawSetShadow(playerid, DoingDamage[0],0);
  8386.  
  8387.     DoingDamage[1] = CreatePlayerTextDraw(playerid,140.0,382.0,"_");
  8388.     PlayerTextDrawFont(playerid, DoingDamage[1], 1);
  8389.     PlayerTextDrawLetterSize(playerid, DoingDamage[1], 0.18000, 0.9);
  8390.     PlayerTextDrawBackgroundColor(playerid, DoingDamage[1],0x00000044);
  8391.     PlayerTextDrawColor(playerid, DoingDamage[1], 16727295);
  8392.     PlayerTextDrawSetProportional(playerid, DoingDamage[1], 1);
  8393.     PlayerTextDrawSetOutline(playerid, DoingDamage[1],1);
  8394.     PlayerTextDrawSetShadow(playerid, DoingDamage[1],0);
  8395.  
  8396.     DoingDamage[2] = CreatePlayerTextDraw(playerid,140.0,392.0,"_");
  8397.     PlayerTextDrawFont(playerid, DoingDamage[2], 1);
  8398.     PlayerTextDrawLetterSize(playerid, DoingDamage[2], 0.18000, 0.9);
  8399.     PlayerTextDrawBackgroundColor(playerid, DoingDamage[2],0x00000044);
  8400.     PlayerTextDrawColor(playerid, DoingDamage[2], 16727295);
  8401.     PlayerTextDrawSetProportional(playerid, DoingDamage[2], 1);
  8402.     PlayerTextDrawSetOutline(playerid, DoingDamage[2],1);
  8403.     PlayerTextDrawSetShadow(playerid, DoingDamage[2],0);
  8404.  
  8405.     GettingDamaged[0] = CreatePlayerTextDraw(playerid,380.0,372.0,"_");
  8406.     PlayerTextDrawFont(playerid, GettingDamaged[0], 1);
  8407.     PlayerTextDrawLetterSize(playerid, GettingDamaged[0], 0.18000, 0.9);
  8408.     PlayerTextDrawBackgroundColor(playerid, GettingDamaged[0],0x00000044);
  8409.     PlayerTextDrawColor(playerid, GettingDamaged[0], 16727295);
  8410.     PlayerTextDrawSetProportional(playerid, GettingDamaged[0], 1);
  8411.     PlayerTextDrawSetOutline(playerid, GettingDamaged[0],1);
  8412.     PlayerTextDrawSetShadow(playerid, GettingDamaged[0],0);
  8413.  
  8414.     GettingDamaged[1] = CreatePlayerTextDraw(playerid,380.0,382.0,"_");
  8415.     PlayerTextDrawFont(playerid, GettingDamaged[1], 1);
  8416.     PlayerTextDrawLetterSize(playerid, GettingDamaged[1], 0.18000, 0.9);
  8417.     PlayerTextDrawBackgroundColor(playerid, GettingDamaged[1],0x00000044);
  8418.     PlayerTextDrawColor(playerid, GettingDamaged[1], 16727295);
  8419.     PlayerTextDrawSetProportional(playerid, GettingDamaged[1], 1);
  8420.     PlayerTextDrawSetOutline(playerid, GettingDamaged[1],1);
  8421.     PlayerTextDrawSetShadow(playerid, GettingDamaged[1],0);
  8422.  
  8423.     GettingDamaged[2] = CreatePlayerTextDraw(playerid,380.0,392.0,"_");
  8424.     PlayerTextDrawFont(playerid, GettingDamaged[2], 1);
  8425.     PlayerTextDrawLetterSize(playerid, GettingDamaged[2], 0.18000, 0.9);
  8426.     PlayerTextDrawBackgroundColor(playerid, GettingDamaged[2],0x00000044);
  8427.     PlayerTextDrawColor(playerid, GettingDamaged[2], 16727295);
  8428.     PlayerTextDrawSetProportional(playerid, GettingDamaged[2], 1);
  8429.     PlayerTextDrawSetOutline(playerid, GettingDamaged[2],1);
  8430.     PlayerTextDrawSetShadow(playerid, GettingDamaged[2],0);
  8431.  
  8432.     DeathText[0] = CreatePlayerTextDraw(playerid,322.000000, 346.000000, "_");
  8433.     PlayerTextDrawBackgroundColor(playerid, DeathText[0], 0x00000044);
  8434.     PlayerTextDrawFont(playerid, DeathText[0], 1);
  8435.     PlayerTextDrawLetterSize(playerid, DeathText[0], 0.250000, 1.2000);
  8436.     PlayerTextDrawColor(playerid, DeathText[0], 16711935);
  8437.     PlayerTextDrawSetOutline(playerid, DeathText[0], 1);
  8438.     PlayerTextDrawSetProportional(playerid, DeathText[0], 1);
  8439.     PlayerTextDrawSetShadow(playerid, DeathText[0], 0);
  8440.     PlayerTextDrawAlignment(playerid, DeathText[0], 2);
  8441.  
  8442.     DeathText[1] = CreatePlayerTextDraw(playerid,322, 356.000000, "_");
  8443.     PlayerTextDrawBackgroundColor(playerid, DeathText[1], 0x00000044);
  8444.     PlayerTextDrawFont(playerid, DeathText[1], 1);
  8445.     PlayerTextDrawLetterSize(playerid, DeathText[1], 0.250000, 1.2000);
  8446.     PlayerTextDrawColor(playerid, DeathText[1], 16711935);
  8447.     PlayerTextDrawSetOutline(playerid, DeathText[1], 1);
  8448.     PlayerTextDrawSetProportional(playerid, DeathText[1], 1);
  8449.     PlayerTextDrawSetShadow(playerid, DeathText[1], 0);
  8450.     PlayerTextDrawAlignment(playerid, DeathText[1], 2);
  8451.  
  8452.     ScoreTD = CreatePlayerTextDraw(playerid, 550.000000, 100.000000, "_");
  8453.     PlayerTextDrawAlignment(playerid, ScoreTD, 2);
  8454.     PlayerTextDrawFont(playerid, ScoreTD, 3);
  8455.     PlayerTextDrawLetterSize(playerid, ScoreTD, 0.700000, 1.900000);
  8456.     PlayerTextDrawColor(playerid, ScoreTD,-65281);
  8457.     PlayerTextDrawBackgroundColor(playerid, ScoreTD,0x00000044);
  8458.     PlayerTextDrawSetOutline(playerid, ScoreTD, 1);
  8459.     PlayerTextDrawSetShadow(playerid, ScoreTD, 0);
  8460.  
  8461.     Ann1TD = CreatePlayerTextDraw(playerid, 320.0, 100.0, "_");
  8462.     PlayerTextDrawAlignment(playerid, Ann1TD, 2);
  8463.     PlayerTextDrawFont(playerid, Ann1TD, 2);
  8464.     PlayerTextDrawLetterSize(playerid, Ann1TD, 0.6, 2.0);
  8465.     PlayerTextDrawColor(playerid, Ann1TD, -16776961);
  8466.     PlayerTextDrawBackgroundColor(playerid, Ann1TD, 255);
  8467.     PlayerTextDrawSetOutline(playerid, Ann1TD, 0);
  8468.     PlayerTextDrawSetShadow(playerid, Ann1TD, 1);
  8469.  
  8470.     Ann2TD = CreatePlayerTextDraw(playerid, 320.0, 118.0, "_");
  8471.     PlayerTextDrawAlignment(playerid, Ann2TD, 2);
  8472.     PlayerTextDrawFont(playerid, Ann2TD, 2);
  8473.     PlayerTextDrawLetterSize(playerid, Ann2TD, 0.5, 2.0);
  8474.     PlayerTextDrawColor(playerid, Ann2TD, -16777063);
  8475.     PlayerTextDrawBackgroundColor(playerid, Ann2TD, 255);
  8476.     PlayerTextDrawSetOutline(playerid, Ann2TD, 0);
  8477.     PlayerTextDrawSetShadow(playerid, Ann2TD, 1);
  8478.    
  8479.     BlackBox = TextDrawCreate( 0.0000, 0.0000, "~n~");
  8480.     TextDrawColor(BlackBox, 0x000000FF);
  8481.     TextDrawLetterSize(BlackBox, 50.0000, 50.0000);
  8482.     TextDrawUseBox(BlackBox, 1);
  8483.     TextDrawBoxColor(BlackBox, 0x000000FF);
  8484.     TextDrawFont(BlackBox, 0);
  8485.     TextDrawTextSize(BlackBox, 650.0000, 500.0000);
  8486.     TextDrawSetShadow(BlackBox, 0);
  8487.     TextDrawSetProportional(BlackBox, 0);
  8488.    
  8489.     WillkommenText = TextDrawCreate(50, 105, "Willkommen auf dem New Deathmatch Deathmatch Server!");
  8490.     TextDrawFont(WillkommenText , 3);
  8491.     TextDrawLetterSize(WillkommenText , 0.54, 2.8);
  8492.     TextDrawColor(WillkommenText , 0xFF0000FF);
  8493.     TextDrawSetOutline(WillkommenText , 1);
  8494.     TextDrawSetProportional(WillkommenText , 1);
  8495.     TextDrawSetShadow(WillkommenText , 1);
  8496. }
  8497.  
  8498. ACChecks()
  8499. {
  8500.     new iString[160];
  8501.     foreach(new i : Player)
  8502.     {
  8503.         if(IsPlayerConnected(i) && Player[i][Spawned] == true && Player[i][Level] < 3)
  8504.         {
  8505. /*
  8506.             //Animation
  8507.  
  8508.             new animlib[32];
  8509.             new animname[32];
  8510.             GetAnimationName(GetPlayerAnimationIndex(i),animlib,32,animname,32);
  8511.             format(iString, sizeof(iString), "Animation: %s %s --- %d", animlib, animname, GetPlayerAnimationIndex(i));
  8512.             SendACWarning(i, iString);
  8513. */
  8514.  
  8515.             //jetpack
  8516.             if(Player[i][SafeJetpack] == false && GetPlayerSpecialAction(i) == SPECIAL_ACTION_USEJETPACK && Flying[i] == false)
  8517.             {
  8518.                 ACWarnsCount++;
  8519.                 SendACWarning(i, "Jetpack");
  8520.                 format(iString,sizeof(iString), "ANTICHEAT: %s wurde vom AntiCheat gekickt. [Jetpack] [ID: %d]",GetName(i),ACWarnsCount);
  8521.                 SendClientMessage(i, AC_COLOR, iString);
  8522.                 format(iString,sizeof(iString), "%s [Jetpack]",GetName(i));
  8523.                 ACLog(iString);
  8524.                 SetTimerEx("KickTimer", 200, false, "i", i);
  8525.             }
  8526.            
  8527.  
  8528.             //weaponhacks
  8529.             new weaponid = GetPlayerWeapon(i);
  8530.             if(Player[i][SafeGun] == false && weaponid != 0 && weaponid != DEAGLE && weaponid != SHOTGUN && weaponid != SPAS && weaponid != MP5 && weaponid != AK47 && weaponid != M4 && weaponid != RIFLE && weaponid != SNIPER && weaponid != GRENADE)
  8531.             {
  8532.                 ACWarnsCount++;
  8533.                 format(iString, sizeof(iString), "Waffen Hack: %s", WeaponNames[weaponid]);
  8534.                 SendACWarning(i, iString);
  8535.                 format(iString,sizeof(iString), "ANTICHEAT: %s wurde vom AntiCheat gekickt. [Waffen Hack] [ID: %d]",GetName(i),ACWarnsCount);
  8536.                 SendClientMessage(i, AC_COLOR, iString);
  8537.                 format(iString,sizeof(iString), "%s [WaffenHack: %s]", GetName(i),WeaponNames[weaponid]);
  8538.                 ACLog(iString);
  8539.                 SetTimerEx("KickTimer", 200, false, "i", i);
  8540.             }
  8541.  
  8542.  
  8543.             //ammohack
  8544.             new Weapon[13], Ammo[13];
  8545.             for(new k = 0; k < 13; k++) GetPlayerWeaponData(i, k, Weapon[k], Ammo[k]);
  8546.            
  8547.             if(Player[i][VIP] == 1 && Player[i][SafeGun] == false)
  8548.             {
  8549.                 if(Ammo[2] > 200 || Ammo[3] > 200 || Ammo[4] > 200 || Ammo[5] > 400 || Ammo[6] > 200 || Ammo[8] > 2)
  8550.                 {
  8551.                     ACWarnsCount++;
  8552.                     SendACWarning(i, "Ammo Hack");
  8553.                     format(iString,sizeof(iString), "ANTICHEAT: %s wurde vom AntiCheat gekickt. [Ammo Hack] [ID: %d]",GetName(i),ACWarnsCount);
  8554.                     SendClientMessage(i, AC_COLOR, iString);
  8555.                     format(iString,sizeof(iString), "%s [Ammo Hack] [ID: %d]",GetName(i), ACWarnsCount);
  8556.                     ACLog(iString);
  8557.                     SetTimerEx("KickTimer", 200, false, "i", i);
  8558.                 }
  8559.             }
  8560.             else if(Player[i][VIP] == 0 && Player[i][SafeGun] == false)
  8561.             {
  8562.                 if(Ammo[2] > 100 || Ammo[3] > 100 || Ammo[4] > 100 || Ammo[5] > 200 || Ammo[6] > 100 || Ammo[8] > 1)
  8563.                 {
  8564.                     ACWarnsCount++;
  8565.                     SendACWarning(i, "Munitions Hack");
  8566.                     format(iString,sizeof(iString), "ANTICHEAT: %s wurde vom AntiCheat gekickt. [Ammo Hack] [ID: %d]",GetName(i),ACWarnsCount);
  8567.                     SendClientMessage(i, AC_COLOR, iString);
  8568.                     format(iString,sizeof(iString), "%s [Ammo Hack] [ID: %d]",GetName(i), ACWarnsCount);
  8569.                     ACLog(iString);
  8570.                     SetTimerEx("KickTimer", 200, false, "i", i);
  8571.                 }
  8572.             }
  8573.  
  8574.  
  8575.             //armorhack
  8576.             new Float:AP;
  8577.             GetPlayerArmour(i, AP);
  8578.             if(AP > 25)
  8579.             {
  8580.                 ACWarnsCount++;
  8581.                 SendACWarning(i, "Rüstungs Hack");
  8582.                 format(iString,sizeof(iString), "ANTICHEAT: %s wurde vom AntiCheat gekickt. [Rüstungs Hack] [ID: %d]",GetName(i),ACWarnsCount);
  8583.                 SendClientMessage(i, AC_COLOR, iString);
  8584.                 format(iString,sizeof(iString), "%s [Rüstungs Hack] [ID: %d]",GetName(i), ACWarnsCount);
  8585.                 ACLog(iString);
  8586.                 SetTimerEx("KickTimer", 200, false, "i", i);
  8587.             }
  8588.  
  8589.  
  8590.             //airbreak
  8591.             if(Flying[i] == false && GetPlayerAnimationIndex(i) == 958 || GetPlayerAnimationIndex(i) == 959 || GetPlayerAnimationIndex(i) == 961 || GetPlayerAnimationIndex(i) == 962)
  8592.             {
  8593.                 ACWarnsCount++;
  8594.                 SendACWarning(i, "Airbreak");
  8595.                 format(iString,sizeof(iString), "ANTICHEAT: Cheat/Hack erkannt. [Airbreak] [ID: %d]",ACWarnsCount);
  8596.                 SendClientMessage(i, AC_COLOR, iString);
  8597.                 format(iString,sizeof(iString), "%s [Airbreak] [ID: %d]",GetName(i), ACWarnsCount);
  8598.                 ACLog(iString);
  8599.                 Player[i][ACWarnings]++;
  8600.             }
  8601.  
  8602.  
  8603.             //speedhack
  8604.             new Float:V[3], Float:SumV;
  8605.             GetPlayerVelocity(i, V[0], V[1], V[2]);
  8606.             if(V[0] > 0 && V[1] > 0) SumV = V[0] + V[1];
  8607.             if(V[0] < 0 && V[1] < 0) SumV = V[0] + V[1];
  8608.             if(V[0] > 0 && V[1] < 0) SumV = V[0] - V[1];
  8609.             if(V[0] < 0 && V[1] > 0) SumV = V[1] - V[0];
  8610.             if(SumV > 0.44 || SumV < -0.44 && Flying[i] == false && Player[i][SafeJetpack] == false)
  8611.             {
  8612.                 ACWarnsCount++;
  8613.                 format(iString, sizeof(iString), "Speedhack/Macros/Slidebug -- Geschwindigkeit: %.5f", SumV);
  8614.                 SendACWarning(i, iString);
  8615.                 format(iString,sizeof(iString), "ANTICHEAT: Cheat/Hack erkannt. [Speedhack/Macros/Slidebug] [ID: %d]",ACWarnsCount);
  8616.                 SendClientMessage(i, AC_COLOR, iString);
  8617.                 format(iString,sizeof(iString), "%s [SpeedHack/Macros/Slidebug -- Geschwindigkeit: %.5f] [ID: %d]",GetName(i),SumV,ACWarnsCount);
  8618.                 ACLog(iString);
  8619.                 Player[i][ACWarnings]++;
  8620.             }
  8621.         }
  8622.     }
  8623. }
  8624.  
  8625. public OnPlayerPickUpPickup(playerid, pickupid){
  8626.     if(pickupid == BCID){
  8627.         SendClientMessage(playerid, -1, "PICKUP: Du hast 50 Score gefunden.");
  8628.         GivePlayerScore(playerid, 50);
  8629.        
  8630.         BCID = -1;
  8631.     }
  8632.     new iString[80];
  8633.     if(pickupid == pickup)
  8634.     {
  8635.         if(Player[playerid][Level] == 0) return 0;
  8636.        
  8637.         SendClientMessage(playerid, COLOR_GREEN, "Willkommen in der Admin Villa!");
  8638.         format(iString,sizeof(iString),"%s hat die Adminvilla betreten.",GetName(playerid));
  8639.         SendAdminMessage(1, iString);
  8640.        
  8641.         SetPlayerInterior(playerid, 5);
  8642.         SetPlayerPos(playerid,1226.2805,-809.9200,1084.0078);
  8643.     }
  8644.     if(pickupid == exitpickup)
  8645.     {
  8646.         if(Player[playerid][Level] == 0) return 0;
  8647.        
  8648.         format(iString,sizeof(iString),"%s hat die Adminvilla verlassen.",GetName(playerid));
  8649.         SendAdminMessage(1, iString);
  8650.        
  8651.         SetPlayerInterior(playerid, 0);
  8652.         SetPlayerPos(playerid,775.8594,-1016.0732,26.3594);
  8653.     }
  8654.     if(pickupid == safepickup)
  8655.     {
  8656.         if(Player[playerid][UsedSafe] == true) return SendClientMessage(playerid, COLOR_DARKGREEN, "SAFE: Du hast den Safe bereits benutzt. Du kannst ihn nur alle 30 Minuten benutzen.");
  8657.         if(Player[playerid][Level] == 0) return 0;
  8658.         GiveScore(playerid, 100);
  8659.         Player[playerid][UsedSafe] = true;
  8660.         SendClientMessage(playerid, COLOR_DARKGREEN, "SAFE: Du hast den Safe geleert und 100 Punkte erhalten.");
  8661.         SetTimerEx("UseSafe",1800000, 0, "i",playerid);
  8662.     }
  8663.     return 1;
  8664. }
  8665.  
  8666. forward UseSafe(playerid);
  8667. public UseSafe(playerid)
  8668. {
  8669.     Player[playerid][UsedSafe] = false;
  8670.     SendClientMessage(playerid, COLOR_DARKGREEN, "SAFE: Der Safe wurde wieder für dich aufgefüllt.");
  8671.    
  8672.     return 1;
  8673. }
  8674.  
  8675. forward OnRandomMessageChange();
  8676. public OnRandomMessageChange()
  8677. {
  8678.     new rand = random(sizeof(gRandomMessage));
  8679.     SendClientMessageToAll(COLOR_KHAKI, " ");
  8680.     SendClientMessageToAll(COLOR_KHAKI, gRandomMessage[rand]);
  8681.     SendClientMessageToAll(COLOR_KHAKI, " ");
  8682.     return 1;
  8683. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement