Advertisement
Guest User

Untitled

a guest
Jun 28th, 2013
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 19.88 KB | None | 0 0
  1. // Module die geladen werden //
  2. #include <a_samp>
  3. #include <a_mysql>
  4. #include <ocmd>
  5. #include <sscanf>
  6. #include <streamer>
  7.  
  8. // Enum's die genutzt werden //
  9. #define DIALOG_REGISTER 1
  10. #define DIALOG_LOGIN 2
  11.  
  12. enum UserData
  13. {
  14. Username[MAX_PLAYER_NAME+1],
  15. Geld,
  16. Float:Leben,
  17. Admin,
  18. LastLogin[11],
  19. bool:Logged,
  20. LoginDataCacheID
  21. }
  22.  
  23. // New's //
  24. new mycon;
  25. new User[MAX_PLAYERS][UserData];
  26.  
  27. new engine,lights,alarm,doors,bonnet,boot,objective; // Dies sind die Variablen die für das einschalten des Motors benötigt werden.
  28. new bool:Motor[MAX_VEHICLES]=false; // Dies ist die Boolean für den Motor. [MAX_VEHICLES] ist angehängt, da sie für jedes Fahrzeug unterschiedlich sein kann.
  29. new Tank[MAX_VEHICLES], bool:TanktGerade[MAX_VEHICLES]=false, tanktimer[MAX_PLAYERS];
  30. new Text:Anzeige[MAX_PLAYERS]
  31.  
  32. // Farb definitionen //
  33. #define Rot 0xFF0000FF
  34. #define Gelb 0xFFFF00FF
  35. #define Grün 0x00FF00FF
  36. #define Blau 0x0000FFFF
  37. #define Weis 0xFFFFFFFF
  38.  
  39. // New Definitionen //
  40. #undef MAX_PLAYERS
  41. #define MAX_PLAYERS 100
  42.  
  43. #define VERLUST 10000 // Die Zeit, die der Motor braucht um 1 Liter zu verbrennen in Millisekunden (Hier 10 Sekunden)
  44. #define BENZINPREIS 3 // Der Preis, den das Benzin pro Liter kostet (Hier 3$)
  45.  
  46. //Forwards
  47.  
  48. forward LoadPlayerDataSequence(playerid, l_step);
  49. forward KickPlayer(playerid);
  50. forward onCountryDetect(playerid, ip[]);
  51.  
  52. forward BenzinVerlust(); // Wir forwarden unseren Timer für den Benzinverlust
  53. forward Auftanken(playerid); // Wir forwarden unseren Timer für das Tanken
  54.  
  55. main()
  56. {
  57. print("\n----------------------------------");
  58. print("New San Fierro by Shøxx");
  59. print("----------------------------------\n");
  60. }
  61.  
  62. public OnGameModeInit()
  63. {
  64. mysql_log(_,LOG_TYPE_HTML);
  65. mycon = mysql_connect("127.0.0.1","root","samp","");
  66. SetGameModeText("New San Fierro");
  67. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  68. DisableInteriorEnterExits();
  69.  
  70. ManualVehicleEngineAndLights(); // Dies muss in OnGameModeInit angegeben werden, damit das ganze System überhaupt funktioniert.
  71.  
  72. SetTimer("BenzinVerlust", VERLUST, true);
  73. for (new i=0; i< MAX_VEHICLES; i++)
  74. {
  75. GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
  76. SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  77. Motor[i] = false;
  78. Tank[i] = 100;
  79. }
  80.  
  81. for (new i=0; i< MAX_VEHICLES; i++)
  82. {
  83. GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
  84. SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  85. Motor[i] = false;
  86. }
  87.  
  88. AddStaticVehicle(411,2020.5170,1351.2760,9.7570,270.8903,125,125); // Start
  89.  
  90. //Fahrschule San Fierro
  91. AddStaticVehicleEx(405,-2081.0000000,-83.8000000,35.2000000,0.0000000,255,255,15); //Sentinel
  92. AddStaticVehicleEx(405,-2076.8999000,-83.8000000,35.2000000,0.0000000,255,255,15); //Sentinel
  93. AddStaticVehicleEx(405,-2085.1999500,-83.9000000,35.2000000,0.0000000,255,255,15); //Sentinel
  94. AddStaticVehicleEx(560,-2072.8000500,-84.0000000,35.0000000,0.0000000,255,255,15); //Sultan
  95. AddStaticVehicleEx(560,-2064.3000500,-84.1000000,35.0000000,0.0000000,255,255,15); //Sultan
  96. AddStaticVehicleEx(560,-2068.5000000,-84.0000000,35.0000000,0.0000000,255,255,15); //Sultan
  97. AddStaticVehicleEx(403,-2081.0000000,-100.0000000,35.9000000,270.0000000,255,255,15); //Linerunner
  98. AddStaticVehicleEx(450,-2091.3999000,-100.1000000,35.8000000,270.2500000,255,255,15); //Trailer 2
  99. AddStaticVehicleEx(593,-2086.8999000,-114.5000000,35.9000000,181.2490000,255,255,15); //Dodo
  100. AddStaticVehicleEx(593,-2068.3999000,-114.0000000,35.9000000,181.2470000,255,255,15); //Dodo
  101. AddStaticVehicleEx(487,-2027.8000500,-189.0000000,35.6000000,270.0000000,255,255,15); //Maverick
  102. AddStaticVehicleEx(487,-2028.0999800,-215.8999900,35.6000000,270.0000000,255,255,15); //Maverick
  103. CreateDynamicObject(1215,-2091.6999500,-80.4000000,34.7000000,0.0000000,0.0000000,0.0000000); //object(bollardlight) (1)
  104. CreateDynamicObject(1215,-2087.6001000,-80.4000000,34.7000000,0.0000000,0.0000000,0.0000000); //object(bollardlight) (2)
  105. CreateDynamicObject(1215,-2083.3000500,-80.4000000,34.7000000,0.0000000,0.0000000,0.0000000); //object(bollardlight) (3)
  106. CreateDynamicObject(1215,-2079.1999500,-80.4000000,34.7000000,0.0000000,0.0000000,2.0000000); //object(bollardlight) (4)
  107. CreateDynamicObject(1215,-2074.8000500,-80.4000000,34.7000000,0.0000000,0.0000000,2.0000000); //object(bollardlight) (5)
  108. CreateDynamicObject(1215,-2070.6999500,-80.4000000,34.7000000,0.0000000,0.0000000,2.0000000); //object(bollardlight) (6)
  109. CreateDynamicObject(1215,-2066.3999000,-80.4000000,34.7000000,0.0000000,0.0000000,2.0000000); //object(bollardlight) (7)
  110. CreateDynamicObject(1215,-2062.3000500,-80.4000000,34.7000000,0.0000000,0.0000000,2.0000000); //object(bollardlight) (8)
  111. CreateDynamicObject(3934,-2027.4000200,-189.1000100,34.4000000,0.0000000,0.0000000,359.5000000); //object(helipad01) (1)
  112. CreateDynamicObject(3934,-2027.5000000,-215.8000000,34.4000000,0.0000000,0.0000000,0.0000000); //object(helipad01) (2)
  113.  
  114. return 1;
  115. }
  116.  
  117. public OnGameModeExit()
  118. {
  119. mysql_close();
  120. return 1;
  121. }
  122.  
  123. public OnPlayerRequestClass(playerid, classid)
  124. {
  125. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  126. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  127. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  128. return 1;
  129. }
  130.  
  131. public OnPlayerConnect(playerid)
  132. {
  133. GetPlayerName(playerid,User[playerid][Username],MAX_PLAYER_NAME);
  134. new query[60 + MAX_PLAYER_NAME];
  135. mysql_format(mycon, query, sizeof(query), "SELECT * FROM `User` WHERE `Name` = '%s'",User[playerid][Username]);
  136. mysql_function_query(mycon, query, true, "LoadPlayerDataSequence","dd",playerid,1);
  137.  
  138. new szPlayerIP[16], iNumIP;
  139. GetPlayerIp(playerid, szPlayerIP, sizeof(szPlayerIP));
  140. iNumIP = IpToInteger(szPlayerIP);
  141. mysql_format(mycon, query, true, "SELECT `country_code`, `country_name` FROM `ip2c` WHERE \"%d\" BETWEEN `begin_ip_num` AND `end_ip_num` LIMIT 1", iNumIP);
  142. mysql_function_query(mycon, query, true, "onCountryDetect", "ds", playerid, szPlayerIP);
  143.  
  144. new pName[MAX_PLAYER_NAME];
  145. new string[48];
  146. GetPlayerName(playerid, pName, sizeof(pName));
  147. format(string, sizeof(string), "[Join] %s hat den Server betreten.", pName);
  148. SendClientMessageToAll(Grün, string);
  149.  
  150. Anzeige[playerid] = TextDrawCreate(630.0,410.0," "); // Erstellt das TextDraw an X|Y-Position 630|410 (unten rechts)
  151. TextDrawSetOutline(Anzeige[playerid], 1); // Setzt dem TextDraw Outlines
  152. TextDrawAlignment(Anzeige[playerid], 3); // Macht das TextDraw rechtsbündig
  153. TextDrawSetShadow(Anzeige[playerid], 0); // Schaltet den Schatten des TextDraws aus
  154. TextDrawShowForPlayer(playerid,Anzeige[playerid]); // Zeigt das TextDraw dem Spieler
  155.  
  156. return 1;
  157. }
  158.  
  159. public OnPlayerDisconnect(playerid, reason)
  160. {
  161. if(User[playerid][Logged])
  162. {
  163. SavePlayerData(playerid);
  164. }
  165. ResetPlayerVariables(playerid);
  166.  
  167. new pName[MAX_PLAYER_NAME];
  168. new string[56];
  169. GetPlayerName(playerid, pName, sizeof(pName));
  170.  
  171. switch(reason)
  172. {
  173. case 0: format(string, sizeof(string), "[Leave] %s hat hat die Verbindung verloren. (Netzwerk Timeout)", pName);
  174. case 1: format(string, sizeof(string), "[Leave] %s hat den Server verlassen.", pName);
  175. case 2: format(string, sizeof(string), "[Leave] %s musste den Server verlassen. (Kick/ban)", pName);
  176. }
  177.  
  178. SendClientMessageToAll(Rot, string);
  179. return 1;
  180.  
  181. }
  182.  
  183. public OnPlayerSpawn(playerid)
  184. {
  185. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  186.  
  187. RemoveBuildingForPlayer(playerid, 11372, -2076.4375, -107.9297, 36.9688, 0.25);
  188. RemoveBuildingForPlayer(playerid, 11099, -2056.9922, -184.5469, 34.4141, 0.25);
  189. RemoveBuildingForPlayer(playerid, 11014, -2076.4375, -107.9297, 36.9688, 0.25);
  190. RemoveBuildingForPlayer(playerid, 4516, -141.3359, 468.6484, 12.9141, 0.25);
  191. RemoveBuildingForPlayer(playerid, 4517, -193.8281, 269.5078, 12.8906, 0.25);
  192. return 1;
  193. }
  194.  
  195. public OnPlayerDeath(playerid, killerid, reason)
  196. {
  197. return 1;
  198. }
  199.  
  200. public OnVehicleSpawn(vehicleid)
  201. {
  202. GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
  203. SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  204. Motor[vehicleid] = false;
  205. return 1;
  206. }
  207.  
  208. public OnVehicleDeath(vehicleid, killerid)
  209. {
  210. return 1;
  211. }
  212.  
  213. public OnPlayerText(playerid, text[])
  214. {
  215. return 1;
  216. }
  217.  
  218. public OnPlayerCommandText(playerid, cmdtext[])
  219. {
  220. if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  221. {
  222. // Do something here
  223. return 0;
  224. }
  225.  
  226. if(!strcmp(strget(cmdtext, 0), "/givemoney"))
  227. {
  228. if(!IsPlayerAdmin(playerid))
  229. {
  230. SendClientMessage(playerid, Rot, "Du bist kein Admin und kannst diesen Befehl deswegen nicht ausführen.");
  231. }
  232. else
  233. {
  234. new spielerid = strval(strget(cmdtext, 1));
  235. new geld = strval(strget(cmdtext, 2));
  236. GivePlayerMoney(spielerid, geld);
  237. User[spielerid][Geld]+=geld;
  238. return 1;
  239. }
  240. }
  241.  
  242. if(strcmp(cmdtext, "/m", true) == 0)
  243. {
  244. if(GetPlayerVehicleSeat(playerid) == 0)
  245. {
  246. new car = GetPlayerVehicleID(playerid);
  247. if(GetVehicleModel(car) == 509 || GetVehicleModel(car) == 481 || GetVehicleModel(car) == 510)
  248. {
  249. SendClientMessage(playerid, Rot, "Du sitzt auf einem Fahrrad. Das hat keinen Motor!");
  250. }
  251.  
  252. else if (Tank[car] < 1)
  253. {
  254. SendClientMessage(playerid, Rot, "Der Tank ist leer. Du musst erst /tanken.");
  255. }
  256.  
  257. else if (Motor[car] == false )
  258. {
  259. GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
  260. SetVehicleParamsEx(car,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
  261. Motor[car] = true; // Setzt den Bool Motor auf true
  262. }
  263.  
  264. else
  265. {
  266. GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
  267. SetVehicleParamsEx(car,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  268. Motor[car] = false; // Setzt den Bool wieder auf falsch zurück.
  269. }
  270. }
  271.  
  272. if(strcmp(cmdtext, "/tanken", true) == 0)
  273. {
  274. else if (GetPlayerVehicleSeat(playerid) != 0) return SendClientMessage(playerid,Rot,"Du bist in keinem Fahrzeug (oder kein Fahrer).");
  275. new car = GetPlayerVehicleID(playerid);
  276. else if (TanktGerade[car]) return SendClientMessage(playerid,Rot,"Du tankst schon!");
  277. else if (Motor[car] == true) return SendClientMessage(playerid,Rot,"Du musst vor dem Tanken den Motor ausschalten.");
  278. new ZuTanken = 100-Tank[car];
  279. new preis = ZuTanken * BENZINPREIS;
  280. if (GetPlayerMoney(playerid)-preis < 0) return SendClientMessage(playerid,COLOR_TOMATO,"Du hast nicht genug Geld!");
  281. GivePlayerMoney(playerid, -preis);
  282. SendClientMessage(playerid, COLOR_GREEN, "Tanken wird gestartet.");
  283. SetCameraBehindPlayer(playerid);
  284. TogglePlayerControllable(playerid,0);
  285. TanktGerade[car] = true;
  286. tanktimer[playerid] = SetTimerEx("Auftanken",500,true,"i",playerid);
  287. return 1;
  288. }
  289.  
  290. // Allgemeiner OCMD Bereich //
  291.  
  292. // Allgemeiner OCMD Bereich Ende //
  293.  
  294. if(GetVehicleModel(vehicleid) == 509 || GetVehicleModel(vehicleid) == 481 || GetVehicleModel(vehicleid) == 510) // Überprüft ob das Fahrzeug ein Fahrrad ist (wie im Command oben)
  295. {
  296. GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective); // Speichere den derzeitigen Status
  297. SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective); // Behalte alles bei, aber starte den Motor.
  298. }
  299.  
  300. public OnPlayerExitVehicle(playerid, vehicleid)
  301. {
  302. return 1;
  303. }
  304.  
  305. public OnPlayerStateChange(playerid, newstate, oldstate)
  306. {
  307. return 1;
  308. }
  309.  
  310. public OnPlayerEnterCheckpoint(playerid)
  311. {
  312. return 1;
  313. }
  314.  
  315. public OnPlayerLeaveCheckpoint(playerid)
  316. {
  317. return 1;
  318. }
  319.  
  320. public OnPlayerEnterRaceCheckpoint(playerid)
  321. {
  322. return 1;
  323. }
  324.  
  325. public OnPlayerLeaveRaceCheckpoint(playerid)
  326. {
  327. return 1;
  328. }
  329.  
  330. public OnRconCommand(cmd[])
  331. {
  332. return 1;
  333. }
  334.  
  335. public OnPlayerRequestSpawn(playerid)
  336. {
  337. if(!User[playerid][Logged]) return 0;
  338. return 1;
  339. }
  340.  
  341. public OnObjectMoved(objectid)
  342. {
  343. return 1;
  344. }
  345.  
  346. public OnPlayerObjectMoved(playerid, objectid)
  347. {
  348. return 1;
  349. }
  350.  
  351. public OnPlayerPickUpPickup(playerid, pickupid)
  352. {
  353. return 1;
  354. }
  355.  
  356. public OnVehicleMod(playerid, vehicleid, componentid)
  357. {
  358. return 1;
  359. }
  360.  
  361. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  362. {
  363. return 1;
  364. }
  365.  
  366. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  367. {
  368. return 1;
  369. }
  370.  
  371. public OnPlayerSelectedMenuRow(playerid, row)
  372. {
  373. return 1;
  374. }
  375.  
  376. public OnPlayerExitedMenu(playerid)
  377. {
  378. return 1;
  379. }
  380.  
  381. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  382. {
  383. return 1;
  384. }
  385.  
  386. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  387. {
  388. return 1;
  389. }
  390.  
  391. public OnRconLoginAttempt(ip[], password[], success)
  392. {
  393. if(!success) //If the password was incorrect
  394. {
  395. printf("FAILED RCON LOGIN BY IP %s USING PASSWORD %s",ip, password);
  396. new pip[16];
  397. for(new i=0; i<MAX_PLAYERS; i++) //Loop through all players
  398. {
  399. GetPlayerIp(i, pip, sizeof(pip));
  400. if(!strcmp(ip, pip, true)) //If a player's IP is the IP that failed the login
  401. {
  402. SendClientMessage(i, Rot, "Wrong Password. Bye!"); //Send a message
  403. Ban(i); //They are now banned.
  404. }
  405. }
  406. }
  407. return 1;
  408. }
  409.  
  410. public OnPlayerUpdate(playerid)
  411. {
  412. if(GetPlayerVehicleSeat(playerid) == 0)
  413. {
  414. new vehicleid;
  415. vehicleid = GetPlayerVehicleID(playerid);
  416. if(GetVehicleModel(vehicleid) != 509 && GetVehicleModel(vehicleid) != 481 && GetVehicleModel(vehicleid) != 510)
  417. {
  418. new string[125];
  419. if(Tank[vehicleid] < 10) format(string,sizeof string,"~w~Tank: ~r~%i",Tank[vehicleid]);
  420. else if(Tank[vehicleid] < 30) format(string,sizeof string,"~w~Tank: ~y~%i",Tank[vehicleid]);
  421. else if(Tank[vehicleid] <= 100) format(string,sizeof string,"~w~Tank: ~g~%i",Tank[vehicleid]);
  422. TextDrawSetString(Anzeige[playerid],string);
  423. }
  424. }
  425. else
  426. {
  427. TextDrawSetString(Anzeige[playerid], " ");
  428. }
  429. return 1;
  430. }
  431.  
  432. public OnPlayerStreamIn(playerid, forplayerid)
  433. {
  434. return 1;
  435. }
  436.  
  437. public OnPlayerStreamOut(playerid, forplayerid)
  438. {
  439. return 1;
  440. }
  441.  
  442. public OnVehicleStreamIn(vehicleid, forplayerid)
  443. {
  444. return 1;
  445. }
  446.  
  447. public OnVehicleStreamOut(vehicleid, forplayerid)
  448. {
  449. return 1;
  450. }
  451.  
  452. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  453. {
  454. switch(dialogid)
  455. {
  456. case DIALOG_REGISTER:
  457. {
  458. if(!response)
  459. {
  460. SendClientMessage(playerid,0xFF0000FF,"Bitte benutzen Sie /q, um das Spiel zu beenden!");
  461. SetTimerEx("KickPlayer",250,0,"i",playerid);
  462. return 1;
  463. }
  464. new InputLength = strlen(inputtext);
  465. if(InputLength < 3 || InputLength > 25)
  466. {
  467. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "{00FF00}[Passwort Eingabe - Registrierung]","{FFFFFF}Bitte geben Sie Ihr gewünschtes Passwort ein!\n{FF0000}Bitte zwischen 3 & 25 Zeichen!","Register","Abbrechen");
  468. return 1;
  469. }
  470. new query[128+MAX_PLAYER_NAME], day, month, year;
  471. getdate(day, month, year);
  472. format(query, sizeof(query),"%i/%i/%i",day,month,year);
  473. mysql_format(mycon, query, sizeof(query), "INSERT INTO `User` (`Name`, `Passwort`, `Geld`, `Leben`, `Admin`, `LastLogin`) VALUES('%s','%s',0,100.0,0,'%s')", User[playerid][Username], inputtext, query);
  474. mysql_function_query(mycon, query, false, "", "");
  475. User[playerid][Logged] = true;
  476. SpawnPlayer(playerid);
  477. return 1;
  478. }
  479. case DIALOG_LOGIN:
  480. {
  481. if(!response)
  482. {
  483. SendClientMessage(playerid,0xFF0000FF,"Bitte benutzen Sie /q, um das Spiel zu beenden!");
  484. SetTimerEx("KickPlayer",250,0,"i",playerid);
  485. return 1;
  486. }
  487. new InputLength = strlen(inputtext);
  488. if(InputLength < 3 || InputLength > 25)
  489. {
  490. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{00FF00}[Passwort Eingabe - Loginsequenz]","{FFFFFF}Bitte geben Sie Ihr Passwort ein!\n{FF0000}Es hat mindestens 3 Zeichen!","Login","Abbrechen");
  491. return 1;
  492. }
  493. cache_set_active(User[playerid][LoginDataCacheID]);
  494. new UserPassword[64];
  495. cache_get_field_content(0, "Passwort", UserPassword);
  496. if(strcmp(UserPassword, inputtext) == 0) {
  497. User[playerid][Leben] = cache_get_field_content_float(0,"Leben",1);
  498. User[playerid][Admin] = cache_get_field_content_int(0, "Admin",1);
  499. cache_get_field_content(0,"LastLogin",User[playerid][LastLogin],1);
  500. User[playerid][Logged] = true;
  501. SpawnPlayer(playerid);
  502. cache_delete(User[playerid][LoginDataCacheID]);
  503. User[playerid][LoginDataCacheID] = 0;
  504. }
  505. else
  506. {
  507. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{00FF00}[Passwort Eingabe - Loginsequenz]","{FFFFFF}Bitte geben Sie Ihr richtiges Passwort ein!\n{FF0000}Die vorherige Eingabe war falsch!","Login","Abbrechen");
  508. return 1;
  509. }
  510. return 1;
  511. }
  512. }
  513. return 1;
  514. }
  515.  
  516. public LoadPlayerDataSequence(playerid, l_step)
  517. {
  518. if(User[playerid][LoginDataCacheID] <= 0)
  519. User[playerid][LoginDataCacheID] = cache_save();
  520. User[playerid][Geld] = cache_get_field_content_int(0,"Geld",1);
  521. GivePlayerMoney(playerid, User[playerid][Geld]);
  522. new Rows, Fields;
  523. cache_get_data(Rows, Fields);
  524. if(Rows)
  525. {
  526. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{00FF00}[Passwort Eingabe - Loginsequenz]","{FFFFFF}Bitte geben Sie Ihr Passwort ein!","Login","Abbrechen");
  527. }
  528. else
  529. {
  530. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "{00FF00}[Passwort eingabe - Registrierung]","{FFFFFF}Bitte geben Sie Ihr gewünschtes Passwort ein!","Register","Abbrechen");
  531. }
  532. return 1;
  533. }
  534.  
  535. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  536. {
  537. return 1;
  538. }
  539.  
  540. public KickPlayer(playerid)
  541. return Kick(playerid);
  542.  
  543. public onCountryDetect(playerid, ip[])
  544. {
  545. if(IsPlayerConnected(playerid)) {
  546. new rows, fields, szPlayerName[MAX_PLAYER_NAME];
  547. cache_get_data(rows, fields);
  548. new country_name[30], country_code[30];
  549. #define FIELD_COUNTRYNAME 0
  550. #define FIELD_COUNTRYCODE 1
  551. cache_get_row(0, FIELD_COUNTRYNAME, country_name);
  552. cache_get_row(0, FIELD_COUNTRYCODE, country_code);
  553. GetPlayerName(playerid, szPlayerName, MAX_PLAYER_NAME);
  554. printf("Player %s (ID: %d, IP: %s, Country: %s, CountryCode: %s)", szPlayerName, playerid, country_name, country_code);
  555. }
  556. return 1;
  557. }
  558.  
  559. public BenzinVerlust()
  560. {
  561. for(new i=0; i<MAX_VEHICLES; i++)
  562. {
  563. if (Motor[i] == true)
  564. {
  565. Tank[i] = Tank[i]-1;
  566. if (Tank[i]<1)
  567. {
  568. Tank[i] = 0;
  569. GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
  570. SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  571. Motor[i] = false;
  572. }
  573. }
  574. }
  575. return 1;
  576. }
  577.  
  578. public Auftanken(playerid)
  579. {
  580. new car = GetPlayerVehicleID(playerid);
  581. Tank[car] = Tank[car] +1;
  582. if(Tank[car] >= 100)
  583. {
  584. TanktGerade[car] = false;
  585. Tank[car] = 100;
  586. SendClientMessage(playerid, COLOR_GREEN, "Dein Fahrzeug wurde vollgetankt.");
  587. TogglePlayerControllable(playerid,1);
  588. KillTimer(tanktimer[playerid]);
  589. }
  590. return 1;
  591. }
  592.  
  593. stock SavePlayerData(playerid)
  594. {
  595. new query[100 + MAX_PLAYER_NAME];
  596. mysql_format(mycon,query, sizeof(query), "UPDATE `User` SET `Geld` = %i WHERE `Name` = '%s' ",User[playerid][Geld],User[playerid][Username]);
  597. mysql_function_query(mycon,query,false,"","");
  598. mysql_format(mycon,query, sizeof(query),"UPDATE `User` SET `Leben` = %.1f WHERE `Name` = '%s' ",User[playerid][Leben],User[playerid][Username]);
  599. mysql_function_query(mycon,query,false,"","");
  600. mysql_format(mycon,query, sizeof(query),"UPDATE `User` SET `Admin` = %i WHERE `Name` = '%s' ",User[playerid][Admin],User[playerid][Username]);
  601. mysql_function_query(mycon,query,false,"","");
  602. new day,month,year; getdate(day,month,year);
  603. format(User[playerid][LastLogin],11,"%i/%i/%i",day,month,year);
  604. mysql_format(mycon,query, sizeof(query),"UPDATE `User` SET `LastLogin` = '%s' WHERE `Name` = '%s' ",User[playerid][LastLogin],User[playerid][Username]);
  605. mysql_function_query(mycon,query,false,"","");
  606. return 1;
  607. }
  608.  
  609. stock ResetPlayerVariables(playerid)
  610. {
  611. User[playerid][Geld] = 0;
  612. User[playerid][Leben] = 0.0;
  613. strdel(User[playerid][Username],0,MAX_PLAYER_NAME+1);
  614. strdel(User[playerid][LastLogin],0,1);
  615. User[playerid][Logged] = false;
  616. User[playerid][LoginDataCacheID] = 0;
  617. return 1;
  618. }
  619.  
  620. stock IpToInteger(ip[])
  621. {
  622. new ipPart[4][4], iPart, cPos, idx;
  623. for(new a = strlen(ip);idx < a;idx++) {
  624. if(ip[idx] == '.') {
  625. strmid(ipPart[iPart], ip, cPos, idx, 4);
  626. cPos = idx + 1;
  627. iPart++;
  628. }
  629. }
  630. strmid(ipPart[3], ip, cPos, idx, 4);
  631. return (strval(ipPart[0]) << 24) | (strval(ipPart[1]) << 16) | (strval(ipPart[2]) << 8) | strval(ipPart[3]);
  632. }
  633.  
  634. stock strget(strx[], pos, search = ' ') {
  635. new arg, ret[128], idxx;
  636. for (new i = 0; i < strlen(strx); i++) {
  637. if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
  638. arg++;
  639. if (arg == pos + 1){
  640. ret[i-idxx] = EOS;
  641. return ret;
  642. } else if (arg == pos)
  643. idxx= i+1;
  644. }
  645. else if (arg == pos)
  646. ret[i - idxx] = strx[i];
  647. }
  648. return ret;
  649. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement