ServerFehler

Untitled

Dec 7th, 2020 (edited)
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 42.05 KB | None | 0 0
  1. //Includes
  2. #include <a_samp>
  3. #include <a_mysql>
  4. #include <md5>
  5. #include <streamer>
  6. #include <ocmd>
  7. #include <sscanf2>
  8.  
  9. //MySQL Verbindung
  10. #define MYSQL_HOST "127.0.0.1"
  11. #define MYSQL_USER "selfmade"
  12. #define MYSQL_DATA "selfmade"
  13. #define MYSQL_PASS "123"
  14. new dbhandle;
  15.  
  16. //Enums
  17. enum playerInfo{
  18. pid,
  19. plevel,
  20. padmin,
  21. pmoney,
  22. peingeloggt,
  23. pneuling,
  24. palter,
  25. pgeschlecht,
  26. pskin,
  27. Float:prussi,
  28. Float:pleben,
  29. //Spieler-Position//
  30. Float:px, //
  31. Float:py, //
  32. Float:pz, //
  33. Float:pa, //
  34. pint, //
  35. pvit, //
  36. //Spieler-Position//
  37. pperso,
  38. pvor[10],
  39. pnach[10],
  40. pverwarnung,
  41. pXP,
  42. pXPMax,
  43. pPayday
  44. }
  45. new pInfo[MAX_PLAYER_NAME][playerInfo];
  46.  
  47. enum hausEnum{
  48. Float:h_x,
  49. Float:h_y,
  50. Float:h_z,
  51. Float:ih_x,
  52. Float:ih_y,
  53. Float:ih_z,
  54. h_interior,
  55. h_besitzer[MAX_PLAYER_NAME],
  56. h_id,
  57. h_preis,
  58. h_pickup,
  59. Text3D:h_text
  60. }
  61. new hInfo[100][hausEnum];
  62.  
  63. enum actorInfoLabel{
  64. actor_name[128],
  65. actor_skin,
  66. Float:a_x,
  67. Float:a_y,
  68. Float:a_z,
  69. Float:a_r,
  70. actor_vw,
  71. actor_best,
  72. actor_besttype,
  73. actor_id
  74. }
  75. new actorInfo[][actorInfoLabel] = {
  76. {"Guten Tag mein Name ist Lukas Schuller.\nFalls Sie Hilfe benötigen nutzen Sie bitte die Eingabetaste",240,359.7125,173.4908,1008.3828,270.3046,0,0,0}
  77. };
  78.  
  79. enum InterriorInfo{
  80. b_name[128],
  81. Float:b_x,
  82. Float:b_y,
  83. Float:b_z,
  84. Float:b_a,
  85. Float:b_ix,
  86. Float:b_iy,
  87. Float:b_iz,
  88. Float:b_ia,
  89. b_interior,
  90. mapmarker
  91. }
  92. new bInfo[][InterriorInfo] = {
  93. {"Stadthalle",1481.0109,-1772.3136,18.7958,178.0812,389.8470, 173.7643, 1008.3828, 89.3840,3,38}
  94. };
  95.  
  96. //Dialoge
  97. #define DIALOG_REGISTER 1
  98. #define DIALOG_LOGIN 2
  99. #define DIALOG_CHAR1 3
  100. #define DIALOG_CHAR2 4
  101. #define DIALOG_CHAR3 5
  102. #define DIALOG_LOGINT 6
  103. #define DIALOG_WRB 7
  104. #define DIALOG_STADTHALLE 8
  105. #define DIALOG_STADTHALLE2 9
  106. #define DIALOG_STADTHALLE3 10
  107. #define DIALOG_STADTHALLE4 11
  108. #define DIALOG_STATS 12
  109.  
  110. //Chat Radius
  111. #define CHAT_RADIUS 20
  112.  
  113. //Forwards
  114. forward UserCheck(playerid);
  115. forward OnPlayerRegister(playerid);
  116. forward OnPasswordResponse(playerid);
  117. forward KickHackInfo(playerid);
  118. forward Second(playerid);
  119. forward toggleMotor(playerid);
  120. forward OnHausLoad(playerid);
  121. forward OnHausCreated(id);
  122. forward PayDay(playerid);
  123.  
  124. //Globale Variablen
  125. new Logintest[MAX_PLAYERS];
  126. new enterexit[MAX_PLAYERS];
  127. new timer[MAX_PLAYERS];
  128. new aCar[MAX_VEHICLES];
  129. new bool:Motor[MAX_VEHICLES]=false;
  130. new engine,lights,alarm,doors,bonnet,boot,objective;
  131. new payday[MAX_PLAYERS];
  132.  
  133. //Skin - System - Register
  134. new ManSkins[]={
  135. 247,248,245,220,221,123
  136. };
  137.  
  138. new WomanSkins[]={
  139. 9,12,41,55,56,90,226
  140. };
  141.  
  142. //Farben
  143. #define COLOR_WHITE 0xFFFFFFFF
  144. #define COLOR_GREY 0xBEBEBEFF
  145. #define COLOR_RED 0xFF000FFF
  146. #define COLOR_LIGHTBLUE 0x00D7FFFF
  147.  
  148. main()
  149. {
  150. print("\n----------------------------------");
  151. print(" RPG - City Remake");
  152. print("----------------------------------\n");
  153. }
  154.  
  155. public OnGameModeInit()
  156. {
  157. //Server Einstellungen
  158. SetGameModeText("German Reallife");
  159. DisableInteriorEnterExits();
  160. ShowNameTags(1);
  161. ShowPlayerMarkers(PLAYER_MARKERS_MODE_STREAMED);
  162. ManualVehicleEngineAndLights();
  163. EnableStuntBonusForAll(0);
  164.  
  165. //MySQL Verbindung
  166. dbhandle = mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_DATA,MYSQL_PASS);
  167. if(mysql_errno() < 1)print("MYSQL: Die Verbindung wurde erfolgreich hergestellt."),
  168. mysql_log(LOG_ALL);else print("MYSQL: Die Verbindung zum MYSQL Server konnte nicht hergestellt werden."),
  169. SendRconCommand("exit");
  170.  
  171. //Häuser laden
  172. new query[500];
  173. format(query, sizeof(query), "SELECT * FROM haus");
  174. mysql_function_query(dbhandle, query, true, "OnHausLoad", "");
  175.  
  176. //Actor's Laden
  177. for(new i=0; i<sizeof(actorInfo);i++)
  178. {
  179. Create3DTextLabel(actorInfo[i][actor_name],COLOR_WHITE,actorInfo[i][a_x],actorInfo[i][a_y],actorInfo[i][a_z]+1.2,10,actorInfo[i][actor_vw],1);
  180. actorInfo[i][actor_id] = CreateActor(actorInfo[i][actor_skin], actorInfo[i][a_x], actorInfo[i][a_y], actorInfo[i][a_z], actorInfo[i][a_r]);
  181. SetActorVirtualWorld(actorInfo[i][actor_id], actorInfo[i][actor_vw]);
  182. }
  183.  
  184. //Interior Laden
  185. for(new i=0;i<sizeof(bInfo);i++)
  186. {
  187. new string[300],string2[300];
  188. CreatePickup(1318,1,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z],-1);
  189. CreatePickup(1318,1,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz],-1);
  190. format(string,sizeof(string),"%s um zu interagieren\ndrücke Enter!",bInfo[i][b_name]);
  191. Create3DTextLabel(string,COLOR_WHITE,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z],40,0,1);
  192. format(string2,sizeof(string2),"%s um zu interagieren\ndrücke Enter!",bInfo[i][b_name]);
  193. Create3DTextLabel(string2,COLOR_WHITE,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz],40,i,1);
  194. CreateDynamicMapIcon(bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z],bInfo[i][mapmarker],-1,-1,-1,-1,-1,MAPICON_LOCAL);
  195.  
  196. }
  197.  
  198. //Motorsystem
  199. for(new i=0; i<MAX_VEHICLES;i++)
  200. {
  201. GetVehicleParamsEx(i, engine, lights, alarm, doors, bonnet, boot, objective);
  202. SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, alarm, doors,bonnet,boot,objective);
  203. Motor[i]=false;
  204. }
  205.  
  206. //Anti - DEAMX
  207. AntiDeAMX();
  208. return 1;
  209. }
  210.  
  211. public OnGameModeExit()
  212. {
  213. return 1;
  214. }
  215.  
  216. public OnPlayerRequestClass(playerid, classid)
  217. {
  218. SetSpawnInfo(playerid,0,0,0,0,0,0,0,0,0,0,0,0);
  219. SpawnPlayer(playerid);
  220. return 1;
  221. }
  222.  
  223. public OnPlayerConnect(playerid)
  224. {
  225. new query[500];
  226. mysql_format(dbhandle, query, sizeof(query),"SELECT * FROM user WHERE username='%e'",GetName(playerid));
  227. mysql_tquery(dbhandle, query,"UserCheck","i",playerid);
  228. ClearChat(playerid);
  229. TogglePlayerSpectating(playerid,1);
  230. GameTextForPlayer(playerid, "~w~Die Welt wird aufgebaut...", 3000, 3);
  231.  
  232. //Login auf 0 setzen
  233. Logintest[playerid]=0;
  234. enterexit[playerid]=0;
  235.  
  236. //PayDay
  237. KillTimer(payday[playerid]);
  238. return 1;
  239. }
  240.  
  241. public OnPlayerDisconnect(playerid, reason)
  242. {
  243. savePlayer(playerid);
  244. pInfo[playerid][peingeloggt]=0;
  245. KillTimer(timer[playerid]);
  246.  
  247. //PayDay
  248. KillTimer(payday[playerid]);
  249. return 1;
  250. }
  251.  
  252. public Second(playerid)
  253. {
  254. //Enter / Exit nur in 2 Sekunden möglich / damit man nicht mit rein/raus spammt!
  255. if(enterexit[playerid]>0)
  256. {
  257. enterexit[playerid]-=1;
  258. }
  259. }
  260.  
  261. public OnHausLoad()
  262. {
  263. new num_fields,num_rows;
  264. cache_get_data(num_rows,num_fields,dbhandle);
  265. if(!num_rows)return 1;
  266. for(new i=0; i<num_rows; i++)
  267. {
  268. new id=getFreeHausID();
  269. hInfo[id][h_x]=cache_get_field_content_float(i, "h_x", dbhandle);
  270. hInfo[id][h_y]=cache_get_field_content_float(i, "h_y", dbhandle);
  271. hInfo[id][h_z]=cache_get_field_content_float(i, "h_z", dbhandle);
  272. hInfo[id][ih_x]=cache_get_field_content_float(i, "ih_x", dbhandle);
  273. hInfo[id][ih_y]=cache_get_field_content_float(i, "ih_y", dbhandle);
  274. hInfo[id][ih_z]=cache_get_field_content_float(i, "ih_z", dbhandle);
  275. hInfo[id][h_interior]=cache_get_field_content_int(i, "h_interior", dbhandle);
  276. new tmp_name[MAX_PLAYER_NAME];
  277. cache_get_field_content(i, "besitzer", tmp_name, dbhandle);
  278. strmid(hInfo[id][h_besitzer], tmp_name, 0, sizeof(tmp_name), sizeof(tmp_name));
  279. hInfo[id][h_id]=cache_get_field_content_int(i, "id", dbhandle);
  280. hInfo[id][h_preis]=cache_get_field_content_int(i, "h_preis", dbhandle);
  281. updateHaus(id);
  282. }
  283. return 1;
  284. }
  285.  
  286. public OnPlayerSpawn(playerid)
  287. {
  288. SetPlayerVirtualWorld(playerid,0);
  289. SetCameraBehindPlayer(playerid);
  290. TogglePlayerControllable(playerid,1);
  291.  
  292. SetPlayerPos(playerid,1758.2858,-1894.8010,13.556);
  293. if(pInfo[playerid][pneuling]==1)
  294. {
  295. ClearChat(playerid);
  296. pInfo[playerid][pmoney]=0;
  297. pInfo[playerid][pneuling]=0;
  298. pInfo[playerid][pleben]=100;
  299.  
  300. GiveMoney(playerid, 25000);
  301.  
  302. ////////////////////////////////////////////////////
  303. if(pInfo[playerid][pmoney]<0)
  304. {
  305. pInfo[playerid][pmoney]-=1;
  306. }
  307. if(pInfo[playerid][pmoney]>=100)
  308. {
  309. pInfo[playerid][pmoney]+=1;
  310. }
  311.  
  312. new money[250];
  313. if(pInfo[playerid][pmoney]<10)
  314. {
  315. format(money,sizeof(money),"%d,%d",pInfo[playerid][pmoney]);
  316. }
  317. else
  318. {
  319. format(money,sizeof(money),"%d,%d",pInfo[playerid][pmoney]);
  320. }
  321. ///////////////////////////////////////////////////////
  322.  
  323. if(pInfo[playerid][pgeschlecht]==1)
  324. {
  325. SetPlayerSkin(playerid, ManSkins[0]);
  326. }
  327. else
  328. {
  329. SetPlayerSkin(playerid, WomanSkins[0]);
  330. }
  331.  
  332. SetPVarInt(playerid,"SkinWahl",1);
  333. SetPVarInt(playerid,"SkinSet",0);
  334. TogglePlayerControllable(playerid,false);
  335. savePlayer(playerid);
  336. }
  337. else
  338. {
  339. SetPlayerInterior(playerid,pInfo[playerid][pint]);
  340. SetPlayerVirtualWorld(playerid, pInfo[playerid][pvit]);
  341.  
  342. SetPlayerPos(playerid,pInfo[playerid][px],pInfo[playerid][py],pInfo[playerid][pz]);
  343. SetPlayerFacingAngle(playerid,pInfo[playerid][pa]);
  344. SetPlayerSkin(playerid, pInfo[playerid][pskin]);
  345. }
  346. SetPlayerColor(playerid,COLOR_WHITE);
  347. return 1;
  348. }
  349.  
  350. public OnPlayerDeath(playerid, killerid, reason)
  351. {
  352. return 1;
  353. }
  354.  
  355. public PayDay(playerid)
  356. {
  357. if(pInfo[playerid][pPayday]>=60)
  358. {
  359. //PayDay
  360. if(pInfo[playerid][pXP]>=pInfo[playerid][pXPMax])
  361. {
  362. SetPlayerScore(playerid,(pInfo[playerid][plevel]+1));
  363. pInfo[playerid][pXP]=0;
  364. pInfo[playerid][pXPMax]+=4;
  365. GameTextForPlayer(playerid,"LEVEL-UP!",3000,5);
  366. }
  367. SendClientMessage(playerid,COLOR_LIGHTBLUE,"Du hast PayDay bekommen!");
  368. GiveMoney(playerid, 250);
  369. pInfo[playerid][pPayday]=0;
  370. savePlayer(playerid);
  371. return 1;
  372. }
  373. else
  374. {
  375. pInfo[playerid][pPayday]+=1;
  376. savePlayer(playerid);
  377. }
  378. return 1;
  379. }
  380.  
  381. public OnVehicleSpawn(vehicleid)
  382. {
  383. GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  384. SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, alarm, doors, bonnet, boot, objective);
  385. Motor[vehicleid]=false;
  386. return 1;
  387. }
  388.  
  389. public OnVehicleDeath(vehicleid, killerid)
  390. {
  391. GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  392. SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, alarm, doors, bonnet, boot, objective);
  393. Motor[vehicleid]=false;
  394. if(aCar[vehicleid]==1)
  395. {
  396. aCar[vehicleid]=0;
  397. DestroyVehicle(vehicleid);
  398.  
  399. }
  400. return 1;
  401. }
  402.  
  403. public OnPlayerText(playerid, text[])
  404. {
  405. if(pInfo[playerid][peingeloggt]==1)
  406. {
  407. new Float:x,Float:y,Float:z;
  408. GetPlayerPos(playerid,x,y,z);
  409. new string[300];
  410. format(string,sizeof(string),"%s sagt: %s",GetName(playerid),text);
  411. for(new i=0;i<MAX_PLAYERS;i++)
  412. {
  413. if(!IsPlayerConnected(i))continue;
  414. if(!IsPlayerInRangeOfPoint(i,CHAT_RADIUS,x,y,z))continue;
  415. SendClientMessage(playerid,COLOR_WHITE,string);
  416. }
  417. }
  418. return 0;
  419. }
  420.  
  421. public OnPlayerCommandText(playerid, cmdtext[])
  422. {
  423. return SendClientMessage(playerid,COLOR_GREY,"Der Befehl wurde nicht gefunden, bitte Verwende /help.");
  424. }
  425.  
  426. public OnPlayerRegister(playerid)
  427. {
  428. pInfo[playerid][pid]=cache_insert_id(dbhandle);
  429. TogglePlayerSpectating(playerid,0);
  430. SpawnPlayer(playerid);
  431. SetCameraBehindPlayer(playerid);
  432.  
  433. TogglePlayerControllable(playerid,false);
  434. SetPVarInt(playerid,"SkinWahl",1);
  435. return 1;
  436. }
  437.  
  438. public KickHackInfo(playerid)
  439. {
  440. return Kick(playerid);
  441. }
  442.  
  443. public OnPasswordResponse(playerid)
  444. {
  445. new num_fields,num_rows;
  446. cache_get_data(num_rows,num_fields);
  447. if(num_rows==0)
  448. {
  449. //Passwort falsch
  450. Logintest[playerid]+=1;
  451. new string[300];
  452. format(string,sizeof(string),"Willkommen auf RPG - City [%d/3]",Logintest[playerid]);
  453. if(Logintest[playerid]>=3)
  454. {
  455. ShowPlayerDialog(playerid, DIALOG_LOGINT, DIALOG_STYLE_MSGBOX, "Du wurdest gekickt!","Du wurdest gekickt da du drei mal dein Passwort falsch eingegeben hast!\n\nFalls du dein Passwort vergessen hast melde dich bei einem Team Mitglied.","OK"," ");
  456. return SetTimerEx("KickHackInfo",1000,false,"i",playerid);
  457. }
  458. else
  459. {
  460. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,string,"Dein Account wurde gefunden bitte Logge dich ein ","OK","");
  461. }
  462. }
  463. else
  464. {
  465. //Passwort richtig
  466. LoadAccount(playerid);
  467. }
  468. return 1;
  469. }
  470.  
  471. public UserCheck(playerid)
  472. {
  473. new num_rows, num_fields;
  474. cache_get_data(num_rows,num_fields,dbhandle);
  475. SetPlayerVirtualWorld(playerid,1);
  476. if(num_rows == 0)
  477. {
  478. //Registration
  479. //InterpolateCameraPos(playerid, 1481.365600, -2283.753173, 16.715532, 1472.360961, -2283.148681, 13.591988, 40000);
  480. //InterpolateCameraLookAt(playerid, 1478.918701, -2279.674072, 15.1749626, 1474.576171, -2278.682861, 13.205655, 40000);
  481. ClearChat(playerid);
  482. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Willkommen auf RPG - City","Dein Account wurde nicht gefunden bitte Registriere dich","OK","");
  483. }
  484. else
  485. {
  486. //Login
  487. ClearChat(playerid);
  488. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Willkommen auf RPG - City","Dein Account wurde gefunden bitte Logge dich ein ","OK","");
  489. }
  490. return 1;
  491. }
  492.  
  493. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  494. {
  495. return 1;
  496. }
  497.  
  498. public OnPlayerExitVehicle(playerid, vehicleid)
  499. {
  500. return 1;
  501. }
  502.  
  503. public OnPlayerStateChange(playerid, newstate, oldstate)
  504. {
  505. if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
  506. {
  507. new vehicle = GetPlayerVehicleID(playerid);
  508. GetVehicleParamsEx(vehicle,engine,lights,alarm,doors,bonnet,boot,objective);
  509. if(GetVehicleModel(vehicle) == 509 || GetVehicleModel(vehicle) == 510 || GetVehicleModel(vehicle) == 481)
  510. {
  511. if(Motor[vehicle]==true)return 1;
  512. SetVehicleParamsEx(vehicle, VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
  513. Motor[vehicle]=true;
  514. }
  515. if(Motor[vehicle]==false)
  516. {
  517. SetVehicleParamsEx(vehicle, VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
  518. }
  519. }
  520. return 1;
  521. }
  522.  
  523. public OnPlayerEnterCheckpoint(playerid)
  524. {
  525. return 1;
  526. }
  527.  
  528. public OnPlayerLeaveCheckpoint(playerid)
  529. {
  530. return 1;
  531. }
  532.  
  533. public OnPlayerEnterRaceCheckpoint(playerid)
  534. {
  535. return 1;
  536. }
  537.  
  538. public OnPlayerLeaveRaceCheckpoint(playerid)
  539. {
  540. return 1;
  541. }
  542.  
  543. public OnRconCommand(cmd[])
  544. {
  545. return 1;
  546. }
  547.  
  548. public OnPlayerRequestSpawn(playerid)
  549. {
  550. return 1;
  551. }
  552.  
  553. public OnObjectMoved(objectid)
  554. {
  555. return 1;
  556. }
  557.  
  558. public OnPlayerObjectMoved(playerid, objectid)
  559. {
  560. return 1;
  561. }
  562.  
  563. public OnPlayerPickUpPickup(playerid, pickupid)
  564. {
  565. return 1;
  566. }
  567.  
  568. public OnVehicleMod(playerid, vehicleid, componentid)
  569. {
  570. return 1;
  571. }
  572.  
  573. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  574. {
  575. return 1;
  576. }
  577.  
  578. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  579. {
  580. return 1;
  581. }
  582.  
  583. public OnPlayerSelectedMenuRow(playerid, row)
  584. {
  585. return 1;
  586. }
  587.  
  588. public OnPlayerExitedMenu(playerid)
  589. {
  590. return 1;
  591. }
  592.  
  593. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  594. {
  595. return 1;
  596. }
  597.  
  598. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  599. {
  600. //Interrior
  601. if(newkeys & KEY_SECONDARY_ATTACK)
  602. {
  603. for(new i=0;i<sizeof(bInfo);i++)
  604. {
  605. if(IsPlayerInRangeOfPoint(playerid,2,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]))
  606. {
  607. if(enterexit[playerid]!=0)return 1;
  608. SetPlayerPos(playerid,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]);
  609. SetPlayerInterior(playerid,bInfo[i][b_interior]);
  610. SetPlayerVirtualWorld(playerid,i);
  611. enterexit[playerid]=2;
  612. return 1;
  613. }
  614. if(IsPlayerInRangeOfPoint(playerid,2,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]))
  615. {
  616. if(enterexit[playerid]!=0)return 1;
  617. if(GetPlayerVirtualWorld(playerid)!=i)continue;
  618. SetPlayerPos(playerid,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]);
  619. SetPlayerInterior(playerid,0);
  620. SetPlayerVirtualWorld(playerid,0);
  621. SetPlayerFacingAngle(playerid,bInfo[i][b_a]);
  622. enterexit[playerid]=2;
  623. return 1;
  624. }
  625. }
  626. }
  627. //Skin wechseln
  628. if(newkeys & 16384)
  629. {
  630. if(GetPVarInt(playerid,"SkinWahl")==1)
  631. {
  632. new number = GetPVarInt(playerid,"SkinSet");
  633. number++;
  634. if(pInfo[playerid][pgeschlecht]==1)
  635. {
  636. if(number >= sizeof(ManSkins))
  637. {
  638. number=0;
  639. }
  640. SetPVarInt(playerid,"SkinSet",number);
  641. SetPlayerSkin(playerid,ManSkins[number]);
  642. }
  643. else
  644. {
  645. if(number >= sizeof(WomanSkins))
  646. {
  647. number=0;
  648. }
  649. SetPVarInt(playerid,"SkinSet",number);
  650. SetPlayerSkin(playerid,WomanSkins[number]);
  651. }
  652. }
  653. }
  654. if(newkeys & 8192)
  655. {
  656. if(GetPVarInt(playerid,"SkinWahl")==1)
  657. {
  658. new number = GetPVarInt(playerid,"SkinSet");
  659. number--;
  660. if(pInfo[playerid][pgeschlecht]==1)
  661. {
  662. if(number < 0)
  663. {
  664. number=sizeof(ManSkins)-1;
  665. }
  666. SetPVarInt(playerid,"SkinSet",number);
  667. SetPlayerSkin(playerid,ManSkins[number]);
  668. }
  669. else
  670. {
  671. if(number < 0)
  672. {
  673. number=sizeof(WomanSkins)-1;
  674. }
  675. SetPVarInt(playerid,"SkinSet",number);
  676. SetPlayerSkin(playerid,WomanSkins[number]);
  677. }
  678. }
  679. }
  680. if(newkeys & KEY_SPRINT)
  681. {
  682. if(GetPVarInt(playerid,"SkinWahl")==1)
  683. {
  684. TogglePlayerControllable(playerid,true);
  685. ShowPlayerDialog(playerid, DIALOG_WRB,DIALOG_STYLE_INPUT,"Wirb einen Freund","Falls du von einem Spieler geworben wurdest kannst du hier seinen Spielernamen eintragen:\n\n(Wenn du nicht geworben wurdest, klicke einfach auf Weiter)","Weiter"," ");
  686. DeletePVar(playerid,"SkinWahl");
  687. DeletePVar(playerid,"SkinSet");
  688. }
  689. }
  690. if(IsPlayerInRangeOfPoint(playerid,5,359.7125,173.4908,1008.3828))
  691. {
  692. ShowPlayerDialog(playerid, DIALOG_STADTHALLE, DIALOG_STYLE_LIST, "Stadthalle","Personalausweis beantragen\nJobs","OK","");
  693. }
  694. return 1;
  695. }
  696.  
  697. public OnRconLoginAttempt(ip[], password[], success)
  698. {
  699. return 1;
  700. }
  701.  
  702. public OnPlayerUpdate(playerid)
  703. {
  704. if(pInfo[playerid][pverwarnung]>2)
  705. {
  706. SendClientMessage(playerid,-1,"Beim nächsten mal folgt der Ban");
  707. return Kick(playerid);
  708. }
  709. if(GetPlayerMoney(playerid) > pInfo[playerid][pmoney])
  710. {
  711. new money;
  712. money = pInfo[playerid][pmoney];
  713. ResetMoney(playerid);
  714. GiveMoney(playerid,money);
  715. SendClientMessage(playerid,-1,"Netter versuch");
  716. pInfo[playerid][pverwarnung]+=1;
  717. }
  718. return 1;
  719. }
  720.  
  721. public OnPlayerStreamIn(playerid, forplayerid)
  722. {
  723. return 1;
  724. }
  725.  
  726. public toggleMotor(playerid)
  727. {
  728. if(GetPlayerVehicleSeat(playerid==0))
  729. {
  730. new car=GetPlayerVehicleID(playerid);
  731. if(GetVehicleModel(car)==509 || GetVehicleModel(car) == 481 || GetVehicleModel(car) == 510)
  732. {
  733. return SendClientMessage(playerid,COLOR_GREY,"Fahrräder haben kein Motor. ");
  734. }
  735. if(Motor[car]==true)
  736. {
  737. SendClientMessage(playerid,COLOR_GREY,"Motor: Aus");
  738. GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
  739. SetVehicleParamsEx(car, VEHICLE_PARAMS_OFF,lights, alarm, doors, bonnet, boot, objective);
  740. Motor[car]=false;
  741. }
  742. else
  743. {
  744. SendClientMessage(playerid,COLOR_GREY,"Motor: An");
  745. GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
  746. SetVehicleParamsEx(car, VEHICLE_PARAMS_ON,lights, alarm, doors, bonnet, boot, objective);
  747. Motor[car]=true;
  748. }
  749. }
  750. return 1;
  751. }
  752.  
  753. public OnPlayerStreamOut(playerid, forplayerid)
  754. {
  755. return 1;
  756. }
  757.  
  758. public OnHausCreated(id)
  759. {
  760. hInfo[id][h_id]=cache_insert_id();
  761. }
  762.  
  763. public OnVehicleStreamIn(vehicleid, forplayerid)
  764. {
  765. return 1;
  766. }
  767.  
  768. public OnVehicleStreamOut(vehicleid, forplayerid)
  769. {
  770. return 1;
  771. }
  772.  
  773. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  774. {
  775. if(dialogid == DIALOG_REGISTER)
  776. {
  777. if(!response)return Kick(playerid);
  778. SetPVarString(playerid,"passwortvar",inputtext);
  779. if(strlen(inputtext) >= 4)
  780. {
  781. ShowPlayerDialog(playerid,DIALOG_CHAR1,DIALOG_STYLE_MSGBOX,"Infos zur Person","Der Account wurde erfolgreich angelegt.\nBitte fülle nun einige Informationen über deine Person aus.\n\nBist du Männlich oder Weiblich?","Männlich","Weiblich");
  782. }
  783. else
  784. {
  785. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Willkommen auf RPG - City","Eingabe war Falsch!\n\nDein Account wurde nicht gefunden bitte Registriere dich","OK","");
  786. }
  787. }
  788. if(dialogid == DIALOG_CHAR1)
  789. {
  790. if(response)
  791. {
  792. //Männlich
  793. pInfo[playerid][pgeschlecht]=1;
  794. SendClientMessage(playerid,COLOR_WHITE,"OK.. du bist also Männlich");
  795. ShowPlayerDialog(playerid,DIALOG_CHAR2,DIALOG_STYLE_LIST,"Charakter 2/3","Hast du die Regeln gelesen?\nJa\nNein\nWelche Regeln?","Weiter","Abbrechen");
  796. }
  797. else
  798. {
  799. //Weiblich
  800. pInfo[playerid][pgeschlecht]=2;
  801. SendClientMessage(playerid,COLOR_WHITE,"OK.. du bist also Weiblich");
  802. ShowPlayerDialog(playerid,DIALOG_CHAR2,DIALOG_STYLE_LIST,"Charakter 2/3","Hast du die Regeln gelesen?\nJa\nNein\nWelche Regeln?","Weiter","Abbrechen");
  803. }
  804.  
  805. }
  806. if(dialogid == DIALOG_CHAR2)
  807. {
  808. if(response)
  809. {
  810. if(listitem==0)
  811. {
  812. ShowPlayerDialog(playerid,DIALOG_CHAR2,DIALOG_STYLE_LIST,"Charakter 2/3","Hast du die Regeln gelesen?\nJa\nNein\nWelche Regeln?","Weiter","Abbrechen");
  813. }
  814. if(listitem==1)
  815. {
  816. ShowPlayerDialog(playerid,DIALOG_CHAR3,DIALOG_STYLE_INPUT,"Wie alt bist du?","Gebe bitt dein Alter an!\n\nINFO: Dies bleibt ein Geheimnis!","Weiter","Abbrechen");
  817. }
  818. if(listitem==2)
  819. {
  820. //Kick(playerid);
  821. }
  822. if(listitem==3)
  823. {
  824. ShowPlayerDialog(playerid,DIALOG_CHAR3,DIALOG_STYLE_INPUT,"Wie alt bist du?","Gebe bitt dein Alter an!\n\nINFO: Dies bleibt ein Geheimnis!","Weiter","Abbrechen");
  825. }
  826. }
  827. else
  828. {
  829. Kick(playerid);
  830. }
  831. }
  832. if(dialogid == DIALOG_CHAR3)
  833. {
  834. if(response)
  835. {
  836. if(IsNummeric(inputtext))
  837. {
  838. //new alterabfrage=strval(inputtext);
  839. if(strval(inputtext)>=18 && strval(inputtext) <=48)
  840. {
  841. pInfo[playerid][palter]=strval(inputtext);
  842. pInfo[playerid][peingeloggt]=1;
  843. pInfo[playerid][pneuling]=1;
  844. pInfo[playerid][pXPMax]=4;
  845. new query[256],passworteingabe[128];
  846. GetPVarString(playerid,"passwortvar",passworteingabe,128);
  847. mysql_format(dbhandle, query, sizeof(query), "INSERT INTO user (username, password) VALUES ('%e',MD5('%e'))",GetName(playerid),passworteingabe);
  848. mysql_function_query(dbhandle,query,true,"OnPlayerRegister","i",playerid);
  849. printf("%s",query);
  850. }
  851. else
  852. {
  853. ShowPlayerDialog(playerid,DIALOG_CHAR3,DIALOG_STYLE_INPUT,"Wie alt bist du?","Eingabe Falsch!\n\nGebe bitt dein Alter an!\n\nINFO: Dies bleibt ein Geheimnis!","Weiter","Abbrechen");
  854. }
  855. }
  856. else
  857. {
  858. ShowPlayerDialog(playerid,DIALOG_CHAR3,DIALOG_STYLE_INPUT,"Wie alt bist du?","Fehler Eingabe ist falsch!\n\nGebe bitt dein Alter an!\n\nINFO: Dies bleibt ein Geheimnis!","Weiter","Abbrechen");
  859. }
  860. }
  861. else
  862. {
  863. Kick(playerid);
  864. }
  865. }
  866. if(dialogid == DIALOG_LOGIN)
  867. {
  868. if(!response)return Kick(playerid);
  869. new query[500];
  870. mysql_format(dbhandle,query,sizeof(query),"SELECT * FROM user WHERE username='%e' AND password=MD5('%e')",GetName(playerid),inputtext);
  871. mysql_tquery(dbhandle,query,"OnPasswordResponse","i",playerid);
  872. return 1;
  873. }
  874. if(dialogid == DIALOG_STADTHALLE)
  875. {
  876. if(response)
  877. {
  878. if(listitem==0)
  879. {
  880. //Personalausweis beantragen
  881. if(pInfo[playerid][pperso]==0)
  882. {
  883. ShowPlayerDialog(playerid, DIALOG_STADTHALLE2, DIALOG_STYLE_MSGBOX,"Personalausweis beantragen","Ein Personalausweis zu beantragen, kostet dich 1.000$","Weiter","Abbruch");
  884. }
  885. else
  886. {
  887. SendClientMessage(playerid,COLOR_GREY,"Du besitzt bereits einen Personalausweis.");
  888. }
  889.  
  890. }
  891. if(listitem==1)
  892. {
  893. //Job
  894. }
  895. }
  896. }
  897. if(dialogid == DIALOG_STADTHALLE2)
  898. {
  899. if(response)
  900. {
  901. ShowPlayerDialog(playerid, DIALOG_STADTHALLE3, DIALOG_STYLE_INPUT,"Infos zur Person","Damit wir deinen Personalausweis erstellen können brauchen wir deinen Vornamen!","Weiter","Abbruch");
  902. }
  903. else
  904. {
  905. //Spieler wird gekickt, falls er auf Abbruch klickt.. ( Personalausweis ist auf dem Server PFLICHT )
  906. Kick(playerid);
  907. }
  908. }
  909. if(dialogid == DIALOG_STADTHALLE3)
  910. {
  911. if(response)
  912. {
  913. if(strlen(inputtext) <=10 && strlen(inputtext) >=3)
  914. {
  915. ShowPlayerDialog(playerid, DIALOG_STADTHALLE4, DIALOG_STYLE_INPUT, "Infos zur Person","Vielen Dank!\nNun benötigen wir Ihren Nachnamen!","OK","Abbruch");
  916. strmid(pInfo[playerid][pvor], inputtext, 0, 10, 10);
  917. savePlayer(playerid);
  918. }
  919. else
  920. {
  921. ShowPlayerDialog(playerid, DIALOG_STADTHALLE3, DIALOG_STYLE_INPUT,"Infos zur Person","FEHLER: Der Name ist zu kurz oder zu lang!\n\nDamit wir deinen Personalausweis erstellen können brauchen wir deinen Vornamen!","Weiter","Abbruch");
  922. }
  923. }
  924. }
  925. if(dialogid == DIALOG_STADTHALLE4)
  926. {
  927. if(response)
  928. {
  929. if(strlen(inputtext) <=10 && strlen(inputtext) >=3)
  930. {
  931. strmid(pInfo[playerid][pnach], inputtext, 0, 10, 10);
  932. pInfo[playerid][pperso]=1;
  933. GiveMoney(playerid, -1000);
  934. savePlayer(playerid);
  935. SendClientMessage(playerid,COLOR_GREY,"Du besitzt nun einen Personalausweis.");
  936. }
  937. else
  938. {
  939. ShowPlayerDialog(playerid, DIALOG_STADTHALLE3, DIALOG_STYLE_INPUT,"Infos zur Person","FEHLER: Der Nachname ist zu kurz oder zu lang!\n\nDamit wir deinen Personalausweis erstellen können brauchen wir deinen Nachnamen!","Weiter","Abbruch");
  940. }
  941. }
  942. }
  943. return 1;
  944. }
  945.  
  946. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  947. {
  948. return 1;
  949. }
  950.  
  951. ClearChat(playerid)
  952. {
  953. for(new i = 0;i<100;i++)
  954. {
  955. SendClientMessage(playerid,COLOR_WHITE,"");
  956. }
  957. return 1;
  958. }
  959.  
  960. //Admin - OCMD Befehle
  961.  
  962. ocmd:veh(playerid, params[])
  963. {
  964. if(pInfo[playerid][padmin]>=2)
  965. {
  966. new ModelID,color[2],Float:VehPos[4],vehicleid;
  967. if(GetPlayerState(playerid)!=PLAYER_STATE_ONFOOT)return SendClientMessage(playerid,COLOR_GREY,"Nicht möglich.");
  968. if(sscanf(params,"ddd",ModelID,color[0],color[1]))return SendClientMessage(playerid,COLOR_GREY,"Benutze: /veh [CarID] [colorID] [colorID]");
  969. if(ModelID < 400 || ModelID > 611)return SendClientMessage(playerid,COLOR_GREY,"Falsche CarID!");
  970. if(color[0] < 0 || color[0] > 255 || color[1] < 0 || color[1] > 255)return SendClientMessage(playerid,COLOR_GREY,"Nicht möglich.");
  971.  
  972. GetPlayerPos(playerid,VehPos[0], VehPos[1], VehPos[2]);
  973. GetPlayerFacingAngle(playerid,VehPos[3]);
  974. vehicleid = CreateVehicle(ModelID,VehPos[0], VehPos[1], VehPos[2], VehPos[3], color[0], color[1],-1);
  975. aCar[vehicleid]=1;
  976. LinkVehicleToInterior(vehicleid,GetPlayerInterior(playerid));
  977. SetVehicleVirtualWorld(vehicleid,GetPlayerVirtualWorld(playerid));
  978. PutPlayerInVehicle(playerid,vehicleid,0);
  979. }
  980. else
  981. {
  982. SendClientMessage(playerid,COLOR_GREY,"Du bist nicht befugt.");
  983. }
  984. return 1;
  985. }
  986.  
  987. ocmd:givemoney(playerid, params[])
  988. {
  989. if(pInfo[playerid][peingeloggt]!=1)return SendClientMessage(playerid,COLOR_GREY,"Ein Unbekannter Fehler ist aufgetreten(?)");
  990. if(pInfo[playerid][padmin]>=3)
  991. {
  992. new money,pID,grund[250];
  993. if(sscanf(params,"uds",pID,money,grund))return SendClientMessage(playerid,COLOR_GREY,"Verwende: /givemoney [PlayerID] [Geld / Money] [Grund]");
  994. GiveMoney(pID,money);
  995. savePlayer(pID);
  996. new string[500];
  997. format(string,sizeof(string),"Du hast von %s %s %d$ bekommen. Grund: %s",ARank(playerid),GetName(playerid),money,grund);
  998. SendClientMessage(pID, COLOR_LIGHTBLUE, string);
  999. format(string,sizeof(string),"Du hast %s %d$ gegeben. Grund: %s",GetName(pID),money, grund);
  1000. SendClientMessage(playerid,COLOR_GREY,string);
  1001. format(string,sizeof(string),"[ADMIN-CMD]: %s: %s gibt %s %d$ Grund: %s",ARank(playerid),GetName(playerid),GetName(pID),money,grund);
  1002. for(new i=0;i<MAX_PLAYERS;i++)
  1003. {
  1004. if(pInfo[i][padmin]>=1)
  1005. {
  1006. SendClientMessage(i, COLOR_RED, string);
  1007. }
  1008. }
  1009. }
  1010. return 1;
  1011. }
  1012.  
  1013. ocmd:createhouse(playerid, params[])
  1014. {
  1015. if(pInfo[playerid][padmin]>3)
  1016. {
  1017. new Float:xc, Float:yc, Float:zc;
  1018. GetPlayerPos(playerid, xc, yc, zc);
  1019. new id=getFreeHausID();
  1020. hInfo[id][h_x]=xc;
  1021. hInfo[id][h_y]=yc;
  1022. hInfo[id][h_z]=zc;
  1023. hInfo[id][ih_x]=0.0;
  1024. hInfo[id][ih_y]=0.0;
  1025. hInfo[id][ih_z]=0.0;
  1026. hInfo[id][h_interior]=0;
  1027. strmid(hInfo[id][h_besitzer], "", 0, MAX_PLAYER_NAME, MAX_PLAYER_NAME);
  1028. hInfo[id][h_preis]=1;
  1029. updateHaus(id);
  1030. new query[500];
  1031. format(query, sizeof(query), "INSERT INTO haus (h_x, h_y, h_z, ih_x, ih_y, ih_z, h_interior, h_preis) VALUES ('%f', '%f', '%f', '0.0', '0.0', '0.0', '0', '1')",xc, yc, zc);
  1032. mysql_function_query(dbhandle, query, true, "OnHausCreated", "i", id);
  1033. }
  1034. else
  1035. {
  1036. SendClientMessage(playerid,COLOR_GREY,"Du bist nicht befugt.");
  1037. }
  1038. return 1;
  1039. }
  1040.  
  1041. ocmd:sethousepreis(playerid, params[])
  1042. {
  1043. if(pInfo[playerid][padmin]>3)
  1044. {
  1045. new tmp_preis;
  1046. if(sscanf(params, "i", tmp_preis))return SendClientMessage(playerid, COLOR_RED, "INFO: /setpreis [preis]");
  1047. for(new i=0; i<sizeof(hInfo); i++)
  1048. {
  1049. if(!hInfo[i][h_id])continue;
  1050. if(!IsPlayerInRangeOfPoint(playerid, 5, hInfo[i][h_x], hInfo[i][h_y], hInfo[i][h_z]))continue;
  1051. hInfo[i][h_preis] = tmp_preis;
  1052. saveHaus(i);
  1053. updateHaus(i);
  1054. return 1;
  1055. }
  1056. }
  1057. else
  1058. {
  1059. SendClientMessage(playerid,COLOR_GREY,"Du bist nicht befugt.");
  1060. }
  1061. return 1;
  1062. }
  1063.  
  1064. ocmd:deletehouse(playerid, params[])
  1065. {
  1066. if(pInfo[playerid][padmin]>3)
  1067. {
  1068. for(new i=0; i<sizeof(hInfo); i++)
  1069. {
  1070. if(!hInfo[i][h_id])continue;
  1071. if(!IsPlayerInRangeOfPoint(playerid, 5, hInfo[i][h_x], hInfo[i][h_y], hInfo[i][h_z]))continue;
  1072. new query[128];
  1073. format(query,sizeof(query), "DELETE FROM haus WHERE id='%i'", hInfo[i][h_id]);
  1074. mysql_function_query(dbhandle, query, false, "", "");
  1075. hInfo[i][h_x]=0.0;
  1076. hInfo[i][h_y]=0.0;
  1077. hInfo[i][h_z]=0.0;
  1078. hInfo[i][ih_x]=0.0;
  1079. hInfo[i][ih_y]=0.0;
  1080. hInfo[i][ih_z]=0.0;
  1081. hInfo[i][h_id]=0;
  1082. hInfo[i][h_preis]=0;
  1083. hInfo[i][h_interior]=0;
  1084. if(hInfo[i][h_pickup])
  1085. {
  1086. DestroyPickup(hInfo[i][h_pickup]);
  1087. }
  1088. if(hInfo[i][h_text])
  1089. {
  1090. Delete3DTextLabel(hInfo[i][h_text]);
  1091. }
  1092. return 1;
  1093. }
  1094. }
  1095. else
  1096. {
  1097. SendClientMessage(playerid,COLOR_GREY,"Du bist nicht befugt.");
  1098. }
  1099. return 1;
  1100. }
  1101.  
  1102. ocmd:playercheck(playerid, params[])
  1103. {
  1104. new string[500], pID;
  1105. if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_GREY,"Verwende: /virtcheck [PlayerID]");
  1106. format(string,sizeof(string),"VirtualWorld: %d\nInterior: %d",GetPlayerVirtualWorld(pID),GetPlayerInterior(pID));
  1107. SendClientMessage(playerid,COLOR_RED,string);
  1108. pInfo[playerid][pPayday]+=60;
  1109. return 1;
  1110. }
  1111.  
  1112. // -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //
  1113.  
  1114. //User - OCMD Befehle
  1115. ocmd:motor(playerid,params[])
  1116. {
  1117. toggleMotor(playerid);
  1118. return 1;
  1119. }
  1120.  
  1121. ocmd:buyhouse(playerid, params[])
  1122. {
  1123. if(hatPlayerHaus(playerid))return SendClientMessage(playerid, COLOR_RED, "Du hast bereits ein Haus.");
  1124. for(new i=0; i<sizeof(hInfo); i++)
  1125. {
  1126. if(!hInfo[i][h_id])continue;
  1127. if(!IsPlayerInRangeOfPoint(playerid, 5, hInfo[i][h_x], hInfo[i][h_y], hInfo[i][h_z]))continue;
  1128. if(!strlen(hInfo[i][h_besitzer]))
  1129. {
  1130. if(GetPlayerMoney(playerid)<hInfo[i][h_preis])return SendClientMessage(playerid, COLOR_RED, "Du hast nicht genügend Geld.");
  1131. GivePlayerMoney(playerid, -hInfo[i][h_preis]);
  1132. strmid(hInfo[i][h_besitzer], GetName(playerid), 0, MAX_PLAYER_NAME, MAX_PLAYER_NAME);
  1133. updateHaus(i);
  1134. saveHaus(i);
  1135. return 1;
  1136. }
  1137. return SendClientMessage(playerid, COLOR_RED,"Das Haus steht nicht zum Verkauf.");
  1138. }
  1139. return 1;
  1140. }
  1141.  
  1142. ocmd:pay(playerid, params[])
  1143. {
  1144. if(pInfo[playerid][peingeloggt]!=1)return SendClientMessage(playerid,COLOR_GREY,"Ein Unbekannter Fehler ist aufgetreten(?)");
  1145. new preis, pID;
  1146. if(sscanf(params,"ud",pID,preis))return SendClientMessage(playerid,COLOR_GREY,"Verwende: /pay [PlayerID] [Betrag]");
  1147. //if(playerid == pID)return SendClientMessage(playerid,COLOR_GREY,"Du kannst dir selber kein Geld senden!");
  1148. if(preis > 0 && preis <= 1000000)
  1149. {
  1150. if(GetMoney(playerid) >= preis)
  1151. {
  1152. new string[500];
  1153. format(string,sizeof(string),"Du hast %s %d$ gegeben",GetName(pID),preis);
  1154. SendClientMessage(playerid,COLOR_GREY,string);
  1155. format(string,sizeof(string),"Du hast von %s %d$ bekommen",GetName(playerid),preis);
  1156. SendClientMessage(pID,COLOR_GREY,string);
  1157. GiveMoney(playerid,-preis);
  1158. GiveMoney(pID,preis);
  1159. }
  1160. else
  1161. {
  1162. return SendClientMessage(playerid,COLOR_GREY,"Du hast nicht genügend Geld bei dir!");
  1163. }
  1164. }
  1165. else
  1166. {
  1167. SendClientMessage(playerid,COLOR_GREY,"Du kannst minidestens 1$ und nicht mehr als 1.000.000$ jemanden geben!");
  1168. }
  1169. return 1;
  1170. }
  1171.  
  1172. ocmd:stats(playerid, params[])
  1173. {
  1174. if(pInfo[playerid][pperso]!=1)return SendClientMessage(playerid,COLOR_GREY,"Du besitzt keinen Personalausweis.");
  1175. new str[250], string[50];
  1176. format(string,sizeof(string),"%s",GetName(playerid));
  1177. format(str,sizeof(str),"Vorname: %s\nNachname %s\nLevel: %d\nPayDay in: %d/60\nRespektpunkte: %d/%d",pInfo[playerid][pvor],pInfo[playerid][pnach],GetPlayerScore(playerid),pInfo[playerid][pPayday],pInfo[playerid][pXP],pInfo[playerid][palter]);
  1178. ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,string,str,"OK","");
  1179. return 1;
  1180. }
  1181.  
  1182. ocmd:sellhouse(playerid, params[])
  1183. {
  1184. for(new i=0; i<sizeof(hInfo); i++)
  1185. {
  1186. if(!hInfo[i][h_id])continue;
  1187. if(!IsPlayerInRangeOfPoint(playerid, 5, hInfo[i][h_x], hInfo[i][h_y], hInfo[i][h_z]))continue;
  1188. if(!strlen(hInfo[i][h_besitzer]))continue;
  1189. if(!strcmp(hInfo[i][h_besitzer], GetName(playerid), true))
  1190. {
  1191. GivePlayerMoney(playerid, hInfo[i][h_preis]/2);
  1192. strmid(hInfo[i][h_besitzer], "", 0, MAX_PLAYER_NAME, MAX_PLAYER_NAME);
  1193. updateHaus(i);
  1194. saveHaus(i);
  1195. return 1;
  1196. }
  1197. return SendClientMessage(playerid, COLOR_RED,"Das Haus steht nicht zum Verkauf.");
  1198. }
  1199. return 1;
  1200. }
  1201.  
  1202.  
  1203. // -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //
  1204.  
  1205. savePlayer(playerid)
  1206. {
  1207. //Spieler Speichern
  1208. if(pInfo[playerid][peingeloggt]!=1 || IsPlayerNPC(playerid))return 1;
  1209. new Float:x,Float:y,Float:z,Float:a;
  1210. GetPlayerPos(playerid,x,y,z);
  1211. GetPlayerFacingAngle(playerid,a);
  1212. GetPlayerHealth(playerid,pInfo[playerid][pleben]),
  1213. GetPlayerArmour(playerid,pInfo[playerid][prussi]);
  1214. new query[500];
  1215. mysql_format(dbhandle,query,sizeof(query),"UPDATE `user` SET `skin` = '%d', `alter` = '%d', `geschlecht` = '%d', `neuling` = '%d', `leben` = '%.0f', `russi` = '%.0f', `Posx` = '%f', `Posy` = '%f', `Posz` = '%f', `Posa` = '%f', `Interior` = '%d', `Virtualworld` = '%d', `pAdminrang` = '%d',"
  1216. ,GetPlayerSkin(playerid), pInfo[playerid][palter],pInfo[playerid][pgeschlecht],pInfo[playerid][pneuling],pInfo[playerid][pleben],pInfo[playerid][prussi],x,y,z+0.3,a,GetPlayerInterior(playerid),GetPlayerVirtualWorld(playerid),pInfo[playerid][padmin]);
  1217. mysql_format(dbhandle,query,sizeof(query),"%s `Vorname` = '%s', `Nachname` = '%s', `Perso` = '%d', `money` = '%d',",
  1218. query, pInfo[playerid][pvor], pInfo[playerid][pnach], pInfo[playerid][pperso], pInfo[playerid][pmoney]);
  1219. mysql_format(dbhandle,query,sizeof(query),"%s `Payday` = '%d', `XPMax` = '%d', `level` = '%d' `XP` = '%d' WHERE `ID` = '%i'",
  1220. query, pInfo[playerid][pPayday], pInfo[playerid][pXPMax], pInfo[playerid][plevel],pInfo[playerid][pXP],pInfo[playerid][pid]);
  1221. mysql_pquery(dbhandle,query,"","");
  1222. printf("%s",query);
  1223. return 1;
  1224. }
  1225.  
  1226. getFreeHausID()
  1227. {
  1228. for(new i=0; i<sizeof(hInfo); i++)
  1229. {
  1230. if(hInfo[i][h_id]==0)return i;
  1231. }
  1232. return 0;
  1233. }
  1234.  
  1235. LoadAccount(playerid)
  1236. {
  1237. // Account laden...
  1238. new string[50];
  1239. format(string, sizeof(string), "~g~Willkommen~n~~w~%s", GetName(playerid));
  1240. GameTextForPlayer(playerid, string, 2500, 1);
  1241.  
  1242. //Spieler-Account-Laden [ ! ]
  1243. pInfo[playerid][peingeloggt]=1;
  1244. pInfo[playerid][pid]=cache_get_field_content_int(0,"id",dbhandle);
  1245. pInfo[playerid][plevel]=cache_get_field_content_int(0,"level",dbhandle);
  1246. pInfo[playerid][palter]=cache_get_field_content_int(0,"alter",dbhandle);
  1247. pInfo[playerid][pgeschlecht]=cache_get_field_content_int(0,"geschlecht",dbhandle);
  1248. pInfo[playerid][pskin]=cache_get_field_content_int(0,"skin",dbhandle);
  1249. pInfo[playerid][pneuling]=cache_get_field_content_int(0,"neuling",dbhandle);
  1250. pInfo[playerid][padmin]=cache_get_field_content_int(0,"pAdminrang",dbhandle);
  1251. pInfo[playerid][pperso]=cache_get_field_content_int(0,"Perso",dbhandle);
  1252. pInfo[playerid][pmoney]=cache_get_field_content_int(0,"money",dbhandle);
  1253. pInfo[playerid][pPayday]=cache_get_field_content_int(0,"Payday",dbhandle);
  1254. pInfo[playerid][pXP]=cache_get_field_content_int(0,"XP",dbhandle);
  1255. pInfo[playerid][pXPMax]=cache_get_field_content_int(0,"XPMax",dbhandle);
  1256. //Spieler-Account-Laden [ ! ]
  1257.  
  1258. //PayDay-System [ ! ]
  1259. payday[playerid]=SetTimerEx("PayDay",1000*60,true,"i",playerid);
  1260.  
  1261. //Geld-System [ ! ]
  1262. pInfo[playerid][pmoney]=cache_get_field_content_int(0,"money",dbhandle);
  1263. GiveMoney(playerid,pInfo[playerid][pmoney]);
  1264. //Geld-System [ ! ]
  1265.  
  1266. //Personalausweis-Laden [ ! ]
  1267. new tmp_name[10];
  1268. cache_get_field_content(0,"Vorname",tmp_name,dbhandle);
  1269. strmid(pInfo[playerid][pvor], tmp_name, 0, sizeof(tmp_name), sizeof(tmp_name));
  1270.  
  1271. cache_get_field_content(0,"Nachname",tmp_name,dbhandle);
  1272. strmid(pInfo[playerid][pnach], tmp_name, 0, sizeof(tmp_name), sizeof(tmp_name));
  1273. //Personalausweis-Laden [ ! ]
  1274.  
  1275. //Spieler-Russi-Leben-Laden [ ! ]
  1276. pInfo[playerid][pleben]=cache_get_field_content_float(0,"leben",dbhandle);
  1277. pInfo[playerid][prussi]=cache_get_field_content_float(0,"russi",dbhandle);
  1278.  
  1279. SetPlayerHealth(playerid,pInfo[playerid][pleben]);
  1280. SetPlayerArmour(playerid,pInfo[playerid][prussi]);
  1281. //Spieler-Russi-Leben-Laden [ ! ]
  1282.  
  1283. //Spieler-Position-Laden [ ! ]
  1284. pInfo[playerid][px]=cache_get_field_content_float(0,"Posx",dbhandle);
  1285. pInfo[playerid][py]=cache_get_field_content_float(0,"Posy",dbhandle);
  1286. pInfo[playerid][pz]=cache_get_field_content_float(0,"Posz",dbhandle);
  1287. pInfo[playerid][pa]=cache_get_field_content_float(0,"Posa",dbhandle);
  1288.  
  1289. pInfo[playerid][pint]=cache_get_field_content_int(0,"Interior",dbhandle);
  1290. pInfo[playerid][pvit]=cache_get_field_content_int(0,"Virtualworld",dbhandle);
  1291. //Spieler-Position-Laden [ ! ]
  1292.  
  1293. SetPlayerSkin(playerid, pInfo[playerid][pskin]);
  1294.  
  1295. SpawnPlayer(playerid);
  1296. TogglePlayerSpectating(playerid,0);
  1297. SetCameraBehindPlayer(playerid);
  1298.  
  1299. //Timer
  1300. timer[playerid] = SetTimerEx("Second",1000,1,"i",playerid);
  1301. return 1;
  1302. }
  1303.  
  1304. stock ResetMoney(playerid)
  1305. {
  1306. new money;
  1307. money = GetPlayerMoney(playerid);
  1308. GivePlayerMoney(playerid,-money);
  1309. pInfo[playerid][pmoney]=0;
  1310. return 1;
  1311. }
  1312.  
  1313. stock GiveMoney(playerid,money)//givemOney
  1314. {
  1315. GivePlayerMoney(playerid,money);
  1316. pInfo[playerid][pmoney]+=money;
  1317. return 1;
  1318. }
  1319.  
  1320. stock GetMoney(playerid)
  1321. {
  1322. return pInfo[playerid][pmoney];
  1323. }
  1324.  
  1325.  
  1326. GetName(playerid)
  1327. {
  1328. new name[MAX_PLAYER_NAME];
  1329. GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  1330. return name;
  1331. }
  1332.  
  1333. ARank(playerid)
  1334. {
  1335. new rank[50];
  1336. if(pInfo[playerid][padmin]==1){rank="Supporter";}
  1337. if(pInfo[playerid][padmin]==2){rank="Moderator";}
  1338. if(pInfo[playerid][padmin]==3){rank="Head-Administrator";}
  1339. if(pInfo[playerid][padmin]==4){rank="Projektleiter";}
  1340. return rank;
  1341. }
  1342.  
  1343. IsNummeric(string[])
  1344. {
  1345. for(new i=0,j=strlen(string);i<j;i++)
  1346. {
  1347. if((string[i] > '9' || string[i] < '0'))return 0;
  1348. }
  1349. return 1;
  1350. }
  1351.  
  1352. hatPlayerHaus(playerid)
  1353. {
  1354. new name[MAX_PLAYER_NAME];
  1355. GetPlayerName(playerid, name, sizeof(name));
  1356. for(new i=0; i<sizeof(hInfo); i++)
  1357. {
  1358. if(!hInfo[i][h_id])continue;
  1359. if(!strlen(hInfo[i][h_besitzer]))continue;
  1360. if(!strcmp(name, hInfo[i][h_besitzer], true))return 1;
  1361. }
  1362. return 0;
  1363. }
  1364.  
  1365. updateHaus(id)
  1366. {
  1367. new string[250];
  1368. if(hInfo[id][h_pickup])
  1369. {
  1370. DestroyPickup(hInfo[id][h_pickup]);
  1371.  
  1372. }
  1373. if(hInfo[id][h_text])
  1374. {
  1375. Delete3DTextLabel(hInfo[id][h_text]);
  1376.  
  1377. }
  1378.  
  1379. if(!strlen(hInfo[id][h_besitzer]))
  1380. {
  1381. hInfo[id][h_pickup]=CreatePickup(1273, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
  1382. format(string,sizeof(string), "Zum Verkauf\nKosten: %i$\n/buyhouse", hInfo[id][h_preis]);
  1383. hInfo[id][h_text]=Create3DTextLabel(string, COLOR_GREY, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
  1384. }
  1385. else
  1386. {
  1387. hInfo[id][h_pickup]=CreatePickup(1239, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
  1388. format(string,sizeof(string), "Besitzer: %s\n/enter", hInfo[id][h_besitzer]);
  1389. hInfo[id][h_text]=Create3DTextLabel(string, COLOR_GREY, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
  1390. }
  1391. return 1;
  1392. }
  1393.  
  1394. saveHaus(id)
  1395. {
  1396. new query[500];
  1397. format(query, sizeof(query), "UPDATE haus SET besitzer='%s', h_preis='%i' WHERE id='%i'", hInfo[id][h_besitzer], hInfo[id][h_preis], hInfo[id][h_id]);
  1398. mysql_function_query(dbhandle, query, false, "", "");
  1399. return 1;
  1400. }
  1401.  
  1402. AntiDeAMX()
  1403. {
  1404. new a[][] =
  1405. {
  1406. "Unarmed (Fist)",
  1407. "Brass K"
  1408. };
  1409. #pragma unused a
  1410. }
Advertisement
Add Comment
Please, Sign In to add comment