Guest User

Untitled

a guest
Jan 13th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.03 KB | None | 0 0
  1. #include <a_samp>
  2. #include ocmd
  3. #include dini
  4.  
  5. #define BLAU 0x0087FFFF
  6. #define ROT 0xE10000FF
  7.  
  8.  
  9. new amuein;
  10. new amuaus;
  11. new lspdein;
  12. new lspdexit;
  13. new lspdgarageein;
  14. new lspdgarageexit;
  15. new ein;
  16. new aus;
  17. new bsnein;
  18. new bsnaus;
  19.  
  20.  
  21. #define DIALOG_TUTORIAL 1
  22. #define DIALOG_REGISTER 2
  23. #define DIALOG_LOGIN 3
  24.  
  25. #define Bankmenu 1
  26. #define Einzahlung 2
  27. #define Auszahlung 3
  28. #define Ueberweisung 4
  29. #define Kontostand 5
  30. #define EinzahlungText 6
  31. #define AuszahlungText 7
  32. #define UeberweisungText1 8
  33. #define Ueberweisung2 9
  34.  
  35. #define fraktname1 "LSPD"
  36. #define fraktname2 "Mafia"
  37. #define fraktname3 "Medic"
  38. #define fraktname4 "Ballas"
  39. #define fraktname5 "Grove"
  40. #define fraktname6 "Feuerwehr"
  41. #define fraktname7 "Müllman"
  42. #define fraktname8 "Taxi"
  43.  
  44. main()
  45. {
  46. print("\n----------------------------------");
  47. print("PWK");
  48. print("----------------------------------\n");
  49. }
  50.  
  51.  
  52.  
  53. public OnGameModeInit()
  54. {
  55. //pickup
  56. amuein = CreatePickup(1559, 1,1368.9911,-1279.6251,13.5469, -1);
  57. amuaus = CreatePickup(1559, 1,285.4950,-41.7768,1001.5156, -1);
  58. lspdein = CreatePickup(1559, 1,1555.3223,-1676.0045,16.1953, -1);
  59. lspdexit = CreatePickup(1559, 1,288.9533,166.9254,1007.1719, -1);
  60. lspdgarageein = CreatePickup(1559, 1,1568.8241,-1689.9856,6.2188, -1);
  61. lspdgarageexit = CreatePickup(1559, 1,1062.2305,2077.1062,10.8203, -1);
  62. ein = CreatePickup(1559, 1,1315.4070,-897.8334,39.5781, -1);
  63. aus = CreatePickup(1559, 1,-25.8334,-188.2471,1003.5469, -1);
  64. bsnein = CreatePickup(1559, 1,1199.0779,-918.1874,43.1241, -1);
  65. bsnaus = CreatePickup(1559, 1,362.8601,-75.1325,1001.5078, -1);
  66.  
  67. SetGameModeText("PWK");
  68. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  69. DisableInteriorEnterExits();
  70.  
  71. return 1;
  72. }
  73.  
  74. public OnGameModeExit()
  75. {
  76. return 1;
  77. }
  78.  
  79. public OnPlayerRequestClass(playerid, classid)
  80. {
  81. SetPlayerVirtualWorld(playerid,1+playerid);
  82. SetPlayerPos(playerid,1462.7377,-1025.4229,23.8281);
  83. SetPlayerCameraPos(playerid,1462.7377,-1025.4229,23.8281);
  84. SetPlayerCameraLookAt(playerid,1463.2388,-1024.4950,23.8281);
  85.  
  86. return 1;
  87. }
  88.  
  89. public OnPlayerConnect(playerid)
  90. {
  91. if(IsPlayerNPC(playerid))return 1;
  92. new Spielerdatei[64];
  93. new name[MAX_PLAYER_NAME];
  94. GetPlayerName(playerid,name,sizeof(name));
  95. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  96. if(dini_Exists(Spielerdatei))
  97. {
  98. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
  99. }
  100. else
  101. {
  102. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
  103. }
  104. return 1;
  105. }
  106.  
  107. public OnPlayerDisconnect(playerid, reason)
  108. {
  109. if(GetPVarInt(playerid,"loggedin")==1)
  110. {
  111. SpielerSpeichern(playerid);
  112. }
  113. return 1;
  114. }
  115. public OnPlayerSpawn(playerid)
  116. {
  117. SetPlayerVirtualWorld(playerid,0);
  118. SetPlayerPos(playerid,1461.0916,-1013.0022,26.8438);
  119. SetPlayerFacingAngle(playerid,176.9750);
  120. return 1;
  121. }
  122.  
  123. public OnPlayerDeath(playerid, killerid, reason)
  124. {
  125. SendClientMessage(playerid,BLAU,"Gestorben");
  126. return 1;
  127. }
  128.  
  129. public OnVehicleSpawn(vehicleid)
  130. {
  131. return 1;
  132. }
  133.  
  134. public OnVehicleDeath(vehicleid, killerid)
  135. {
  136. return 1;
  137. }
  138.  
  139. public OnPlayerText(playerid, text[])
  140. {
  141. return 1;
  142. }
  143.  
  144. ocmd:setadmin(playerid,params[])
  145. {
  146. if(!isPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,ROT,"Du bist kein Admin.");
  147. new pID, rank;
  148. if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,ROT,"/setadmin [spieler] [level]");
  149. if(rank<1||rank>5)return SendClientMessage(playerid,ROT,"Bitte gültigen Rang angeben.");
  150. SetPVarInt(pID,"Adminlevel",rank);
  151. SpielerSpeichern(pID);
  152. SendClientMessageToAll(BLAU,"Es wurde jemand zu Admin gemacht.");
  153. return 1;
  154. }
  155.  
  156. ocmd:ban(playerid,params[])
  157. {
  158. if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Admin.");
  159. new pID, reason[128],string[128];
  160. if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,BLAU,"/ban [id] [grund]");
  161. format(string,sizeof(string),"AdmCmd: %s wurde von %s gebannt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
  162. SendClientMessageToAll(ROT,string);
  163. SetPVarInt(pID,"Baned",1);
  164. Kick(pID);
  165. return 1;
  166. }
  167.  
  168. ocmd:kick(playerid,params[])
  169. {
  170. if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Admin.");
  171. new pID, reason[128],string[128];
  172. if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,BLAU,"/kick [id] [grund]");
  173. format(string,sizeof(string),"AdmCmd: %s wurde von %s gekickt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
  174. SendClientMessageToAll(ROT,string);
  175. Kick(pID);
  176. return 1;
  177. }
  178.  
  179. ocmd:f(playerid,params[])
  180. {
  181. new text[128];
  182. if(sscanf(params,"s",text))return SendClientMessage(playerid,ROT,"/f [text]");
  183. format(text,sizeof(text),"Member %s: %s",(playerid),text);
  184. for(new i=0; i<GetMaxPlayers(); i++)
  185. {
  186. if(IsPlayerConnected(i))
  187. {
  188. if(isPlayerInFrakt(i,GetPVarInt(playerid,"Fraktion")))
  189. {
  190. SendClientMessage(i,BLAU,text);
  191. }
  192. }
  193. }
  194. return 1;
  195. }
  196. ocmd:makeleader(playerid,params[])
  197. {
  198. if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
  199. new pID,fID;
  200. if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,BLAU,"/makeleader [playerid] [fraktionsid]");
  201. SetPVarInt(pID,"Fraktion",fID);
  202. SendClientMessage(playerid,BLAU,"Erfolgreich.");
  203. return 1;
  204. }
  205.  
  206. public OnPlayerCommandText(playerid, cmdtext[])
  207. {
  208. if (strcmp("/essen", cmdtext, true, 10) == 0)
  209. {
  210. if(IsPlayerInRangeOfPoint(playerid,50.0,375.962463,-65.816848,1001.507812))
  211. {
  212. new Float:health;
  213. GetPlayerHealth(playerid,health);
  214. SetPlayerHealth(playerid,health +5);
  215. SendClientMessage(playerid,BLAU, "Du hast einen Hamburger gegessen");
  216. }
  217. return 1;
  218. }
  219.  
  220. if (strcmp(cmdtext,"/zivi",true)==0)
  221. {
  222. SetPlayerPos(playerid,2073.3804,1177.2048,9.9579);
  223. SendClientMessage(playerid,0xFF0019FF,"Teleport");
  224. return 1;
  225. }
  226. if (strcmp(cmdtext,"/bsn",true)==0)
  227. {
  228. SetPlayerPos(playerid,1193.7031,-924.2075,43.0864);
  229. SendClientMessage(playerid,0xFF0019FF,"Teleport");
  230. return 1;
  231. }
  232. if (strcmp(cmdtext,"/police",true)==0)
  233. {
  234. SetPlayerPos(playerid,1569.1826,-1691.6302,5.8906);
  235. SendClientMessage(playerid,0xFF0019FF,"Teleport");
  236. return 1;
  237. }
  238. if (strcmp(cmdtext,"/fire",true)==0)
  239. {
  240. SetPlayerPos(playerid,1269.5789,-1841.8774,13.3971);
  241. SendClientMessage(playerid,0xFF0019FF,"Teleport");
  242. return 1;
  243. }
  244. if (strcmp(cmdtext,"/gr",true)==0)
  245. {
  246. SetPlayerPos(playerid,2477.6858,-1673.4369,13.3381);
  247. SendClientMessage(playerid,0xFF0019FF,"Teleport");
  248. return 1;
  249. }
  250. if (strcmp(cmdtext,"/ba",true)==0)
  251. {
  252. SetPlayerPos(playerid,1911.4570,-1137.5837,24.6016);
  253. SendClientMessage(playerid,0xFF0019FF,"Teleport");
  254. return 1;
  255. }
  256. if (strcmp(cmdtext,"/bin",true)==0)
  257. {
  258. SetPlayerPos(playerid,895.9185,-1217.9935,16.9766);
  259. SendClientMessage(playerid,0xFF0019FF,"Teleport");
  260. return 1;
  261. }
  262. if (strcmp(cmdtext,"/texi",true)==0)
  263. {
  264. SetPlayerPos(playerid,1753.9580,-1912.0745,13.5678);
  265. SendClientMessage(playerid,0xFF0019FF,"Teleport");
  266. return 1;
  267. }
  268. if(strcmp(cmdtext,"/uuw",true)==0)
  269. {
  270. SetPlayerHealth(playerid,100);
  271. return 1;
  272. }
  273.  
  274. if(strcmp(cmdtext,"/kill",true)==0)
  275. {
  276. SetPlayerHealth(playerid,0);
  277. return 1;
  278. }
  279. if(strcmp(cmdtext,"/stats",true)==0)
  280.  
  281. {
  282. new string[128];
  283. new fraktname[64];
  284. switch(GetPVarInt(playerid,"Fraktion"))
  285. {
  286. case 0:{fraktname="Keine";}
  287. case 1:{fraktname=fraktname1;}
  288. case 2:{fraktname=fraktname2;}
  289. case 3:{fraktname=fraktname3;}
  290. case 4:{fraktname=fraktname4;}
  291. case 5:{fraktname=fraktname5;}
  292. case 6:{fraktname=fraktname6;}
  293. case 7:{fraktname=fraktname7;}
  294. case 8:{fraktname=fraktname8;}
  295. }
  296.  
  297. //1 reihe
  298. format(string,sizeof(string),"[Name: %s] [Level: %i] [Adminlevel: %i] [Fraktion: %s]",(playerid),GetPlayerScore(playerid),GetPVarInt(playerid,"Adminlevel"),fraktname);
  299. SendClientMessage(playerid,BLAU,string);
  300. //2 reihe
  301. return 1;
  302. }
  303. if(strcmp(cmdtext,"/nschild",true)==0)
  304. {
  305. if(IsPlayerInAnyVehicle(playerid))
  306. {
  307. new vehicleid;
  308. vehicleid=GetPlayerVehicleID(playerid);
  309. SetVehicleNumberPlate(vehicleid,"Test");
  310. SetVehicleToRespawn(vehicleid);
  311. PutPlayerInVehicle(playerid,vehicleid,0);
  312. }
  313. return 1;
  314. }
  315. return 0;
  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. return 1;
  331. }
  332.  
  333. public OnPlayerEnterCheckpoint(playerid)
  334. {
  335. return 1;
  336. }
  337.  
  338. public OnPlayerLeaveCheckpoint(playerid)
  339. {
  340. return 1;
  341. }
  342.  
  343. public OnPlayerEnterRaceCheckpoint(playerid)
  344. {
  345. return 1;
  346. }
  347.  
  348. public OnPlayerLeaveRaceCheckpoint(playerid)
  349. {
  350. return 1;
  351. }
  352.  
  353. public OnRconCommand(cmd[])
  354. {
  355. return 1;
  356. }
  357.  
  358. public OnPlayerRequestSpawn(playerid)
  359. {
  360. return 1;
  361. }
  362.  
  363. public OnObjectMoved(objectid)
  364. {
  365. return 1;
  366. }
  367.  
  368. public OnPlayerObjectMoved(playerid, objectid)
  369. {
  370. return 1;
  371. }
  372.  
  373. public OnPlayerPickUpPickup(playerid, pickupid)
  374. {
  375. if(pickupid == bsnein)
  376. {
  377. SetPlayerPos(playerid,375.962463,-65.816848,1001.507812);
  378. SetPlayerFacingAngle(playerid,10.4945);
  379. SetPlayerInterior(playerid,10);
  380. }
  381. if(pickupid == bsnaus)
  382. {
  383. SetPlayerPos(playerid,1198.7782,-921.0991,43.0328);
  384. SetPlayerFacingAngle(playerid,184.9995);
  385. SetPlayerInterior(playerid,0);
  386. }
  387.  
  388. if(pickupid == ein)
  389. {
  390. SetPlayerPos(playerid,-25.884498,-185.868988,1003.546875);
  391. SetPlayerFacingAngle(playerid,0.9267);
  392. SetPlayerInterior(playerid,17);
  393. }
  394. if(pickupid == aus)
  395. {
  396. SetPlayerPos(playerid,1315.1958,-901.1573,39.5781);
  397. SetPlayerFacingAngle(playerid,179.6733);
  398. SetPlayerInterior(playerid,0);
  399. }
  400.  
  401. if(pickupid == lspdgarageein)
  402. {
  403. SetPlayerPos(playerid,1059.895996,2081.685791,10.820312);
  404. SetPlayerFacingAngle(playerid,7.8069);
  405. SetPlayerInterior(playerid,0);
  406. }
  407. if(pickupid == lspdgarageexit)
  408. {
  409. SetPlayerPos(playerid,1568.1360,-1692.1991,5.8906);
  410. SetPlayerFacingAngle(playerid,173.9116);
  411. SetPlayerInterior(playerid,0);
  412. }
  413.  
  414. if(pickupid == lspdein)
  415. {
  416. SetPlayerPos(playerid,288.745971,169.350997,1007.171875);
  417. SetPlayerFacingAngle(playerid,274.0340);
  418. SetPlayerInterior(playerid,3);
  419. }
  420. if(pickupid == lspdexit)
  421. {
  422. SetPlayerPos(playerid,1551.9924,-1676.0465,16.0969);
  423. SetPlayerFacingAngle(playerid,94.6606);
  424. SetPlayerInterior(playerid,0);
  425. }
  426.  
  427.  
  428. if(pickupid == amuein)
  429. {
  430. SetPlayerPos(playerid,286.148986,-40.644397,1001.515625);
  431. SetPlayerFacingAngle(playerid,273.8179);
  432. SetPlayerInterior(playerid,1);
  433. }
  434.  
  435. if(pickupid == amuaus)
  436. {
  437. SetPlayerPos(playerid,1366.4150,-1279.7748,13.5469);
  438. SetPlayerFacingAngle(playerid,85.3578);
  439. SetPlayerInterior(playerid,0);
  440. }
  441. return 1;
  442. }
  443.  
  444. public OnVehicleMod(playerid, vehicleid, componentid)
  445. {
  446. return 1;
  447. }
  448.  
  449. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  450. {
  451. return 1;
  452. }
  453.  
  454. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  455. {
  456. return 1;
  457. }
  458.  
  459. public OnPlayerSelectedMenuRow(playerid, row)
  460. {
  461. return 1;
  462. }
  463.  
  464. public OnPlayerExitedMenu(playerid)
  465. {
  466. return 1;
  467. }
  468.  
  469. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  470. {
  471. return 1;
  472. }
  473.  
  474. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  475. {
  476. return 1;
  477. }
  478.  
  479. public OnRconLoginAttempt(ip[], password[], success)
  480. {
  481. return 1;
  482. }
  483.  
  484. public OnPlayerUpdate(playerid)
  485. {
  486. return 1;
  487. }
  488.  
  489. public OnPlayerStreamIn(playerid, forplayerid)
  490. {
  491. return 1;
  492. }
  493.  
  494. public OnPlayerStreamOut(playerid, forplayerid)
  495. {
  496. return 1;
  497. }
  498.  
  499. public OnVehicleStreamIn(vehicleid, forplayerid)
  500. {
  501. return 1;
  502. }
  503.  
  504. public OnVehicleStreamOut(vehicleid, forplayerid)
  505. {
  506. return 1;
  507. }
  508.  
  509.  
  510. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  511. {
  512. if(dialogid==DIALOG_LOGIN)
  513. {
  514. if(response==0)
  515. {
  516. SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
  517. Kick(playerid);
  518. return 1;
  519. }
  520. if(response==1)
  521. {
  522. if(!strlen(inputtext))
  523. {
  524. SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
  525. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
  526. return 1;
  527. }
  528. else
  529. {
  530. Login(playerid,inputtext);
  531. return 1;
  532. }
  533. }
  534. }
  535. if(dialogid==DIALOG_REGISTER)
  536. {
  537. if(response==0)
  538. {
  539. SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
  540. Kick(playerid);
  541. return 1;
  542. }
  543. if(response==1)
  544. {
  545. if(!strlen(inputtext))
  546. {
  547. SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
  548. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
  549. return 1;
  550. }
  551. else
  552. {
  553. Register(playerid,inputtext);
  554. return 1;
  555. }
  556. }
  557. }
  558. if(dialogid==DIALOG_TUTORIAL)
  559. {
  560. if(response==1)
  561. {
  562. SetPlayerPos(playerid,1227.1797,-914.0590,42.6812);
  563. SendClientMessage(playerid,0xFFFF00FF,"Du wurdest Teleportiert");
  564. }
  565. if(response==0)
  566. {
  567. SendClientMessage(playerid,BLAU,"Ok dann halt nicht...");
  568. }
  569. }
  570. return 1;
  571. }
  572.  
  573. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  574. {
  575. return 1;
  576. }
  577.  
  578. stock Register(playerid,key[])
  579. {
  580. new Spielerdatei[64];
  581. new name[MAX_PLAYER_NAME];
  582. GetPlayerName(playerid,name,sizeof(name));
  583. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  584. dini_Create(Spielerdatei);
  585. dini_Set(Spielerdatei,"Passwort",key);
  586. SendClientMessage(playerid,BLAU,"Erfolgreich registriert.");
  587. SetPlayerScore(playerid,0);
  588. SetPVarInt(playerid,"loggedin",1);
  589. return 1;
  590. }
  591.  
  592. stock Login(playerid,key[])
  593. {
  594. new Spielerdatei[64];
  595. new name[MAX_PLAYER_NAME];
  596. GetPlayerName(playerid,name,sizeof(name));
  597. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  598. if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
  599. {
  600. LoadAccount(playerid);
  601. SendClientMessage(playerid,BLAU,"Erfolgreich eingeloggt.");
  602. return 1;
  603. }
  604. else
  605. {
  606. SendClientMessage(playerid,BLAU,"Falsches Passwort.");
  607. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
  608. return 1;
  609. }
  610. }
  611.  
  612. stock LoadAccount(playerid)
  613. {
  614. new Spielerdatei[64];
  615. new name[MAX_PLAYER_NAME];
  616. GetPlayerName(playerid,name,sizeof(name));
  617. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  618. SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
  619. GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
  620. SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
  621. SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
  622. SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
  623. if(GetPVarInt(playerid,"Baned")==1)
  624. {
  625. SendClientMessage(playerid,ROT,"Du bist vom Server gebannt.");
  626. Kick(playerid);
  627. }
  628. SetPVarInt(playerid,"loggedin",1);
  629. return 1;
  630. }
  631.  
  632. stock SpielerSpeichern(playerid)
  633. {
  634. if(GetPVarInt(playerid,"loggedin")==1)
  635. {
  636. new Spielerdatei[64];
  637. new name[MAX_PLAYER_NAME];
  638. GetPlayerName(playerid,name,sizeof(name));
  639. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  640. dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
  641. dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
  642. dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
  643. dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
  644. dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
  645. }
  646. return 1;
  647. }
  648.  
  649. stock isPlayerInFrakt(playerid,fraktid)
  650. {
  651. if(GetPVarInt(playerid,"Fraktion")==fraktid)return 1;
  652. return 0;
  653. }
  654.  
  655. stock isPlayerAnAdmin(playerid,rang)
  656. {
  657. if(GetPVarInt(playerid,"Adminlevel")>=rang)return 1;
  658. return 0;
  659. }
  660.  
  661. stock sscanf(sstring[], format[], {Float,_}:...)
  662. {
  663. #if defined isnull
  664. if (isnull(sstring))
  665. #else
  666. if (sstring[0] == 0 || (sstring[0] == 1 && sstring[1] == 0))
  667. #endif
  668. {
  669. return format[0];
  670. }
  671. #pragma tabsize 4
  672. new
  673. formatPos = 0,
  674. sstringPos = 0,
  675. paramPos = 2,
  676. paramCount = numargs(),
  677. delim = ' ';
  678. while (sstring[sstringPos] && sstring[sstringPos] <= ' ')
  679. {
  680. sstringPos++;
  681. }
  682. while (paramPos < paramCount && sstring[sstringPos])
  683. {
  684. switch (format[formatPos++])
  685. {
  686. case '\0':
  687. {
  688. return 0;
  689. }
  690. case 'i', 'd':
  691. {
  692. new
  693. neg = 1,
  694. num = 0,
  695. ch = sstring[sstringPos];
  696. if (ch == '-')
  697. {
  698. neg = -1;
  699. ch = sstring[++sstringPos];
  700. }
  701. do
  702. {
  703. sstringPos++;
  704. if ('0' <= ch <= '9')
  705. {
  706. num = (num * 10) + (ch - '0');
  707. }
  708. else
  709. {
  710. return -1;
  711. }
  712. }
  713. while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
  714. setarg(paramPos, 0, num * neg);
  715. }
  716. case 'h', 'x':
  717. {
  718. new
  719. num = 0,
  720. ch = sstring[sstringPos];
  721. do
  722. {
  723. sstringPos++;
  724. switch (ch)
  725. {
  726. case 'x', 'X':
  727. {
  728. num = 0;
  729. continue;
  730. }
  731. case '0' .. '9':
  732. {
  733. num = (num << 4) | (ch - '0');
  734. }
  735. case 'a' .. 'f':
  736. {
  737. num = (num << 4) | (ch - ('a' - 10));
  738. }
  739. case 'A' .. 'F':
  740. {
  741. num = (num << 4) | (ch - ('A' - 10));
  742. }
  743. default:
  744. {
  745. return -1;
  746. }
  747. }
  748. }
  749. while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
  750. setarg(paramPos, 0, num);
  751. }
  752. case 'c':
  753. {
  754. setarg(paramPos, 0, sstring[sstringPos++]);
  755. }
  756. case 'f':
  757. {
  758.  
  759. new changestr[16], changepos = 0, strpos = sstringPos;
  760. while(changepos < 16 && sstring[strpos] && sstring[strpos] != delim)
  761. {
  762. changestr[changepos++] = sstring[strpos++];
  763. }
  764. changestr[changepos] = '\0';
  765. setarg(paramPos,0,_:floatstr(changestr));
  766. }
  767. case 'p':
  768. {
  769. delim = format[formatPos++];
  770. continue;
  771. }
  772. case '\'':
  773. {
  774. new
  775. end = formatPos - 1,
  776. ch;
  777. while ((ch = format[++end]) && ch != '\'') {}
  778. if (!ch)
  779. {
  780. return -1;
  781. }
  782. format[end] = '\0';
  783. if ((ch = strfind(sstring, format[formatPos], false, sstringPos)) == -1)
  784. {
  785. if (format[end + 1])
  786. {
  787. return -1;
  788. }
  789. return 0;
  790. }
  791. format[end] = '\'';
  792. sstringPos = ch + (end - formatPos);
  793. formatPos = end + 1;
  794. }
  795. case 'u':
  796. {
  797. new
  798. end = sstringPos - 1,
  799. id = 0,
  800. bool:num = true,
  801. ch;
  802. while ((ch = sstring[++end]) && ch != delim)
  803. {
  804. if (num)
  805. {
  806. if ('0' <= ch <= '9')
  807. {
  808. id = (id * 10) + (ch - '0');
  809. }
  810. else
  811. {
  812. num = false;
  813. }
  814. }
  815. }
  816. if (num && IsPlayerConnected(id))
  817. {
  818. setarg(paramPos, 0, id);
  819. }
  820. else
  821. {
  822. #if !defined foreach
  823. #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  824. #define __SSCANF_FOREACH__
  825. #endif
  826. sstring[end] = '\0';
  827. num = false;
  828. new
  829. name[MAX_PLAYER_NAME];
  830. id = end - sstringPos;
  831. foreach (Player, playerid)
  832. {
  833. GetPlayerName(playerid, name, sizeof (name));
  834. if (!strcmp(name, sstring[sstringPos], true, id))
  835. {
  836. setarg(paramPos, 0, playerid);
  837. num = true;
  838. break;
  839. }
  840. }
  841. if (!num)
  842. {
  843. setarg(paramPos, 0, INVALID_PLAYER_ID);
  844. }
  845. sstring[end] = ch;
  846. #if defined __SSCANF_FOREACH__
  847. #undef foreach
  848. #undef __SSCANF_FOREACH__
  849. #endif
  850. }
  851. sstringPos = end;
  852. }
  853. case 's', 'z':
  854. {
  855. new
  856. i = 0,
  857. ch;
  858. if (format[formatPos])
  859. {
  860. while ((ch = sstring[sstringPos++]) && ch != delim)
  861. {
  862. setarg(paramPos, i++, ch);
  863. }
  864. if (!i)
  865. {
  866. return -1;
  867. }
  868. }
  869. else
  870. {
  871. while ((ch = sstring[sstringPos++]))
  872. {
  873. setarg(paramPos, i++, ch);
  874. }
  875. }
  876. sstringPos--;
  877. setarg(paramPos, i, '\0');
  878. }
  879. default:
  880. {
  881. continue;
  882. }
  883. }
  884. while (sstring[sstringPos] && sstring[sstringPos] != delim && sstring[sstringPos] > ' ')
  885. {
  886. sstringPos++;
  887. }
  888. while (sstring[sstringPos] && (sstring[sstringPos] == delim || sstring[sstringPos] <= ' '))
  889. {
  890. sstringPos++;
  891. }
  892. paramPos++;
  893. }
  894. do
  895. {
  896. if ((delim = format[formatPos++]) > ' ')
  897. {
  898. if (delim == '\'')
  899. {
  900. while ((delim = format[formatPos++]) && delim != '\'') {}
  901. }
  902. else if (delim != 'z')
  903. {
  904. return delim;
  905. }
  906. }
  907. }
  908. while (delim > ' ');
  909. return 0;
  910. }
  911.  
  912. stock SpielerName(playerid)
  913. {
  914. new name[MAX_PLAYER_NAME];
  915. GetPlayerName(playerid,name,sizeof(name));
  916. return name;
  917. }
Add Comment
Please, Sign In to add comment