ServerFehler

alles

Jul 2nd, 2014
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.01 KB | None | 0 0
  1. //Includes
  2. #include <a_samp>
  3. #include <ocmd>
  4. #include <sscanf2>
  5. #include <a_mysql>
  6.  
  7. //Farben
  8. #define COLOR_RED 0xFF0000FF
  9. #define COLOR_WHITE 0xFFFFFFFF
  10. #define COLOR_BLUE 0x000FFFFF
  11.  
  12. //Dialoge
  13. #define DIALOG_REGISTER 1
  14. #define DIALOG_LOGIN 2
  15. #define DIALOG_AUTOHAUS 3
  16.  
  17. //MySQL
  18. #define db_host "127.0.0.1"
  19. #define db_user "samp"
  20. #define db_pass "eeee"
  21. #define db_db "samp"
  22.  
  23. //enums
  24. enum playerInfo{
  25. eingeloggt,
  26. level,
  27. db_id,
  28. alevel,
  29. fraktion,
  30. rang,
  31. spawnchange
  32. }
  33.  
  34. enum buildingsEnum{
  35. Float:b_x,
  36. Float:b_y,
  37. Float:b_z,
  38. Float:b_ix,
  39. Float:b_iy,
  40. Float:b_iz,
  41. b_interior,
  42. b_shopname[15]
  43. }
  44.  
  45. enum carEnum{
  46. id_x,
  47. model,
  48. besitzer,
  49. Float:c_x,
  50. Float:c_y,
  51. Float:c_z,
  52. Float:c_r,
  53. db_id
  54. }
  55.  
  56. enum autohausEnum{
  57. Float:s_x,
  58. Float:s_y,
  59. Float:s_z,
  60. Float:s_r
  61. }
  62.  
  63. enum autohauscarEnum{
  64. model,
  65. Float:c_x,
  66. Float:c_y,
  67. Float:c_z,
  68. Float:c_r,
  69. c_preis,
  70. ah_id,
  71. id_x
  72.  
  73. }
  74.  
  75. enum fraktEnum{
  76. f_name[128],
  77. Float:f_x,
  78. Float:f_y,
  79. Float:f_z,
  80. Float:f_r,
  81. f_inter,
  82. f_world,
  83. f_color
  84. }
  85.  
  86. //Globale Variablen
  87. new dbhandle;
  88. new sInfo[MAX_PLAYERS][playerInfo];
  89. new fInfo[][fraktEnum] = {
  90. {"Zivilist", 0.0, 0.0, 0.0, 0.0, 0, 0, COLOR_WHITE},
  91. {"LSPD", 1530.9622,-1677.6875,5.8906,268.587, 0, 0, COLOR_BLUE},
  92. {"Grove Street", 2491.3042,-1692.0360,14.7656,1.504, 0, 0, COLOR_WHITE},
  93. {"Ballas", 2575.5115,-1070.5188,69.5704,82.133, 0, 0, COLOR_WHITE},
  94. {"Vagos", 2006.8923,-1115.7986,27.1250,88.152, 0, 0, COLOR_WHITE},
  95. {"LCM", 2489.9199,923.3309,11.0234,97.800, 0, 0, COLOR_WHITE},
  96. {"Yakuza", 2597.8818,1900.0507,11.0234,181.469, 0, 0, COLOR_WHITE},
  97. {"Triaden", 1456.9742,2773.5061,10.8203,267.550, 0, 0, COLOR_WHITE}
  98.  
  99. };
  100. new bInfo[][buildingsEnum] = {
  101. {1199.3927,-918.2098,43.1218,363.1013,-75.3195,1001.5078,10,"FDBURG"},//BSN
  102. {1368.9250,-1279.5109,13.5469,315.8116,-143.6637,999.6016,7,"AMMUN3"}//Ammu
  103. };
  104. new cInfo[50][carEnum];
  105. new ahInfo[][autohausEnum] = {
  106. {2118.7808,-1155.9178,23.7311,347.9237},//id: 0 1. Bikeshop
  107. {737.3469,-1346.7604,13.2856,270.4983}//id: 1 1. Autohaus
  108. };
  109. new ahCars[][autohauscarEnum] = {
  110. {522,2135.6465,-1126.0907,25.0781,84.3836,50000,0},
  111. {462,2135.0784,-1128.7626,25.2092,83.5603,30000,0},
  112. {461,2134.7361,-1130.8929,25.2581,83.0844,35000,0},
  113. {480,736.5851,-1333.7145,13.3169,180.3495,15000,1}
  114. };
  115.  
  116. new sekunden_timer;
  117.  
  118. new autosOhneMotor[] = {509,510,481};
  119.  
  120. new Text:uhrzeitLabel;
  121.  
  122. //Forwards
  123. forward OnUserCheck(playerid);
  124. forward OnPasswordResponse(playerid);
  125. forward carSavedToDB(carid);
  126. forward OnPlayerCarsLoad(playerid);
  127. forward sekunde();
  128. forward unfreezePlayer(playerid);
  129.  
  130. main()
  131. {
  132.  
  133. }
  134.  
  135. public OnGameModeInit()
  136. {
  137. SetGameModeText("German - Reallife 0.3z");
  138. AddPlayerClass(59,1715.0729,-1911.8328,13.5665,2.7170,WEAPON_DEAGLE,500,0,0,0,0);
  139.  
  140. DisableInteriorEnterExits();
  141. ManualVehicleEngineAndLights();
  142.  
  143. EnableStuntBonusForAll(0);
  144.  
  145. //Gebäude laden
  146. for(new i=0; i<sizeof(bInfo); i++)
  147. {
  148. CreatePickup(1239,1,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z],0);
  149. Create3DTextLabel("Zum Betreten /enter",COLOR_RED,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z],10,0,1);
  150. }
  151.  
  152. //Autos erstellen
  153. AddStaticVehicle(522,1724.8495,-1924.4739,13.1409,2.9441,3,8); // nrg
  154.  
  155. //Autohäuser laden
  156. for(new i=0; i<sizeof(ahCars); i++)
  157. {
  158. ahCars[i][id_x]=AddStaticVehicle(ahCars[i][model],ahCars[i][c_x],ahCars[i][c_y],ahCars[i][c_z],ahCars[i][c_r],-1,-1);
  159. }
  160.  
  161. //Textdraws
  162. uhrzeitLabel = TextDrawCreate(553.000000, 34.000000, "00:00");
  163. TextDrawBackgroundColor(uhrzeitLabel, 255);
  164. TextDrawFont(uhrzeitLabel, 2);
  165. TextDrawLetterSize(uhrzeitLabel, 0.500000, 1.200000);
  166. TextDrawColor(uhrzeitLabel, -16776961);
  167. TextDrawSetOutline(uhrzeitLabel, 0);
  168. TextDrawSetProportional(uhrzeitLabel, 1);
  169. TextDrawSetShadow(uhrzeitLabel, 1);
  170.  
  171.  
  172. //Timer
  173. sekunden_timer = SetTimer("sekunde",1000,true);
  174.  
  175. //MySQL
  176. dbhandle = mysql_connect(db_host,db_user,db_db,db_pass);
  177. return 1;
  178. }
  179.  
  180. public OnGameModeExit()
  181. {
  182. mysql_close(dbhandle);
  183. return 1;
  184. }
  185.  
  186. public sekunde()
  187. {
  188. new string[128];
  189. for(new i=0; i<MAX_PLAYERS; i++)
  190. {
  191. if(!IsPlayerConnected(i))continue;
  192. if(!IsPlayerInAnyVehicle(i))continue;
  193. format(string,sizeof(string),"%ikm/h", getPlayerSpeed(i));
  194. GameTextForPlayer(i, string, 1000,3);
  195. }
  196.  
  197. new hour, minute, second;
  198. gettime(hour, minute, second);
  199. format(string,sizeof(string),"%02d:%02d",hour, minute);
  200. TextDrawSetString(uhrzeitLabel, string);
  201. return 1;
  202. }
  203.  
  204. public OnPlayerRequestClass(playerid, classid)
  205. {
  206. SetPlayerPos(playerid,1715.0729,-1911.8328,13.5665);
  207. SetPlayerCameraPos(playerid, 1714.8402,-1908.1653,13.5666);
  208. SetPlayerCameraLookAt(playerid, 1715.0729,-1911.8328,13.5665);
  209. SetPlayerFacingAngle(playerid,2.7170);
  210. return 1;
  211. }
  212.  
  213. public OnUserCheck(playerid)
  214. {
  215. new num_rows,num_fields;
  216. cache_get_data(num_rows,num_fields,dbhandle);
  217. if(num_rows==0)
  218. {
  219. //Registrierung
  220. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registierung","Es wurde kein Account unter diesem Namen gefunden bitte Registriere dich:","OK","Abbrechen");
  221. }
  222. else
  223. {
  224. //Login
  225. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","German Reallife\nDein Account wurde in der Datenbank gefunden bitte Logge dich ein:","OK","Abbrechen");
  226. }
  227. return 1;
  228. }
  229.  
  230. public OnPlayerConnect(playerid)
  231. {
  232. new nachricht[128];
  233. format(nachricht,sizeof(nachricht),"Du bist mit der ID %i verbunden.",playerid);
  234. SendClientMessage(playerid,COLOR_RED,nachricht);
  235.  
  236. //Login und Register
  237. new name[MAX_PLAYER_NAME],query[128];
  238. GetPlayerName(playerid,name,sizeof(name));
  239. format(query,sizeof(query),"SELECT id FROM user WHERE username='%s'",name);
  240. mysql_function_query(dbhandle,query,true,"OnUserCheck","i",playerid);
  241.  
  242. //Texdraws anzeigen
  243. TextDrawShowForPlayer(playerid, uhrzeitLabel);
  244.  
  245. //Spielefarbe setzten
  246. SetPlayerColor(playerid, COLOR_WHITE);
  247. return 1;
  248. }
  249.  
  250. savePlayer(playerid)
  251. {
  252. if(sInfo[playerid][eingeloggt]==0)return 1;
  253. //Speichern level,money
  254. new query[456];
  255. format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i',hitsound='%i',spawnchange='%i' WHERE id='%i'",sInfo[playerid][level],
  256. GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],GetPVarInt(playerid, "Hitsound"),sInfo[playerid][db_id]);
  257. mysql_function_query(dbhandle,query,false,"","");
  258. return 1;
  259. }
  260.  
  261. resetPlayer(playerid)
  262. {
  263. for(new i=0; i<sizeof(sInfo[]); i++)
  264. {
  265. sInfo[playerid][playerInfo:i]=0;
  266. }
  267. return 1;
  268. }
  269.  
  270. public OnPlayerDisconnect(playerid, reason)
  271. {
  272. for(new i=0; i<sizeof(cInfo); i++)
  273. {
  274. if(cInfo[i][id_x]==0)continue;
  275. if(cInfo[i][besitzer]!=sInfo[playerid][db_id])continue;
  276. GetVehiclePos(cInfo[i][id_x],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z]);
  277. GetVehicleZAngle(cInfo[i][id_x],cInfo[i][c_r]);
  278. new query[256];
  279. format(query,sizeof(query),"UPDATE autos SET x='%f',y='%f',z='%f',r='%f' WHERE id='%i'",cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][db_id]);
  280. mysql_function_query(dbhandle,query,false,"","");
  281. DestroyVehicle(cInfo[i][id_x]);
  282. cInfo[i][id_x]=0;
  283. }
  284. savePlayer(playerid);
  285. resetPlayer(playerid);
  286. return 1;
  287. }
  288.  
  289. isPlayerInFrakt(playerid, f_id){
  290. if(sInfo[playerid][fraktion]==f_id)return 1;
  291. return 0;
  292. }
  293.  
  294. public OnPlayerSpawn(playerid)
  295. {
  296. if(!isPlayerInFrakt(playerid, 0)){
  297. if(sInfo[playerid][spawnchange]==1)
  298. {
  299. new fID;
  300. fID = sInfo[playerid][fraktion];
  301. SetPlayerPos(playerid, fInfo[fID][f_x],fInfo[fID][f_y],fInfo[fID][f_z]);
  302. SetPlayerFacingAngle(playerid, fInfo[fID][f_r]);
  303. SetPlayerInterior(playerid, fInfo[fID][f_inter]);
  304. SetPlayerVirtualWorld(playerid, fInfo[fID][f_world]);
  305. SetPlayerColor(playerid, fInfo[fID][f_color]);
  306. }
  307. }
  308. return 1;
  309. }
  310.  
  311.  
  312. public OnPlayerDeath(playerid, killerid, reason)
  313. {
  314. return 1;
  315. }
  316.  
  317. public OnVehicleSpawn(vehicleid)
  318. {
  319. return 1;
  320. }
  321.  
  322. public OnVehicleDeath(vehicleid, killerid)
  323. {
  324. return 1;
  325. }
  326.  
  327. public OnPlayerText(playerid, text[])
  328. {
  329. return 1;
  330. }
  331.  
  332. getPlayerSpeed(playerid)
  333. {
  334. new Float:x, Float:y, Float:z, Float:rtn;
  335. if(IsPlayerInAnyVehicle(playerid))
  336. {
  337. GetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z);
  338. }
  339. else
  340. {
  341. GetPlayerVelocity(playerid, x, y, z);
  342. }
  343. //rtn = wurzel(x*x + y*y + z*z);
  344. rtn = floatsqroot(x*x + y*y + z*z);
  345. return floatround(rtn * 100 * 1.61);
  346. }
  347.  
  348. public carSavedToDB(carid)
  349. {
  350. cInfo[carid][db_id]=cache_insert_id(dbhandle);
  351. return 1;
  352. }
  353.  
  354. saveCarToDB(playerid,carid)
  355. {
  356. new query[128];
  357. format(query,sizeof(query),"INSERT INTO autos (besitzer,model,x,y,z,r) VALUES ('%i','%i','%f','%f','%f','%f')",sInfo[playerid][db_id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]);
  358. mysql_function_query(dbhandle,query,true,"carSavedToDB","i",carid);
  359. return 1;
  360. }
  361.  
  362. createPlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r)
  363. {
  364. for(new i=0; i<sizeof(cInfo); i++)
  365. {
  366. if(cInfo[i][id_x]!=0)continue;
  367. cInfo[i][besitzer]=sInfo[playerid][db_id];
  368. cInfo[i][c_x]=x;
  369. cInfo[i][c_y]=y;
  370. cInfo[i][c_z]=z;
  371. cInfo[i][c_r]=r;
  372. cInfo[i][model]=modelid;
  373. cInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r,-1,-1,-1);
  374. new string[128];
  375. format(string,sizeof(string),"Das Auto cInfo[%i] wurde erstellt.",i);
  376. SendClientMessageToAll(COLOR_RED,string);
  377. saveCarToDB(playerid,i);
  378. return 1;
  379. }
  380. return 1;
  381. }
  382.  
  383. public unfreezePlayer(playerid)
  384. {
  385. TogglePlayerControllable(playerid,true);
  386. return 1;
  387. }
  388.  
  389. public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
  390. {
  391. if((playerid != INVALID_PLAYER_ID && issuerid != playerid) && GetPVarInt(playerid, "Hitsound") == 1) {
  392. PlayerPlaySound(issuerid, 17802, 0.0, 0.0, 0.0);
  393. }
  394. return 1;
  395. }
  396.  
  397. getPlayerName(playerid)
  398. {
  399. new name[MAX_PLAYER_NAME];
  400. GetPlayerName(playerid, name, sizeof(name));
  401. return name;
  402. }
  403.  
  404. //Befehle
  405.  
  406. ocmd:spawnchange(playerid, params[])
  407. {
  408. if(isPlayerInFrakt(playerid, 0))return SendClientMessage(
  409. playerid, COLOR_WHITE, "Du bist in keiner Fraktion.");
  410. if(sInfo[playerid][spawnchange]==0)
  411. {
  412. sInfo[playerid][spawnchange]=1;
  413. }
  414. if(sInfo[playerid][spawnchange]==1)
  415. {
  416. sInfo[playerid][spawnchange]=0;
  417. }
  418. SendClientMessage(playerid,COLOR_WHITE, "Spawn geändert.");
  419. return 1;
  420. }
  421.  
  422. ocmd:makeleader(playerid, params[])
  423. {
  424. if(!isAdmin(playerid, 3))return SendClientMessage(playerid,
  425. COLOR_WHITE, "Dein Adminrang ist zu niedrig.");
  426. new pID, fID;
  427. if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,
  428. COLOR_WHITE, "INFO: /makeleader [playerid] [fraktid]");
  429. if(fID >= sizeof(fInfo))return SendClientMessage(playerid,
  430. COLOR_RED, "Fraktion existiert nicht.");
  431. sInfo[pID][fraktion] = fID;
  432. sInfo[pID][rang] = 6;
  433. new string[128];
  434. format(string,sizeof(string),
  435. "%s hat dich zum Leader der Fraktion %s gemacht",
  436. getPlayerName(playerid), fInfo[fID][f_name]);
  437. SendClientMessage(pID, COLOR_WHITE, string);
  438. SendClientMessage(playerid, COLOR_WHITE, "Du hast einen Spieler zum Leader gemacht.");
  439. savePlayer(pID);
  440. return 1;
  441. }
  442.  
  443. ocmd:hitsound(playerid)
  444. {
  445. if(GetPVarInt(playerid, "Hitsound") == 0) {
  446. SendClientMessage(playerid, -1, "Du hast den Hitsound angeschalten!");
  447. SetPVarInt(playerid, "Hitsound", 1);
  448. }
  449. else {
  450. SendClientMessage(playerid, -1, "Du hast den Hitsound ausgeschaltet!");
  451. SetPVarInt(playerid, "Hitsound", 0);
  452. }
  453. return 1;
  454. }
  455.  
  456. ocmd:freezeme(playerid,params[])
  457. {
  458. TogglePlayerControllable(playerid,false);
  459. SetTimerEx("unfreezePlayer",3000,false,"i",playerid);
  460. return 1;
  461. }
  462.  
  463. ocmd:stoptimer(playerid,params[])
  464. {
  465. KillTimer(sekunden_timer);
  466. return 1;
  467. }
  468.  
  469. ocmd:licht(playerid,params[])
  470. {
  471. if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return
  472. SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer eines Fahrzeugs.");
  473.  
  474.  
  475. new vID=GetPlayerVehicleID(playerid),
  476. tmp_engine,
  477. tmp_lights,
  478. tmp_alarm,
  479. tmp_doors,
  480. tmp_bonnet,
  481. tmp_boot,
  482. tmp_objective;
  483. //Motor an/ausschalten
  484. GetVehicleParamsEx(vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
  485. if(tmp_lights==1){
  486. tmp_lights = 0;
  487. }else{
  488. tmp_lights = 1;
  489. }
  490. SetVehicleParamsEx(vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
  491. return 1;
  492. }
  493.  
  494. ocmd:motor(playerid,params[])
  495. {
  496. if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return
  497. SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer eines Fahrzeugs.");
  498.  
  499.  
  500. new vID=GetPlayerVehicleID(playerid),
  501. tmp_engine,
  502. tmp_lights,
  503. tmp_alarm,
  504. tmp_doors,
  505. tmp_bonnet,
  506. tmp_boot,
  507. tmp_objective;
  508. //Motor an/ausschalten
  509. GetVehicleParamsEx(vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
  510. if(tmp_engine==1){
  511. tmp_engine = 0;
  512. }else{
  513. tmp_engine = 1;
  514. }
  515. SetVehicleParamsEx(vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
  516. return 1;
  517. }
  518.  
  519. ocmd:deletecar(playerid,params[])
  520. {
  521. if(!isAdmin(playerid,2))return SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig.");
  522. if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,COLOR_RED,"Du bist in keinem Fahrzeug(?)");
  523. DestroyVehicle(GetPlayerVehicleID(playerid));
  524. return 1;
  525. }
  526.  
  527. ocmd:cveh(playerid,params[])
  528. {
  529. if(!isAdmin(playerid,2))return SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig.");
  530. new mID,pID;
  531. if(sscanf(params,"ui",pID,mID))return SendClientMessage(playerid,COLOR_RED,"INFO: /cveh [id] [model]");
  532. if(mID<400||mID>611)return SendClientMessage(playerid,COLOR_RED,"Ungültiges Model.");
  533. new Float:xc,Float:yc,Float:zc,Float:rc;
  534. GetPlayerPos(pID,xc,yc,zc);
  535. GetPlayerFacingAngle(pID,rc);
  536. createPlayerCar(pID,mID,xc,yc,zc,rc);
  537. return 1;
  538. }
  539.  
  540. ocmd:exit(playerid,params[])
  541. {
  542. for(new i=0; i<sizeof(bInfo); i++)
  543. {
  544. if(GetPlayerVirtualWorld(playerid)!=i)continue;
  545. if(!IsPlayerInRangeOfPoint(playerid,2,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]))continue;
  546. SetPlayerPos(playerid,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]);
  547. SetPlayerInterior(playerid,0);
  548. SetPlayerVirtualWorld(playerid,0);
  549. return 1;
  550. }
  551. return 1;
  552. }
  553.  
  554. ocmd:enter(playerid,params[])
  555. {
  556. for(new i=0; i<sizeof(bInfo); i++)
  557. {
  558. if(!IsPlayerInRangeOfPoint(playerid,2,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]))continue;
  559. SetPlayerPos(playerid,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]);
  560. SetPlayerInterior(playerid,bInfo[i][b_interior]);
  561. SetPlayerVirtualWorld(playerid,i);
  562. SetPlayerShopName(playerid,bInfo[i][b_shopname]);
  563. return 1;
  564. }
  565. return 1;
  566. }
  567.  
  568. ocmd:selbstmord(playerid,params[])
  569. {
  570. SetPlayerHealth(playerid,-100);
  571. SendClientMessage(playerid,COLOR_RED,"Du hast Selbstmord begangen");
  572. return 1;
  573. }
  574.  
  575. ocmd:makeadmin(playerid,params[])
  576. {
  577. if(!isAdmin(playerid,3))return SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig");
  578. new pID,a_level;
  579. if(sscanf(params,"ui",pID,a_level))return SendClientMessage(playerid,COLOR_RED,"INFO: /makeadmin [spielerid] [adminrank]");
  580. sInfo[pID][alevel]=a_level;
  581. savePlayer(pID);
  582. SendClientMessage(pID,COLOR_RED,"Dein Adminrang wurde geändert.");
  583. SendClientMessage(playerid,COLOR_RED,"Du hast den Adminrang geändert.");
  584. return 1;
  585. }
  586.  
  587. isAdmin(playerid,a_level)
  588. {
  589. if(sInfo[playerid][alevel]>=a_level)return 1;
  590. return 0;
  591. }
  592.  
  593. ocmd:w(playerid,params[])
  594. {
  595. if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig");
  596. new pID,text[128];
  597. if(sscanf(params,"us[128]",pID,text))return SendClientMessage(playerid,COLOR_RED,"INFO: /w(whisper) [playerid] [text]");
  598. SendClientMessage(pID,COLOR_RED,text);
  599. return 1;
  600. }
  601.  
  602. ocmd:restart(playerid,params[])
  603. {
  604. if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig");
  605. SendRconCommand("gmx");
  606. return 1;
  607. }
  608.  
  609. public OnPlayerCommandText(playerid, cmdtext[])
  610. {
  611. return 0;
  612. }
  613.  
  614. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  615. {
  616. return 1;
  617. }
  618.  
  619. public OnPlayerExitVehicle(playerid, vehicleid)
  620. {
  621. return 1;
  622. }
  623.  
  624. public OnPlayerStateChange(playerid, newstate, oldstate)
  625. {
  626. if(newstate==PLAYER_STATE_DRIVER)
  627. {
  628. new vID=GetPlayerVehicleID(playerid);
  629. new vModel=GetVehicleModel(vID);
  630.  
  631. for(new i=0; i<sizeof(autosOhneMotor); i++)
  632. {
  633. if(autosOhneMotor[i]!=vModel)continue;
  634. new tmp_engine,
  635. tmp_lights,
  636. tmp_alarm,
  637. tmp_doors,
  638. tmp_bonnet,
  639. tmp_boot,
  640. tmp_objective;
  641. //Motor an/ausschalten
  642. GetVehicleParamsEx(vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
  643. SetVehicleParamsEx(vID, 1, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
  644. }
  645.  
  646. for(new i=0; i<sizeof(ahCars); i++)
  647. {
  648. if(ahCars[i][id_x]!=vID)continue;
  649. //Verkaufsprozess
  650. SetPVarInt(playerid,"buyCarID",i);
  651. new string[256];
  652. format(string,sizeof(string),"Möchten sie das Fahrzeug für %i$ kaufen?",ahCars[i][c_preis]);
  653. ShowPlayerDialog(playerid,DIALOG_AUTOHAUS,DIALOG_STYLE_MSGBOX,"Kauf bestaetigen",string,"Ja","Nein");
  654. break;
  655. }
  656. return 1;
  657. }
  658. return 1;
  659. }
  660.  
  661. public OnPlayerEnterCheckpoint(playerid)
  662. {
  663. return 1;
  664. }
  665.  
  666. public OnPlayerLeaveCheckpoint(playerid)
  667. {
  668. return 1;
  669. }
  670.  
  671. public OnPlayerEnterRaceCheckpoint(playerid)
  672. {
  673. return 1;
  674. }
  675.  
  676. public OnPlayerLeaveRaceCheckpoint(playerid)
  677. {
  678. return 1;
  679. }
  680.  
  681. public OnRconCommand(cmd[])
  682. {
  683. return 1;
  684. }
  685.  
  686. public OnPlayerRequestSpawn(playerid)
  687. {
  688. return 1;
  689. }
  690.  
  691. public OnObjectMoved(objectid)
  692. {
  693. return 1;
  694. }
  695.  
  696. public OnPlayerObjectMoved(playerid, objectid)
  697. {
  698. return 1;
  699. }
  700.  
  701. public OnPlayerPickUpPickup(playerid, pickupid)
  702. {
  703. return 1;
  704. }
  705.  
  706. public OnVehicleMod(playerid, vehicleid, componentid)
  707. {
  708. return 1;
  709. }
  710.  
  711. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  712. {
  713. return 1;
  714. }
  715.  
  716. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  717. {
  718. return 1;
  719. }
  720.  
  721. public OnPlayerSelectedMenuRow(playerid, row)
  722. {
  723. return 1;
  724. }
  725.  
  726. public OnPlayerExitedMenu(playerid)
  727. {
  728. return 1;
  729. }
  730.  
  731. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  732. {
  733. return 1;
  734. }
  735.  
  736. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  737. {
  738. if(newkeys & KEY_YES)
  739. {
  740. //Enterbefehl
  741. ocmd_enter(playerid,"");
  742. return 1;
  743. }
  744. if(newkeys & KEY_NO)
  745. {
  746. //Exitbefehl
  747. ocmd_exit(playerid,"");
  748. return 1;
  749. }
  750. return 1;
  751. }
  752.  
  753. public OnRconLoginAttempt(ip[], password[], success)
  754. {
  755. return 1;
  756. }
  757.  
  758. public OnPlayerUpdate(playerid)
  759. {
  760. return 1;
  761. }
  762.  
  763. public OnPlayerStreamIn(playerid, forplayerid)
  764. {
  765. return 1;
  766. }
  767.  
  768. public OnPlayerStreamOut(playerid, forplayerid)
  769. {
  770. return 1;
  771. }
  772.  
  773. public OnVehicleStreamIn(vehicleid, forplayerid)
  774. {
  775. return 1;
  776. }
  777.  
  778. public OnVehicleStreamOut(vehicleid, forplayerid)
  779. {
  780. return 1;
  781. }
  782.  
  783. SetPlayerMoney(playerid,money)
  784. {
  785. ResetPlayerMoney(playerid);
  786. GivePlayerMoney(playerid,money);
  787. return 1;
  788. }
  789.  
  790. getFreeCarID()
  791. {
  792. for(new i=0; i<sizeof(cInfo); i++)
  793. {
  794. if(cInfo[i][id_x]==0)return i;
  795. }
  796. return 0;
  797. }
  798.  
  799. public OnPlayerCarsLoad(playerid)
  800. {
  801. new num_fields,num_rows;
  802. cache_get_data(num_rows,num_fields,dbhandle);
  803. if(!num_rows)return 1;
  804. for(new i=0; i<num_rows; i++)
  805. {
  806. new id=getFreeCarID();
  807. cInfo[id][model]=cache_get_field_content_int(i,"model",dbhandle);
  808. cInfo[id][besitzer]=cache_get_field_content_int(i,"besitzer",dbhandle);
  809. cInfo[id][c_x]=cache_get_field_content_float(i,"x",dbhandle);
  810. cInfo[id][c_y]=cache_get_field_content_float(i,"y",dbhandle);
  811. cInfo[id][c_z]=cache_get_field_content_float(i,"z",dbhandle);
  812. cInfo[id][c_r]=cache_get_field_content_float(i,"r",dbhandle);
  813. cInfo[id][db_id]=cache_get_field_content_int(i,"id",dbhandle);
  814. cInfo[id][id_x]=CreateVehicle(cInfo[id][model],cInfo[id][c_x],cInfo[id][c_y],cInfo[id][c_z],cInfo[id][c_r],-1,-1,-1);
  815. }
  816. return 1;
  817. }
  818.  
  819. loadPlayerCars(playerid)
  820. {
  821. new query[128];
  822. format(query,sizeof(query),"SELECT * FROM autos WHERE besitzer='%i'",sInfo[playerid][db_id]);
  823. mysql_function_query(dbhandle,query,true,"OnPlayerCarsLoad","i",playerid);
  824. return 1;
  825. }
  826.  
  827. public OnPasswordResponse(playerid)
  828. {
  829. new num_fields,num_rows;
  830. cache_get_data(num_rows,num_fields,dbhandle);
  831. if(num_rows==1)
  832. {
  833. //Passwort richtig //Spieler laden
  834. sInfo[playerid][eingeloggt] = 1;
  835. sInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle);
  836. SetPlayerScore(playerid,sInfo[playerid][level]);
  837. sInfo[playerid][db_id] = cache_get_field_content_int(0,"id",dbhandle);
  838. SetPlayerMoney(playerid,cache_get_field_content_int(0,"money",dbhandle));
  839. sInfo[playerid][alevel] = cache_get_field_content_int(0,"alevel",dbhandle);
  840. sInfo[playerid][fraktion] = cache_get_field_content_int(0,"fraktion",dbhandle);
  841. sInfo[playerid][rang] = cache_get_field_content_int(0,"rang",dbhandle);
  842. sInfo[playerid][spawnchange] = cache_get_field_content_int(0,"spawnchange",dbhandle);
  843. SetPVarInt(playerid, "Hitsound", cache_get_field_content_int(0,"hitsound",dbhandle));
  844. loadPlayerCars(playerid);
  845.  
  846. }
  847. else
  848. {
  849. //Passwort falsch
  850. SendClientMessage(playerid,COLOR_RED,"Das eingegebene Passwort ist falsch.");
  851. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","German Reallife\nDein Account wurde in der Datenbank gefunden bitte Logge dich ein:","OK","Abbrechen");
  852. }
  853. return 1;
  854. }
  855.  
  856. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  857. {
  858. if(dialogid==DIALOG_AUTOHAUS)
  859. {
  860. if(response)
  861. {
  862. //Auto/Bike verkauf
  863. new id=GetPVarInt(playerid,"buyCarID");
  864. if(GetPlayerMoney(playerid)<ahCars[id][c_preis])
  865. {
  866. SendClientMessage(playerid,COLOR_RED,"Du hast nicht genügend Geld.");
  867. RemovePlayerFromVehicle(playerid);
  868. return 1;
  869. }
  870. GivePlayerMoney(playerid,-ahCars[id][c_preis]);
  871. createPlayerCar(playerid,ahCars[id][model],ahInfo[ahCars[id][ah_id]][s_x],ahInfo[ahCars[id][ah_id]][s_y],ahInfo[ahCars[id][ah_id]][s_z],ahInfo[ahCars[id][ah_id]][s_r]);
  872. SendClientMessage(playerid,COLOR_RED,"Herlichen Glückwünsch zum neuen Immobil");
  873. RemovePlayerFromVehicle(playerid);
  874. }
  875. else
  876. {
  877. RemovePlayerFromVehicle(playerid);
  878. SendClientMessage(playerid,COLOR_RED,"Dann nicht");
  879. }
  880. return 1;
  881. }
  882. if(dialogid==DIALOG_LOGIN)
  883. {
  884. if(response)
  885. {
  886. new name[MAX_PLAYER_NAME],query[128],passwort[35];
  887. GetPlayerName(playerid,name,sizeof(name));
  888. if(strlen(inputtext)>0)
  889. {
  890. mysql_escape_string(inputtext,passwort,dbhandle);
  891. format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND password=MD5('%s')",name,passwort);
  892. mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
  893. }
  894. else
  895. {
  896. //Keine Eingabe
  897. SendClientMessage(playerid,COLOR_RED,"Gibt bitte dein Passwort ein.");
  898. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","German Reallife\nDein Account wurde in der Datenbank gefunden bitte Logge dich ein:","OK","Abbrechen");
  899. }
  900. }
  901. else
  902. {
  903. Kick(playerid);
  904. }
  905. return 1;
  906. }
  907. if(dialogid==DIALOG_REGISTER)
  908. {
  909. if(response)
  910. {
  911. new name[MAX_PLAYER_NAME],query[128],passwort[35];
  912. GetPlayerName(playerid,name,sizeof(name));
  913. if(strlen(inputtext)>3)
  914. {
  915. //Registierungsfunktion
  916. mysql_escape_string(inputtext,passwort,dbhandle);
  917. format(query,sizeof(query),"INSERT INTO user (username,password) VALUES ('%s',MD5('%s')) ",name,passwort);
  918. mysql_function_query(dbhandle,query,false,"","");
  919. }
  920. else
  921. {
  922. //Kleiner als 4 Zeichen
  923. SendClientMessage(playerid,COLOR_RED,"Dein Password muss mindestens 4 Zeichen lang sein");
  924. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registierung","Es wurde kein Account unter diesem Namen gefunden bitte Registriere dich:","OK","Abbrechen");
  925. }
  926. }
  927. else
  928. {
  929. Kick(playerid);
  930. }
  931. return 1;
  932. }
  933. return 1;
  934. }
  935.  
  936. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  937. {
  938. return 1;
  939. }
Advertisement
Add Comment
Please, Sign In to add comment