DrPawn

xOOLEn_Fresh Fixxed Script

Aug 5th, 2012
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.16 KB | None | 0 0
  1. #include <a_samp>
  2. #include <dini>
  3. #include <ocmd>
  4.  
  5.  
  6. #define BLAU 0x0087FFFF
  7. #define ROT 0xE10000FF
  8.  
  9. #define DIALOG_TUTORIAL 1
  10. #define DIALOG_REGISTER 2
  11. #define DIALOG_LOGIN 3
  12.  
  13. //Fraktionsnamen
  14. #define fraktname1 "LSPD"
  15. #define fraktname2 "Mafia"
  16. #define fraktname3 "Medic"
  17.  
  18. //Mafia
  19. #define mafiaspawn 1188.7655,-943.9813,42.7585
  20.  
  21. //LSPD
  22. #define lspdspawn 1520.0, 1541.0, 1655.0
  23.  
  24. //Medic
  25. #define medicspawn 1520.0,1568.0,1510.0
  26.  
  27. forward testtimer();
  28.  
  29. new bsnenter;
  30. new bsnexit;
  31. new tor[1];
  32. new botauto;
  33. new mafiacar[2];//mafiacar[0], mafiacar[1]
  34.  
  35. main()
  36. {
  37. print("\n----------------------------------");
  38. print("TutorialServer");
  39. print("----------------------------------\n");
  40. }
  41.  
  42.  
  43. public OnGameModeInit()
  44. {
  45.  
  46. ConnectNPC("TutorialBot","tutorialbot");
  47. ConnectNPC("TutorialBot2","tutorialbot2");
  48.  
  49. UsePlayerPedAnims();
  50. bsnexit=CreatePickup(1559,1,362.8524,-75.1179,1001.5078);
  51. bsnenter=CreatePickup(1559,1,1199.2235,-918.1543,43.1233);
  52.  
  53. Create3DTextLabel("BSN\n Eingang",BLAU,1199.2235,-918.1543,43.1233,10,0);
  54.  
  55. DisableInteriorEnterExits();
  56. SetGameModeText("TutorialMode");
  57. AddPlayerClass(0,2047.4270,1336.5569,10.6719,188.9284,0,0,0,0,0,0); // position;
  58. AddPlayerClass(1,2047.4270,1336.5569,10.6719,188.9284,25,200,0,0,0,0); // position
  59.  
  60. botauto=CreateVehicle(401,1227.1797,-914.0590,42.6812,99.6721,126,126,1);
  61. SetVehicleNumberPlate(botauto,"Auto 1");
  62. AddStaticVehicle(409,1226.2432,-905.7473,42.6997,10.2423,151,151); // auto2
  63.  
  64. //fraktautos
  65. mafiacar[0]=AddStaticVehicle(411,1245.5562,-921.0884,42.5210,100.3385,64,1); // fraktauto 1
  66. mafiacar[1]=AddStaticVehicle(560,1237.1934,-922.9166,42.4760,101.1390,9,39); // fraktauto 3
  67.  
  68. //zäune
  69. CreateObject(987, 1184.3666992188, -949.98992919922, 41.657981872559, 0, 0, 10);
  70. CreateObject(987, 1195.0812988281, -937.03753662109, 41.745170593262, 0, 0, 187.99755859375);
  71. tor[0]=CreateObject(3629, 2498.6999511719, 2774, 2.5999999046326, 0, 0, 180);
  72.  
  73. SetTimer("testtimer",1000*60*10,true);
  74.  
  75. return 1;
  76. }
  77.  
  78. public testtimer()
  79. {
  80. SendClientMessageToAll(ROT,"Besuch unser Forum unter www.mrmonat.de");
  81. return 1;
  82. }
  83.  
  84. public OnGameModeExit()
  85. {
  86. return 1;
  87. }
  88.  
  89. public OnPlayerRequestClass(playerid, classid)
  90. {
  91. if(IsPlayerNPC(playerid))return 1;
  92. SetPlayerPos(playerid,2047.4270,1336.5569,10.6719);
  93. SetPlayerFacingAngle(playerid,188.9284);
  94. SetPlayerCameraPos(playerid,2047.6205,1333.3314,10.6719);
  95. SetPlayerCameraLookAt(playerid,2047.4270,1336.5569,10.6719);
  96. return 1;
  97. }
  98.  
  99. public OnPlayerConnect(playerid)
  100. {
  101. if(IsPlayerNPC(playerid))return 1;
  102. new Spielerdatei[64];
  103. new name[MAX_PLAYER_NAME];
  104. GetPlayerName(playerid,name,sizeof(name));
  105. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  106. if(dini_Exists(Spielerdatei))
  107. {
  108. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
  109. }
  110. else
  111. {
  112. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
  113. }
  114. return 1;
  115. }
  116.  
  117. public OnPlayerDisconnect(playerid, reason)
  118. {
  119. if(GetPVarInt(playerid,"loggedin")==1)
  120. {
  121. SpielerSpeichern(playerid);
  122. }
  123. return 1;
  124. }
  125.  
  126. public OnPlayerSpawn(playerid)
  127. {
  128. if(!strcmp(SpielerName(playerid),"TutorialBot",true))
  129. {
  130. PutPlayerInVehicle(playerid,botauto,0);
  131. }
  132. if(IsPlayerNPC(playerid))return 1;
  133. switch(GetPVarInt(playerid,"Fraktion"))
  134. {
  135. case 1:{SetPlayerPos(playerid,lspdspawn);SetPlayerColor(playerid,BLAU);}
  136. case 2:{SetPlayerPos(playerid,mafiaspawn);GivePlayerWeapon(playerid,24,100);}
  137. case 3:{SetPlayerPos(playerid,medicspawn);SetPlayerColor(playerid,ROT);}
  138. }
  139. return 1;
  140. }
  141.  
  142. public OnPlayerDeath(playerid, killerid, reason)
  143. {
  144. return 1;
  145. }
  146.  
  147. public OnVehicleSpawn(vehicleid)
  148. {
  149. return 1;
  150. }
  151.  
  152. public OnVehicleDeath(vehicleid, killerid)
  153. {
  154. return 1;
  155. }
  156.  
  157. public OnPlayerText(playerid, text[])
  158. {
  159. return 1;
  160. }
  161.  
  162.  
  163.  
  164. ocmd:f(playerid,params[])
  165. {
  166. new text[128];
  167. if(sscanf(params,"s",text))return SendClientMessage(playerid,ROT,"/f [text]");
  168. format(text,sizeof(text),"Member %s: %s",SpielerName(playerid),text);
  169. for(new i=0; i<GetMaxPlayers(); i++)
  170. {
  171. if(IsPlayerConnected(i))
  172. {
  173. if(isPlayerInFrakt(i,GetPVarInt(playerid,"Fraktion")))
  174. {
  175. SendClientMessage(i,BLAU,text);
  176. }
  177. }
  178. }
  179. return 1;
  180. }
  181.  
  182. ocmd:tban(playerid,params[])
  183. {
  184. if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
  185. new pID, time, grund[128];
  186. if(sscanf(params,"uis",pID,time,grund))return SendClientMessage(playerid,BLAU,"/tban [playerid] [zeit] [grund]");
  187. if(IsPlayerConnected(pID))
  188. {
  189. if(time>0&&time<1000)
  190. {
  191. new string[128];
  192. format(string,sizeof(string),"AdmCdm: %s wurde von %s für %i Minuten gebannt. Grund: %s",SpielerName(pID),SpielerName(playerid),time,grund);
  193. SendClientMessageToAll(ROT,string);
  194. new wert;
  195.  
  196. wert=gettime()+(60*time);
  197.  
  198. SetPVarInt(pID,"timeban",wert);
  199.  
  200. Kick(pID);
  201. return 1;
  202. }
  203. SendClientMessage(playerid,ROT,"Ungültige Zeit.");
  204. return 1;
  205. }
  206. SendClientMessage(playerid,ROT,"Spieler ist nicht online.");
  207. return 1;
  208. }
  209.  
  210. ocmd:makeleader(playerid,params[])
  211. {
  212. if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
  213. new pID,fID;
  214. if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,BLAU,"/makeleader [playerid] [fraktionsid]");
  215. SetPVarInt(pID,"Fraktion",fID);
  216. SendClientMessage(playerid,BLAU,"Erfolgreich.");
  217. return 1;
  218. }
  219. ocmd:auf(playerid,params[])
  220. {
  221. if(!IsPlayerInRangeOfPoint(playerid,50,2498.6999511719, 2774, 2.5999999046326)) return SendClientMessage(playerid,ROT,"Du bist nicht in der nähe vom Tor.");
  222. {
  223. if(isPlayerInFrakt(playerid,2))
  224. {
  225. MoveObject(tor[0],2498.6999511719, 2774, 15.89999961853,5);
  226. return 1;
  227. }
  228. return SendClientMessage(playerid,ROT,"Du bist nicht in der Mafia.");
  229. }
  230. }
  231. ocmd:zu(playerid,params[])
  232. {
  233. if(!IsPlayerInRangeOfPoint(playerid,50,2498.6999511719, 2774, 2.5999999046326)) return SendClientMessage(playerid,ROT,"Du bist nicht in der nähe vom Tor.");
  234. {
  235. if(isPlayerInFrakt(playerid,2))
  236. {
  237. MoveObject(tor[0],2498.6999511719, 2774, 2.5999999046326,5);
  238. }else{SendClientMessage(playerid,ROT,"Du bist nicht in der Mafia.");return 1;}
  239. }
  240. if(IsPlayerInRangeOfPoint(playerid,10,1195.7708740234, -948.11596679688, 41.720485687256))
  241. {
  242.  
  243.  
  244. }
  245. return 1;
  246. }
  247. ocmd:setadmin(playerid,params[])
  248. {
  249. if(!isPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,ROT,"Du bist kein Admin.");
  250. new pID, rank;
  251. if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,ROT,"/setadmin [spieler] [level]");
  252. if(rank<1||rank>5)return SendClientMessage(playerid,ROT,"Bitte gültigen Rang angeben.");
  253. SetPVarInt(pID,"Adminlevel",rank);
  254. SpielerSpeichern(pID);
  255. SendClientMessageToAll(BLAU,"Es wurde jemand zu Admin gemacht.");
  256. return 1;
  257. }
  258. ocmd:ban(playerid,params[])
  259. {
  260. if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Admin.");
  261. new pID, reason[128],string[128];
  262. if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,BLAU,"/ban [id] [grund]");
  263. format(string,sizeof(string),"AdmCmd: %s wurde von %s gebannt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
  264. SendClientMessageToAll(ROT,string);
  265. SetPVarInt(pID,"Baned",1);
  266. Kick(pID);
  267. return 1;
  268. }
  269. ocmd:kick(playerid,params[])
  270. {
  271. if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Admin.");
  272. new pID, reason[128],string[128];
  273. if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,BLAU,"/kick [id] [grund]");
  274. format(string,sizeof(string),"AdmCmd: %s wurde von %s gekickt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
  275. SendClientMessageToAll(ROT,string);
  276. Kick(pID);
  277. return 1;
  278. }
  279.  
  280. public OnPlayerCommandText(playerid, cmdtext[])
  281. {
  282. if(strcmp(cmdtext,"/bsn",true)==0)
  283. {
  284. if(isPlayerAnAdmin(playerid,3))
  285. {
  286. ShowPlayerDialog(playerid,DIALOG_TUTORIAL,DIALOG_STYLE_MSGBOX,"BSN","Möchten sie wirklich zum BSN?","JA","NEIN");
  287. return 1;
  288. }
  289. SendClientMessage(playerid,BLAU,"Du bist kein Admin.");
  290. return 1;
  291. }
  292. if(strcmp(cmdtext,"/kill",true)==0)
  293. {
  294. SetPlayerHealth(playerid,0);
  295. return 1;
  296. }
  297. if(strcmp(cmdtext,"/restart",true)==0)
  298. {
  299. if(isPlayerAnAdmin(playerid,5))
  300. {
  301. SendRconCommand("gmx");
  302. return 1;
  303. }
  304. SendClientMessage(playerid,BLAU,"Du bist kein Admin.");
  305. return 1;
  306. }
  307. if(strcmp(cmdtext,"/stats",true)==0)
  308. {
  309. new string[128];
  310. new fraktname[64];
  311. switch(GetPVarInt(playerid,"Fraktion"))
  312. {
  313. case 0:{fraktname="Keine";}
  314. case 1:{fraktname=fraktname1;}
  315. case 2:{fraktname=fraktname2;}
  316. case 3:{fraktname=fraktname3;}
  317. }
  318. //1 reihe
  319. format(string,sizeof(string),"[Name: %s] [Level: %i] [Adminlevel: %i] [Fraktion: %s]",SpielerName(playerid),GetPlayerScore(playerid),GetPVarInt(playerid,"Adminlevel"),fraktname);
  320. SendClientMessage(playerid,BLAU,string);
  321. //2 reihe
  322. return 1;
  323. }
  324. if(strcmp(cmdtext,"/nschild",true)==0)
  325. {
  326. if(IsPlayerInAnyVehicle(playerid))
  327. {
  328. new vehicleid;
  329. vehicleid=GetPlayerVehicleID(playerid);
  330. SetVehicleNumberPlate(vehicleid,"Test");
  331. SetVehicleToRespawn(vehicleid);
  332. PutPlayerInVehicle(playerid,vehicleid,0);
  333. }
  334. return 1;
  335. }
  336. return 0;
  337. }
  338.  
  339. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  340. {
  341. return 1;
  342. }
  343.  
  344. public OnPlayerExitVehicle(playerid, vehicleid)
  345. {
  346. return 1;
  347. }
  348.  
  349. public OnPlayerStateChange(playerid, newstate, oldstate)
  350. {
  351. if(newstate==PLAYER_STATE_DRIVER)
  352. {
  353. for(new i=0; i<sizeof(mafiacar); i++)
  354. {
  355. if(GetPlayerVehicleID(playerid)==mafiacar[i])
  356. {
  357. if(GetPVarInt(playerid,"Fraktion")!=2)
  358. {
  359. RemovePlayerFromVehicle(playerid);
  360. SendClientMessage(playerid,ROT,"Du darfst dieses Fahrzeug nicht fahren.");
  361. }
  362. }
  363. }
  364. }
  365. return 1;
  366. }
  367.  
  368. public OnPlayerEnterCheckpoint(playerid)
  369. {
  370. return 1;
  371. }
  372.  
  373. public OnPlayerLeaveCheckpoint(playerid)
  374. {
  375. return 1;
  376. }
  377.  
  378. public OnPlayerEnterRaceCheckpoint(playerid)
  379. {
  380. return 1;
  381. }
  382.  
  383. public OnPlayerLeaveRaceCheckpoint(playerid)
  384. {
  385. return 1;
  386. }
  387.  
  388. public OnRconCommand(cmd[])
  389. {
  390. return 1;
  391. }
  392.  
  393. public OnPlayerRequestSpawn(playerid)
  394. {
  395. return 1;
  396. }
  397.  
  398. public OnObjectMoved(objectid)
  399. {
  400. return 1;
  401. }
  402.  
  403. public OnPlayerObjectMoved(playerid, objectid)
  404. {
  405. return 1;
  406. }
  407.  
  408. public OnPlayerPickUpPickup(playerid, pickupid)
  409. {
  410. if(pickupid==bsnenter)
  411. {
  412. SetPlayerPos(playerid,375.962463,-65.816848,1001.507812);
  413. SetPlayerInterior(playerid,10);
  414. GameTextForPlayer(playerid,"~w~Du ~r~hast ~b~den ~n~~g~BSN betreten.",3000,3);
  415. }
  416. if(pickupid==bsnexit)
  417. {
  418. SetPlayerPos(playerid,1199.4618,-920.8215,43.1059);
  419. SetPlayerFacingAngle(playerid,185.7090);
  420. SetCameraBehindPlayer(playerid);
  421. SetPlayerInterior(playerid,0);
  422. }
  423. return 1;
  424. }
  425.  
  426. public OnVehicleMod(playerid, vehicleid, componentid)
  427. {
  428. return 1;
  429. }
  430.  
  431. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  432. {
  433. return 1;
  434. }
  435.  
  436. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  437. {
  438. return 1;
  439. }
  440.  
  441. public OnPlayerSelectedMenuRow(playerid, row)
  442. {
  443. return 1;
  444. }
  445.  
  446. public OnPlayerExitedMenu(playerid)
  447. {
  448. return 1;
  449. }
  450.  
  451. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  452. {
  453. return 1;
  454. }
  455.  
  456. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  457. {
  458. return 1;
  459. }
  460.  
  461. public OnRconLoginAttempt(ip[], password[], success)
  462. {
  463. return 1;
  464. }
  465.  
  466. public OnPlayerUpdate(playerid)
  467. {
  468. return 1;
  469. }
  470.  
  471. public OnPlayerStreamIn(playerid, forplayerid)
  472. {
  473. return 1;
  474. }
  475.  
  476. public OnPlayerStreamOut(playerid, forplayerid)
  477. {
  478. return 1;
  479. }
  480.  
  481. public OnVehicleStreamIn(vehicleid, forplayerid)
  482. {
  483. return 1;
  484. }
  485.  
  486. public OnVehicleStreamOut(vehicleid, forplayerid)
  487. {
  488. return 1;
  489. }
  490.  
  491. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  492. {
  493. if(dialogid==DIALOG_LOGIN)
  494. {
  495. if(response==0)
  496. {
  497. SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
  498. Kick(playerid);
  499. return 1;
  500. }
  501. if(response==1)
  502. {
  503. if(!strlen(inputtext))
  504. {
  505. SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
  506. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
  507. return 1;
  508. }
  509. else
  510. {
  511. Login(playerid,inputtext);
  512. return 1;
  513. }
  514. }
  515. }
  516. if(dialogid==DIALOG_REGISTER)
  517. {
  518. if(response==0)
  519. {
  520. SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
  521. Kick(playerid);
  522. return 1;
  523. }
  524. if(response==1)
  525. {
  526. if(!strlen(inputtext))
  527. {
  528. SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
  529. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
  530. return 1;
  531. }
  532. else
  533. {
  534. Register(playerid,inputtext);
  535. return 1;
  536. }
  537. }
  538. }
  539. if(dialogid==DIALOG_TUTORIAL)
  540. {
  541. if(response==1)
  542. {
  543. SetPlayerPos(playerid,1227.1797,-914.0590,42.6812);
  544. SendClientMessage(playerid,0xFFFF00FF,"Du wurdest Teleportiert");
  545. }
  546. if(response==0)
  547. {
  548. SendClientMessage(playerid,BLAU,"Ok dann halt nicht...");
  549. }
  550. }
  551. return 1;
  552. }
  553.  
  554. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  555. {
  556. return 1;
  557. }
  558.  
  559. stock SpielerName(playerid)
  560. {
  561. new name[MAX_PLAYER_NAME];
  562. GetPlayerName(playerid,name,sizeof(name));
  563. return name;
  564. }
  565.  
  566. stock Register(playerid,key[])
  567. {
  568. new Spielerdatei[64];
  569. new name[MAX_PLAYER_NAME];
  570. GetPlayerName(playerid,name,sizeof(name));
  571. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  572. dini_Create(Spielerdatei);
  573. dini_Set(Spielerdatei,"Passwort",key);
  574. SendClientMessage(playerid,BLAU,"Erfolgreich registriert.");
  575. SetPlayerScore(playerid,0);
  576. SetPVarInt(playerid,"loggedin",1);
  577. return 1;
  578. }
  579.  
  580. stock Login(playerid,key[])
  581. {
  582. new Spielerdatei[64];
  583. new name[MAX_PLAYER_NAME];
  584. GetPlayerName(playerid,name,sizeof(name));
  585. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  586.  
  587. if(gettime()<dini_Int(Spielerdatei,"timeban"))
  588. {
  589. SendClientMessage(playerid,ROT,"Du bist noch gebannt. Komm später wieder.");
  590. Kick(playerid);
  591.  
  592. }
  593.  
  594. if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
  595. {
  596. LoadAccount(playerid);
  597. SendClientMessage(playerid,BLAU,"Erfolgreich eingeloggt.");
  598. }
  599. else
  600. {
  601. SendClientMessage(playerid,BLAU,"Falsches Passwort.");
  602. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
  603. }
  604. return 1;
  605. }
  606.  
  607. stock LoadAccount(playerid)
  608. {
  609. new Spielerdatei[64];
  610. new name[MAX_PLAYER_NAME];
  611. GetPlayerName(playerid,name,sizeof(name));
  612. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  613. SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
  614. GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
  615. SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
  616. SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
  617. SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
  618. if(GetPVarInt(playerid,"Baned")==1)
  619. {
  620. SendClientMessage(playerid,ROT,"Du bist vom Server gebannt.");
  621. Kick(playerid);
  622. }
  623. SetPVarInt(playerid,"loggedin",1);
  624. return 1;
  625. }
  626.  
  627. stock SpielerSpeichern(playerid)
  628. {
  629. if(GetPVarInt(playerid,"loggedin")==1)
  630. {
  631. new Spielerdatei[64],name[MAX_PLAYER_NAME];
  632. GetPlayerName(playerid,name,24);
  633. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  634. dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
  635. dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
  636. dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
  637. dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
  638. dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
  639. dini_IntSet(Spielerdatei,"timeban",GetPVarInt(playerid,"timeban"));
  640. }
  641. return 1;
  642. }
  643.  
  644. stock isPlayerInFrakt(playerid,fraktid)
  645. {
  646. if(GetPVarInt(playerid,"Fraktion")==fraktid)return 1;
  647. return 0;
  648. }
  649.  
  650. stock isPlayerAnAdmin(playerid,rang)
  651. {
  652. if(GetPVarInt(playerid,"Adminlevel")>=rang)return 1;
  653. return 0;
  654. }
  655.  
  656. stock sscanf(sstring[], format[], {Float,_}:...)
  657. {
  658. #if defined isnull
  659. if (isnull(sstring))
  660. #else
  661. if (sstring[0] == 0 || (sstring[0] == 1 && sstring[1] == 0))
  662. #endif
  663. {
  664. return format[0];
  665. }
  666. #pragma tabsize 4
  667. new
  668. formatPos = 0,
  669. sstringPos = 0,
  670. paramPos = 2,
  671. paramCount = numargs(),
  672. delim = ' ';
  673. while (sstring[sstringPos] && sstring[sstringPos] <= ' ')
  674. {
  675. sstringPos++;
  676. }
  677. while (paramPos < paramCount && sstring[sstringPos])
  678. {
  679. switch (format[formatPos++])
  680. {
  681. case '\0':
  682. {
  683. return 0;
  684. }
  685. case 'i', 'd':
  686. {
  687. new
  688. neg = 1,
  689. num = 0,
  690. ch = sstring[sstringPos];
  691. if (ch == '-')
  692. {
  693. neg = -1;
  694. ch = sstring[++sstringPos];
  695. }
  696. do
  697. {
  698. sstringPos++;
  699. if ('0' <= ch <= '9')
  700. {
  701. num = (num * 10) + (ch - '0');
  702. }
  703. else
  704. {
  705. return -1;
  706. }
  707. }
  708. while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
  709. setarg(paramPos, 0, num * neg);
  710. }
  711. case 'h', 'x':
  712. {
  713. new
  714. num = 0,
  715. ch = sstring[sstringPos];
  716. do
  717. {
  718. sstringPos++;
  719. switch (ch)
  720. {
  721. case 'x', 'X':
  722. {
  723. num = 0;
  724. continue;
  725. }
  726. case '0' .. '9':
  727. {
  728. num = (num << 4) | (ch - '0');
  729. }
  730. case 'a' .. 'f':
  731. {
  732. num = (num << 4) | (ch - ('a' - 10));
  733. }
  734. case 'A' .. 'F':
  735. {
  736. num = (num << 4) | (ch - ('A' - 10));
  737. }
  738. default:
  739. {
  740. return -1;
  741. }
  742. }
  743. }
  744. while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
  745. setarg(paramPos, 0, num);
  746. }
  747. case 'c':
  748. {
  749. setarg(paramPos, 0, sstring[sstringPos++]);
  750. }
  751. case 'f':
  752. {
  753.  
  754. new changestr[16], changepos = 0, strpos = sstringPos;
  755. while(changepos < 16 && sstring[strpos] && sstring[strpos] != delim)
  756. {
  757. changestr[changepos++] = sstring[strpos++];
  758. }
  759. changestr[changepos] = '\0';
  760. setarg(paramPos,0,_:floatstr(changestr));
  761. }
  762. case 'p':
  763. {
  764. delim = format[formatPos++];
  765. continue;
  766. }
  767. case '\'':
  768. {
  769. new
  770. end = formatPos - 1,
  771. ch;
  772. while ((ch = format[++end]) && ch != '\'') {}
  773. if (!ch)
  774. {
  775. return -1;
  776. }
  777. format[end] = '\0';
  778. if ((ch = strfind(sstring, format[formatPos], false, sstringPos)) == -1)
  779. {
  780. if (format[end + 1])
  781. {
  782. return -1;
  783. }
  784. return 0;
  785. }
  786. format[end] = '\'';
  787. sstringPos = ch + (end - formatPos);
  788. formatPos = end + 1;
  789. }
  790. case 'u':
  791. {
  792. new
  793. end = sstringPos - 1,
  794. id = 0,
  795. bool:num = true,
  796. ch;
  797. while ((ch = sstring[++end]) && ch != delim)
  798. {
  799. if (num)
  800. {
  801. if ('0' <= ch <= '9')
  802. {
  803. id = (id * 10) + (ch - '0');
  804. }
  805. else
  806. {
  807. num = false;
  808. }
  809. }
  810. }
  811. if (num && IsPlayerConnected(id))
  812. {
  813. setarg(paramPos, 0, id);
  814. }
  815. else
  816. {
  817. #if !defined foreach
  818. #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  819. #define __SSCANF_FOREACH__
  820. #endif
  821. sstring[end] = '\0';
  822. num = false;
  823. new
  824. name[MAX_PLAYER_NAME];
  825. id = end - sstringPos;
  826. foreach (Player, playerid)
  827. {
  828. GetPlayerName(playerid, name, sizeof (name));
  829. if (!strcmp(name, sstring[sstringPos], true, id))
  830. {
  831. setarg(paramPos, 0, playerid);
  832. num = true;
  833. break;
  834. }
  835. }
  836. if (!num)
  837. {
  838. setarg(paramPos, 0, INVALID_PLAYER_ID);
  839. }
  840. sstring[end] = ch;
  841. #if defined __SSCANF_FOREACH__
  842. #undef foreach
  843. #undef __SSCANF_FOREACH__
  844. #endif
  845. }
  846. sstringPos = end;
  847. }
  848. case 's', 'z':
  849. {
  850. new
  851. i = 0,
  852. ch;
  853. if (format[formatPos])
  854. {
  855. while ((ch = sstring[sstringPos++]) && ch != delim)
  856. {
  857. setarg(paramPos, i++, ch);
  858. }
  859. if (!i)
  860. {
  861. return -1;
  862. }
  863. }
  864. else
  865. {
  866. while ((ch = sstring[sstringPos++]))
  867. {
  868. setarg(paramPos, i++, ch);
  869. }
  870. }
  871. sstringPos--;
  872. setarg(paramPos, i, '\0');
  873. }
  874. default:
  875. {
  876. continue;
  877. }
  878. }
  879. while (sstring[sstringPos] && sstring[sstringPos] != delim && sstring[sstringPos] > ' ')
  880. {
  881. sstringPos++;
  882. }
  883. while (sstring[sstringPos] && (sstring[sstringPos] == delim || sstring[sstringPos] <= ' '))
  884. {
  885. sstringPos++;
  886. }
  887. paramPos++;
  888. }
  889. do
  890. {
  891. if ((delim = format[formatPos++]) > ' ')
  892. {
  893. if (delim == '\'')
  894. {
  895. while ((delim = format[formatPos++]) && delim != '\'') {}
  896. }
  897. else if (delim != 'z')
  898. {
  899. return delim;
  900. }
  901. }
  902. }
  903. while (delim > ' ');
  904. return 0;
  905. }
Advertisement
Add Comment
Please, Sign In to add comment