Advertisement
Guest User

Untitled

a guest
Jul 9th, 2017
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.48 KB | None | 0 0
  1. //Includs
  2. #include <a_samp>
  3. #include <ocmd>
  4. #include <sscanf2>
  5. #include <a_mysql>
  6.  
  7. //enums
  8. enum playerInfo{
  9. eingeloggt,
  10. level,
  11. id,
  12. alevel,
  13. aussehen,
  14. jahre
  15. }
  16.  
  17. enum buildingsEnum{
  18. Float:b_x,
  19. Float:b_y,
  20. Float:b_z,
  21. Float:b_ix,
  22. Float:b_iy,
  23. Float:b_iz,
  24. b_interior,
  25. b_shopname[15],
  26. b_world
  27.  
  28. }
  29. enum actorinfoLabel{
  30. actor_name[128],
  31. actor_skin,
  32. Float:a_x,
  33. Float:a_y,
  34. Float:a_z,
  35. Float:a_r,
  36. actor_vw,
  37. actor_best,
  38. actor_besttype,
  39. actor_id
  40. }
  41.  
  42.  
  43. //Globale Variable
  44. new dbhandle;
  45. new sInfo[MAX_PLAYERS][playerInfo];
  46. new bInfo[][buildingsEnum] = {
  47. {243.0825,-178.3224,1.5822,285.3642,-41.5576,1001.515,1,"AMMUN1"},//Ammunation Farm
  48. {212.1142,-202.1886,1.5781,372.4523,-133.5244,1001.4922,5,"FDPIZA"},//Pizza Farm
  49. {1481.0005,-1771.4497,18.7958,384.808624,173.804992,1008.382812,3}//LS Stadhalle
  50. };
  51.  
  52. new actorInfo[][actorinfoLabel] = {
  53. {"Schönen guten Tag\nwie kann ich Ihnen helfen?\nZum Interagieren nutze die Eingabetaste",141,359.7171,173.5524,1008.3893,265.9239,2,0,0}
  54. };
  55.  
  56. //Farben
  57. #define COLOR_RED 0xFF0023FF
  58. #define COLOR_ORANG 0xFF8200FF
  59.  
  60. //Dialoge
  61. #define DIALOG_TELEPORT 1
  62. #define DIALOG_REGISTER 2
  63. #define DIALOG_LOGIN 3
  64. #define DIALOG_STADTHALLE 4
  65. #define DIALOG_STATS 5
  66.  
  67. //MySQL
  68. #define db_host "127.0.0.1"
  69. #define db_user "st_dominiks"
  70. #define db_pass "336f2e59f4f87fdf9e63"
  71. #define db_db "st_dominiks"
  72.  
  73. //Forwards
  74. forward OnUserCheck(playerid);
  75. forward OnPasswordResponse(playerid);
  76.  
  77.  
  78. main()
  79. {
  80. print("\n----------------------------------");
  81. print(" Reallife Scripting by [cX]CrazyPlayer");
  82. print("----------------------------------\n");
  83. }
  84.  
  85. public OnGameModeInit()
  86. {
  87. SetGameModeText("Reallife Script");
  88.  
  89.  
  90. DisableInteriorEnterExits();
  91. EnableStuntBonusForAll(0);
  92. //Laden
  93. //Actors
  94. for(new i=0; i<sizeof(actorInfo); i++)
  95. {
  96. new string[128];
  97. format(string,sizeof(string),"%s",actorInfo[i][actor_name]);
  98. Create3DTextLabel(actorInfo[i][actor_name],COLOR_RED,actorInfo[i][a_x],actorInfo[i][a_y],actorInfo[i][a_z]+1.2,10,actorInfo[i][actor_vw],1);
  99. 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]);
  100. SetActorVirtualWorld(actorInfo[i][actor_id],actorInfo[i][actor_vw]);
  101. }
  102. //Interiors
  103. for(new i=0; i<sizeof(bInfo); i++)
  104. {
  105. CreatePickup(1239,1,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]);
  106. Create3DTextLabel("/enter",COLOR_RED,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z],20,0,1);
  107. }
  108.  
  109.  
  110. //
  111.  
  112. //MySQL
  113. dbhandle = mysql_connect(db_host,db_user,db_db,db_pass);
  114. return 1;
  115. }
  116.  
  117. public OnGameModeExit()
  118. {
  119. mysql_close(dbhandle);
  120. return 1;
  121. }
  122.  
  123. public OnPlayerRequestClass(playerid, classid)
  124. {
  125. SetSpawnInfo(playerid,135,0,0,0,0,0,0,0,0,0,0,0);
  126. SpawnPlayer(playerid);
  127. return 1;
  128. }
  129.  
  130. public OnUserCheck(playerid)
  131. {
  132. new num_rows,num_fields;
  133. cache_get_data(num_rows,num_fields,dbhandle);
  134. if(num_rows==0)
  135. {
  136. //Registrierung
  137. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Gib bitte dein gewünschtes Passwort an:","Bestätigen","Abbrechen");
  138. }
  139. else
  140. {
  141. //Login
  142. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Okay","Abbrechen");
  143. }
  144. return 1;
  145. }
  146.  
  147. public OnPlayerConnect(playerid)
  148. {
  149.  
  150.  
  151. //Login/Register
  152. new name[MAX_PLAYER_NAME],query[128];
  153. GetPlayerName(playerid,name,sizeof(name));
  154. format(query,sizeof(query),"SELECT id FROM user WHERE username='%s'",name);
  155. mysql_function_query(dbhandle,query,true,"OnUserCheck","i",playerid);
  156. return 1;
  157. }
  158.  
  159. savePlayer(playerid)
  160. {
  161. if(sInfo[playerid][eingeloggt]==0)return 1;
  162. //Speichern level,money,alevel
  163. new query[128];
  164. format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][id]);
  165. mysql_function_query(dbhandle,query,false,"","");
  166. return 1;
  167. }
  168.  
  169. resetPlayer(playerid)
  170. {
  171. for(new i=0; i<sizeof(sInfo[]); i++)
  172. {
  173. sInfo[playerid][playerInfo:i]=0;
  174. }
  175. return 1;
  176. }
  177.  
  178. public OnPlayerDisconnect(playerid, reason)
  179. {
  180. savePlayer(playerid);
  181. resetPlayer(playerid);
  182. return 1;
  183. }
  184. //Befehle
  185.  
  186. ocmd:exit(playerid,params[])
  187. {
  188. for(new i=0; i<sizeof(bInfo); i++)
  189. {
  190. if(GetPlayerVirtualWorld(playerid)!=i)continue;
  191. if(!IsPlayerInRangeOfPoint(playerid,2,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]))continue;
  192. SetPlayerPos(playerid,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]);
  193. SetPlayerInterior(playerid,0);
  194. SetPlayerVirtualWorld(playerid,0);
  195. return 1;
  196. }
  197. return 1;
  198. }
  199.  
  200. ocmd:enter(playerid,params[])
  201. {
  202. for(new i=0; i<sizeof(bInfo); i++)
  203. {
  204. if(!IsPlayerInRangeOfPoint(playerid,2,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]))continue;
  205. SetPlayerPos(playerid,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]);
  206. SetPlayerInterior(playerid,bInfo[i][b_interior]);
  207. SetPlayerVirtualWorld(playerid,i);
  208. SetPlayerShopName(playerid,bInfo[i][b_shopname]);
  209. return 1;
  210. }
  211.  
  212. return 1;
  213. }
  214. ocmd:sms(playerid,params[])
  215. {
  216. new pID,text[128];
  217. if (sscanf(params,"us[128]",pID,text))return SendClientMessage(playerid,COLOR_RED,"/sms [Spielername/ID] [Naricht]");
  218. format(text,sizeof(text),"SMS: %s Von: (%i)",text,pID);
  219. SendClientMessage(pID,COLOR_ORANG,text);
  220. return 1;
  221. }
  222.  
  223. //ADMIN BEFEHLE
  224. ocmd:infos(playerid,params[])
  225. {
  226. new string[250],pID;
  227. if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_RED,"/info [playerid]");
  228. format(string,sizeof(string),"Virtualworld %d Interior: %d",GetPlayerVirtualWorld(pID),GetPlayerInterior(pID));
  229. SendClientMessage(playerid,COLOR_RED,"------Infos------");
  230. SendClientMessage(playerid,COLOR_RED,string);
  231. SendClientMessage(playerid,COLOR_RED,"-----------------");
  232. return 1;
  233. }
  234.  
  235. ocmd:veh(playerid,params[])
  236. {
  237. if(!isAdmin(playerid,3))return SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig");
  238. new mID;
  239. if(sscanf(params,"i",mID))return SendClientMessage(playerid,COLOR_RED,"/veh [Vehicle ID]");
  240. if(mID<400||mID>611)return SendClientMessage(playerid,COLOR_RED,"Ungültige Vehicle ID");
  241. new Float:xc,Float:yc,Float:zc,Float:rc;
  242. GetPlayerPos(playerid,xc,yc,zc);
  243. GetPlayerFacingAngle(playerid,rc);
  244. CreateVehicle(mID,xc,yc,zc,rc,-1,-1,-1);
  245. return 1;
  246. }
  247.  
  248.  
  249. ocmd:delcar(playerid,params[])
  250. {
  251. if(!isAdmin(playerid,3))return SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig.");
  252. if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,COLOR_RED,"Du bist in keinem Fahrzeug.");
  253. DestroyVehicle(GetPlayerVehicleID(playerid));
  254. return 1;
  255. }
  256.  
  257. ocmd:setadmin(playerid,params[])
  258. {
  259. if(!isAdmin(playerid,4))return SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig");
  260. new pID,a_level;
  261. if(sscanf(params,"ui",pID,a_level)) return SendClientMessage(playerid,COLOR_RED,"INFO: /setadmin [playerid] [adminlevel]");
  262. sInfo [pID][alevel]=a_level;
  263. savePlayer(pID);
  264. SendClientMessage(playerid,COLOR_RED,"Dein Adminrang wurde geändert");
  265. SendClientMessage(playerid,COLOR_RED,"Du hast den Adminrang geändert");
  266. return 1;
  267. }
  268.  
  269. isAdmin(playerid,a_level)
  270. {
  271. if(sInfo[playerid][alevel]>=a_level)return 1;
  272. return 0;
  273. }
  274.  
  275. ocmd:gmx(playerid,params[])
  276. {
  277. if(!isAdmin(playerid,3))return SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig");
  278. SendRconCommand("gmx");
  279.  
  280. return 1;
  281. }
  282. ocmd:teleport(playerid,params[])
  283. {
  284. if(!isAdmin(playerid,2))return SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig");
  285. ShowPlayerDialog(playerid,DIALOG_TELEPORT,DIALOG_STYLE_LIST,"Teleports","Zivispawn\nBSN\nLSPD","Weiter","Abbrechen");
  286. return 1;
  287. }
  288.  
  289. public OnPlayerSpawn(playerid)
  290. {
  291. SendClientMessage(playerid,COLOR_RED,"Willkommen am Los Santos Airport dein Second Life kann nun beginnen.");
  292. SetPlayerPos(playerid,1641.8796,-2333.6069,13.5469);
  293. SetPlayerFacingAngle(playerid,1.0462);
  294. return 1;
  295. }
  296.  
  297. public OnPlayerDeath(playerid, killerid, reason)
  298. {
  299. return 1;
  300. }
  301.  
  302. public OnVehicleSpawn(vehicleid)
  303. {
  304. return 1;
  305. }
  306.  
  307. public OnVehicleDeath(vehicleid, killerid)
  308. {
  309. return 1;
  310. }
  311.  
  312. public OnPlayerText(playerid, text[])
  313. {
  314. return 1;
  315. }
  316.  
  317. public OnPlayerCommandText(playerid, cmdtext[])
  318. {
  319. if (!strcmp("/help",cmdtext,true))
  320. {
  321. SendClientMessage(playerid,COLOR_RED,"Allgemein");
  322. SendClientMessage(playerid,COLOR_RED,"/help, /gmx");
  323.  
  324. return 1;
  325. }
  326. return 0;
  327. }
  328.  
  329. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  330. {
  331. return 1;
  332. }
  333.  
  334. public OnPlayerExitVehicle(playerid, vehicleid)
  335. {
  336. return 1;
  337. }
  338.  
  339. public OnPlayerStateChange(playerid, newstate, oldstate)
  340. {
  341. return 1;
  342. }
  343.  
  344. public OnPlayerEnterCheckpoint(playerid)
  345. {
  346. return 1;
  347. }
  348.  
  349. public OnPlayerLeaveCheckpoint(playerid)
  350. {
  351. return 1;
  352. }
  353.  
  354. public OnPlayerEnterRaceCheckpoint(playerid)
  355. {
  356. return 1;
  357. }
  358.  
  359. public OnPlayerLeaveRaceCheckpoint(playerid)
  360. {
  361. return 1;
  362. }
  363.  
  364. public OnRconCommand(cmd[])
  365. {
  366. return 1;
  367. }
  368.  
  369. public OnPlayerRequestSpawn(playerid)
  370. {
  371. return 1;
  372. }
  373.  
  374. public OnObjectMoved(objectid)
  375. {
  376. return 1;
  377. }
  378.  
  379. public OnPlayerObjectMoved(playerid, objectid)
  380. {
  381. return 1;
  382. }
  383.  
  384. public OnPlayerPickUpPickup(playerid, pickupid)
  385. {
  386. return 1;
  387. }
  388.  
  389. public OnVehicleMod(playerid, vehicleid, componentid)
  390. {
  391. return 1;
  392. }
  393.  
  394. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  395. {
  396. return 1;
  397. }
  398.  
  399. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  400. {
  401. return 1;
  402. }
  403.  
  404. public OnPlayerSelectedMenuRow(playerid, row)
  405. {
  406. return 1;
  407. }
  408.  
  409. public OnPlayerExitedMenu(playerid)
  410. {
  411. return 1;
  412. }
  413.  
  414. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  415. {
  416. return 1;
  417. }
  418.  
  419. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  420. {
  421. if(newkeys & KEY_NO)
  422. {
  423. //Enter/Exit-taste
  424. ocmd_enter(playerid,"");
  425. ocmd_exit(playerid,"");
  426. return 1;
  427. }
  428. return 1;
  429. }
  430. public OnRconLoginAttempt(ip[], password[], success)
  431. {
  432. return 1;
  433. }
  434.  
  435. public OnPlayerUpdate(playerid)
  436. {
  437. return 1;
  438. }
  439.  
  440. public OnPlayerStreamIn(playerid, forplayerid)
  441. {
  442. return 1;
  443. }
  444.  
  445. public OnPlayerStreamOut(playerid, forplayerid)
  446. {
  447. return 1;
  448. }
  449.  
  450. public OnVehicleStreamIn(vehicleid, forplayerid)
  451. {
  452. return 1;
  453. }
  454.  
  455. public OnVehicleStreamOut(vehicleid, forplayerid)
  456. {
  457. return 1;
  458. }
  459.  
  460. SetPlayerMoney(playerid,money)
  461. {
  462. ResetPlayerMoney(playerid);
  463. GivePlayerMoney(playerid,money);
  464. return 1;
  465. }
  466.  
  467. public OnPasswordResponse(playerid)
  468. {
  469. new num_fields,num_rows;
  470. cache_get_data(num_rows,num_fields,dbhandle);
  471. if(num_rows==1)
  472. {
  473. //Passwort richtig
  474. sInfo[playerid][eingeloggt] = 1;
  475. sInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle);
  476. SetPlayerScore(playerid,sInfo[playerid][level]);
  477. sInfo[playerid][id] = cache_get_field_content_int(0,"id",dbhandle);
  478. SetPlayerMoney(playerid,cache_get_field_content_int(0,"money",dbhandle));
  479. sInfo[playerid][alevel] = cache_get_field_content_int(0,"alevel",dbhandle);
  480. }
  481. else
  482. {
  483. //Passwort falsch
  484. SendClientMessage(playerid,COLOR_RED,"Das eingegebene Passwort ist falsch.");
  485. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Okay","Abbrechen");
  486. }
  487. return 1;
  488. }
  489.  
  490.  
  491. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  492. {
  493. if(dialogid== DIALOG_LOGIN)
  494. {
  495. if(response)
  496. {
  497. new name[MAX_PLAYER_NAME],query[128],passwort[35];
  498. GetPlayerName(playerid,name,sizeof(name));
  499. if(strlen(inputtext)>0)
  500. {
  501. mysql_escape_string(inputtext,passwort,dbhandle);
  502. format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND password=MD5('%s')",name,passwort);
  503. mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
  504. }
  505. else
  506. {
  507. //Keine Eingabe
  508. SendClientMessage(playerid,COLOR_RED,"Gib bitte dein Passwort an.");
  509. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Okay","Abbrechen");
  510. }
  511. }
  512. else
  513. {
  514. Kick(playerid);
  515. }
  516. return 1;
  517. }
  518. if(dialogid==DIALOG_REGISTER)
  519. {
  520. if(response)
  521. {
  522. new name[MAX_PLAYER_NAME],query[128],passwort[35];
  523. GetPlayerName(playerid,name,sizeof(name));
  524. if(strlen(inputtext)>3)
  525. {
  526. //Registrierungsfunktion
  527. mysql_escape_string(inputtext,passwort,dbhandle);
  528. format(query,sizeof(query),"INSERT INTO user (username,password) VALUES ('%s',MD5('%s')) ",name,passwort);
  529. mysql_function_query(dbhandle,query,false,"","");
  530. }
  531. else
  532. {
  533. //Kleiner als 4 Zeichen
  534. SendClientMessage(playerid,COLOR_RED,"Dein Passwort muss mindestens 4 Zeichen lang sein.");
  535. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Regestrierung","Gib bitte dein gewünschtes Passwort an:","Bestätigen","Abbrechen");
  536. }
  537. }
  538. else
  539. {
  540. Kick(playerid);
  541. }
  542. return 1;
  543. }
  544.  
  545. if(dialogid==DIALOG_TELEPORT)
  546. {
  547. if(response)
  548. {
  549. if(listitem==0)
  550. {
  551. //Spawn
  552. SetPlayerPos(playerid,1641.8796,-2333.6069,13.5469);
  553. }
  554. if(listitem==1)
  555. {
  556. //BSN
  557. SetPlayerPos(playerid,1221.4990,-918.8586,42.6397);
  558. }
  559. if(listitem==2)
  560. {
  561. //LSPD
  562. SetPlayerPos(playerid,1519.7507,-1653.1948,13.2662);
  563. }
  564. }
  565. else
  566. {
  567. SendClientMessage(playerid,COLOR_RED,"Vorgang abgebrochen.");
  568. }
  569. return 1;
  570. }
  571. return 1;
  572. }
  573.  
  574. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  575. {
  576. return 1;
  577. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement