Advertisement
FanTaaaa_

Fraktionsautohaus

Jan 29th, 2013
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 36.95 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #define dcmd(%1,%2,%3) if((strcmp((%3)[1],#%1,true,(%2))==0)&&((((%3)[(%2)+1]== 0)&&(dcmd_%1(playerid,"")))||(((%3)[(%2)+ 1]==32)&&(dcmd_%1(playerid,(%3)[(%2)+2])))))return 1
  4.  
  5. //Hier ist die Konfiguration:
  6. //Stelle es nach deinem belieben ein^^
  7. //Die Fraktionen die Kaufen dürfen oder Tunen dürfen findest du unter:
  8. //stock IsAllowedFactionToTune
  9. //stock IsAllowedFactionToBuy
  10. //
  11. //Nicht vergessen, die Gekauften Fahrzeuge brauchen Farben:
  12. //stock GetDefaultCarColorOfFaction
  13.  
  14. #define FACTION_CAR_FILE ("Fraktionsautos.cfg")//Datei wo die gesamten Fraktionsfahrzeuge gespeichert werden sollen!
  15. #define MAX_FACTION_CARS (400)//Die Maximale anzahl von Fraktionsfahrzeugen!
  16. #define NEEDED_ADMINLEVEL (1337)//Das benötigte Adminlevel um Fraktionfahrzeuge zu fahren, ab/-aufschließen, umzuparken, entfernen, erstellen.
  17. #define MAX_FACTIONS (30)//Die Maximale anzahl von Fraktionen aus deinem Script!
  18. #define MAX_BUY (15)//Die Maximale anzahl von Fahrzeugen die eine Fraktion kaufen darf!
  19.  
  20. #define FACTION_CARS_TUNEABLE
  21. //#define FACTION_CARS_LOCKABLE
  22. //Wenn du die Fraktionsfahrzeuge ab/aufschließbar machen möchtest nehme einfach die '//' oben weg. aber achtung, nur anwenden wenn du das Script anwendest wenn keine Spieler berreits verbunden sind!!! (sprich unter dem OnGameModeInit: SendRconCommand("loadfs Fraktionsautohaus"); Und unter dem OnGameModeExit: SendRconCommand("unloadfs Fraktionsautohaus"); Niemals in der Server.cfg, sonst buggt es nur rum.
  23. //Ab hier nichts mehr ändern!
  24.  
  25. #if defined FACTION_CARS_LOCKABLE
  26. #include <ForAllPlayers>
  27. #endif
  28.  
  29. #define FACTION_COL_GREY (0xAFAFAFAA)
  30. #define FACTION_COL_YELLOW (0xFFFF00FF)
  31. #define DIALOG_FACTION_CAR_BUY (467)
  32.  
  33. forward LoadFactionCars();
  34. forward SaveFactionCars(bool:destroy);
  35. forward LockFactionCarDoors();
  36. forward DestroyAndCreateFactionCar(fc);
  37. forward RemoveComponent(vehicleid,componentid);
  38. forward ChangePaintjob(vehicleid,paintjobid);
  39. forward ChangeColor(vehicleid,color1,color2);
  40. forward RespawnFactionBuylist();
  41.  
  42. new fCarName[][]={
  43. "Landstalker","Bravura","Buffalo","Linerunner","Perrenial","Sentinel",
  44. "Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus",
  45. "Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam",
  46. "Esperanto","Taxi","Washington","Bobcat","Whoopee","BF Injection",
  47. "Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus",
  48. "Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie",
  49. "Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral",
  50. "Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder",
  51. "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "Berkley's RC Van",
  52. "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale",
  53. "Oceanic","Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy",
  54. "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX",
  55. "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper",
  56. "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking",
  57. "Blista Compact", "Police Maverick", "Boxvillde", "Benson", "Mesa", "RC Goblin",
  58. "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT",
  59. "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt",
  60. "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra",
  61. "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune",
  62. "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer",
  63. "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent",
  64. "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo",
  65. "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite",
  66. "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratum",
  67. "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito",
  68. "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper",
  69. "Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400",
  70. "News Van","Tug","Trailer","Emperor","Wayfarer","Euros","Hotdog","Club",
  71. "Freight Box","Trailer","Andromada","Dodo","RC Cam","Launch","Police Car",
  72. "Police Car","Police Car","Police Ranger","Picador","S.W.A.T","Alpha",
  73. "Phoenix","Glendale Shit","Sadler Shit","Luggage","Luggage","Stairs","Boxville",
  74. "Tiller","Utility Trailer"
  75. };
  76. enum fBuylist{
  77. fbVehid,
  78. Float:fbX,
  79. Float:fbY,
  80. Float:fbZ,
  81. Float:fbA,
  82. fbPrice,
  83. fbCarid,
  84. Text3D:fbLabel
  85. };
  86. new FactionBuylist[][fBuylist] = {
  87. {560,870.9376,-1101.8865,24.0017,269.6273,333}
  88. };
  89. new Float:FactionBuySpawn[4]={880.3569,-1101.9473,24.0012,269.6273};
  90. enum fCar{
  91. fCarid,
  92. fVehid,
  93. Float:fPos[4],
  94. fCol[2],
  95. fFaction[5],
  96. fTuning[14],
  97. fPrice,
  98. #if defined FACTION_CARS_LOCKABLE
  99. bool:fLock
  100. #endif
  101. };
  102. new FactionCars[MAX_FACTION_CARS][fCar];
  103. #if defined FACTION_CARS_LOCKABLE
  104. new FactionCarsTimer;
  105. #endif
  106. new BuylistRespawner;
  107. new SaveFactionCarsTimer;
  108. new LastRespawned[MAX_FACTIONS];
  109. public OnFilterScriptInit(){
  110. AntiDeAMX();
  111. LoadFactionCars();
  112. #if defined FACTION_CARS_LOCKABLE
  113. FactionCarsTimer = SetTimer("LockFactionCarDoors",1037,true);
  114. #endif
  115. SaveFactionCarsTimer = SetTimerEx("SaveFactionCars",((1000*60)*60),true,"d",false);
  116. for(new fbl;fbl<sizeof(FactionBuylist);fbl++){
  117. FactionBuylist[fbl][fbCarid] = CreateVehicle(FactionBuylist[fbl][fbVehid],FactionBuylist[fbl][fbX],FactionBuylist[fbl][fbY],FactionBuylist[fbl][fbZ],FactionBuylist[fbl][fbA],-1,-1,-255);
  118. new fblText[128];
  119. format(fblText,sizeof(fblText),"|--- Fraktionsautohaus ---|\n\nFahrzeugname: %s\nPreis: $%d",fCarName[FactionBuylist[fbl][fbVehid]-400],FactionBuylist[fbl][fbPrice]);
  120. FactionBuylist[fbl][fbLabel] = Create3DTextLabel(fblText,0xFFFFFFFF,FactionBuylist[fbl][fbX],FactionBuylist[fbl][fbY],FactionBuylist[fbl][fbZ],40.0,0,true);
  121. Attach3DTextLabelToVehicle(FactionBuylist[fbl][fbLabel],FactionBuylist[fbl][fbCarid],0.0,0.0,0.75);
  122. }
  123. BuylistRespawner = SetTimer("RespawnFactionBuylist",(1000*60)*10,true);
  124. return 1;
  125. }
  126. public OnFilterScriptExit(){
  127. KillTimer(SaveFactionCarsTimer);
  128. SaveFactionCars(true);
  129. #if defined FACTION_CARS_LOCKABLE
  130. KillTimer(FactionCarsTimer);
  131. #endif
  132. KillTimer(BuylistRespawner);
  133. for(new fbl;fbl<sizeof(FactionBuylist);fbl++){
  134. DestroyVehicle(FactionBuylist[fbl][fbCarid]);
  135. Delete3DTextLabel(FactionBuylist[fbl][fbLabel]);
  136. }
  137. return 1;
  138. }
  139. public OnPlayerConnect(playerid){
  140. //OnPlayerConnect drinne lassen!
  141. return 1;
  142. }
  143. public OnPlayerDisconnect(playerid, reason){
  144. //OnPlayerDisconnect drinne lassen!
  145. return 1;
  146. }
  147. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger){
  148. for(new fbl;fbl<sizeof(FactionBuylist);fbl++){
  149. if(vehicleid == FactionBuylist[fbl][fbCarid]){
  150. if(!IsAllowedFactionToBuy(GetPlayerLeader(playerid))){
  151. SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht brechtigt Fraktionsfahrzeuge zu kaufen!");
  152. new Float:pPos[3];
  153. GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
  154. SetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
  155. }break;
  156. }
  157. }return 1;
  158. }
  159. public OnVehicleDeath(vehicleid, killerid){
  160. for(new fc;fc<sizeof(FactionCars);fc++){
  161. if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
  162. if(FactionCars[fc][fCarid] == vehicleid){
  163. SetTimerEx("DestroyAndCreateFactionCar",3000,0,"d",fc);
  164. break;
  165. }
  166. }
  167. }return 1;
  168. }
  169. public OnPlayerCommandText(playerid, cmdtext[]){
  170. dcmd(efa,3,cmdtext);
  171. if(strcmp(cmdtext,"/fpark",true)==0){
  172. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
  173. new fc;while(fc<sizeof(FactionCars)){
  174. if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
  175. if(GetPlayerVehicleID(playerid) == FactionCars[fc][fCarid]){
  176. if(GetPlayerAdmin(playerid) >= NEEDED_ADMINLEVEL || GetPlayerLeader(playerid) == FactionCars[fc][fFaction][0]){
  177. GetVehiclePos(FactionCars[fc][fCarid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2]);
  178. GetVehicleZAngle(FactionCars[fc][fCarid],FactionCars[fc][fPos][3]);
  179. SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast das Fraktionsfahrzeug erfolgreich umgeparkt.");
  180. }else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist dazu nicht berechtigt.");
  181. return true;
  182. }
  183. }fc++;
  184. }SendClientMessage(playerid,FACTION_COL_GREY,"Du sitzt in keinem Fraktionsfahrzeug.");
  185. }else SendClientMessage(playerid,FACTION_COL_GREY,"Du sitzt in keinem Fahrzeug oder bist nicht der Fahrer.");
  186. return true;
  187. }
  188. if(strcmp(cmdtext,"/fcarsell",true)==0){
  189. if(GetPlayerLeader(playerid)){
  190. if(IsAllowedFactionToBuy(GetPlayerFaction(playerid))){
  191. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
  192. new Carid = GetPlayerVehicleID(playerid);
  193. for(new fc;fc<sizeof(FactionCars);fc++){
  194. if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
  195. if(Carid == FactionCars[fc][fCarid]){
  196. if(FactionCars[fc][fFaction][0] == GetPlayerLeader(playerid)){
  197. if(FactionCars[fc][fPrice] <= 0)
  198. return SendClientMessage(playerid,FACTION_COL_GREY,"Fahrzeuge die von Administratoren erstellt worden sind, dafst du nicht verkaufen.");
  199. FactionCars[fc][fVehid] = -255;
  200. if(DestroyVehicle(FactionCars[fc][fCarid]))
  201. FactionCars[fc][fCarid] = -255;
  202. new fText[178];
  203. format(fText,sizeof(fText),"Du hast das Fraktionsfahrzeug erfolgreich für $%d(hälfte vom Kaufpreis) verkauft.",(FactionCars[fc][fPrice]/2));
  204. SendClientMessage(playerid,FACTION_COL_YELLOW,fText);
  205. GivePlayerMoney(playerid,(FactionCars[fc][fPrice]/2));
  206. }
  207. else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht der besitzer dieses Fahrzeuges.");
  208. return true;
  209. }
  210. }
  211. }SendClientMessage(playerid,FACTION_COL_GREY,"Du sitzt in keinem Fraktionsfahrzeug.");
  212. }else SendClientMessage(playerid,FACTION_COL_GREY,"Du musst der Fahrer eines Fahrzeuges sein.");
  213. }else SendClientMessage(playerid,FACTION_COL_GREY,"Deine Fraktion ist dazu nicht berechtigt.");
  214. }else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht berechtigt diesen Befehl anzuwenden.");
  215. return true;
  216. }
  217. if(strcmp(cmdtext,"/lfa",true)==0){
  218. if(GetPlayerAdmin(playerid) >= NEEDED_ADMINLEVEL){
  219. for(new fc;fc<sizeof(FactionCars);fc++){
  220. if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
  221. new Float:fX,Float:fY,Float:fZ;
  222. GetVehiclePos(FactionCars[fc][fCarid],fX,fY,fZ);
  223. if(IsPlayerInRangeOfPoint(playerid,4.0,fX,fY,fZ)){
  224. FactionCars[fc][fVehid] = -255;
  225. if(DestroyVehicle(FactionCars[fc][fCarid])){
  226. FactionCars[fc][fCarid] = -255;
  227. }return SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast das Fraktionsfahrzeug entfernt.");
  228. }
  229. }
  230. }
  231. }else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht berechtigt diesen Befehl anzuwenden.");
  232. return true;
  233. }
  234. if(strcmp(cmdtext,"/rafa",true)==0){
  235. if(GetPlayerAdmin(playerid) >= NEEDED_ADMINLEVEL){
  236. new fName[MAX_PLAYER_NAME],string[128];
  237. GetPlayerName(playerid,fName,sizeof(fName));
  238. format(string,sizeof(string),"Server: %s hat alle Fraktionsfahrzeuge respawnt.",fName);
  239. SendClientMessageToAll(FACTION_COL_YELLOW,string);
  240. for(new fc;fc<sizeof(FactionCars);fc++){
  241. if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611)
  242. DestroyAndCreateFactionCar(fc);
  243. }
  244. }else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht berechtigt diesen Befehl anzuwenden.");
  245. return true;
  246. }
  247. if(strcmp(cmdtext,"/ramfa",true)==0){
  248. if(GetPlayerLeader(playerid)){
  249. if(gettime() < LastRespawned[GetPlayerFaction(playerid)-1])
  250. return SendClientMessage(playerid,FACTION_COL_GREY,"Du kannst deine Fahrzeuge nur alle '60' Minuten respawnen.");
  251. LastRespawned[GetPlayerFaction(playerid)-1] = gettime()+(60*60);
  252. for(new fc;fc<sizeof(FactionCars);fc++){
  253. if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
  254. if(FactionCars[fc][fFaction][0] == GetPlayerFaction(playerid)){
  255. DestroyAndCreateFactionCar(fc);
  256. }
  257. }
  258. }SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast deine Fraktionsfahrzeuge erfolgreich respawnt.");
  259. }else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht berechtigt diesen Befehl anzuwenden.");
  260. return true;
  261. }
  262. #if defined FACTION_CARS_LOCKABLE
  263. if(strcmp(cmdtext,"/flock",true)==0){
  264. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
  265. for(new fc;fc<sizeof(FactionCars);fc++){
  266. if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
  267. if(GetPlayerVehicleID(playerid) == FactionCars[fc][fCarid]){
  268. for(new f;f<5;f++){
  269. if(GetPlayerAdmin(playerid) >= NEEDED_ADMINLEVEL || GetPlayerFaction(playerid) == FactionCars[fc][fFaction][f]){
  270. PlayerPlaySound(playerid,1145,0.0,0.0,0.0);
  271. if(FactionCars[fc][fLock] == true){
  272. FactionCars[fc][fLock] = false;
  273. fUnlockCar(FactionCars[fc][fCarid]);
  274. GameTextForPlayer(playerid,"~w~Fahrzeug~n~~g~Aufgeschlossen",5000,3);
  275. }
  276. else if(FactionCars[fc][fLock] == false){
  277. fLockCar(FactionCars[fc][fCarid]);
  278. FactionCars[fc][fLock] = true;
  279. GameTextForPlayer(playerid,"~w~Fahrzeug~n~~r~Abgeschlossen",5000,3);
  280. }break;
  281. }
  282. }return true;
  283. }
  284. }
  285. }SendClientMessage(playerid,FACTION_COL_GREY,"Du sitzt in keinem Fraktionsfahrzeug!");
  286. }else{
  287. if(GetPlayerState(playerid)==PLAYER_STATE_PASSENGER)
  288. SendClientMessage(playerid,FACTION_COL_GREY,"Du musst der Fahrer dieses Fahrzeuges sein.");
  289. else
  290. SendClientMessage(playerid,FACTION_COL_GREY,"Du muss in einem Fahrzeug sitzen.");
  291. }return true;
  292. }
  293. #endif
  294. return 0;
  295. }
  296. dcmd_efa(playerid,params[]){
  297. if(GetPlayerAdmin(playerid) >= NEEDED_ADMINLEVEL){
  298. new vehid,col1,col2,faction[5];
  299. if(!sscanf(params,"dddd",vehid,col1,col2,faction[0])){
  300. sscanf(params,"dddddddd",vehid,col1,col2,faction[0],faction[1],faction[2],faction[3],faction[4]);
  301. if(vehid < 400 || vehid > 611) return SendClientMessage(playerid,FACTION_COL_GREY,"Vehicle-ID nur von 400 bis 611.");
  302. if(col1 < 0 || col1 > 255) return SendClientMessage(playerid,FACTION_COL_GREY,"Falsche Farbe(1)!");
  303. if(col2 < 0 || col2 > 255) return SendClientMessage(playerid,FACTION_COL_GREY,"Falsche Farbe(2)!");
  304. if(faction[0] && faction[0] <= MAX_FACTIONS){
  305. for(new f;f<5;f++){
  306. if(faction[f] <= 0 || faction[f] > MAX_FACTIONS){
  307. faction[f] = -255;
  308. }
  309. }
  310. for(new fc;fc<sizeof(FactionCars);fc++){
  311. if(FactionCars[fc][fVehid] < 400 || FactionCars[fc][fVehid] > 611){
  312. FactionCars[fc][fVehid] = vehid;
  313. new Float:fX,Float:fY,Float:fZ,Float:fA;
  314. GetPlayerPos(playerid,fX,fY,fZ),GetPlayerFacingAngle(playerid,fA);
  315. FactionCars[fc][fPos][0] = fX;
  316. FactionCars[fc][fPos][1] = fY;
  317. FactionCars[fc][fPos][2] = fZ;
  318. FactionCars[fc][fPos][3] = fA;
  319. FactionCars[fc][fCol][0] = col1;
  320. FactionCars[fc][fCol][1] = col2;
  321. for(new f;f<5;f++){
  322. FactionCars[fc][fFaction][f] = faction[f];
  323. }
  324. FactionCars[fc][fPrice] = 0;
  325. for(new mod;mod<14;mod++)
  326. FactionCars[fc][fTuning][mod] = 0;
  327. FactionCars[fc][fCarid] = CreateVehicle(FactionCars[fc][fVehid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2],FactionCars[fc][fPos][3],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1],-255);
  328. #if defined FACTION_CARS_LOCKABLE
  329. FactionCars[fc][fLock] = true;
  330. #endif
  331. SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast das Fraktionsfahrzeug erfolgreich erstellt.");
  332. SendClientMessage(playerid,FACTION_COL_YELLOW,"Vergesse es nicht mit '/fpark' umzuparken.");
  333. PutPlayerInVehicle(playerid,FactionCars[fc][fCarid],0);
  334. return true;
  335. }
  336. }SendClientMessage(playerid,FACTION_COL_GREY,"Die Maximale Anzahl von Fraktionsfahrzeugen wurde bereits erreicht.");
  337. }else SendClientMessage(playerid,FACTION_COL_GREY,"Falsche Fraktion!");
  338. }else SendClientMessage(playerid,FACTION_COL_GREY,"Benutze: '/efa [Model] [Farbe(1)] [Farbe(2)] [Hauptfraktion]'.");
  339. }else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht berechtigt diesen Befehl anzuwenden.");
  340. return true;
  341. }
  342. public OnPlayerStateChange(playerid, newstate, oldstate){
  343. if(newstate==PLAYER_STATE_DRIVER){
  344. new Carid = GetPlayerVehicleID(playerid);
  345. for(new fbl;fbl<sizeof(FactionBuylist);fbl++){
  346. if(Carid == FactionBuylist[fbl][fbCarid]){
  347. if(IsAllowedFactionToBuy(GetPlayerLeader(playerid))){
  348. TogglePlayerControllable(playerid,false);
  349. new fblText[256];
  350. format(fblText,sizeof(fblText),"{FFFFFF}Möchtest du das Fahrzeug deiner Fraktion kaufen?\n\n{F3FF02}Fahrzeugname: %s\nPreis: $%d\n\n{FFFFFF}Um das Fahrzeug zu kaufen benutze den Button 'Ja', um es nicht zu kaufen den Button 'Nein'.",fCarName[FactionBuylist[fbl][fbVehid]-400],FactionBuylist[fbl][fbPrice]);
  351. ShowPlayerDialog(playerid,DIALOG_FACTION_CAR_BUY,DIALOG_STYLE_MSGBOX,"{FFFFFF}Fraktionsautohaus:",fblText,"Nein","Ja");
  352. }else{
  353. SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht brechtigt Fraktionsfahrzeuge zu kaufen!");
  354. new Float:pPos[3];
  355. GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
  356. SetPlayerPos(playerid,pPos[0]+2.0,pPos[1]+2.0,pPos[2]);
  357. }break;
  358. }
  359. }
  360. for(new fc;fc<sizeof(FactionCars);fc++){
  361. if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
  362. if(FactionCars[fc][fCarid] == GetPlayerVehicleID(playerid)){
  363. for(new f;f<5;f++){
  364. if(GetPlayerAdmin(playerid) >= NEEDED_ADMINLEVEL || GetPlayerFaction(playerid) == FactionCars[fc][fFaction][f])
  365. return true;
  366. }
  367. SendClientMessage(playerid,FACTION_COL_GREY,"Du bestitzt für dieses Fahrzeug keine Schlüssel, du verlässt das Fahrzeug.");
  368. RemovePlayerFromVehicle(playerid);
  369. return true;
  370. }
  371. }
  372. }
  373. }return 1;
  374. }
  375. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
  376. if(dialogid == DIALOG_FACTION_CAR_BUY){
  377. if(response){
  378. new Float:pPos[3];
  379. GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
  380. SetPlayerPos(playerid,pPos[0]+2.0,pPos[1]+2.0,pPos[2]);
  381. TogglePlayerControllable(playerid,true);
  382. }
  383. if(!response){
  384. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
  385. if(IsAllowedFactionToBuy(GetPlayerLeader(playerid))){
  386. if(GetFactioncarsOfFaction(GetPlayerLeader(playerid)) < MAX_BUY){
  387. new Carid = GetPlayerVehicleID(playerid);
  388. for(new fbl;fbl<sizeof(FactionBuylist);fbl++){
  389. if(Carid == FactionBuylist[fbl][fbCarid]){
  390. if(GetPlayerMoney(playerid) >= FactionBuylist[fbl][fbPrice]){
  391. for(new fc;fc<sizeof(FactionCars);fc++){
  392. if(FactionCars[fc][fVehid] < 400 || FactionCars[fc][fVehid] > 611){
  393. FactionCars[fc][fVehid] = FactionBuylist[fbl][fbVehid];
  394. FactionCars[fc][fPos][0] = FactionBuySpawn[0];
  395. FactionCars[fc][fPos][1] = FactionBuySpawn[1];
  396. FactionCars[fc][fPos][2] = FactionBuySpawn[2];
  397. FactionCars[fc][fPos][3] = FactionBuySpawn[3];
  398. new Color[2];
  399. GetDefaultCarColorOfFaction(GetPlayerLeader(playerid),Color[0],Color[1]);
  400. FactionCars[fc][fCol][0] = Color[0];
  401. FactionCars[fc][fCol][1] = Color[1];
  402. FactionCars[fc][fPrice] = FactionBuylist[fbl][fbPrice];
  403. for(new slot;slot<14;slot++){
  404. FactionCars[fc][fTuning][slot] = 0;
  405. }
  406. FactionCars[fc][fCarid] = CreateVehicle(FactionCars[fc][fVehid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2],FactionCars[fc][fPos][3],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1],-255);
  407. #if defined FACTION_CARS_LOCKABLE
  408. fLockCar(FactionCars[fc][fCarid]);
  409. FactionCars[fc][fLock] = true;
  410. #endif
  411. for(new f;f<5;f++){
  412. FactionCars[fc][fFaction][f] = -255;
  413. }
  414. FactionCars[fc][fFaction][0] = GetPlayerLeader(playerid);
  415. GivePlayerMoney(playerid,-FactionBuylist[fbl][fbPrice]);
  416. TogglePlayerControllable(playerid,true);
  417. new Float:pPos[3];
  418. GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
  419. SetPlayerPos(playerid,pPos[0]+2.0,pPos[1]+2.0,pPos[2]);
  420. SendClientMessage(playerid,FACTION_COL_YELLOW,"Glückwunsch zum neuen Fahrzeug.");
  421. SendClientMessage(playerid,FACTION_COL_YELLOW,"Bitte vergesse nicht das Fahrzeug mit: '/fpark' umzuparken.");
  422. SendClientMessage(playerid,FACTION_COL_YELLOW,"Das Fahrzeug steht nun am Ausgabepunkt bereit!");
  423. return 1;
  424. }
  425. }
  426. new Float:pPos[3];
  427. GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
  428. SetPlayerPos(playerid,pPos[0]+2.0,pPos[1]+2.0,pPos[2]);
  429. TogglePlayerControllable(playerid,true);
  430. SendClientMessage(playerid,FACTION_COL_GREY,"Die maximale Anzahl von Fraktionsfahrzeugen ist bereits erreicht.");
  431. }else{
  432. new Float:pPos[3];
  433. GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
  434. SetPlayerPos(playerid,pPos[0]+2.0,pPos[1]+2.0,pPos[2]);
  435. TogglePlayerControllable(playerid,true);
  436. SendClientMessage(playerid,FACTION_COL_GREY,"Du hast nicht genügend Geld bei dir!");
  437. }return 1;
  438. }
  439. }
  440. }else{
  441. new Float:pPos[3];
  442. GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
  443. SetPlayerPos(playerid,pPos[0]+2.0,pPos[1]+2.0,pPos[2]);
  444. TogglePlayerControllable(playerid,true);
  445. SendClientMessage(playerid,FACTION_COL_GREY,"Du hast nicht genügend Geld bei dir!");
  446. SendClientMessage(playerid,FACTION_COL_GREY,"Deine Fraktion hat das Limit von Fahrzeugen bereits erreicht.");
  447. }
  448. }else{
  449. SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht brechtigt Fraktionsfahrzeuge zu kaufen!");
  450. TogglePlayerControllable(playerid,true);
  451. new Float:pPos[3];
  452. GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
  453. SetPlayerPos(playerid,pPos[0]+2.0,pPos[1]+2.0,pPos[2]);
  454. }
  455. }
  456. }return 1;
  457. }return 0;
  458. }
  459. public OnVehicleMod(playerid, vehicleid, componentid){
  460. for(new fc;fc<sizeof(FactionCars);fc++){
  461. if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
  462. if(FactionCars[fc][fCarid] == vehicleid){
  463. #if defined FACTION_CARS_TUNEABLE
  464. if((FactionCars[fc][fFaction][0] == GetPlayerLeader(playerid) || GetPlayerAdmin(playerid)) && IsAllowedFactionToTune(FactionCars[fc][fFaction][0]))
  465. FactionCars[fc][fTuning][GetVehicleComponentType(componentid)] = componentid;
  466. else
  467. SetTimerEx("RemoveComponent",3000,false,"dd",vehicleid,componentid);
  468. #else
  469. SetTimerEx("RemoveComponent",3000,false,"dd",vehicleid,componentid);
  470. #endif
  471. break;
  472. }
  473. }
  474. }return 1;
  475. }
  476. public OnVehiclePaintjob(playerid, vehicleid, paintjobid){
  477. for(new fc;fc<sizeof(FactionCars);fc++){
  478. if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
  479. if(FactionCars[fc][fCarid] == vehicleid){
  480. SetTimerEx("ChangePaintjob",3000,false,"dd",FactionCars[fc][fCarid],3);
  481. break;
  482. }
  483. }
  484. }return 1;
  485. }
  486. public OnVehicleRespray(playerid, vehicleid, color1, color2){
  487. for(new fc;fc<sizeof(FactionCars);fc++){
  488. if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
  489. if(FactionCars[fc][fCarid] == vehicleid){
  490. SetTimerEx("ChangeColor",3000,false,"ddd",FactionCars[fc][fCarid],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1]);
  491. break;
  492. }
  493. }
  494. }return 1;
  495. }
  496. #if defined FACTION_CARS_LOCKABLE
  497. public LockFactionCarDoors(){
  498. ForAllPlayers(i){
  499. for(new fc;fc<sizeof(FactionCars);fc++){
  500. if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
  501. if(FactionCars[fc][fLock] == true){
  502. if(GetPlayerFaction(i)==FactionCars[fc][fFaction][0]||GetPlayerFaction(i)==FactionCars[fc][fFaction][1]||GetPlayerFaction(i)==FactionCars[fc][fFaction][2]||GetPlayerFaction(i)==FactionCars[fc][fFaction][3]||GetPlayerFaction(i)==FactionCars[fc][fFaction][4]||GetPlayerAdmin(i) >= NEEDED_ADMINLEVEL)
  503. SetVehicleParamsForPlayer(FactionCars[fc][fCarid],i,false,false);
  504. else
  505. SetVehicleParamsForPlayer(FactionCars[fc][fCarid],i,false,true);
  506. }
  507. }
  508. }
  509. }return true;
  510. }
  511. stock fLockCar(vehicleid){
  512. ForAllPlayers(i)
  513. SetVehicleParamsForPlayer(vehicleid,i,false,true);
  514. return true;
  515. }
  516. stock fUnlockCar(vehicleid){
  517. ForAllPlayers(i)
  518. SetVehicleParamsForPlayer(vehicleid,i,false,false);
  519. return true;
  520. }
  521. #endif
  522. public DestroyAndCreateFactionCar(fc){
  523. if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
  524. DestroyVehicle(FactionCars[fc][fCarid]);
  525. FactionCars[fc][fCarid] = CreateVehicle(FactionCars[fc][fVehid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2],FactionCars[fc][fPos][3],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1],-255);
  526. #if defined FACTION_CARS_TUNEABLE
  527. if(IsAllowedFactionToTune(FactionCars[fc][fFaction][0])){
  528. if(FactionCars[fc][fTuning][0] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][0]); }
  529. if(FactionCars[fc][fTuning][1] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][1]); }
  530. if(FactionCars[fc][fTuning][2] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][2]); }
  531. if(FactionCars[fc][fTuning][3] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][3]); }
  532. if(FactionCars[fc][fTuning][4] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][4]); }
  533. if(FactionCars[fc][fTuning][5] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][5]); }
  534. if(FactionCars[fc][fTuning][6] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][6]); }
  535. if(FactionCars[fc][fTuning][7] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][7]); }
  536. if(FactionCars[fc][fTuning][8] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][8]); }
  537. if(FactionCars[fc][fTuning][9] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][9]); }
  538. if(FactionCars[fc][fTuning][10] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][10]); }
  539. if(FactionCars[fc][fTuning][11] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][11]); }
  540. if(FactionCars[fc][fTuning][12] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][12]); }
  541. if(FactionCars[fc][fTuning][13] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][13]); }
  542. }
  543. #endif
  544. }return true;
  545. }
  546. public LoadFactionCars(){
  547. if(!fexist(FACTION_CAR_FILE)){
  548. new File:tfFile=fopen(FACTION_CAR_FILE,io_write);
  549. fclose(tfFile);
  550. }
  551. new File:fFile=fopen(FACTION_CAR_FILE,io_read),Content[1024],fc;
  552. while(fread(fFile,Content) && fc<sizeof(FactionCars)){
  553. StripNewLine(Content);
  554. sscanf(Content,"dffffdddddddddddddddddddddd",
  555. FactionCars[fc][fVehid],
  556. FactionCars[fc][fPos][0],
  557. FactionCars[fc][fPos][1],
  558. FactionCars[fc][fPos][2],
  559. FactionCars[fc][fPos][3],
  560. FactionCars[fc][fCol][0],
  561. FactionCars[fc][fCol][1],
  562. FactionCars[fc][fFaction][0],
  563. FactionCars[fc][fFaction][1],
  564. FactionCars[fc][fFaction][2],
  565. FactionCars[fc][fFaction][3],
  566. FactionCars[fc][fFaction][4],
  567. FactionCars[fc][fTuning][0],
  568. FactionCars[fc][fTuning][1],
  569. FactionCars[fc][fTuning][2],
  570. FactionCars[fc][fTuning][3],
  571. FactionCars[fc][fTuning][4],
  572. FactionCars[fc][fTuning][5],
  573. FactionCars[fc][fTuning][6],
  574. FactionCars[fc][fTuning][7],
  575. FactionCars[fc][fTuning][8],
  576. FactionCars[fc][fTuning][9],
  577. FactionCars[fc][fTuning][10],
  578. FactionCars[fc][fTuning][11],
  579. FactionCars[fc][fTuning][12],
  580. FactionCars[fc][fTuning][13],
  581. FactionCars[fc][fPrice]);
  582. if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
  583. FactionCars[fc][fCarid] = CreateVehicle(FactionCars[fc][fVehid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2],FactionCars[fc][fPos][3],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1],-255);
  584. #if defined FACTION_CARS_LOCKABLE
  585. fLockCar(FactionCars[fc][fCarid]);
  586. FactionCars[fc][fLock] = true;
  587. #endif
  588. #if defined FACTION_CARS_TUNEABLE
  589. if(IsAllowedFactionToTune(FactionCars[fc][fFaction][0])){
  590. if(FactionCars[fc][fTuning][0] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][0]); }
  591. if(FactionCars[fc][fTuning][1] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][1]); }
  592. if(FactionCars[fc][fTuning][2] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][2]); }
  593. if(FactionCars[fc][fTuning][3] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][3]); }
  594. if(FactionCars[fc][fTuning][4] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][4]); }
  595. if(FactionCars[fc][fTuning][5] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][5]); }
  596. if(FactionCars[fc][fTuning][6] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][6]); }
  597. if(FactionCars[fc][fTuning][7] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][7]); }
  598. if(FactionCars[fc][fTuning][8] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][8]); }
  599. if(FactionCars[fc][fTuning][9] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][9]); }
  600. if(FactionCars[fc][fTuning][10] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][10]); }
  601. if(FactionCars[fc][fTuning][11] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][11]); }
  602. if(FactionCars[fc][fTuning][12] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][12]); }
  603. if(FactionCars[fc][fTuning][13] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][13]); }
  604. }
  605. #endif
  606. fc++;
  607. }
  608. }fclose(fFile);
  609. return printf(" '%d' Fraktionsfahrzeuge wurden geladen & erstellt.",fc);
  610. }
  611. public SaveFactionCars(bool:destroy){
  612. if(fexist(FACTION_CAR_FILE)) fremove(FACTION_CAR_FILE);
  613. new File:fFile=fopen(FACTION_CAR_FILE,io_append),Content[1024];
  614. for(new fc;fc<sizeof(FactionCars);fc++){
  615. if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
  616. format(Content,sizeof(Content),"%d %.3f %.3f %.3f %.3f %03d %03d %02d %02d %02d %02d %02d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\r\n",
  617. FactionCars[fc][fVehid],
  618. FactionCars[fc][fPos][0],
  619. FactionCars[fc][fPos][1],
  620. FactionCars[fc][fPos][2],
  621. FactionCars[fc][fPos][3],
  622. FactionCars[fc][fCol][0],
  623. FactionCars[fc][fCol][1],
  624. FactionCars[fc][fFaction][0],
  625. FactionCars[fc][fFaction][1],
  626. FactionCars[fc][fFaction][2],
  627. FactionCars[fc][fFaction][3],
  628. FactionCars[fc][fFaction][4],
  629. FactionCars[fc][fTuning][0],
  630. FactionCars[fc][fTuning][1],
  631. FactionCars[fc][fTuning][2],
  632. FactionCars[fc][fTuning][3],
  633. FactionCars[fc][fTuning][4],
  634. FactionCars[fc][fTuning][5],
  635. FactionCars[fc][fTuning][6],
  636. FactionCars[fc][fTuning][7],
  637. FactionCars[fc][fTuning][8],
  638. FactionCars[fc][fTuning][9],
  639. FactionCars[fc][fTuning][10],
  640. FactionCars[fc][fTuning][11],
  641. FactionCars[fc][fTuning][12],
  642. FactionCars[fc][fTuning][13],
  643. FactionCars[fc][fPrice]);
  644. fwrite(fFile,Content);
  645. if(destroy == true){
  646. if(DestroyVehicle(FactionCars[fc][fCarid]))
  647. FactionCars[fc][fCarid] = -255;
  648. }
  649. }
  650. }fclose(fFile);
  651. return true;
  652. }
  653. public RespawnFactionBuylist(){
  654. for(new fbl;fbl<sizeof(FactionBuylist);fbl++)
  655. SetVehicleToRespawn(FactionBuylist[fbl][fbCarid]);
  656. return 1;
  657. }
  658. public RemoveComponent(vehicleid,componentid)
  659. return RemoveVehicleComponent(vehicleid,componentid);
  660. public ChangePaintjob(vehicleid,paintjobid)
  661. return ChangeVehiclePaintjob(vehicleid,paintjobid);
  662. public ChangeColor(vehicleid,color1,color2)
  663. return ChangeVehicleColor(vehicleid,color1,color2);
  664.  
  665. #if defined FACTION_CARS_TUNEABLE
  666. stock IsAllowedFactionToTune(Faction){
  667. if(Faction){
  668. if(Faction == 1) return true;
  669. }return false;
  670. }
  671. #endif
  672. stock IsAllowedFactionToBuy(Faction){
  673. if(Faction){
  674. if(Faction == 1) return true;
  675. }return false;
  676. }
  677. stock GetDefaultCarColorOfFaction(Faction,&col1,&col2){
  678. if(Faction==1){
  679. col1 = 1;
  680. col2 = 1;
  681. }return 1;
  682. }
  683. stock GetFactioncarsOfFaction(Faction){
  684. new Cars;
  685. for(new fc;fc<sizeof(FactionCars);fc++){
  686. if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
  687. if(FactionCars[fc][fFaction][0] == Faction)
  688. Cars++;
  689. }
  690. }return Cars;
  691. }
  692. stock GetPlayerFaction(playerid){
  693. new Leader=GetPlayerLeader(playerid);
  694. if(Leader)
  695. return Leader;
  696. new Member=GetPlayerMember(playerid);
  697. if(Member)
  698. return Member;
  699. return 0;
  700. }
  701. stock GetPlayerLeader(playerid)
  702. return CallRemoteFunction("GetPlayerLeader","i",playerid);
  703. stock GetPlayerMember(playerid)
  704. return CallRemoteFunction("GetPlayerMember","i",playerid);
  705. stock GetPlayerAdmin(playerid)
  706. {
  707. new admlvl = CallRemoteFunction("GetPlayerAdmin","i",playerid);
  708. if(admlvl)
  709. return admlvl;
  710. else if(IsPlayerAdmin(playerid))
  711. return NEEDED_ADMINLEVEL;
  712. return false;
  713. }
  714. stock sscanf(string[],format[],{Float,_}:...){
  715. new formatPos=0,stringPos=0,paramPos=2,paramCount=numargs();
  716. while(paramPos < paramCount && string[stringPos]){
  717. switch (format[formatPos++]){
  718. case '\0':{return 0;}case 'i','d':{
  719. new neg=1,num=0,ch=string[stringPos];
  720. if(ch=='-'){neg=-1;ch=string[++stringPos];}
  721. do{ stringPos++;
  722. if(ch>='0'&&ch<='9'){num=(num*10)+(ch-'0');}else{return 1;}
  723. }while((ch=string[stringPos])&&ch!=' ');setarg(paramPos,0,num*neg);}
  724. case 'h','x':{
  725. new ch,num=0;while((ch=string[stringPos++])){
  726. switch (ch){
  727. case 'x','X':{num=0;continue;}case '0'..'9':{num=(num<<4)|(ch-'0');}
  728. case 'a'..'f':{num=(num<<4)|(ch-('a'-10));}case 'A'..'F':{num=(num<<4)|(ch-('A'-10));}
  729. case ' ':{break;}default:{return 1;}}
  730. }setarg(paramPos,0,num);}
  731. case 'c':{setarg(paramPos,0,string[stringPos++]);}
  732. case 'f':{
  733. new tmp[25];
  734. strmid(tmp,string,stringPos,stringPos+sizeof(tmp)-2);
  735. setarg(paramPos,0,_:floatstr(tmp));}
  736. case 's','z':{
  737. new i=0,ch;
  738. if(format[formatPos]){
  739. while ((ch=string[stringPos++])&&ch!=' '){
  740. setarg(paramPos,i++,ch);
  741. }if(!i)return 1;
  742. }else{while((ch=string[stringPos++])){setarg(paramPos,i++,ch);}
  743. }stringPos--;setarg(paramPos,i,'\0');
  744. }default:{continue;}}
  745. while(string[stringPos]&&string[stringPos]!=' '){stringPos++;}
  746. while(string[stringPos]==' '){stringPos++;}
  747. paramPos++;}
  748. while(format[formatPos]=='z')formatPos++;
  749. return format[formatPos];
  750. }
  751. stock StripNewLine(string[]){
  752. new len=strlen(string);
  753. if(string[0]==0) return ;
  754. if((string[len-1]=='\n')||(string[len - 1]=='\r')){
  755. string[len - 1] = 0;
  756. if(string[0]==0) return ;
  757. if((string[len-2]=='\n')||(string[len-2]=='\r')) string[len-2]=0;
  758. }
  759. }
  760. AntiDeAMX(){
  761. new a[][]={
  762. "Unarmed (Fist)",
  763. "Brass K"
  764. };
  765. #pragma unused a
  766. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement