Advertisement
Guest User

Dynamic Roleplay Selfmade

a guest
Aug 8th, 2013
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.84 KB | None | 0 0
  1. /*
  2. ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  3. ||Dynamic Roleplay Selfmade ||
  4. ||Das Dynamic Roleplay Selfmade Script basiert auf Dini. ||
  5. ||Gescriptet von : ||
  6. ||[DR]Gummibaer21 ||
  7. ||[DR]Mr.Bubbles ||
  8. ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  9. */
  10.  
  11. //Includes
  12. #include <a_samp>
  13. #include <Dini>
  14.  
  15. //Farben
  16. #define GELB 0xFFFF00FF
  17. #define ROT 0xFF2800FF
  18. #define BLAU 0x000FFFFF
  19. #define HLILA 0xA000FF3E
  20. #define HBLAU 0x00F5FFFF
  21.  
  22. //Stats system
  23. #define STATS 3
  24.  
  25. //Login Register
  26. #define REGISTER 1
  27. #define LOGIN 2
  28.  
  29. //Fraktion defines
  30. #define sFraktion "LSPD"
  31. #define sFraktion2 "FBI"
  32. #define sFraktion3 "Feuerwehr"
  33.  
  34. //Fraktion news
  35. new LSPDWagen[23];
  36.  
  37. //Job defines
  38. #define sJob "Busfahrer"
  39. #define sJob2 "Muelmann"
  40. #define sJob3 "Pilot"
  41.  
  42. //dcmd
  43. #define dcmd(%1,%2,%3) if(!strcmp((%3)[1],#%1, true, (%2)) && ((((%3) [ (%2) + 1]
  44.  
  45. //motor system
  46. new engine,lights,alarm,doors,bonnet,boot,objective;
  47. new bool:Motor[MAX_VEHICLES]=false;
  48.  
  49. //Enums
  50.  
  51. enum SpielerDaten
  52. {
  53. Adminlevel,
  54. Level,
  55. Fraktion,
  56. Job,
  57. Team,
  58. sLogin,
  59. Geld
  60. };
  61.  
  62. new sSpieler[MAX_PLAYERS][SpielerDaten];
  63.  
  64.  
  65. main()
  66. {
  67. print("\n----------------------------------");
  68. print(" Dynamic Roleplay Selfmade wurde gestartet");
  69. print("----------------------------------\n");
  70. }
  71.  
  72. public OnGameModeInit()
  73. {
  74. SetGameModeText("German Reallife");
  75. //Stadthalle Mappings
  76.  
  77. //LSPDCars
  78. LSPDWagen[1] = AddStaticVehicle(596,1602.7900,-1683.8688,5.6897,87.6164,2,1); // pdcar1
  79. LSPDWagen[2] = AddStaticVehicle(596,1602.7834,-1687.9835,5.6904,89.2419,2,1); // pdcar2
  80. LSPDWagen[3] = AddStaticVehicle(596,1602.8632,-1691.8994,5.6902,87.0716,2,1); // pdcar3
  81. LSPDWagen[4] = AddStaticVehicle(596,1602.7452,-1696.0103,5.6920,91.6564,2,1); // pdcar4
  82. LSPDWagen[5] = AddStaticVehicle(596,1602.8774,-1700.3597,5.6901,90.0439,2,1); // pdcar5
  83. LSPDWagen[6] = AddStaticVehicle(596,1602.7909,-1704.1433,5.6908,89.3426,2,1); // pdcar6
  84. LSPDWagen[7] = AddStaticVehicle(596,1595.3419,-1711.8015,5.6894,359.6440,2,1); // pdcar7
  85. LSPDWagen[8] = AddStaticVehicle(596,1591.2985,-1711.8956,5.6913,0.0939,2,1); // pdcar8
  86. LSPDWagen[9] = AddStaticVehicle(596,1587.7522,-1711.8265,5.6915,0.8699,2,1); // pdcar9
  87. LSPDWagen[10] = AddStaticVehicle(596,1583.7185,-1711.8759,5.6895,0.5345,2,1); // pdcar10
  88. LSPDWagen[11] = AddStaticVehicle(596,1578.5400,-1711.7177,5.6914,3.9767,2,1); // pdcar11
  89. LSPDWagen[12] = AddStaticVehicle(596,1574.6619,-1712.0906,5.7372,358.2341,2,1); // pdcar12
  90. LSPDWagen[13] = AddStaticVehicle(596,1570.4850,-1711.8315,5.6890,3.0005,2,1); // pdcar13
  91. LSPDWagen[14] = AddStaticVehicle(560,1547.0475,-1684.5133,5.6052,90.7777,2,1); // pdcar14
  92. LSPDWagen[15] = AddStaticVehicle(560,1546.9030,-1680.5571,5.5929,88.9729,2,1); // pdcar15
  93. LSPDWagen[16] = AddStaticVehicle(560,1546.5892,-1676.7172,5.5949,88.8980,2,1); // pdcar16
  94. LSPDWagen[17] = AddStaticVehicle(560,1546.8143,-1672.4680,5.5962,89.2124,2,1); // pdcar17
  95. LSPDWagen[18] = AddStaticVehicle(560,1546.9414,-1668.5319,5.5959,89.5211,2,1); // pdcar18
  96. LSPDWagen[19] = AddStaticVehicle(541,1547.2094,-1664.0055,5.5235,89.7903,2,1); // pdcar19
  97. LSPDWagen[20] = AddStaticVehicle(541,1547.0894,-1658.7531,5.5153,90.8323,2,1); // pdcar20
  98. LSPDWagen[21] = AddStaticVehicle(541,1547.2633,-1654.8112,5.5431,90.1417,2,1); // pdcar21
  99. LSPDWagen[22] = AddStaticVehicle(541,1547.2144,-1651.1122,5.5251,88.3879,2,1); // pdcar22
  100.  
  101.  
  102. //Motor system
  103. ManualVehicleEngineAndLights(); // Dies muss in OnGameModeInit angegeben werden, damit das ganze System überhaupt funktioniert.
  104.  
  105. for (new i=0; i< MAX_VEHICLES; i++)
  106. {
  107. GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
  108. SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  109. Motor[i] = false;
  110. }
  111. }
  112.  
  113. public OnGameModeExit()
  114. {
  115. return 1;
  116. }
  117.  
  118. public OnPlayerConnect(playerid)
  119. {
  120. //Zu entfernte objecte
  121. RemoveBuildingForPlayer(playerid, 4024, 1479.8672, -1790.3984, 56.0234, 0.25);
  122. RemoveBuildingForPlayer(playerid, 4044, 1481.1875, -1785.0703, 22.3828, 0.25);
  123. RemoveBuildingForPlayer(playerid, 1527, 1448.2344, -1755.8984, 14.5234, 0.25);
  124. RemoveBuildingForPlayer(playerid, 620, 1447.9063, -1748.2266, 12.9063, 0.25);
  125. RemoveBuildingForPlayer(playerid, 4002, 1479.8672, -1790.3984, 56.0234, 0.25);
  126. RemoveBuildingForPlayer(playerid, 3980, 1481.1875, -1785.0703, 22.3828, 0.25);
  127. RemoveBuildingForPlayer(playerid, 4003, 1481.0781, -1747.0313, 33.5234, 0.25);
  128. RemoveBuildingForPlayer(playerid, 620, 1516.0000, -1748.6016, 13.0078, 0.25);
  129.  
  130. //Spawnbutton system löschen
  131. CallRemoteFunction("OnPlayerRequestSpawn","i",playerid);
  132.  
  133. //Register und Login system
  134. new Spieler[64];
  135. new Sname[MAX_PLAYER_NAME];
  136. GetPlayerName(playerid,Sname,sizeof(Sname));
  137. format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
  138. if(dini_Exists(Spieler))
  139. {
  140. SendClientMessage(playerid,HLILA,"________-> Willkommen auf Dynamic Roleplay Selfmade <-________");
  141. SendClientMessage(playerid,HBLAU,"Dein Account wurde gefunden, bitte Log dich nun ein!");
  142. ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Wilkommen zurück","Wilkommen zurück auf DR.\nGebe dein Passwort ein das du beim Regestieren eingegeben hast.","Login","Abbrechen");
  143. return 1;
  144. }
  145. else
  146. {
  147. SendClientMessage(playerid, HLILA,"________-> Willkommen auf Dynamic Roleplay Selfmade <-________");
  148. SendClientMessage(playerid, HBLAU,"Dein Account wurde nicht gefunden, bitte Registriere dich!");
  149. ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Wilkommen auf DR","Wilkommen auf DR dem neuen Selfmade server.\nUm aber erst richtig los zu legen muss du dich regestieren.\nBitte gebe dein gewünschtes passwort ein:","Regestieren","Abbrechen");
  150. return 1;
  151. }
  152. }
  153.  
  154. public OnPlayerDisconnect(playerid, reason)
  155. {
  156. sSpieler[playerid][sLogin] = 0;
  157. SpielerSpeichern(playerid);
  158. return 1;
  159. }
  160.  
  161. public OnPlayerSpawn(playerid)
  162. {
  163. if(IstSpielerInFraktion(playerid, 0))//Zivi spawn
  164. {
  165. SetPlayerPos(playerid,1755.1953,-1894.3553,13.5567);
  166. SetPlayerColor(playerid,HLILA);
  167. ResetPlayerWeapons(playerid);
  168. return 1;
  169. }
  170. if(IstSpielerInFraktion(playerid, 1))//LSPD spawn
  171. {
  172. SetPlayerPos(playerid,1755.1953,-1894.3553,13.5567);
  173. SetPlayerColor(playerid,HBLAU);
  174. SetPlayerSkin(playerid,266);
  175. SetPlayerHealth(playerid,200);
  176. SetPlayerArmour(playerid,100);
  177. GivePlayerWeapon(playerid,3,1);
  178. GivePlayerWeapon(playerid,24,999);
  179. GivePlayerWeapon(playerid,24,999);
  180. GivePlayerWeapon(playerid,24,999);
  181. GivePlayerWeapon(playerid,29,999);
  182. GivePlayerWeapon(playerid,29,999);
  183. GivePlayerWeapon(playerid,29,999);
  184. GivePlayerWeapon(playerid,31,999);
  185. GivePlayerWeapon(playerid,31,999);
  186. GivePlayerWeapon(playerid,31,999);
  187. return 1;
  188. }
  189. if(IstSpielerInFraktion(playerid, 2))//FBI spawn
  190. {
  191. SetPlayerPos(playerid,1755.1953,-1894.3553,13.5567);
  192. SetPlayerColor(playerid,BLAU);
  193. SetPlayerSkin(playerid,286);
  194. SetPlayerHealth(playerid,200);
  195. SetPlayerArmour(playerid,100);
  196. GivePlayerWeapon(playerid,3,1);
  197. GivePlayerWeapon(playerid,24,999);
  198. GivePlayerWeapon(playerid,24,999);
  199. GivePlayerWeapon(playerid,24,999);
  200. GivePlayerWeapon(playerid,29,999);
  201. GivePlayerWeapon(playerid,29,999);
  202. GivePlayerWeapon(playerid,29,999);
  203. GivePlayerWeapon(playerid,31,999);
  204. GivePlayerWeapon(playerid,31,999);
  205. GivePlayerWeapon(playerid,31,999);
  206. return 1;
  207. }
  208. if(IstSpielerInFraktion(playerid, 3))//Feuerwehr spawn
  209. {
  210. SetPlayerPos(playerid,1755.1953,-1894.3553,13.5567);
  211. SetPlayerColor(playerid,ROT);
  212. SetPlayerSkin(playerid,278);
  213. SetPlayerHealth(playerid,200);
  214. SetPlayerArmour(playerid,100);
  215. GivePlayerWeapon(playerid,9,1);
  216. GivePlayerWeapon(playerid,42,999);
  217. GivePlayerWeapon(playerid,42,999);
  218. GivePlayerWeapon(playerid,42,999);
  219. GivePlayerWeapon(playerid,42,999);
  220. GivePlayerWeapon(playerid,42,999);
  221. GivePlayerWeapon(playerid,42,999);
  222. return 1;
  223. }
  224. return 1;
  225. }
  226.  
  227. public OnPlayerDeath(playerid, killerid, reason)
  228. {
  229. return 1;
  230. }
  231.  
  232. public OnVehicleSpawn(vehicleid)
  233. {
  234. GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
  235. SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  236. Motor[vehicleid] = false;
  237. return 1;
  238. }
  239.  
  240. public OnVehicleDeath(vehicleid, killerid)
  241. {
  242. return 1;
  243. }
  244.  
  245. public OnPlayerText(playerid, text[])
  246. {
  247. return 1;
  248. }
  249.  
  250. public OnPlayerCommandText(playerid, cmdtext[])
  251. {
  252. if (strcmp("/Stats",cmdtext, true, 10) == 0)
  253. {
  254. new string[128];
  255. new ftext[20];
  256. new level = sSpieler[playerid][Fraktion];
  257. if(level == 0) { ftext= "Zivilist"; }
  258. if(level == 1) { ftext= "Polizei"; }
  259. if(level == 2) { ftext= "FBI"; }
  260. format(string,sizeof(string),"Dein Level %d\n Dein Geld %d\n Deine Fraktion %s\n Der rest kommt bald",sSpieler[playerid][Level],GetPlayerMoney(playerid),ftext);
  261. ShowPlayerDialog(playerid,STATS,DIALOG_STYLE_MSGBOX,"Statistiken",string,"Beenden","Beenden");
  262. return 1;
  263. }
  264. if (strcmp("/Mieten", cmdtext, true, 10) == 0) //Noobspawn rollermietung
  265. {
  266. if(IsPlayerInRangeOfPoint(playerid, 7.0,1772.3368,-1891.7960,13.5531))
  267. {
  268. AddStaticVehicle(462,1776.9113,-1892.1366,12.9874,261.2408,14,14);
  269. return 1;
  270. }
  271. else SendClientMessage(playerid,ROT,"Du bist nicht am Mietpoint");
  272. return 1;
  273. }
  274. if (strcmp("/Neustarten", cmdtext, true, 10) == 0) //Neustart system
  275. {
  276. if(IstSpielerAdmin(playerid, 6))
  277. {
  278. SendRconCommand("gmx");
  279. return 1;
  280. }
  281. else
  282. {
  283. SendClientMessage(playerid,ROT,"Du hast nicht den Mindestrang dafür");
  284. return 1;
  285. }
  286. }
  287. if(strcmp(cmdtext, "/Motor", true) == 0) //motor system
  288. {
  289. if(GetPlayerVehicleSeat(playerid) == 0) // Überprüft zuerst ob der Spieler der Fahrer eines Fahrzeugs ist.
  290. {
  291. new car = GetPlayerVehicleID(playerid); // Erstellt die Variable car, die die FahrzeugID des Spielers trägt.
  292. if(GetVehicleModel(car) == 509 || GetVehicleModel(car) == 481 || GetVehicleModel(car) == 510) // Wenn das Fahrzeug ein Fahrrad ist,
  293. { // dann sende dem Spieler die Nachricht, sodass er es auch weiß.
  294. SendClientMessage(playerid, ROT, "Du sitzt auf einem Fahrrad. Das hat keinen Motor!");
  295. }
  296.  
  297. else if (Motor[car] == false) // Ansonsten, wenn der Motor des Fahrzeugs ausgeschaltet ist (haben wir ja oben mit dem bool Motor definiert)
  298. {
  299. GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective); // Selbe Prozedur wie oben
  300. SetVehicleParamsEx(car,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective); // Selbe Prozedur wie oben, nur dass der Motor nun eingeschaltet wird.
  301. Motor[car] = true; // Setzt den Bool Motor auf true
  302. SendClientMessage(playerid,GELB,"Du hast den motor angeschaltet");
  303. }
  304.  
  305. else // Ansonsten, wenn der Motor an ist
  306. {
  307. GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
  308. SetVehicleParamsEx(car,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  309. Motor[car] = false; // Setzt den Bool wieder auf falsch zurück.
  310. SendClientMessage(playerid,ROT,"Du hast den motor ausgeschaltet");
  311. }
  312. }
  313. return 1;
  314. }
  315. return 1;
  316. }
  317.  
  318. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  319. {
  320. return 1;
  321. }
  322.  
  323. public OnPlayerExitVehicle(playerid, vehicleid)
  324. {
  325. return 1;
  326. }
  327.  
  328. public OnPlayerStateChange(playerid, newstate, oldstate)
  329. {
  330. if(newstate == PLAYER_STATE_DRIVER)
  331. {
  332. for(new i = 0; i<sizeof(LSPDWagen); i++)
  333. {
  334. if(GetPlayerVehicleID(playerid) == LSPDWagen[i])
  335. {
  336. if(IstSpielerInFraktion(playerid, 1))
  337. {
  338. return 1;
  339. }
  340. else
  341. {
  342. RemovePlayerFromVehicle(playerid);
  343. SendClientMessage(playerid,ROT,"Du bist kein Polizist");
  344. return 1;
  345. }
  346. }
  347. }
  348. return 1;
  349. }
  350. return 1;
  351. }
  352.  
  353. public OnPlayerEnterCheckpoint(playerid)
  354. {
  355. return 1;
  356. }
  357.  
  358. public OnPlayerLeaveCheckpoint(playerid)
  359. {
  360. return 1;
  361. }
  362.  
  363. public OnPlayerEnterRaceCheckpoint(playerid)
  364. {
  365. return 1;
  366. }
  367.  
  368. public OnPlayerLeaveRaceCheckpoint(playerid)
  369. {
  370. return 1;
  371. }
  372.  
  373. public OnRconCommand(cmd[])
  374. {
  375. return 1;
  376. }
  377.  
  378. public OnPlayerRequestSpawn(playerid)
  379. {
  380. return 1;
  381. }
  382.  
  383. public OnObjectMoved(objectid)
  384. {
  385. return 1;
  386. }
  387.  
  388. public OnPlayerObjectMoved(playerid, objectid)
  389. {
  390. return 1;
  391. }
  392.  
  393. public OnPlayerPickUpPickup(playerid, pickupid)
  394. {
  395. return 1;
  396. }
  397.  
  398. public OnVehicleMod(playerid, vehicleid, componentid)
  399. {
  400. return 1;
  401. }
  402.  
  403. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  404. {
  405. return 1;
  406. }
  407.  
  408. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  409. {
  410. return 1;
  411. }
  412.  
  413. public OnPlayerSelectedMenuRow(playerid, row)
  414. {
  415. return 1;
  416. }
  417.  
  418. public OnPlayerExitedMenu(playerid)
  419. {
  420. return 1;
  421. }
  422.  
  423. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  424. {
  425. return 1;
  426. }
  427.  
  428. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  429. {
  430. return 1;
  431. }
  432.  
  433. public OnRconLoginAttempt(ip[], password[], success)
  434. {
  435. return 1;
  436. }
  437.  
  438. public OnPlayerUpdate(playerid)
  439. {
  440. return 1;
  441. }
  442.  
  443. public OnPlayerStreamIn(playerid, forplayerid)
  444. {
  445. return 1;
  446. }
  447.  
  448. public OnPlayerStreamOut(playerid, forplayerid)
  449. {
  450. return 1;
  451. }
  452.  
  453. public OnVehicleStreamIn(vehicleid, forplayerid)
  454. {
  455. return 1;
  456. }
  457.  
  458. public OnVehicleStreamOut(vehicleid, forplayerid)
  459. {
  460. return 1;
  461. }
  462.  
  463. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  464. {
  465. if(dialogid == STATS)
  466. {
  467. if(response == 0)
  468. {
  469. return 1;
  470. }
  471. if(response == 1)
  472. {
  473. return 1;
  474. }
  475. }
  476. if(dialogid == REGISTER)
  477. {
  478. if(response == 0)
  479. {
  480. SendClientMessage(playerid,ROT,"Du wurdest gekickt weil du die Regesteration abgebrochen hast!");
  481. Kick(playerid);
  482. return 1;
  483. }
  484. if(response == 1)
  485. {
  486. if(!strlen(inputtext))
  487. {
  488. SendClientMessage(playerid,BLAU,"Bitte gebe ein Passwort ein");
  489. ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Wilkommen auf DR","Wilkommen auf DR dem neuen Selfmade server.\nUm aber erst richtig los zu legen muss du dich regestieren.\nBitte gebe dein gewünschtes passwort ein:","Regestieren","Abbrechen");
  490. }
  491. Register(playerid,inputtext);
  492. }
  493. return 1;
  494. }
  495. if(dialogid == LOGIN)
  496. {
  497. if(response ==0)
  498. {
  499. SendClientMessage(playerid,ROT,"Du wurdest gekickt weil du den Login vorgang abgebrochen hast!");
  500. Kick(playerid);
  501. return 1;
  502. }
  503. if(response ==1)
  504. {
  505. Login(playerid,inputtext);
  506. return 1;
  507. }
  508. return 1;
  509. }
  510. return 1;
  511. }
  512.  
  513. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  514. {
  515. return 1;
  516. }
  517.  
  518. stock Register(playerid,Key[])
  519. {
  520. new Spieler[64];
  521. new Sname[MAX_PLAYER_NAME];
  522. GetPlayerName(playerid,Sname,sizeof(Sname));
  523. format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
  524. dini_Create(Spieler);
  525. dini_Set(Spieler,"Passwort",Key);
  526. dini_IntSet(Spieler,"Adminlevel",0);
  527. dini_IntSet(Spieler,"Level",0);
  528. dini_IntSet(Spieler,"Fraktion",0);
  529. dini_IntSet(Spieler,"Job",0);
  530. dini_IntSet(Spieler,"Team",0);
  531. dini_IntSet(Spieler,"Geld",10000);
  532. SendClientMessage(playerid,BLAU,"Du hast dich Erfolgreich regestiert");
  533. SpielerReset(playerid);
  534. GivePlayerMoney(playerid,10000);
  535. return 1;
  536. }
  537.  
  538. stock Login(playerid,Key[])
  539. {
  540. new Spieler[64];
  541. new Sname[MAX_PLAYER_NAME];
  542. GetPlayerName(playerid,Sname,sizeof(Sname));
  543. format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
  544. if(!strcmp(Key,dini_Get(Spieler,"Passwort"),true))
  545. {
  546. SendClientMessage(playerid,BLAU,"Du hast dich Eingeloggt");
  547. SpielerLaden(playerid);
  548. return 1;
  549. }
  550. else
  551. {
  552. ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Wilkommen zurück","Wilkommen zurück auf DR.\nGebe dein Passwort ein das du beim Regestieren eingegeben hast.","Login","Abbrechen");
  553. SendClientMessage(playerid,ROT,"Du hast das Falsche Passwort eingegeben");
  554. return 1;
  555. }
  556. }
  557.  
  558. stock SpielerSpeichern(playerid)
  559. {
  560. new Spieler[64];
  561. new Sname[MAX_PLAYER_NAME];
  562. GetPlayerName(playerid,Sname,sizeof(Sname));
  563. format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
  564. if(dini_Exists(Spieler))
  565. {
  566. dini_IntSet(Spieler,"Adminlevel",sSpieler[playerid][Adminlevel]);
  567. dini_IntSet(Spieler,"Level",sSpieler[playerid][Level]);
  568. dini_IntSet(Spieler,"Fraktion",sSpieler[playerid][Fraktion]);
  569. dini_IntSet(Spieler,"Job",sSpieler[playerid][Job]);
  570. dini_IntSet(Spieler,"Team",sSpieler[playerid][Team]);
  571. dini_IntSet(Spieler,"Geld",GetPlayerMoney(playerid));
  572. return 1;
  573. }
  574. return 1;
  575. }
  576.  
  577. stock SpielerLaden(playerid)
  578. {
  579. new Spieler[64];
  580. new Sname[MAX_PLAYER_NAME];
  581. GetPlayerName(playerid,Sname,sizeof(Sname));
  582. format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
  583. if(dini_Exists(Spieler))
  584. {
  585. sSpieler[playerid][Adminlevel] = dini_Int(Spieler,"Adminlevel");
  586. sSpieler[playerid][Level] = dini_Int(Spieler,"Level");
  587. sSpieler[playerid][Fraktion] = dini_Int(Spieler,"Fraktion");
  588. sSpieler[playerid][Job] = dini_Int(Spieler,"Job");
  589. sSpieler[playerid][Team] = dini_Int(Spieler,"Team");
  590. sSpieler[playerid][sLogin] = 1;
  591. sSpieler[playerid][Geld] = dini_Int(Spieler,"Geld");
  592. return 1;
  593. }
  594. return 1;
  595. }
  596.  
  597. stock SpielerReset(playerid)
  598. {
  599. sSpieler[playerid][Adminlevel] = 0;
  600. sSpieler[playerid][Level] = 0;
  601. sSpieler[playerid][Fraktion] = 0;
  602. sSpieler[playerid][Job] = 1;
  603. sSpieler[playerid][Team] = 0;
  604. sSpieler[playerid][Geld] = 10000;
  605. return 1;
  606. }
  607.  
  608. //Adminsystem
  609.  
  610. stock IstSpielerAdmin(playerid,level)
  611. {
  612. if(sSpieler[playerid][Adminlevel] >= level) return 1;
  613. return 0;
  614. }
  615.  
  616. //Fraktion stock
  617. stock IstSpielerInFraktion(playerid, fraktionsid)
  618. {
  619. if(sSpieler[playerid][Fraktion] == fraktionsid) return 1;
  620. return 0;
  621. }
  622.  
  623. //Job stock
  624. stock HatSpielerEinenJob(playerid, jobsid)
  625. {
  626. if(sSpieler[playerid][Fraktion] == fraktionsid) return 1;
  627. return 0;
  628. }
  629.  
  630. //Login abfrage
  631.  
  632. stock IstSpielerLogged(playerid)
  633. {
  634. if(sSpieler[playerid][sLogin] == 1) return 1;
  635. return 0;
  636. }
  637.  
  638. //Sscanf
  639.  
  640. stock sscanf(string[], format[], {Float,_}:...)
  641. {
  642. #if defined isnull
  643. if (isnull(string))
  644. #else
  645. if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  646. #endif
  647. {
  648. return format[0];
  649. }
  650. #pragma tabsize 4
  651. new
  652. formatPos = 0,
  653. stringPos = 0,
  654. paramPos = 2,
  655. paramCount = numargs(),
  656. delim = ' ';
  657. while (string[stringPos] && string[stringPos] <= ' ')
  658. {
  659. stringPos++;
  660. }
  661. while (paramPos < paramCount && string[stringPos])
  662. {
  663. switch (format[formatPos++])
  664. {
  665. case '\0':
  666. {
  667. return 0;
  668. }
  669. case 'i', 'd':
  670. {
  671. new
  672. neg = 1,
  673. num = 0,
  674. ch = string[stringPos];
  675. if (ch == '-')
  676. {
  677. neg = -1;
  678. ch = string[++stringPos];
  679. }
  680. do
  681. {
  682. stringPos++;
  683. if ('0' <= ch <= '9')
  684. {
  685. num = (num * 10) + (ch - '0');
  686. }
  687. else
  688. {
  689. return -1;
  690. }
  691. }
  692. while ((ch = string[stringPos]) > ' ' && ch != delim);
  693. setarg(paramPos, 0, num * neg);
  694. }
  695. case 'h', 'x':
  696. {
  697. new
  698. num = 0,
  699. ch = string[stringPos];
  700. do
  701. {
  702. stringPos++;
  703. switch (ch)
  704. {
  705. case 'x', 'X':
  706. {
  707. num = 0;
  708. continue;
  709. }
  710. case '0' .. '9':
  711. {
  712. num = (num << 4) | (ch - '0');
  713. }
  714. case 'a' .. 'f':
  715. {
  716. num = (num << 4) | (ch - ('a' - 10));
  717. }
  718. case 'A' .. 'F':
  719. {
  720. num = (num << 4) | (ch - ('A' - 10));
  721. }
  722. default:
  723. {
  724. return -1;
  725. }
  726. }
  727. }
  728. while ((ch = string[stringPos]) > ' ' && ch != delim);
  729. setarg(paramPos, 0, num);
  730. }
  731. case 'c':
  732. {
  733. setarg(paramPos, 0, string[stringPos++]);
  734. }
  735. case 'f':
  736. {
  737.  
  738. new changestr[16], changepos = 0, strpos = stringPos;
  739. while(changepos < 16 && string[strpos] && string[strpos] != delim)
  740. {
  741. changestr[changepos++] = string[strpos++];
  742. }
  743. changestr[changepos] = '\0';
  744. setarg(paramPos,0,_:floatstr(changestr));
  745. }
  746. case 'p':
  747. {
  748. delim = format[formatPos++];
  749. continue;
  750. }
  751. case '\'':
  752. {
  753. new
  754. end = formatPos - 1,
  755. ch;
  756. while ((ch = format[++end]) && ch != '\'') {}
  757. if (!ch)
  758. {
  759. return -1;
  760. }
  761. format[end] = '\0';
  762. if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  763. {
  764. if (format[end + 1])
  765. {
  766. return -1;
  767. }
  768. return 0;
  769. }
  770. format[end] = '\'';
  771. stringPos = ch + (end - formatPos);
  772. formatPos = end + 1;
  773. }
  774. case 'u':
  775. {
  776. new
  777. end = stringPos - 1,
  778. id = 0,
  779. bool:num = true,
  780. ch;
  781. while ((ch = string[++end]) && ch != delim)
  782. {
  783. if (num)
  784. {
  785. if ('0' <= ch <= '9')
  786. {
  787. id = (id * 10) + (ch - '0');
  788. }
  789. else
  790. {
  791. num = false;
  792. }
  793. }
  794. }
  795. if (num && IsPlayerConnected(id))
  796. {
  797. setarg(paramPos, 0, id);
  798. }
  799. else
  800. {
  801. #if !defined foreach
  802. #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  803. #define __SSCANF_FOREACH__
  804. #endif
  805. string[end] = '\0';
  806. num = false;
  807. new
  808. name[MAX_PLAYER_NAME];
  809. id = end - stringPos;
  810. foreach (Player, playerid)
  811. {
  812. GetPlayerName(playerid, name, sizeof (name));
  813. if (!strcmp(name, string[stringPos], true, id))
  814. {
  815. setarg(paramPos, 0, playerid);
  816. num = true;
  817. break;
  818. }
  819. }
  820. if (!num)
  821. {
  822. setarg(paramPos, 0, INVALID_PLAYER_ID);
  823. }
  824. string[end] = ch;
  825. #if defined __SSCANF_FOREACH__
  826. #undef foreach
  827. #undef __SSCANF_FOREACH__
  828. #endif
  829. }
  830. stringPos = end;
  831. }
  832. case 's', 'z':
  833. {
  834. new
  835. i = 0,
  836. ch;
  837. if (format[formatPos])
  838. {
  839. while ((ch = string[stringPos++]) && ch != delim)
  840. {
  841. setarg(paramPos, i++, ch);
  842. }
  843. if (!i)
  844. {
  845. return -1;
  846. }
  847. }
  848. else
  849. {
  850. while ((ch = string[stringPos++]))
  851. {
  852. setarg(paramPos, i++, ch);
  853. }
  854. }
  855. stringPos--;
  856. setarg(paramPos, i, '\0');
  857. }
  858. default:
  859. {
  860. continue;
  861. }
  862. }
  863. while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  864. {
  865. stringPos++;
  866. }
  867. while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  868. {
  869. stringPos++;
  870. }
  871. paramPos++;
  872. }
  873. do
  874. {
  875. if ((delim = format[formatPos++]) > ' ')
  876. {
  877. if (delim == '\'')
  878. {
  879. while ((delim = format[formatPos++]) && delim != '\'') {}
  880. }
  881. else if (delim != 'z')
  882. {
  883. return delim;
  884. }
  885. }
  886. }
  887. while (delim > ' ');
  888. return 0;
  889. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement