mskamilor

Freeroam

Mar 18th, 2012
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 31.14 KB | None | 0 0
  1. /*==============================================================================
  2. Copyright (c) 2012-2013
  3. mskamilor
  4. ===============================================================================*/
  5.  
  6. /* UPDATES */
  7.  
  8. /* 0.0.1v
  9. ============================
  10.  
  11. - /ah
  12. - /makeadmin
  13. - /cveh
  14. - /fixveh
  15. - /ban
  16. - /kick
  17. - /stats im Dialog
  18. - /tune
  19. - /aduty
  20. - /pm
  21. - /blockpm
  22. - /fightstyle
  23. - Viele Objekte (Selfmade)
  24. - /base - Selfmade by mein Freund aus Polen ;)
  25. - /ls
  26. - /lv
  27. - /sf
  28. - /afk
  29. - /back
  30. - Payday (+1500$)
  31. - es gibt nun angepasste Waffenpacks, mehr Score = Bessere waffen beim Spawn
  32. - Tod = -1 Score, Kill = +1 Score
  33. - /platt - macht alle reifen von einen Spielen Platt (Admin cmd)
  34. - anti Speedhack (Autos)
  35. - /updates
  36. - Admin befehle werden in den Server Logs gespeichert
  37.  
  38. - Fileloader Objekte, autos, pickups, skins können (müssen nicht) in der datei in Scriptfiles geschpeichert werden
  39. so kann man viel platz im Gamemode sparren. (/sciprtfiles/fLoader.cfg)
  40.  
  41. - Willkommen auf (Servername eintragen) - Textdraw(beim Register/login)
  42. - neue sachen werden geschpeichert (Leader,Fraktion)
  43. - /makeleader
  44. - /invite
  45.  
  46. // To Do list //
  47.  
  48. - /hilfe
  49. - /teleports (es gibt noch keine Port befehle)
  50. - /ah (ihr müsst die befehle rein schreiben)
  51. - ihr müsst euch Autos Mappen es gibt noch keine im Gamemode
  52.  
  53. ============================
  54. */
  55. #include <a_samp>
  56. #include <dini>
  57. #include <ocmd>
  58. #include <streamer>
  59.  
  60.  
  61. #define COLOR_RED 0xFF6347AA
  62. #define COLOR_WHITE 0xFFFFFFFF
  63. #define ORANGE 0xFF9900AA
  64. #define hellblau 0xFFFFFF
  65. #define BLAU 0xFFFFFF
  66.  
  67.  
  68. #define DIALOG_REGISTER 1
  69. #define DIALOG_LOGIN 2
  70. #define DIALOG_AH 3
  71. #define DIALOG_STATS 4
  72. #define Tuning 5
  73. #define Farbe 6
  74. #define Nitro 7
  75. #define DIALOG_FIGHTSTYLE 8
  76. #define DIALOG_UPDATES 9
  77.  
  78. #define Adminlevel1 "Supporter"
  79. #define Adminlevel2 "Admin"
  80. #define Adminlevel3 "Super Admin"
  81. #define Adminlevel4 "Server Manager"
  82. #define Adminlevel5 "Server Owner"
  83.  
  84. #define FRAKTIONEN 1 // wie viele Fraktionen es auf dem Server gibt WICHTIG wegen /makeleader befehl
  85.  
  86. new aduty[MAX_PLAYERS];
  87. new pmblock[MAX_PLAYERS];
  88. new afk[MAX_PLAYERS];
  89. new Text:wbtext;
  90.  
  91. forward PayDay(playerid);
  92. forward Waffen(playerid);
  93.  
  94. Float:GetPlayerVehicleSpeed(playerid)
  95. {
  96. new Float:Vx,Float:Vy,Float:Vz;
  97. GetVehicleVelocity(GetPlayerVehicleID(playerid),Vx,Vy,Vz);
  98. return floatmul(floatmul(floatsqroot(floatpower(floatabs(Vx),2)+floatpower(floatabs(Vy),2)+floatpower(floatabs(Vz),2)),100),1.61);
  99. }
  100.  
  101. main()
  102. {
  103. print("\n----------------------------------");
  104. print(" Freeroam");
  105. print("----------------------------------\n");
  106. }
  107.  
  108. public OnGameModeInit()
  109. {
  110. SetGameModeText("Blank Script");
  111. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  112.  
  113. SetWorldTime(22);
  114.  
  115. SetTimer("PayDay",100000,1);
  116.  
  117. wbtext = TextDrawCreate(200.0,320.0,"Willkommen auf (Servername)");
  118. TextDrawColor(wbtext, 0x00FFFFFF);
  119. TextDrawFont(wbtext,1);
  120. TextDrawSetShadow(wbtext,1);
  121. TextDrawAlignment(wbtext,3);
  122. return 1;
  123. }
  124.  
  125. public OnGameModeExit()
  126. {
  127. TextDrawDestroy(wbtext);
  128. return 1;
  129. }
  130.  
  131. public OnPlayerRequestClass(playerid, classid)
  132. {
  133. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  134. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  135. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  136. return 1;
  137. }
  138.  
  139. public OnPlayerConnect(playerid)
  140. {
  141. for(new i=0; i<10; i++) SendClientMessage(playerid,COLOR_WHITE,"");
  142. new Datei[64];
  143. new name[MAX_PLAYER_NAME];
  144. GetPlayerName(playerid,name,sizeof(name));
  145. format(Datei,sizeof(Datei),"/%s.txt",name);
  146. if(dini_Exists(Datei))
  147. {
  148. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","{FFFFFF}Dein {FF8A05}Account {FFFFFF}wurde gefunden.\nDu kannst dich nun mit deinen Passwort einlogen{FF8A05}:","Login","Abbrechen");
  149. }
  150. else
  151. {
  152. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","{FF8A05}Willkommen\n{FFFFFF}schön das du unseren Server gefunden hast\nDas ist ein Freeroam Server\nAlso ist hier alles außer Cheats erlaubt\n\n\nViel Spaß wünscht ihnen das {FF8A05}Team","Register","Abbrechen");
  153. }
  154. aduty[playerid] = 0;
  155. pmblock[playerid] =0;
  156. afk[playerid] =0;
  157. new str1[200];
  158. format(str1,sizeof(str1),"{00FF00}%s hat den Server betreten",SpielerName(playerid));
  159. SendClientMessageToAll(COLOR_RED,str1);
  160. TextDrawShowForPlayer(playerid,wbtext);
  161. return 1;
  162. }
  163.  
  164. public OnPlayerDisconnect(playerid, reason)
  165. {
  166. if(GetPVarInt(playerid,"loggedin")==1)
  167. {
  168. SpielerSpeichern(playerid);
  169. }
  170. aduty[playerid] = 0;
  171. pmblock[playerid] =0;
  172. afk[playerid] =0;
  173. TextDrawHideForPlayer(playerid,wbtext);
  174. return 1;
  175. }
  176.  
  177. public OnPlayerSpawn(playerid)
  178. {
  179. aduty[playerid] = 0;
  180. Waffen(playerid);
  181. TextDrawHideForPlayer(playerid,wbtext);
  182. return 1;
  183. }
  184.  
  185. public OnPlayerDeath(playerid, killerid, reason)
  186. {
  187. aduty[playerid] = 0;
  188. SetPlayerScore(playerid,-1);
  189. SetPlayerScore(killerid,GetPlayerScore(killerid++));
  190. GameTextForPlayer(killerid,"~r~+1 ~y~Score",1000,1);
  191. GameTextForPlayer(playerid,"~r~-1 ~y~Score",1000,1);
  192. return 1;
  193. }
  194.  
  195. public OnVehicleSpawn(vehicleid)
  196. {
  197. return 1;
  198. }
  199.  
  200. public OnVehicleDeath(vehicleid, killerid)
  201. {
  202. return 1;
  203. }
  204.  
  205. public OnPlayerText(playerid, text[])
  206. {
  207. return 1;
  208. }
  209.  
  210. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  211. {
  212. return 1;
  213. }
  214.  
  215. public OnPlayerExitVehicle(playerid, vehicleid)
  216. {
  217. return 1;
  218. }
  219.  
  220. public OnPlayerStateChange(playerid, newstate, oldstate)
  221. {
  222. return 1;
  223. }
  224.  
  225. public OnPlayerEnterCheckpoint(playerid)
  226. {
  227. return 1;
  228. }
  229.  
  230. public OnPlayerLeaveCheckpoint(playerid)
  231. {
  232. return 1;
  233. }
  234.  
  235. public OnPlayerEnterRaceCheckpoint(playerid)
  236. {
  237. return 1;
  238. }
  239.  
  240. public OnPlayerLeaveRaceCheckpoint(playerid)
  241. {
  242. return 1;
  243. }
  244.  
  245. public OnRconCommand(cmd[])
  246. {
  247. return 1;
  248. }
  249.  
  250. public OnPlayerRequestSpawn(playerid)
  251. {
  252. return 1;
  253. }
  254.  
  255. public OnObjectMoved(objectid)
  256. {
  257. return 1;
  258. }
  259.  
  260. public OnPlayerObjectMoved(playerid, objectid)
  261. {
  262. return 1;
  263. }
  264.  
  265. public OnPlayerPickUpPickup(playerid, pickupid)
  266. {
  267. return 1;
  268. }
  269.  
  270. public OnVehicleMod(playerid, vehicleid, componentid)
  271. {
  272. return 1;
  273. }
  274.  
  275. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  276. {
  277. return 1;
  278. }
  279.  
  280. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  281. {
  282. return 1;
  283. }
  284.  
  285. public OnPlayerSelectedMenuRow(playerid, row)
  286. {
  287. return 1;
  288. }
  289.  
  290. public OnPlayerExitedMenu(playerid)
  291. {
  292. return 1;
  293. }
  294.  
  295. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  296. {
  297. return 1;
  298. }
  299.  
  300. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  301. {
  302. return 1;
  303. }
  304.  
  305. public OnRconLoginAttempt(ip[], password[], success)
  306. {
  307. return 1;
  308. }
  309.  
  310. public OnPlayerUpdate(playerid)
  311. {
  312. if(IsPlayerInAnyVehicle(playerid) && GetPlayerVehicleSpeed(playerid)>500)
  313. {
  314. new string[128];
  315. format(string,128,"Anty Cheat: Der Spieler %s wurde wegen Speedhack gebannt",SpielerName(playerid));
  316. SendClientMessageToAll(COLOR_RED,string);
  317. BanEx(playerid,"Speed Hack");
  318. }
  319. new string[444];
  320. format(string,sizeof(string),"%s Zalogował się jako Administrator[RCON]",PlayerName(playerid));
  321. return 1;
  322. }
  323.  
  324. public OnPlayerStreamIn(playerid, forplayerid)
  325. {
  326. return 1;
  327. }
  328.  
  329. public OnPlayerStreamOut(playerid, forplayerid)
  330. {
  331. return 1;
  332. }
  333.  
  334. public OnVehicleStreamIn(vehicleid, forplayerid)
  335. {
  336. return 1;
  337. }
  338.  
  339. public OnVehicleStreamOut(vehicleid, forplayerid)
  340. {
  341. return 1;
  342. }
  343.  
  344. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  345. {
  346. if(dialogid==DIALOG_LOGIN)
  347. {
  348. if(response==0)
  349. {
  350. SendClientMessage(playerid,COLOR_WHITE,"Du hast den Vorgang abgebrochen.");
  351. Kick(playerid);
  352. return 1;
  353. }
  354. if(response==1)
  355. {
  356. if(!strlen(inputtext))
  357. {
  358. SendClientMessage(playerid,COLOR_WHITE,"Das Passwort war nicht lang genug.");
  359. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","{FFFFFF}Du hast nix eingegeben\n\nVersuche es erneut:","Login","Abbrechen");
  360. return 1;
  361. }
  362. else
  363. {
  364. Login(playerid,inputtext);
  365. return 1;
  366. }
  367. }
  368. }
  369. if(dialogid==DIALOG_REGISTER)
  370. {
  371. if(response==0)
  372. {
  373. SendClientMessage(playerid,COLOR_WHITE,"Du hast den Vorgang abgebrochen.");
  374. Kick(playerid);
  375. return 1;
  376. }
  377. if(response==1)
  378. {
  379. if(!strlen(inputtext))
  380. {
  381. SendClientMessage(playerid,COLOR_WHITE,"Das Passwort war nicht lang genug.");
  382. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrieren","{FFFFFF}Du hast nix eingegeben\n\nVersuche es erneut:","Register","Abbrechen");
  383. return 1;
  384. }
  385. else
  386. {
  387. Register(playerid,inputtext);
  388. return 1;
  389. }
  390. }
  391. }
  392. if(dialogid == Tuning)
  393. {
  394. if(IsPlayerInAnyVehicle(playerid))
  395. {
  396. if(listitem == 0)
  397. {
  398. ShowPlayerDialog(playerid,Farbe,DIALOG_STYLE_LIST,"Wähle deine Farbe","Schwarz\nGelb\nWeiß\nRot\nBlau\nDunkelgrün\nSilber\nDunkel Grau","Auswählen","Abbrechen");
  399. return 1;
  400. }
  401. if(listitem == 1)
  402. {
  403. ShowPlayerDialog(playerid,Nitro,DIALOG_STYLE_LIST,"Wähle dein Tuning teil.","Nitro\nHydraulik","Auswählen","Abbrechen.");
  404. return 1;
  405. }
  406. return 1;
  407. }
  408. return 1;
  409. }
  410. if(dialogid == Farbe)
  411. {
  412. if(IsPlayerInAnyVehicle(playerid))
  413. {
  414. if(listitem == 0)
  415. {
  416. ChangeVehicleColor(playerid,0,0);
  417. SendClientMessage(playerid,BLAU,"Ihr Fahrzeug ist nun Schwarz.");
  418. return 1;
  419. }
  420. if(listitem == 1)
  421. {
  422. ChangeVehicleColor(playerid,6,6);
  423. SendClientMessage(playerid,BLAU,"Ihr Fahrzeug ist nun Gelb.");
  424. return 1;
  425. }
  426. if(listitem == 2)
  427. {
  428. ChangeVehicleColor(playerid,1,1);
  429. SendClientMessage(playerid,BLAU,"Ihr Fahrzeug ist nun Weiß.");
  430. return 1;
  431. }
  432. if(listitem == 3)
  433. {
  434. ChangeVehicleColor(playerid,3,3);
  435. SendClientMessage(playerid,BLAU,"Ihr Fahrzeug ist nun Rot.");
  436. return 1;
  437. }
  438. if(listitem == 4)
  439. {
  440. ChangeVehicleColor(playerid,2,2);
  441. SendClientMessage(playerid,BLAU,"Ihr Fahrzeug ist nun Blau.");
  442. return 1;
  443. }
  444. if(listitem == 5)
  445. {
  446. ChangeVehicleColor(playerid,252,252);
  447. SendClientMessage(playerid,BLAU,"Ihr Fahrzeug ist nun Dunkel Grün.");
  448. return 1;
  449. }
  450. if(listitem == 6)
  451. {
  452. ChangeVehicleColor(playerid,255,255);
  453. SendClientMessage(playerid,BLAU,"Ihr Fahrzeug ist nun Silber.");
  454. return 1;
  455. }
  456. if(listitem == 7)
  457. {
  458. ChangeVehicleColor(playerid,253,253);
  459. SendClientMessage(playerid,BLAU,"Ihr Fahrzeug ist nun Dunkel Grau.");
  460. return 1;
  461. }
  462. return 1;
  463. }
  464. return 1;
  465. }
  466. if(dialogid == Nitro)
  467. {
  468. if(IsPlayerInAnyVehicle(playerid))
  469. {
  470. new Vehicle;
  471. Vehicle = GetPlayerVehicleID(playerid);
  472. if(listitem == 0)
  473. {
  474. AddVehicleComponent(Vehicle,1010);
  475. SendClientMessage(playerid,BLAU,"Nitro erfolgreich Hinzugefügt.");
  476. return 1;
  477. }
  478. if(listitem == 1)
  479. {
  480. AddVehicleComponent(Vehicle,1087);
  481. SendClientMessage(playerid,BLAU,"Hydraulik erfolgreich Hinzugefügt.");
  482. return 1;
  483. }
  484. return 1;
  485. }
  486. }
  487. if(dialogid == DIALOG_FIGHTSTYLE)
  488. {
  489. switch(listitem)
  490. {
  491. case 0: SetPlayerFightingStyle(playerid,FIGHT_STYLE_BOXING);
  492. case 1: SetPlayerFightingStyle(playerid,FIGHT_STYLE_KUNGFU);
  493. case 2: SetPlayerFightingStyle(playerid,FIGHT_STYLE_NORMAL);
  494. case 3: SetPlayerFightingStyle(playerid,FIGHT_STYLE_ELBOW);
  495. }
  496. }
  497. return 1;
  498. }
  499.  
  500. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  501. {
  502. return 1;
  503. }
  504. ocmd:stats(playerid,params[])
  505. {
  506. new string[324];
  507. new adminlevel[124];
  508. switch(GetPVarInt(playerid,"Adminlevel"))
  509. {
  510. case 1:{adminlevel=Adminlevel1;}
  511. case 2:{adminlevel=Adminlevel2;}
  512. case 3:{adminlevel=Adminlevel3;}
  513. case 4:{adminlevel=Adminlevel4;}
  514. case 5:{adminlevel=Adminlevel5;}
  515. }
  516. format(string,sizeof(string),"{00FFFF}=============================================\n\n\n{FFFFFF}Name: %s\n\n{FF805A}Score: %i\n\n{FF8A05}Adminlevel: %s\n\n\n{00FFFF}=============================================\n\n\n",SpielerName(playerid),GetPlayerScore(playerid),adminlevel);
  517. ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Stats",string,"OK","");
  518. printf("%s hat den befehl /stats benutzt",SpielerName(playerid));
  519. return 1;
  520. }
  521. ocmd:fixveh(playerid,params[])
  522. {
  523. if(IsPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
  524. if(aduty[playerid] == 0)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht On Duty");
  525. new Vehicle;
  526. Vehicle = GetPlayerVehicleID(playerid);
  527. SetVehicleHealth(Vehicle,1000);
  528. SendClientMessage(playerid,hellblau,"Fahrzeug erfolgreich gehealt.");
  529. printf("%s hat den befehl /fixveh benutzt",SpielerName(playerid));
  530. return 1;
  531. }
  532. ocmd:cveh(playerid,params[])
  533. {
  534. new vID,cID,cID2;
  535. new Float:X,Float:Y,Float:Z;
  536. GetPlayerPos(playerid,X,Y,Z);
  537. if(sscanf(params,"iii",vID,cID,cID2))return SendClientMessage(playerid,COLOR_RED,"Benutze /cveh [vID][cID][cID2]");
  538. CreateVehicle(vID,X,Y,Z,0,cID,cID2,-1);
  539. SendClientMessage(playerid,hellblau,"Fahrzeug erfolgreich erstellt.");
  540. return 1;
  541. }
  542. ocmd:makeadmin(playerid,params[])
  543. {
  544. if(IsPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
  545. if(aduty[playerid] == 0)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht On Duty");
  546. new pID,rank;
  547. new string[124];
  548. new adminlevel[124];
  549. if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,COLOR_RED,"Benutze /makeadmin [playerid][alevel]");
  550. if(rank<0||rank>5)return SendClientMessage(playerid,COLOR_RED,"Bitte Gültigen Rang angeben.");
  551. SpielerSpeichern(pID);
  552. SetPVarInt(pID,"Adminlevel",rank);
  553. switch(GetPVarInt(playerid,"Adminlevel"))
  554. {
  555. case 1:{adminlevel=Adminlevel1;}
  556. case 2:{adminlevel=Adminlevel2;}
  557. case 3:{adminlevel=Adminlevel3;}
  558. case 4:{adminlevel=Adminlevel4;}
  559. case 5:{adminlevel=Adminlevel5;}
  560. }
  561. format(string,sizeof(string),"%s Wurde zum %s ernannt",SpielerName(pID),adminlevel);
  562. SendClientMessage(playerid,COLOR_RED,string);
  563. SendClientMessage(pID,COLOR_RED,string);
  564. return 1;
  565. }
  566. ocmd:makeleader(playerid,params[])
  567. {
  568. if(IsPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,COLOR_RED,"Du ist kein Admin");
  569. if(aduty[playerid] == 0)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht On Duty");
  570. new pID,frak,str[124];
  571. if(sscanf(params,"ui",pID,frak))return SendClientMessage(playerid,COLOR_RED,"Benutze /makeleader [playerid] [fraktion]");
  572. if(frak<0||frak>FRAKTIONEN)return SendClientMessage(playerid,COLOR_RED,"Falsche Fraktion ID");
  573. format(str,sizeof(str),"Du wurdest von %s zum Leader einer Fratkion ernannt",PlayerName(playerid));
  574. SendClientMessage(pID,COLOR_RED,str);
  575. SendClientMessage(playerid,COLOR_RED,"Erfolgreich");
  576. SetPVarInt(pID,"Leader",frak);
  577. SetPVarInt(pID,"Fraktion",frak);
  578. return 1;
  579. }
  580. ocmd:invite(playerid,params[])
  581. {
  582. new pID,str[222];
  583. format(str,222,"Du wurdest von %s in seine Fraktion Invitet",PlayerName(playerid));
  584. if(IsLeader(playerid,0))
  585. {
  586. SendClientMessage(playerid,COLOR_RED,"Du bist kein Leader");
  587. }
  588. else if(IsLeader(playerid,1))
  589. {
  590. if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_RED,"Benutze /invite [playerid]");
  591. SendClientMessage(playerid,COLOR_RED,str);
  592. SetPVarInt(pID,"Fraktion",1);
  593. SendClientMessage(playerid,COLOR_RED,"Erfolgreich");
  594. }
  595. else if(IsLeader(playerid,2))
  596. {
  597. if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_RED,"Benutze /invite [playerid]");
  598. SendClientMessage(playerid,COLOR_RED,str);
  599. SetPVarInt(pID,"Fraktion",2);
  600. SendClientMessage(playerid,COLOR_RED,"Erfolgreich");
  601. }
  602. else if(IsLeader(playerid,3))
  603. {
  604. if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_RED,"Benutze /invite [playerid]");
  605. SendClientMessage(playerid,COLOR_RED,str);
  606. SetPVarInt(pID,"Fraktion",3);
  607. SendClientMessage(playerid,COLOR_RED,"Erfolgreich");
  608. }
  609. else if(IsLeader(playerid,4))
  610. {
  611. if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_RED,"Benutze /invite [playerid]");
  612. SendClientMessage(playerid,COLOR_RED,str);
  613. SetPVarInt(pID,"Fraktion",4);
  614. SendClientMessage(playerid,COLOR_RED,"Erfolgreich");
  615. }
  616. return 1;
  617. }
  618. ocmd:ban(playerid,params[])
  619. {
  620. if(IsPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
  621. if(aduty[playerid] == 0)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht On Duty");
  622. new reason[124],pID,string[124];
  623. if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,COLOR_RED,"Benutze /ban [playerid] [grund]");
  624. format(string,sizeof(string),"Admcmd: %s wurde von %s gebannt. Mit dem Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
  625. SetPVarInt(pID,"Baned",1);
  626. Kick(pID);
  627. SendClientMessageToAll(COLOR_RED,string);
  628. printf("%s hat den Spieler %s gebannt",SpielerName(playerid),SpielerName(pID));
  629. return 1;
  630. }
  631. ocmd:kick(playerid,params[])
  632. {
  633. if(IsPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
  634. if(aduty[playerid] == 0)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht On Duty");
  635. new reason[124],pID,string[124];
  636. if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,COLOR_RED,"Benutze /kick [playerid][grund]");
  637. format(string,sizeof(string),"Admcmd: %s wurde von %s gekickt. Mit dem Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
  638. SendClientMessageToAll(COLOR_RED,string);
  639. Kick(pID);
  640. printf("%s hat den Spieler %s gekickt",SpielerName(playerid),SpielerName(pID));
  641. return 1;
  642. }
  643.  
  644. ocmd:ah(playerid,params[])
  645. {
  646. if(IsPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
  647. if(aduty[playerid] == 1)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht On Duty");
  648. ShowPlayerDialog(playerid,DIALOG_AH,DIALOG_STYLE_MSGBOX,"Admin Hilfe","{FFFFFF}/kick - Spieler kicken\n/fixveh - Fahrzeug reperieren\n/ban - Spieler Banen\n/cveh - Fahrzeug spawnen\n/platt - macht alle reifen platt\n/aduty - Admin duty","OK","");
  649. return 1;
  650. }
  651. ocmd:tune(playerid,params[])
  652. {
  653. ShowPlayerDialog(playerid,Tuning,DIALOG_STYLE_LIST,"Bitte wähle eine Kategorie aus.","Farbe\nNitro/Hydraulik","Auswählen","Abbrechen");
  654. return 1;
  655. }
  656. ocmd:aduty(playerid,params[])
  657. {
  658. if(IsPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
  659. if(aduty[playerid] == 0)
  660. {
  661. new str[222];
  662. aduty[playerid] = 1;
  663. format(str,sizeof(str),"Administrator %s ist jetzt als Administrator on Duty",SpielerName(playerid));
  664. SendClientMessageToAll(COLOR_RED,str);
  665. SetPlayerChatBubble(playerid,"Administrator On Duty",COLOR_RED,1000,999999);
  666. printf("%s ist als Admin on Duty",SpielerName(playerid));
  667. }
  668. else
  669. {
  670. new str[222];
  671. aduty[playerid] = 0;
  672. format(str,sizeof(str),"Administrator %s ist jetzt als Administrator off Duty",SpielerName(playerid));
  673. SendClientMessageToAll(COLOR_RED,str);
  674. SetPlayerChatBubble(playerid,"",COLOR_RED,1,1);
  675. printf("%s ist als Admin off Duty",SpielerName(playerid));
  676. }
  677. return 1;
  678. }
  679. ocmd:pm(playerid,params[])
  680. {
  681. new str[256],pID;
  682. if(sscanf(params,"ds",pID,str))return SendClientMessage(playerid,COLOR_RED,"{FF0000}/pm [playerid] [nachricht]");
  683. if(pmblock[pID] == 1)
  684. {
  685. SendClientMessage(playerid,COLOR_RED,"{FF0000}Der Spieler möchte keine PM's empfangen");
  686. }
  687. else
  688. {
  689. format(str,sizeof(str),"{FF0000}PM Nachricht(%s): %s ",SpielerName(playerid),str);
  690. SendClientMessage(pID,COLOR_RED,str);
  691. SendClientMessage(playerid,COLOR_RED,"PM gesendet");
  692. }
  693. return 1;
  694. }
  695. ocmd:blockpm(playerid,params[])
  696. {
  697. if(pmblock[playerid] == 0)
  698. {
  699. pmblock[playerid] = 1;
  700. SendClientMessage(playerid,COLOR_RED,"{FF0000}Du empfängst nun keine PM nachrichten ");
  701. }
  702. if(pmblock[playerid] == 1)
  703. {
  704. pmblock[playerid] = 0;
  705. SendClientMessage(playerid,COLOR_RED,"{FF0000}Du empfängst nun wieder PM nachrichten ");
  706. }
  707. return 1;
  708. }
  709. ocmd:fightstyle(playerid,params[])
  710. {
  711. ShowPlayerDialog(playerid,DIALOG_FIGHTSTYLE,DIALOG_STYLE_LIST,"Fightstyle","{FF0000}Boxen\nKungfu\nNormal\nElbow","auswahl","");
  712. return 1;
  713. }
  714. ocmd:base(playerid,params[])
  715. {
  716. SetPlayerPos(playerid,1067.3176,1368.6434,10.8652);
  717. SetPlayerInterior(playerid,0);
  718. return 1;
  719. }
  720. ocmd:ls(playerid,params[])
  721. {
  722. SetPlayerPos(playerid,2500.9795,-1684.5363,13.4410);
  723. SetPlayerInterior(playerid,0);
  724. return 1;
  725. }
  726. ocmd:sf(playerid,params[])
  727. {
  728. SetPlayerPos(playerid,-2250.7849,541.8999,35.0938);
  729. SetPlayerInterior(playerid,0);
  730. return 1;
  731. }
  732. ocmd:lv(playerid,params[])
  733. {
  734. SetPlayerPos(playerid,2107.7561,1002.4723,11.0612);
  735. SetPlayerInterior(playerid,0);
  736. return 1;
  737. }
  738. ocmd:afk(playerid,params[])
  739. {
  740. if(afk[playerid] == 0)return SendClientMessage(playerid,COLOR_RED,"{FF0000}Du bist schon AFK");
  741. afk[playerid] = 1;
  742. TogglePlayerControllable(playerid,false);
  743. GameTextForPlayer(playerid,"Du bist AFK",100,1);
  744. SendClientMessage(playerid,COLOR_RED,"{FF0000}Benutze /back um wieder spielen zu können");
  745. return 1;
  746. }
  747. ocmd:back(playerid,params[])
  748. {
  749. if(afk[playerid] == 1)return SendClientMessage(playerid,COLOR_RED,"{FF0000}Du bist nicht AFK");
  750. afk[playerid] = 0;
  751. TogglePlayerControllable(playerid,true);
  752. GameTextForPlayer(playerid,"Du bist nicht mehr AFK",1,1);
  753. return 1;
  754. }
  755. ocmd:platt(playerid,params[])
  756. {
  757. new pID;
  758. if(IsPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
  759. if(aduty[playerid] == 0)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht On Duty");
  760. if(sscanf(params,"d",pID))return SendClientMessage(playerid,COLOR_RED,"/platt [playerid]");
  761. UpdateVehicleDamageStatus(GetPlayerVehicleID(pID),0,0,0,15);
  762. SendClientMessage(playerid,COLOR_RED,"Erfolgreich");
  763. printf("%s hat den Spieler %s alle reifen Platt gemacht",SpielerName(playerid),SpielerName(pID));
  764. return 1;
  765. }
  766. ocmd:updates(playerid,params[])
  767. {
  768. new str[500];
  769. strcat(str,"{00FFFF}===== Update 0.0.3v =====\n");
  770. strcat(str,"\n\n\n");
  771. strcat(str,"{FFFFFF} - Anti {FFFF00}Speedhack\n");
  772. strcat(str,"{FFFFFF} - /updates\n\n\n");
  773. strcat(str,"{00FFFF}===== Update 0.0.3v =====");
  774. ShowPlayerDialog(playerid,DIALOG_UPDATES,DIALOG_STYLE_MSGBOX,"Updates",str,"OK","");
  775. return 1;
  776. }
  777. /* STOCKS BZW. PUBLICS */
  778. stock SpielerName(playerid)
  779. {
  780. new name[MAX_PLAYER_NAME];
  781. GetPlayerName(playerid,name,sizeof(name));
  782. return name;
  783. }
  784. stock PlayerName(playerid)
  785. {
  786. new name[MAX_PLAYER_NAME];
  787. GetPlayerName(playerid,name,sizeof(name));
  788. return name;
  789. }
  790.  
  791. stock Register(playerid,key[])
  792. {
  793. new Spielerdatei[64];
  794. new name[MAX_PLAYER_NAME];
  795. GetPlayerName(playerid,name,sizeof(name));
  796. format(Spielerdatei,sizeof(Spielerdatei),"/%s.txt",name);
  797. dini_Create(Spielerdatei);
  798. dini_Set(Spielerdatei,"Passwort",key);
  799. SetPlayerScore(playerid,1);
  800. SetPVarInt(playerid,"loggedin",1);
  801. return 1;
  802. }
  803.  
  804. stock Login(playerid,key[])
  805. {
  806. new Spielerdatei[64];
  807. new name[MAX_PLAYER_NAME];
  808. GetPlayerName(playerid,name,sizeof(name));
  809. format(Spielerdatei,sizeof(Spielerdatei),"/%s.txt",name);
  810. if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
  811. {
  812. LoadAccount(playerid);
  813. SendClientMessage(playerid,COLOR_RED,"Erfolgreich eingeloggt.");
  814. return 1;
  815. }
  816. else
  817. {
  818. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","{FFFFFF}Du hast ein Falsches Passwort angegeben.\n\nVersuche es erneut:","Login","Abbrechen");
  819. return 1;
  820. }
  821. }
  822.  
  823. stock LoadAccount(playerid)
  824. {
  825. new Spielerdatei[64];
  826. new name[MAX_PLAYER_NAME];
  827. GetPlayerName(playerid,name,sizeof(name));
  828. format(Spielerdatei,sizeof(Spielerdatei),"/%s.txt",name);
  829. SetPlayerScore(playerid,dini_Int(Spielerdatei,"Score"));
  830. GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
  831. SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
  832. SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
  833. SetPVarInt(playerid,"Leader",dini_Int(Spielerdatei,"Leader"));
  834. SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
  835. if(GetPVarInt(playerid,"Baned")==1)
  836. {
  837. SendClientMessage(playerid,COLOR_RED,"Du bist vom Server gebannt.");
  838. Kick(playerid);
  839. }
  840. SetPVarInt(playerid,"loggedin",1);
  841. return 1;
  842. }
  843.  
  844. stock SpielerSpeichern(playerid)
  845. {
  846. if(GetPVarInt(playerid,"loggedin")==1)
  847. {
  848. new Spielerdatei[64];
  849. new name[MAX_PLAYER_NAME];
  850. GetPlayerName(playerid,name,sizeof(name));
  851. format(Spielerdatei,sizeof(Spielerdatei),"/%s.txt",name);
  852. dini_IntSet(Spielerdatei,"Score",GetPlayerScore(playerid));
  853. dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
  854. dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
  855. dini_IntSet(Spielerdatei,"Leader",GetPVarInt(playerid,"Leader"));
  856. dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
  857. dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
  858. }
  859. return 1;
  860. }
  861. stock IsPlayerAnAdmin(playerid,rank)
  862. {
  863. if(GetPVarInt(playerid,"Adminlevel")<=rank)return 1;
  864. return 0;
  865. }
  866. stock IsInFrak(playerid,frakid)
  867. {
  868. if(GetPVarInt(playerid,"Fraktion")==frakid)return 1;
  869. return 0;
  870. }
  871. stock IsLeader(playerid,frakid)
  872. {
  873. if(GetPVarInt(playerid,"Leader")==frakid)return 1;
  874. return 0;
  875. }
  876. stock sscanf(sstring[], format[], {Float,_}:...)
  877. {
  878. #if defined isnull
  879. if (isnull(sstring))
  880. #else
  881. if (sstring[0] == 0 || (sstring[0] == 1 && sstring[1] == 0))
  882. #endif
  883. {
  884. return format[0];
  885. }
  886. #pragma tabsize 4
  887. new
  888. formatPos = 0,
  889. sstringPos = 0,
  890. paramPos = 2,
  891. paramCount = numargs(),
  892. delim = ' ';
  893. while (sstring[sstringPos] && sstring[sstringPos] <= ' ')
  894. {
  895. sstringPos++;
  896. }
  897. while (paramPos < paramCount && sstring[sstringPos])
  898. {
  899. switch (format[formatPos++])
  900. {
  901. case '\0':
  902. {
  903. return 0;
  904. }
  905. case 'i', 'd':
  906. {
  907. new
  908. neg = 1,
  909. num = 0,
  910. ch = sstring[sstringPos];
  911. if (ch == '-')
  912. {
  913. neg = -1;
  914. ch = sstring[++sstringPos];
  915. }
  916. do
  917. {
  918. sstringPos++;
  919. if ('0' <= ch <= '9')
  920. {
  921. num = (num * 10) + (ch - '0');
  922. }
  923. else
  924. {
  925. return -1;
  926. }
  927. }
  928. while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
  929. setarg(paramPos, 0, num * neg);
  930. }
  931. case 'h', 'x':
  932. {
  933. new
  934. num = 0,
  935. ch = sstring[sstringPos];
  936. do
  937. {
  938. sstringPos++;
  939. switch (ch)
  940. {
  941. case 'x', 'X':
  942. {
  943. num = 0;
  944. continue;
  945. }
  946. case '0' .. '9':
  947. {
  948. num = (num << 4) | (ch - '0');
  949. }
  950. case 'a' .. 'f':
  951. {
  952. num = (num << 4) | (ch - ('a' - 10));
  953. }
  954. case 'A' .. 'F':
  955. {
  956. num = (num << 4) | (ch - ('A' - 10));
  957. }
  958. default:
  959. {
  960. return -1;
  961. }
  962. }
  963. }
  964. while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
  965. setarg(paramPos, 0, num);
  966. }
  967. case 'c':
  968. {
  969. setarg(paramPos, 0, sstring[sstringPos++]);
  970. }
  971. case 'f':
  972. {
  973.  
  974. new changestr[16], changepos = 0, strpos = sstringPos;
  975. while(changepos < 16 && sstring[strpos] && sstring[strpos] != delim)
  976. {
  977. changestr[changepos++] = sstring[strpos++];
  978. }
  979. changestr[changepos] = '\0';
  980. setarg(paramPos,0,_:floatstr(changestr));
  981. }
  982. case 'p':
  983. {
  984. delim = format[formatPos++];
  985. continue;
  986. }
  987. case '\'':
  988. {
  989. new
  990. end = formatPos - 1,
  991. ch;
  992. while ((ch = format[++end]) && ch != '\'') {}
  993. if (!ch)
  994. {
  995. return -1;
  996. }
  997. format[end] = '\0';
  998. if ((ch = strfind(sstring, format[formatPos], false, sstringPos)) == -1)
  999. {
  1000. if (format[end + 1])
  1001. {
  1002. return -1;
  1003. }
  1004. return 0;
  1005. }
  1006. format[end] = '\'';
  1007. sstringPos = ch + (end - formatPos);
  1008. formatPos = end + 1;
  1009. }
  1010. case 'u':
  1011. {
  1012. new
  1013. end = sstringPos - 1,
  1014. id = 0,
  1015. bool:num = true,
  1016. ch;
  1017. while ((ch = sstring[++end]) && ch != delim)
  1018. {
  1019. if (num)
  1020. {
  1021. if ('0' <= ch <= '9')
  1022. {
  1023. id = (id * 10) + (ch - '0');
  1024. }
  1025. else
  1026. {
  1027. num = false;
  1028. }
  1029. }
  1030. }
  1031. if (num && IsPlayerConnected(id))
  1032. {
  1033. setarg(paramPos, 0, id);
  1034. }
  1035. else
  1036. {
  1037. #if !defined foreach
  1038. #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  1039. #define __SSCANF_FOREACH__
  1040. #endif
  1041. sstring[end] = '\0';
  1042. num = false;
  1043. new
  1044. name[MAX_PLAYER_NAME];
  1045. id = end - sstringPos;
  1046. foreach (Player, playerid)
  1047. {
  1048. GetPlayerName(playerid, name, sizeof (name));
  1049. if (!strcmp(name, sstring[sstringPos], true, id))
  1050. {
  1051. setarg(paramPos, 0, playerid);
  1052. num = true;
  1053. break;
  1054. }
  1055. }
  1056. if (!num)
  1057. {
  1058. setarg(paramPos, 0, INVALID_PLAYER_ID);
  1059. }
  1060. sstring[end] = ch;
  1061. #if defined __SSCANF_FOREACH__
  1062. #undef foreach
  1063. #undef __SSCANF_FOREACH__
  1064. #endif
  1065. }
  1066. sstringPos = end;
  1067. }
  1068. case 's', 'z':
  1069. {
  1070. new
  1071. i = 0,
  1072. ch;
  1073. if (format[formatPos])
  1074. {
  1075. while ((ch = sstring[sstringPos++]) && ch != delim)
  1076. {
  1077. setarg(paramPos, i++, ch);
  1078. }
  1079. if (!i)
  1080. {
  1081. return -1;
  1082. }
  1083. }
  1084. else
  1085. {
  1086. while ((ch = sstring[sstringPos++]))
  1087. {
  1088. setarg(paramPos, i++, ch);
  1089. }
  1090. }
  1091. sstringPos--;
  1092. setarg(paramPos, i, '\0');
  1093. }
  1094. default:
  1095. {
  1096. continue;
  1097. }
  1098. }
  1099. while (sstring[sstringPos] && sstring[sstringPos] != delim && sstring[sstringPos] > ' ')
  1100. {
  1101. sstringPos++;
  1102. }
  1103. while (sstring[sstringPos] && (sstring[sstringPos] == delim || sstring[sstringPos] <= ' '))
  1104. {
  1105. sstringPos++;
  1106. }
  1107. paramPos++;
  1108. }
  1109. do
  1110. {
  1111. if ((delim = format[formatPos++]) > ' ')
  1112. {
  1113. if (delim == '\'')
  1114. {
  1115. while ((delim = format[formatPos++]) && delim != '\'') {}
  1116. }
  1117. else if (delim != 'z')
  1118. {
  1119. return delim;
  1120. }
  1121. }
  1122. }
  1123. while (delim > ' ');
  1124. return 0;
  1125. }
  1126. public PayDay(playerid)
  1127. {
  1128. for(new i = 0; i < MAX_PLAYERS; i++)
  1129. {
  1130. GivePlayerMoney(i,1500);
  1131. GameTextForPlayer(i,"~w~+~g~1500 $",100,1);
  1132. }
  1133. return 1;
  1134. }
  1135. public Waffen(playerid)
  1136. {
  1137. if(GetPlayerScore(playerid) >= 0)
  1138. {
  1139. GivePlayerWeapon(playerid,6,1);
  1140. GivePlayerWeapon(playerid,17,5);
  1141. GivePlayerWeapon(playerid,22,10000);
  1142. GivePlayerWeapon(playerid,30,10000);
  1143. }
  1144. else if(GetPlayerScore(playerid) >= 500)
  1145. {
  1146. GivePlayerWeapon(playerid,23,10000);
  1147. GivePlayerWeapon(playerid,25,10000);
  1148. GivePlayerWeapon(playerid,28,10000);
  1149. GivePlayerWeapon(playerid,33,10000);
  1150. }
  1151. else if(GetPlayerScore(playerid) >= 1000)
  1152. {
  1153. GivePlayerWeapon(playerid,24,10000);
  1154. GivePlayerWeapon(playerid,27,10000);
  1155. GivePlayerWeapon(playerid,31,10000);
  1156. GivePlayerWeapon(playerid,34,10000);
  1157. }
  1158. else if(GetPlayerScore(playerid) >= 1500)
  1159. {
  1160. GivePlayerWeapon(playerid,24,10000);
  1161. GivePlayerWeapon(playerid,26,10000);
  1162. GivePlayerWeapon(playerid,28,10000);
  1163. GivePlayerWeapon(playerid,31,10000);
  1164. }
  1165. else if(GetPlayerScore(playerid) >= 5000)
  1166. {
  1167. GivePlayerWeapon(playerid,24,10000);
  1168. GivePlayerWeapon(playerid,26,10000);
  1169. GivePlayerWeapon(playerid,28,10000);
  1170. GivePlayerWeapon(playerid,31,10000);
  1171. GivePlayerWeapon(playerid,35,3);
  1172. }
  1173. return 1;
  1174. }
Add Comment
Please, Sign In to add comment