Advertisement
Guest User

Untitled

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