Advertisement
Guest User

Deathmatch Anfängermode by K3VIN

a guest
Mar 6th, 2012
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.84 KB | None | 0 0
  1. //=============================================[Deathmatch Script by K3VIN]==========================================//
  2. //===================================================================================================================//
  3. //=========================== Dieses Script steht frei zum Download und kann weiter Editiert werden =================//
  4. //================================ Nutzen ist erlaubt. Viel spaß mit dem Script =====================================//
  5. //===================================================================================================================//
  6.  
  7.  
  8.  
  9. #include <a_samp>
  10. #include <dini>
  11. #include <ocmd>
  12.  
  13.  
  14. #define BLAU 0x0087FFFF
  15. #define ROT 0xE10000FF
  16. #define ORANGE 0xFFC800FF
  17.  
  18. #define DIALOG_REGISTER 1
  19. #define DIALOG_LOGIN 2
  20. #define DIALOG_START 3
  21. #define DIALOG_TEAM 4
  22. #define DIALOG_TUT1 5
  23. #define DIALOG_TUT2 6
  24. #define DIALOG_AHILFE 7
  25. #define DIALOG_SPAWN 8
  26. #define DIALOG_WAFFEN 9
  27. #define DIALOG_STATS 10
  28.  
  29. //Fraktionsnamen
  30. #define fraktname1 "LSPD"
  31. #define fraktname2 "Mafia"
  32.  
  33. //Mafia
  34. #define mafiaspawn 1017.7715,-915.2957,42.1797
  35. //LSPD
  36. #define lspdspawn 1071.5770,-910.0116,43.3906
  37.  
  38.  
  39. //spawn
  40. new team[1];
  41. new adminhilfe[1];
  42.  
  43. //forwards
  44. forward IsAtWaffe(playerid);
  45.  
  46.  
  47.  
  48. main()
  49. {
  50. print("\n----------------------------------");
  51. print("DM Script by K3VIN Komplett geladen.");
  52. print("----------------------------------\n");
  53. }
  54.  
  55.  
  56. public OnGameModeInit()
  57. {
  58. //Standart sachen weg
  59. UsePlayerPedAnims(); //damit kann man das schwule laufen abstellen
  60. EnableStuntBonusForAll(false);//damit bekommt man kein geld für stuns
  61. DisableInteriorEnterExits();// macht die standart eingänge weg
  62.  
  63.  
  64. DisableInteriorEnterExits();
  65. SetGameModeText("DM Selfmade");
  66. AddPlayerClass(0,2047.4270,1336.5569,10.6719,188.9284,0,0,0,0,0,0); // position;
  67. AddPlayerClass(1,2047.4270,1336.5569,10.6719,188.9284,25,200,0,0,0,0); // position
  68.  
  69. //pickups und Textlabels am Spawn//
  70. Create3DTextLabel("Hier kannst du dir ein Team aussuchen",ORANGE,1627.8986,-2311.6108,13.5563,10,0,0);
  71. Create3DTextLabel("Hier bekommst du hilfe von einem Admin",ORANGE,1618.4379,-2311.3892,13.5539,10,0,0);
  72. team[0]=CreatePickup(1239,2,1627.8986,-2311.6108,13.5563);
  73. adminhilfe[0]=CreatePickup(1239,2,1618.4379,-2311.3892,13.5539);
  74.  
  75. //pickups und Textlabels Base//
  76. Create3DTextLabel("Hier kannst du dich mit Waffen Ausrüsten,/Waffen",ORANGE,1072.0958,-916.7118,43.3906,10,0,0);
  77. Create3DTextLabel("Hier kannst du dich mit Waffen Ausrüsten,/Waffen",ORANGE,1014.5720,-911.6737,42.3281,10,0,0);
  78. AddStaticPickup(1239,2,1014.5720,-911.6737,42.3281);
  79. AddStaticPickup(1239,2,1072.0958,-916.7118,43.3906);
  80. return 1;
  81. }
  82.  
  83. public OnGameModeExit()
  84. {
  85. return 1;
  86. }
  87.  
  88. public OnPlayerRequestClass(playerid, classid)
  89. {
  90. new Spielerdatei[64];
  91. new name[MAX_PLAYER_NAME];
  92. GetPlayerName(playerid,name,sizeof(name));
  93. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  94. if(dini_Exists(Spielerdatei))
  95. {
  96. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
  97. }
  98. else
  99. {
  100. new spname[MAX_PLAYER_NAME];
  101. new string[256];
  102. GetPlayerName(playerid,spname,sizeof(spname));
  103. format(string,sizeof(string), "Willkommen %s\n\nLieber User,\nSie haben jetzt die Entscheidung\nob sie sich Registrieren möchten.\n\nViel Spaß.\n",spname);
  104. ShowPlayerDialog(playerid, DIALOG_START, DIALOG_STYLE_MSGBOX,"Willkommen",string,"Ja", "Nein");
  105. }
  106. SetSpawnInfo(playerid,0,101,1641.1324,-2334.6340,13.5469,37.6720,0,0,0,0,0,0 );
  107. return 1;
  108. }
  109.  
  110. public OnPlayerConnect(playerid)
  111. {
  112. if(IsPlayerNPC(playerid))return 1;
  113. new Spielerdatei[64];
  114. new name[MAX_PLAYER_NAME];
  115. new string[128];
  116. new spname[MAX_PLAYER_NAME];
  117. GetPlayerName(playerid, spname, sizeof(spname));
  118. GetPlayerName(playerid,name,sizeof(name));
  119. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  120. SendClientMessage(playerid, ROT, " ");
  121. SendClientMessage(playerid, ROT, " ");
  122. SendClientMessage(playerid, ROT, " ");
  123. SendClientMessage(playerid, ROT, " ");
  124. SendClientMessage(playerid, ROT, " ");
  125. SendClientMessage(playerid, ROT, " ");
  126. SendClientMessage(playerid, ROT, " ");
  127. SendClientMessage(playerid, ROT, " ");
  128. format(string,sizeof(string),"User: %s [ID: %d] hat den Server betreten", spname,playerid);
  129. SendClientMessageToAll(ORANGE,string);
  130. return 1;
  131. }
  132.  
  133. public OnPlayerDisconnect(playerid, reason)
  134. {
  135. if(GetPVarInt(playerid,"loggedin")==1)
  136. {
  137. SpielerSpeichern(playerid);
  138. }
  139. return 1;
  140. }
  141.  
  142. public OnPlayerSpawn(playerid)
  143. {
  144. return 1;
  145. }
  146.  
  147. public OnPlayerDeath(playerid, killerid, reason)
  148. {
  149. return 1;
  150. }
  151.  
  152. public OnVehicleSpawn(vehicleid)
  153. {
  154. return 1;
  155. }
  156.  
  157. public OnVehicleDeath(vehicleid, killerid)
  158. {
  159. return 1;
  160. }
  161.  
  162. public OnPlayerText(playerid, text[])
  163. {
  164. return 1;
  165. }
  166.  
  167.  
  168. ocmd:stats(playerid,params[])
  169. {
  170. new string[600];
  171. format(string,sizeof(string),"Name: %s\nAdmin Level:%i\nDeaths: %i",SpielerName(playerid),GetPVarInt(playerid,"Adminlevel"));
  172. ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"{FF0000}Meine Stats{FF0000}",string, "_","_");
  173. }
  174. ocmd:tban(playerid,params[])
  175. {
  176. if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
  177. new pID, time, grund[128];
  178. if(sscanf(params,"uis",pID,time,grund))return SendClientMessage(playerid,BLAU,"/tban [playerid] [zeit] [grund]");
  179. if(IsPlayerConnected(pID))
  180. {
  181. if(time>0&&time<1000)
  182. {
  183. new string[128];
  184. format(string,sizeof(string),"AdmCdm: %s wurde von %s für %i Minuten gebannt. Grund: %s",SpielerName(pID),SpielerName(playerid),time,grund);
  185. SendClientMessageToAll(ROT,string);
  186. new wert;
  187.  
  188. wert=gettime()+(60*time);
  189.  
  190. SetPVarInt(pID,"timeban",wert);
  191.  
  192. Kick(pID);
  193. return 1;
  194. }
  195. SendClientMessage(playerid,ROT,"Ungültige Zeit.");
  196. return 1;
  197. }
  198. SendClientMessage(playerid,ROT,"Spieler ist nicht online.");
  199. return 1;
  200. }
  201. ocmd:setadmin(playerid,params[])
  202. {
  203. if(!isPlayerAnAdmin(playerid,5) || IsPlayerAdmin(playerid))return SendClientMessage(playerid,ROT,"Du bist kein Admin.");
  204. new pID, rank;
  205. if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,ROT,"/setadmin [spieler] [level]");
  206. if(rank<1||rank>5)return SendClientMessage(playerid,ROT,"Bitte gültigen Rang angeben.");
  207. SetPVarInt(pID,"Adminlevel",rank);
  208. SpielerSpeichern(pID);
  209. SendClientMessageToAll(BLAU,"Es wurde jemand zu Admin gemacht.");
  210. return 1;
  211. }
  212. ocmd:kick(playerid,params[])
  213. {
  214. if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Admin.");
  215. new pID, reason[128],string[128];
  216. if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,BLAU,"/kick [id] [grund]");
  217. format(string,sizeof(string),"AdmCmd: %s wurde von %s gekickt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
  218. SendClientMessageToAll(ROT,string);
  219. Kick(pID);
  220. return 1;
  221. }
  222.  
  223. public OnPlayerCommandText(playerid, cmdtext[])
  224. {
  225.  
  226. if(strcmp(cmdtext,"/restart",true)==0)
  227. {
  228. if(isPlayerAnAdmin(playerid,5))
  229. {
  230. SendRconCommand("gmx");
  231. return 1;
  232. }
  233. SendClientMessage(playerid,BLAU,"Du bist kein Admin.");
  234. return 1;
  235. }
  236. if(strcmp(cmdtext,"/waffen",true)==0)
  237. {
  238. if(IsAtWaffe(playerid))
  239. {
  240. ShowPlayerDialog(playerid, DIALOG_WAFFEN, DIALOG_STYLE_LIST, "Waffen","Alle","Auswahl","Abbrechen");
  241. }
  242. else
  243. {
  244. SendClientMessage(playerid, ROT, "Du bist nicht am Waffenpunkt!");
  245. }
  246. return 1;
  247. }
  248. if(strcmp(cmdtext,"/regeln",true)==0)
  249. {
  250. SendClientMessage(playerid, ROT, "-Keine Beleidigungen -Keine Rassistischen äusserungen -Kein Mobbing...");
  251. }
  252. if(strcmp(cmdtext,"/registrieren",true)==0)
  253. {
  254. if(IsPlayerConnected(playerid))
  255. {
  256. new Spielerdatei[64];
  257. new name[MAX_PLAYER_NAME];
  258. GetPlayerName(playerid,name,sizeof(name));
  259. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  260. if(dini_Exists(Spielerdatei))
  261. {
  262. SendClientMessage(playerid, ROT, "Du bist schon Registriert!");
  263. }
  264. else
  265. {
  266. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
  267. }
  268.  
  269. }
  270. }
  271. return 1;
  272. }
  273.  
  274. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  275. {
  276. return 1;
  277. }
  278.  
  279. public OnPlayerExitVehicle(playerid, vehicleid)
  280. {
  281. return 1;
  282. }
  283.  
  284. public OnPlayerStateChange(playerid, newstate, oldstate)
  285. {
  286. return 1;
  287. }
  288.  
  289. public OnPlayerEnterCheckpoint(playerid)
  290. {
  291. return 1;
  292. }
  293.  
  294. public OnPlayerLeaveCheckpoint(playerid)
  295. {
  296. return 1;
  297. }
  298.  
  299. public OnPlayerEnterRaceCheckpoint(playerid)
  300. {
  301. return 1;
  302. }
  303.  
  304. public OnPlayerLeaveRaceCheckpoint(playerid)
  305. {
  306. return 1;
  307. }
  308.  
  309. public OnRconCommand(cmd[])
  310. {
  311. return 1;
  312. }
  313.  
  314. public OnPlayerRequestSpawn(playerid)
  315. {
  316. return 1;
  317. }
  318.  
  319. public OnObjectMoved(objectid)
  320. {
  321. return 1;
  322. }
  323.  
  324. public OnPlayerObjectMoved(playerid, objectid)
  325. {
  326. return 1;
  327. }
  328.  
  329. public OnPlayerPickUpPickup(playerid, pickupid)
  330. {
  331. if(pickupid==team[0])
  332. {
  333. ShowPlayerDialog(playerid,DIALOG_TEAM,DIALOG_STYLE_LIST,"Dein Team","LSPD\nMafia","Auswahl","Abbrechen");
  334. }
  335. if(pickupid==adminhilfe[0])
  336. {
  337. ShowPlayerDialog(playerid,DIALOG_AHILFE,DIALOG_STYLE_MSGBOX,"Admin Support","Einen Moment bitte,\nEin Admin kümmert sich gleich um dich.","__","");
  338. }
  339. return 1;
  340. }
  341.  
  342. public OnVehicleMod(playerid, vehicleid, componentid)
  343. {
  344. return 1;
  345. }
  346.  
  347. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  348. {
  349. return 1;
  350. }
  351.  
  352. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  353. {
  354. return 1;
  355. }
  356.  
  357. public OnPlayerSelectedMenuRow(playerid, row)
  358. {
  359. return 1;
  360. }
  361.  
  362. public OnPlayerExitedMenu(playerid)
  363. {
  364. return 1;
  365. }
  366.  
  367. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  368. {
  369. return 1;
  370. }
  371.  
  372. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  373. {
  374. return 1;
  375. }
  376.  
  377. public OnRconLoginAttempt(ip[], password[], success)
  378. {
  379. return 1;
  380. }
  381.  
  382. public OnPlayerUpdate(playerid)
  383. {
  384. return 1;
  385. }
  386.  
  387. public OnPlayerStreamIn(playerid, forplayerid)
  388. {
  389. return 1;
  390. }
  391.  
  392. public OnPlayerStreamOut(playerid, forplayerid)
  393. {
  394. return 1;
  395. }
  396.  
  397. public OnVehicleStreamIn(vehicleid, forplayerid)
  398. {
  399. return 1;
  400. }
  401.  
  402. public OnVehicleStreamOut(vehicleid, forplayerid)
  403. {
  404. return 1;
  405. }
  406.  
  407. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  408. {
  409. if(dialogid==DIALOG_LOGIN)
  410. {
  411. if(response==0)
  412. {
  413. SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
  414. Kick(playerid);
  415. return 1;
  416. }
  417. if(response==1)
  418. {
  419. if(!strlen(inputtext))
  420. {
  421. SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
  422. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
  423. return 1;
  424. }
  425. else
  426. {
  427. Login(playerid,inputtext);
  428. return 1;
  429. }
  430. }
  431. }
  432. if(dialogid==DIALOG_AHILFE)
  433. {
  434. if(response)
  435. {
  436. new string[128];
  437. new spname[MAX_PLAYER_NAME];
  438. GetPlayerName(playerid, spname, sizeof(spname));
  439. format(string,sizeof(string),"Neuling %s ist neu und braucht Hilfe. Bitte kümmert euch drum.",spname,playerid);
  440. for(new i=0; i<MAX_PLAYERS; i++)
  441. {
  442. if(isPlayerAnAdmin(i, 1))
  443. {
  444. SendClientMessage(i, BLAU, string);
  445. }
  446. }
  447. }
  448. }
  449. if(dialogid==DIALOG_WAFFEN)
  450. {
  451. if(response==0)
  452. {
  453. SendClientMessage(playerid, ROT, "Abgebrochen");
  454. }
  455. if(listitem==0)
  456. {
  457. SendClientMessage(playerid, BLAU, "Du hast dich mit allen Waffen ausgerüstet. Zeigs ihnen.");
  458. GivePlayerWeapon(playerid, 24,500);
  459. GivePlayerWeapon(playerid, 41,500);
  460. GivePlayerWeapon(playerid, 31,500);
  461. SetPlayerHealth(playerid, 100);
  462. SetPlayerArmour(playerid, 100);
  463. }
  464. }
  465. if(dialogid==DIALOG_SPAWN)
  466. {
  467. if(response==1)
  468. {
  469. ShowPlayerDialog(playerid, DIALOG_TUT1, DIALOG_STYLE_MSGBOX, "Deathmatch by K3VIN","Das hier ist ein DM Server,\nUnd haltet euch bitte an die Regeln\n!","Weiter","");
  470. }
  471. return 1;
  472. }
  473. if(dialogid==DIALOG_REGISTER)
  474. {
  475. if(response==0)
  476. {
  477. SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
  478. Kick(playerid);
  479. return 1;
  480. }
  481. if(response==1)
  482. {
  483. if(!strlen(inputtext))
  484. {
  485. SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
  486. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
  487. return 1;
  488. }
  489. else
  490. {
  491. Register(playerid,inputtext);
  492. return 1;
  493. }
  494. }
  495. }
  496. if(dialogid==DIALOG_START)
  497. {
  498. if(response==0)
  499. {
  500. ShowPlayerDialog(playerid, DIALOG_SPAWN, DIALOG_STYLE_MSGBOX, "Fast fertig","Du hast es soweit geschafft,\nDu hast dich entschieden, dich nicht zu Registrieren.\n Du kannst dich jeder zeit ingame Registrieren,\ndafür tippe /registrieren.\nWir wünschen dir viel Spaß.","Weiter","");
  501. }
  502. if(response==1)
  503. {
  504. new string[256];
  505. new spieler[MAX_PLAYER_NAME];
  506. format(string,sizeof(string), "Name: %i\n Wir wünschen dir viel Spaß auf unserem Server.\nDie Registration beginnt mit deiner Passwort\n eingabe.",spieler);
  507. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_MSGBOX,"Deathmatch Script by K3VIN",string,"Weiter","");
  508. return 1;
  509. }
  510. }
  511. if(dialogid==DIALOG_TUT1)
  512. {
  513. if(response)
  514. {
  515. ShowPlayerDialog(playerid, DIALOG_TUT2, DIALOG_STYLE_MSGBOX, "Die Regeln","Hinter jedem Spieler, steckt ein echter Mensch,\ndaher haltet euch an folgende Regeln:\n-Keine Beleidigungen\n-Kein C-Bug\n-Kein Mobbing\n-Keine Rassistischen o.ä\n\nAktzeptierst du die Regeln","Ja","Nein");
  516. }
  517. return 1;
  518.  
  519. }
  520. if(dialogid==DIALOG_TUT2)
  521. {
  522. if(response==0)
  523. {
  524. Kick(playerid);
  525. SendClientMessage(playerid, ROT,"Du hast die Regeln nicht aktzeptiert.");
  526. }
  527. if(response==1)
  528. {
  529. SpawnPlayer(playerid);
  530. SendClientMessage(playerid, ORANGE, "Die Regeln kannst du jederzeit unter /regeln nachlesen. Viel Spaß");
  531. }
  532. }
  533. if(dialogid==DIALOG_TEAM)
  534. {
  535. if(response)
  536. {
  537. if(listitem == 0)
  538. {
  539. SendClientMessage(playerid, BLAU, "Du hast dich für das LSPD entschieden!");
  540. SetPlayerSkin(playerid,265);
  541. SetPlayerPos(playerid,lspdspawn);
  542. SetPlayerColor(playerid,BLAU);
  543. return 1;
  544. }
  545. if(listitem == 1)
  546. {
  547. SendClientMessage(playerid, BLAU, "Du hast dich für die Mafia entschieden!");
  548. SetPlayerSkin(playerid,116);
  549. SetPlayerPos(playerid,mafiaspawn);
  550. SetPlayerColor(playerid,ORANGE);
  551. return 1;
  552. }
  553. }
  554. }
  555. return 1;
  556. }
  557.  
  558. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  559. {
  560. return 1;
  561. }
  562. public IsAtWaffe(playerid)
  563. {
  564. if(IsPlayerInRangeOfPoint(playerid,5.0, 1072.0958,-916.7118,43.3906) || IsPlayerInRangeOfPoint(playerid,5.0, 1014.5720,-911.6737,42.3281))
  565. {
  566. return 1;
  567. }
  568. return 1;
  569. }
  570.  
  571. stock SpielerName(playerid)
  572. {
  573. new name[MAX_PLAYER_NAME];
  574. GetPlayerName(playerid,name,sizeof(name));
  575. return name;
  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. ShowPlayerDialog(playerid, DIALOG_TUT1, DIALOG_STYLE_MSGBOX, "Deathmatch by K3VIN","Das hier ist ein DM Server,\nUnd haltet euch bitte an die Regeln\n!","Weiter","");
  590. return 1;
  591. }
  592.  
  593. stock Login(playerid,key[])
  594. {
  595. new Spielerdatei[64];
  596. new name[MAX_PLAYER_NAME];
  597. GetPlayerName(playerid,name,sizeof(name));
  598. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  599.  
  600. if(gettime()<dini_Int(Spielerdatei,"timeban"))
  601. {
  602. SendClientMessage(playerid,ROT,"Dein Account wurde gebannt!.");
  603. Kick(playerid);
  604. return 1;
  605. }
  606.  
  607. if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
  608. {
  609. LoadAccount(playerid);
  610. SpawnPlayer(playerid);
  611. SendClientMessage(playerid,BLAU,"Erfolgreich eingeloggt.");
  612. return 1;
  613. }
  614. else
  615. {
  616. SendClientMessage(playerid,BLAU,"Falsches Passwort.");
  617. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
  618. return 1;
  619. }
  620. }
  621.  
  622. stock LoadAccount(playerid)
  623. {
  624. new Spielerdatei[64];
  625. new name[MAX_PLAYER_NAME];
  626. GetPlayerName(playerid,name,sizeof(name));
  627. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  628. SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
  629. GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
  630. SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
  631. SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
  632. SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
  633. if(GetPVarInt(playerid,"Baned")==1)
  634. {
  635. SendClientMessage(playerid,ROT,"Du bist vom Server gebannt.");
  636. Kick(playerid);
  637. }
  638. SetPVarInt(playerid,"loggedin",1);
  639. return 1;
  640. }
  641.  
  642. stock SpielerSpeichern(playerid)
  643. {
  644. if(GetPVarInt(playerid,"loggedin")==1)
  645. {
  646. new Spielerdatei[64];
  647. new name[MAX_PLAYER_NAME];
  648. GetPlayerName(playerid,name,sizeof(name));
  649. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  650. dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
  651. dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
  652. dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
  653. dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
  654. dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
  655. dini_IntSet(Spielerdatei,"timeban",GetPVarInt(playerid,"timeban"));
  656. }
  657. return 1;
  658. }
  659.  
  660.  
  661. stock isPlayerAnAdmin(playerid,rang)
  662. {
  663. if(GetPVarInt(playerid,"Adminlevel")>=rang)return 1;
  664. return 0;
  665. }
  666.  
  667. stock sscanf(sstring[], format[], {Float,_}:...)
  668. {
  669. #if defined isnull
  670. if (isnull(sstring))
  671. #else
  672. if (sstring[0] == 0 || (sstring[0] == 1 && sstring[1] == 0))
  673. #endif
  674. {
  675. return format[0];
  676. }
  677. #pragma tabsize 4
  678. new
  679. formatPos = 0,
  680. sstringPos = 0,
  681. paramPos = 2,
  682. paramCount = numargs(),
  683. delim = ' ';
  684. while (sstring[sstringPos] && sstring[sstringPos] <= ' ')
  685. {
  686. sstringPos++;
  687. }
  688. while (paramPos < paramCount && sstring[sstringPos])
  689. {
  690. switch (format[formatPos++])
  691. {
  692. case '\0':
  693. {
  694. return 0;
  695. }
  696. case 'i', 'd':
  697. {
  698. new
  699. neg = 1,
  700. num = 0,
  701. ch = sstring[sstringPos];
  702. if (ch == '-')
  703. {
  704. neg = -1;
  705. ch = sstring[++sstringPos];
  706. }
  707. do
  708. {
  709. sstringPos++;
  710. if ('0' <= ch <= '9')
  711. {
  712. num = (num * 10) + (ch - '0');
  713. }
  714. else
  715. {
  716. return -1;
  717. }
  718. }
  719. while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
  720. setarg(paramPos, 0, num * neg);
  721. }
  722. case 'h', 'x':
  723. {
  724. new
  725. num = 0,
  726. ch = sstring[sstringPos];
  727. do
  728. {
  729. sstringPos++;
  730. switch (ch)
  731. {
  732. case 'x', 'X':
  733. {
  734. num = 0;
  735. continue;
  736. }
  737. case '0' .. '9':
  738. {
  739. num = (num << 4) | (ch - '0');
  740. }
  741. case 'a' .. 'f':
  742. {
  743. num = (num << 4) | (ch - ('a' - 10));
  744. }
  745. case 'A' .. 'F':
  746. {
  747. num = (num << 4) | (ch - ('A' - 10));
  748. }
  749. default:
  750. {
  751. return -1;
  752. }
  753. }
  754. }
  755. while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
  756. setarg(paramPos, 0, num);
  757. }
  758. case 'c':
  759. {
  760. setarg(paramPos, 0, sstring[sstringPos++]);
  761. }
  762. case 'f':
  763. {
  764.  
  765. new changestr[16], changepos = 0, strpos = sstringPos;
  766. while(changepos < 16 && sstring[strpos] && sstring[strpos] != delim)
  767. {
  768. changestr[changepos++] = sstring[strpos++];
  769. }
  770. changestr[changepos] = '\0';
  771. setarg(paramPos,0,_:floatstr(changestr));
  772. }
  773. case 'p':
  774. {
  775. delim = format[formatPos++];
  776. continue;
  777. }
  778. case '\'':
  779. {
  780. new
  781. end = formatPos - 1,
  782. ch;
  783. while ((ch = format[++end]) && ch != '\'') {}
  784. if (!ch)
  785. {
  786. return -1;
  787. }
  788. format[end] = '\0';
  789. if ((ch = strfind(sstring, format[formatPos], false, sstringPos)) == -1)
  790. {
  791. if (format[end + 1])
  792. {
  793. return -1;
  794. }
  795. return 0;
  796. }
  797. format[end] = '\'';
  798. sstringPos = ch + (end - formatPos);
  799. formatPos = end + 1;
  800. }
  801. case 'u':
  802. {
  803. new
  804. end = sstringPos - 1,
  805. id = 0,
  806. bool:num = true,
  807. ch;
  808. while ((ch = sstring[++end]) && ch != delim)
  809. {
  810. if (num)
  811. {
  812. if ('0' <= ch <= '9')
  813. {
  814. id = (id * 10) + (ch - '0');
  815. }
  816. else
  817. {
  818. num = false;
  819. }
  820. }
  821. }
  822. if (num && IsPlayerConnected(id))
  823. {
  824. setarg(paramPos, 0, id);
  825. }
  826. else
  827. {
  828. #if !defined foreach
  829. #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  830. #define __SSCANF_FOREACH__
  831. #endif
  832. sstring[end] = '\0';
  833. num = false;
  834. new
  835. name[MAX_PLAYER_NAME];
  836. id = end - sstringPos;
  837. foreach (Player, playerid)
  838. {
  839. GetPlayerName(playerid, name, sizeof (name));
  840. if (!strcmp(name, sstring[sstringPos], true, id))
  841. {
  842. setarg(paramPos, 0, playerid);
  843. num = true;
  844. break;
  845. }
  846. }
  847. if (!num)
  848. {
  849. setarg(paramPos, 0, INVALID_PLAYER_ID);
  850. }
  851. sstring[end] = ch;
  852. #if defined __SSCANF_FOREACH__
  853. #undef foreach
  854. #undef __SSCANF_FOREACH__
  855. #endif
  856. }
  857. sstringPos = end;
  858. }
  859. case 's', 'z':
  860. {
  861. new
  862. i = 0,
  863. ch;
  864. if (format[formatPos])
  865. {
  866. while ((ch = sstring[sstringPos++]) && ch != delim)
  867. {
  868. setarg(paramPos, i++, ch);
  869. }
  870. if (!i)
  871. {
  872. return -1;
  873. }
  874. }
  875. else
  876. {
  877. while ((ch = sstring[sstringPos++]))
  878. {
  879. setarg(paramPos, i++, ch);
  880. }
  881. }
  882. sstringPos--;
  883. setarg(paramPos, i, '\0');
  884. }
  885. default:
  886. {
  887. continue;
  888. }
  889. }
  890. while (sstring[sstringPos] && sstring[sstringPos] != delim && sstring[sstringPos] > ' ')
  891. {
  892. sstringPos++;
  893. }
  894. while (sstring[sstringPos] && (sstring[sstringPos] == delim || sstring[sstringPos] <= ' '))
  895. {
  896. sstringPos++;
  897. }
  898. paramPos++;
  899. }
  900. do
  901. {
  902. if ((delim = format[formatPos++]) > ' ')
  903. {
  904. if (delim == '\'')
  905. {
  906. while ((delim = format[formatPos++]) && delim != '\'') {}
  907. }
  908. else if (delim != 'z')
  909. {
  910. return delim;
  911. }
  912. }
  913. }
  914. while (delim > ' ');
  915. return 0;
  916. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement