Guest User

Untitled

a guest
Jul 8th, 2012
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.99 KB | None | 0 0
  1. #include <a_samp>
  2. #include <dini>
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15. #define COLOR_RED 0xFF0000
  16. #define COLOR_GREEN 0xFF0000
  17. #define COLOR_TOMATO 0xFF0000
  18. #define DIALOG_LOGIN 3
  19. #define DIALOG_REG 4
  20. #define VERLUST 10000
  21. #define BENZINPREIS 3
  22.  
  23. forward BenzinVerlust(); // Wir forwarden unseren Timer für den Benzinverlust
  24. forward Auftanken(playerid); // Wir forwarden unseren Timer für das Tanken
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32. enum spieler_daten
  33. {
  34. wanted,
  35. skin,
  36. Float:lastx,Float:lasty,Float:lastz,
  37. eingeloggt,
  38. }
  39.  
  40. new Spieler[MAX_PLAYERS][spieler_daten];
  41. new engine,lights,alarm,doors,bonnet,boot,objective; // Dies sind die Variablen die für das einschalten des Motors benötigt werden.
  42. new bool:Motor[MAX_VEHICLES]=false; // Dies ist die Boolean für den Motor. [MAX_VEHICLES] ist angehängt, da sie für jedes Fahrzeug unterschiedlich sein kann.
  43. new Tank[MAX_VEHICLES], bool:TanktGerade[MAX_VEHICLES]=false, tanktimer[MAX_PLAYERS];
  44.  
  45.  
  46.  
  47. main()
  48. {
  49. print("\n----------------------------------");
  50. print(" Reallife GameMode by Niklas Bussmann started at 08.07.2012");
  51. print("----------------------------------\n");
  52. }
  53.  
  54.  
  55.  
  56. public OnGameModeInit()
  57. {
  58. ManualVehicleEngineAndLights(); // Dies muss in OnGameModeInit angegeben werden, damit das ganze System überhaupt funktioniert.
  59. SetTimer("BenzinVerlust", VERLUST, true);
  60. for (new i=0; i< MAX_VEHICLES; i++)
  61. {
  62. GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
  63. SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  64. Motor[i] = false;
  65. Tank[i] = 100;
  66. }
  67. AddStaticVehicle(445,2407.8840,1958.3783, 1343.1572, 15.3746,6,3);
  68. }
  69. public OnGameModeExit()
  70. {
  71. return 1;
  72. }
  73.  
  74. public OnPlayerRequestClass(playerid, classid)
  75. {
  76. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  77. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  78. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  79. return 1;
  80. }
  81.  
  82. public OnPlayerConnect(playerid)
  83. {
  84. new pname[MAX_PLAYERS],accFormat[128];
  85. GetPlayerName(playerid,pname,sizeof pname);
  86. format(accFormat,sizeof accFormat,"/Spieler/%s.dini",pname);
  87. if(fexist(accFormat))
  88. {
  89. ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Deine Daten wurden wieder erkannt. Bitte Logge dich ein!","Abbrechen","Weiter");
  90. }
  91. else
  92. {
  93. ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Um auf diesem Server spielen zu können musst du dich Registrieren!","Abbrechen","Weiter");
  94. }
  95. return 1;
  96. }
  97. public OnPlayerDisconnect(playerid, reason)
  98. {
  99. new pname[MAX_PLAYERS],accFormat[128];
  100. GetPlayerName(playerid,pname,sizeof pname);
  101. format(accFormat,sizeof accFormat,"/Spieler/%s.dini",pname);
  102. if(fexist(accFormat) && Spieler[playerid][eingeloggt])
  103. {
  104. dini_IntSet(accFormat,"wanted",Spieler[playerid][wanted]);
  105. dini_IntSet(accFormat,"skin",Spieler[playerid][skin]);
  106. dini_FloatSet(accFormat,"lastx",Spieler[playerid][lastx]);
  107. dini_FloatSet(accFormat,"lasty",Spieler[playerid][lasty]);
  108. dini_FloatSet(accFormat,"lastz",Spieler[playerid][lastz]);
  109. dini_IntSet(accFormat,"Geld",GetPlayerMoney(playerid));
  110. dini_IntSet(accFormat,"Score",GetPlayerScore(playerid));
  111. }
  112. Spieler[playerid][eingeloggt] = 0;
  113. Spieler[playerid][wanted] = 0;
  114. Spieler[playerid][skin] = 0;
  115. Spieler[playerid][lastx] = (0.0);
  116. Spieler[playerid][lasty] = (0.0);
  117. Spieler[playerid][lastz] = (0.0);
  118. return 1;
  119. }
  120. public OnPlayerSpawn(playerid)
  121. {
  122. new pname[MAX_PLAYERS],accFormat[128];
  123. GetPlayerName(playerid,pname,sizeof pname);
  124. format(accFormat,sizeof accFormat,"/Spieler/%s.dini",pname);
  125. if(dini_Isset(accFormat,"lastx"))
  126. {
  127. SetPlayerPos(playerid,Spieler[playerid][lastx],Spieler[playerid][lasty],Spieler[playerid][lastz]);
  128. }
  129. return 1;
  130. }
  131. public OnPlayerDeath(playerid, killerid, reason)
  132. {
  133. return 1;
  134. }
  135.  
  136. public OnVehicleSpawn(vehicleid)
  137. {
  138. GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
  139. SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  140. Motor[vehicleid] = false;
  141. return 1;
  142. }
  143. public OnVehicleDeath(vehicleid, killerid)
  144. {
  145. return 1;
  146. }
  147.  
  148. public OnPlayerText(playerid, text[])
  149. {
  150. return 1;
  151. }
  152.  
  153. public OnPlayerCommandText(playerid, cmdtext[])
  154. {
  155. if (strcmp("/geld", cmdtext, true, 10) == 0)
  156. {
  157. SetPlayerScore(playerid, 5);
  158. GivePlayerMoney(playerid, 100000);
  159. return 1;
  160. }
  161.  
  162. if(strcmp(cmdtext, "/m", true) == 0)
  163. {
  164. new car = GetPlayerVehicleID(playerid);
  165. if(GetPlayerVehicleSeat(playerid) == 0)
  166. {
  167. if(GetVehicleModel(car) == 509 || GetVehicleModel(car) == 481 || GetVehicleModel(car) == 510)
  168. {
  169. SendClientMessage(playerid, COLOR_RED, "Du sitzt auf einem Fahrrad. Das hat keinen Motor!");
  170. }
  171. else if (Motor[car] == false)
  172. {
  173. GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
  174. SetVehicleParamsEx(car,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
  175. Motor[car] = true;
  176. }
  177. else
  178. {
  179. GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
  180. SetVehicleParamsEx(car,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  181. Motor[car] = false;
  182. }
  183. }
  184. else if (Tank[car] < 1)
  185. {
  186. SendClientMessage(playerid, COLOR_RED, "Der Tank ist leer. Du musst erst /tanken.");
  187. }
  188. else if (Motor[car] == false )
  189. {
  190. GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
  191. SetVehicleParamsEx(car,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
  192. Motor[car] = true;
  193. }
  194. else
  195. {
  196. GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
  197. SetVehicleParamsEx(car,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  198. Motor[car] = false;
  199. }
  200. }
  201.  
  202. if(strcmp(cmdtext, "/tanken", true) == 0)
  203. {
  204. if (GetPlayerVehicleSeat(playerid) != 0) return SendClientMessage(playerid,COLOR_RED,"Du bist in keinem Fahrzeug (oder kein Fahrer).");
  205. new car = GetPlayerVehicleID(playerid);
  206. if (TanktGerade[car]) return SendClientMessage(playerid,COLOR_RED,"Du tankst schon!");
  207. if (Motor[car] == true) return SendClientMessage(playerid, COLOR_RED,"Du musst vor dem Tanken den Motor ausschalten.");
  208. new ZuTanken = 100-Tank[car];
  209. new preis = ZuTanken * BENZINPREIS;
  210.  
  211. if (GetPlayerMoney(playerid)-preis < 0) return SendClientMessage(playerid, COLOR_TOMATO, "Du hast nicht genug Geld!");
  212.  
  213. GivePlayerMoney(playerid, -preis);
  214. SendClientMessage(playerid, COLOR_GREEN, "Tanken wird gestartet.");
  215. SetCameraBehindPlayer(playerid);
  216. TogglePlayerControllable(playerid,0);
  217. TanktGerade[car] = true;
  218. tanktimer[playerid] = SetTimerEx("Auftanken",500,true,"i",playerid);
  219.  
  220. return 1;
  221. }
  222.  
  223. return 0;
  224. }
  225.  
  226. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  227. {
  228. if(GetVehicleModel(vehicleid) == 509 || GetVehicleModel(vehicleid) == 481 || GetVehicleModel(vehicleid) == 510) // Überprüft ob das Fahrzeug ein Fahrrad ist (wie im Command oben)
  229. {
  230. GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective); // Speichere den derzeitigen Status
  231. SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective); // Behalte alles bei, aber starte den Motor.
  232. }
  233. return 1;
  234. }
  235.  
  236. public OnPlayerExitVehicle(playerid, vehicleid)
  237. {
  238. return 1;
  239. }
  240.  
  241. public OnPlayerStateChange(playerid, newstate, oldstate)
  242. {
  243. return 1;
  244. }
  245.  
  246. public OnPlayerEnterCheckpoint(playerid)
  247. {
  248. return 1;
  249. }
  250.  
  251. public OnPlayerLeaveCheckpoint(playerid)
  252. {
  253. return 1;
  254. }
  255.  
  256. public OnPlayerEnterRaceCheckpoint(playerid)
  257. {
  258. return 1;
  259. }
  260.  
  261. public OnPlayerLeaveRaceCheckpoint(playerid)
  262. {
  263. return 1;
  264. }
  265.  
  266. public OnRconCommand(cmd[])
  267. {
  268. return 1;
  269. }
  270.  
  271. public OnPlayerRequestSpawn(playerid)
  272. {
  273. return 1;
  274. }
  275.  
  276. public OnObjectMoved(objectid)
  277. {
  278. return 1;
  279. }
  280.  
  281. public OnPlayerObjectMoved(playerid, objectid)
  282. {
  283. return 1;
  284. }
  285.  
  286. public OnPlayerPickUpPickup(playerid, pickupid)
  287. {
  288. return 1;
  289. }
  290.  
  291. public OnVehicleMod(playerid, vehicleid, componentid)
  292. {
  293. return 1;
  294. }
  295.  
  296. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  297. {
  298. return 1;
  299. }
  300.  
  301. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  302. {
  303. return 1;
  304. }
  305.  
  306. public OnPlayerSelectedMenuRow(playerid, row)
  307. {
  308. return 1;
  309. }
  310.  
  311. public OnPlayerExitedMenu(playerid)
  312. {
  313. return 1;
  314. }
  315.  
  316. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  317. {
  318. return 1;
  319. }
  320.  
  321. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  322. {
  323. return 1;
  324. }
  325.  
  326. public OnRconLoginAttempt(ip[], password[], success)
  327. {
  328. return 1;
  329. }
  330.  
  331. public OnPlayerUpdate(playerid)
  332. {
  333. return 1;
  334. }
  335.  
  336. public OnPlayerStreamIn(playerid, forplayerid)
  337. {
  338. return 1;
  339. }
  340.  
  341. public OnPlayerStreamOut(playerid, forplayerid)
  342. {
  343. return 1;
  344. }
  345.  
  346. public OnVehicleStreamIn(vehicleid, forplayerid)
  347. {
  348. return 1;
  349. }
  350.  
  351. public OnVehicleStreamOut(vehicleid, forplayerid)
  352. {
  353. return 1;
  354. }
  355.  
  356. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  357. {
  358. new pname[MAX_PLAYERS],accFormat[128];
  359. GetPlayerName(playerid,pname,sizeof pname);
  360. format(accFormat,sizeof accFormat,"/Spieler/%s.dini",pname);
  361. if(response)
  362. {
  363. switch(dialogid) // dialogid auswählen
  364. {
  365. case DIALOG_LOGIN: // ID Login
  366. {
  367. if(!strlen(inputtext))
  368. {
  369. ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Deine Daten wurden wieder erkannt. Bitte Logge dich ein!","Abbrechen","Weiter");
  370. return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!");
  371. }
  372. if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0) // Passwort Direkt aus der Datei Laden
  373. {
  374. Spieler[playerid][wanted] = dini_Int(accFormat,"wanted");
  375. Spieler[playerid][skin] = dini_Int(accFormat,"skin");
  376. Spieler[playerid][lastx] = dini_Float(accFormat,"lastx");
  377. Spieler[playerid][lasty] = dini_Float(accFormat,"lasty");
  378. Spieler[playerid][lastz] = dini_Float(accFormat,"lastz");
  379. GivePlayerMoney(playerid,dini_Int(accFormat,"Geld"));
  380. SetPlayerScore(playerid,dini_Int(accFormat,"Score"));
  381. Spieler[playerid][eingeloggt] = 1; // Spieler ist nun erfolgreich eingeloggt
  382. SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt.");
  383. }
  384. else
  385. {
  386. ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Deine Daten wurden wieder erkannt. Bitte Logge dich ein!","Abbrechen","Weiter");
  387. SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
  388. }
  389. }
  390. case DIALOG_REG: // ID Registrieren
  391. {
  392. if(!strlen(inputtext)) // Text darf nicht = Null sein Null im Sinne von nichts
  393. {
  394. ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Um auf diesem Server spielen zu können musst du dich Registrieren!","Abbrechen","Weiter");
  395. return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist zu kurz!");
  396. }
  397. dini_Create(accFormat);
  398. dini_Set(accFormat,"Passwort",inputtext);
  399. Spieler[playerid][eingeloggt] = 1;
  400. SendClientMessage(playerid,0xFFFFFFFF,"Account wurde angelegt und du wurdest eingeloggt.");
  401. }
  402. }
  403. }
  404. else
  405. {
  406. switch(dialogid)
  407. {
  408. case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Deine Daten wurden wieder erkannt. Bitte Logge dich ein!","Abbrechen","Weiter");
  409. case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Um auf diesem Server spielen zu können musst du dich Registrieren!","Abbrechen","Weiter");
  410. }
  411. }
  412. return 1;
  413. }
  414. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  415. {
  416. return 1;
  417. }
  418.  
  419. public BenzinVerlust()
  420. {
  421. for(new i=0; i<MAX_VEHICLES; i++)
  422. {
  423. if (Motor[i] == true)
  424. {
  425. Tank[i] = Tank[i]-1;
  426. if (Tank[i]<1)
  427. {
  428. Tank[i] = 0;
  429. GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
  430. SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  431. Motor[i] = false;
  432. }
  433. }
  434. }
  435. return 1;
  436. }
  437.  
  438. public Auftanken(playerid)
  439. {
  440. new car = GetPlayerVehicleID(playerid);
  441. Tank[car] = Tank[car] +1;
  442. if(Tank[car] >= 100)
  443. {
  444. TanktGerade[car] = false;
  445. Tank[car] = 100;
  446. SendClientMessage(playerid, COLOR_GREEN, "Dein Fahrzeug wurde vollgetankt.");
  447. TogglePlayerControllable(playerid,1);
  448. KillTimer(tanktimer[playerid]);
  449. }
  450. return 1;
  451. }
Advertisement
Add Comment
Please, Sign In to add comment