Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #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
- //Hier ist die Konfiguration:
- //Stelle es nach deinem belieben ein^^
- //Die Fraktionen die Kaufen dürfen oder Tunen dürfen findest du unter:
- //stock IsAllowedFactionToTune
- //stock IsAllowedFactionToBuy
- //
- //Nicht vergessen, die Gekauften Fahrzeuge brauchen Farben:
- //stock GetDefaultCarColorOfFaction
- #define FACTION_CAR_FILE ("Fraktionsautos.cfg")//Datei wo die gesamten Fraktionsfahrzeuge gespeichert werden sollen!
- #define MAX_FACTION_CARS (400)//Die Maximale anzahl von Fraktionsfahrzeugen!
- #define NEEDED_ADMINLEVEL (1337)//Das benötigte Adminlevel um Fraktionfahrzeuge zu fahren, ab/-aufschließen, umzuparken, entfernen, erstellen.
- #define MAX_FACTIONS (30)//Die Maximale anzahl von Fraktionen aus deinem Script!
- #define MAX_BUY (15)//Die Maximale anzahl von Fahrzeugen die eine Fraktion kaufen darf!
- #define FACTION_CARS_TUNEABLE
- //#define FACTION_CARS_LOCKABLE
- //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.
- //Ab hier nichts mehr ändern!
- #if defined FACTION_CARS_LOCKABLE
- #include <ForAllPlayers>
- #endif
- #define FACTION_COL_GREY (0xAFAFAFAA)
- #define FACTION_COL_YELLOW (0xFFFF00FF)
- #define DIALOG_FACTION_CAR_BUY (467)
- forward LoadFactionCars();
- forward SaveFactionCars(bool:destroy);
- forward LockFactionCarDoors();
- forward DestroyAndCreateFactionCar(fc);
- forward RemoveComponent(vehicleid,componentid);
- forward ChangePaintjob(vehicleid,paintjobid);
- forward ChangeColor(vehicleid,color1,color2);
- forward RespawnFactionBuylist();
- new fCarName[][]={
- "Landstalker","Bravura","Buffalo","Linerunner","Perrenial","Sentinel",
- "Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus",
- "Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam",
- "Esperanto","Taxi","Washington","Bobcat","Whoopee","BF Injection",
- "Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus",
- "Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie",
- "Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral",
- "Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder",
- "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "Berkley's RC Van",
- "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale",
- "Oceanic","Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy",
- "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX",
- "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper",
- "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking",
- "Blista Compact", "Police Maverick", "Boxvillde", "Benson", "Mesa", "RC Goblin",
- "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT",
- "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt",
- "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra",
- "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune",
- "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer",
- "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent",
- "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo",
- "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite",
- "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratum",
- "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito",
- "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper",
- "Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400",
- "News Van","Tug","Trailer","Emperor","Wayfarer","Euros","Hotdog","Club",
- "Freight Box","Trailer","Andromada","Dodo","RC Cam","Launch","Police Car",
- "Police Car","Police Car","Police Ranger","Picador","S.W.A.T","Alpha",
- "Phoenix","Glendale Shit","Sadler Shit","Luggage","Luggage","Stairs","Boxville",
- "Tiller","Utility Trailer"
- };
- enum fBuylist{
- fbVehid,
- Float:fbX,
- Float:fbY,
- Float:fbZ,
- Float:fbA,
- fbPrice,
- fbCarid,
- Text3D:fbLabel
- };
- new FactionBuylist[][fBuylist] = {
- {560,870.9376,-1101.8865,24.0017,269.6273,333}
- };
- new Float:FactionBuySpawn[4]={880.3569,-1101.9473,24.0012,269.6273};
- enum fCar{
- fCarid,
- fVehid,
- Float:fPos[4],
- fCol[2],
- fFaction[5],
- fTuning[14],
- fPrice,
- #if defined FACTION_CARS_LOCKABLE
- bool:fLock
- #endif
- };
- new FactionCars[MAX_FACTION_CARS][fCar];
- #if defined FACTION_CARS_LOCKABLE
- new FactionCarsTimer;
- #endif
- new BuylistRespawner;
- new SaveFactionCarsTimer;
- new LastRespawned[MAX_FACTIONS];
- public OnFilterScriptInit(){
- AntiDeAMX();
- LoadFactionCars();
- #if defined FACTION_CARS_LOCKABLE
- FactionCarsTimer = SetTimer("LockFactionCarDoors",1037,true);
- #endif
- SaveFactionCarsTimer = SetTimerEx("SaveFactionCars",((1000*60)*60),true,"d",false);
- for(new fbl;fbl<sizeof(FactionBuylist);fbl++){
- FactionBuylist[fbl][fbCarid] = CreateVehicle(FactionBuylist[fbl][fbVehid],FactionBuylist[fbl][fbX],FactionBuylist[fbl][fbY],FactionBuylist[fbl][fbZ],FactionBuylist[fbl][fbA],-1,-1,-255);
- new fblText[128];
- format(fblText,sizeof(fblText),"|--- Fraktionsautohaus ---|\n\nFahrzeugname: %s\nPreis: $%d",fCarName[FactionBuylist[fbl][fbVehid]-400],FactionBuylist[fbl][fbPrice]);
- FactionBuylist[fbl][fbLabel] = Create3DTextLabel(fblText,0xFFFFFFFF,FactionBuylist[fbl][fbX],FactionBuylist[fbl][fbY],FactionBuylist[fbl][fbZ],40.0,0,true);
- Attach3DTextLabelToVehicle(FactionBuylist[fbl][fbLabel],FactionBuylist[fbl][fbCarid],0.0,0.0,0.75);
- }
- BuylistRespawner = SetTimer("RespawnFactionBuylist",(1000*60)*10,true);
- return 1;
- }
- public OnFilterScriptExit(){
- KillTimer(SaveFactionCarsTimer);
- SaveFactionCars(true);
- #if defined FACTION_CARS_LOCKABLE
- KillTimer(FactionCarsTimer);
- #endif
- KillTimer(BuylistRespawner);
- for(new fbl;fbl<sizeof(FactionBuylist);fbl++){
- DestroyVehicle(FactionBuylist[fbl][fbCarid]);
- Delete3DTextLabel(FactionBuylist[fbl][fbLabel]);
- }
- return 1;
- }
- public OnPlayerConnect(playerid){
- //OnPlayerConnect drinne lassen!
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason){
- //OnPlayerDisconnect drinne lassen!
- return 1;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger){
- for(new fbl;fbl<sizeof(FactionBuylist);fbl++){
- if(vehicleid == FactionBuylist[fbl][fbCarid]){
- if(!IsAllowedFactionToBuy(GetPlayerLeader(playerid))){
- SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht brechtigt Fraktionsfahrzeuge zu kaufen!");
- new Float:pPos[3];
- GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
- SetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
- }break;
- }
- }return 1;
- }
- public OnVehicleDeath(vehicleid, killerid){
- for(new fc;fc<sizeof(FactionCars);fc++){
- if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
- if(FactionCars[fc][fCarid] == vehicleid){
- SetTimerEx("DestroyAndCreateFactionCar",3000,0,"d",fc);
- break;
- }
- }
- }return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[]){
- dcmd(efa,3,cmdtext);
- if(strcmp(cmdtext,"/fpark",true)==0){
- if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
- new fc;while(fc<sizeof(FactionCars)){
- if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
- if(GetPlayerVehicleID(playerid) == FactionCars[fc][fCarid]){
- if(GetPlayerAdmin(playerid) >= NEEDED_ADMINLEVEL || GetPlayerLeader(playerid) == FactionCars[fc][fFaction][0]){
- GetVehiclePos(FactionCars[fc][fCarid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2]);
- GetVehicleZAngle(FactionCars[fc][fCarid],FactionCars[fc][fPos][3]);
- SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast das Fraktionsfahrzeug erfolgreich umgeparkt.");
- }else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist dazu nicht berechtigt.");
- return true;
- }
- }fc++;
- }SendClientMessage(playerid,FACTION_COL_GREY,"Du sitzt in keinem Fraktionsfahrzeug.");
- }else SendClientMessage(playerid,FACTION_COL_GREY,"Du sitzt in keinem Fahrzeug oder bist nicht der Fahrer.");
- return true;
- }
- if(strcmp(cmdtext,"/fcarsell",true)==0){
- if(GetPlayerLeader(playerid)){
- if(IsAllowedFactionToBuy(GetPlayerFaction(playerid))){
- if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
- new Carid = GetPlayerVehicleID(playerid);
- for(new fc;fc<sizeof(FactionCars);fc++){
- if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
- if(Carid == FactionCars[fc][fCarid]){
- if(FactionCars[fc][fFaction][0] == GetPlayerLeader(playerid)){
- if(FactionCars[fc][fPrice] <= 0)
- return SendClientMessage(playerid,FACTION_COL_GREY,"Fahrzeuge die von Administratoren erstellt worden sind, dafst du nicht verkaufen.");
- FactionCars[fc][fVehid] = -255;
- if(DestroyVehicle(FactionCars[fc][fCarid]))
- FactionCars[fc][fCarid] = -255;
- new fText[178];
- format(fText,sizeof(fText),"Du hast das Fraktionsfahrzeug erfolgreich für $%d(hälfte vom Kaufpreis) verkauft.",(FactionCars[fc][fPrice]/2));
- SendClientMessage(playerid,FACTION_COL_YELLOW,fText);
- GivePlayerMoney(playerid,(FactionCars[fc][fPrice]/2));
- }
- else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht der besitzer dieses Fahrzeuges.");
- return true;
- }
- }
- }SendClientMessage(playerid,FACTION_COL_GREY,"Du sitzt in keinem Fraktionsfahrzeug.");
- }else SendClientMessage(playerid,FACTION_COL_GREY,"Du musst der Fahrer eines Fahrzeuges sein.");
- }else SendClientMessage(playerid,FACTION_COL_GREY,"Deine Fraktion ist dazu nicht berechtigt.");
- }else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht berechtigt diesen Befehl anzuwenden.");
- return true;
- }
- if(strcmp(cmdtext,"/lfa",true)==0){
- if(GetPlayerAdmin(playerid) >= NEEDED_ADMINLEVEL){
- for(new fc;fc<sizeof(FactionCars);fc++){
- if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
- new Float:fX,Float:fY,Float:fZ;
- GetVehiclePos(FactionCars[fc][fCarid],fX,fY,fZ);
- if(IsPlayerInRangeOfPoint(playerid,4.0,fX,fY,fZ)){
- FactionCars[fc][fVehid] = -255;
- if(DestroyVehicle(FactionCars[fc][fCarid])){
- FactionCars[fc][fCarid] = -255;
- }return SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast das Fraktionsfahrzeug entfernt.");
- }
- }
- }
- }else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht berechtigt diesen Befehl anzuwenden.");
- return true;
- }
- if(strcmp(cmdtext,"/rafa",true)==0){
- if(GetPlayerAdmin(playerid) >= NEEDED_ADMINLEVEL){
- new fName[MAX_PLAYER_NAME],string[128];
- GetPlayerName(playerid,fName,sizeof(fName));
- format(string,sizeof(string),"Server: %s hat alle Fraktionsfahrzeuge respawnt.",fName);
- SendClientMessageToAll(FACTION_COL_YELLOW,string);
- for(new fc;fc<sizeof(FactionCars);fc++){
- if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611)
- DestroyAndCreateFactionCar(fc);
- }
- }else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht berechtigt diesen Befehl anzuwenden.");
- return true;
- }
- if(strcmp(cmdtext,"/ramfa",true)==0){
- if(GetPlayerLeader(playerid)){
- if(gettime() < LastRespawned[GetPlayerFaction(playerid)-1])
- return SendClientMessage(playerid,FACTION_COL_GREY,"Du kannst deine Fahrzeuge nur alle '60' Minuten respawnen.");
- LastRespawned[GetPlayerFaction(playerid)-1] = gettime()+(60*60);
- for(new fc;fc<sizeof(FactionCars);fc++){
- if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
- if(FactionCars[fc][fFaction][0] == GetPlayerFaction(playerid)){
- DestroyAndCreateFactionCar(fc);
- }
- }
- }SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast deine Fraktionsfahrzeuge erfolgreich respawnt.");
- }else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht berechtigt diesen Befehl anzuwenden.");
- return true;
- }
- #if defined FACTION_CARS_LOCKABLE
- if(strcmp(cmdtext,"/flock",true)==0){
- if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
- for(new fc;fc<sizeof(FactionCars);fc++){
- if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
- if(GetPlayerVehicleID(playerid) == FactionCars[fc][fCarid]){
- for(new f;f<5;f++){
- if(GetPlayerAdmin(playerid) >= NEEDED_ADMINLEVEL || GetPlayerFaction(playerid) == FactionCars[fc][fFaction][f]){
- PlayerPlaySound(playerid,1145,0.0,0.0,0.0);
- if(FactionCars[fc][fLock] == true){
- FactionCars[fc][fLock] = false;
- fUnlockCar(FactionCars[fc][fCarid]);
- GameTextForPlayer(playerid,"~w~Fahrzeug~n~~g~Aufgeschlossen",5000,3);
- }
- else if(FactionCars[fc][fLock] == false){
- fLockCar(FactionCars[fc][fCarid]);
- FactionCars[fc][fLock] = true;
- GameTextForPlayer(playerid,"~w~Fahrzeug~n~~r~Abgeschlossen",5000,3);
- }break;
- }
- }return true;
- }
- }
- }SendClientMessage(playerid,FACTION_COL_GREY,"Du sitzt in keinem Fraktionsfahrzeug!");
- }else{
- if(GetPlayerState(playerid)==PLAYER_STATE_PASSENGER)
- SendClientMessage(playerid,FACTION_COL_GREY,"Du musst der Fahrer dieses Fahrzeuges sein.");
- else
- SendClientMessage(playerid,FACTION_COL_GREY,"Du muss in einem Fahrzeug sitzen.");
- }return true;
- }
- #endif
- return 0;
- }
- dcmd_efa(playerid,params[]){
- if(GetPlayerAdmin(playerid) >= NEEDED_ADMINLEVEL){
- new vehid,col1,col2,faction[5];
- if(!sscanf(params,"dddd",vehid,col1,col2,faction[0])){
- sscanf(params,"dddddddd",vehid,col1,col2,faction[0],faction[1],faction[2],faction[3],faction[4]);
- if(vehid < 400 || vehid > 611) return SendClientMessage(playerid,FACTION_COL_GREY,"Vehicle-ID nur von 400 bis 611.");
- if(col1 < 0 || col1 > 255) return SendClientMessage(playerid,FACTION_COL_GREY,"Falsche Farbe(1)!");
- if(col2 < 0 || col2 > 255) return SendClientMessage(playerid,FACTION_COL_GREY,"Falsche Farbe(2)!");
- if(faction[0] && faction[0] <= MAX_FACTIONS){
- for(new f;f<5;f++){
- if(faction[f] <= 0 || faction[f] > MAX_FACTIONS){
- faction[f] = -255;
- }
- }
- for(new fc;fc<sizeof(FactionCars);fc++){
- if(FactionCars[fc][fVehid] < 400 || FactionCars[fc][fVehid] > 611){
- FactionCars[fc][fVehid] = vehid;
- new Float:fX,Float:fY,Float:fZ,Float:fA;
- GetPlayerPos(playerid,fX,fY,fZ),GetPlayerFacingAngle(playerid,fA);
- FactionCars[fc][fPos][0] = fX;
- FactionCars[fc][fPos][1] = fY;
- FactionCars[fc][fPos][2] = fZ;
- FactionCars[fc][fPos][3] = fA;
- FactionCars[fc][fCol][0] = col1;
- FactionCars[fc][fCol][1] = col2;
- for(new f;f<5;f++){
- FactionCars[fc][fFaction][f] = faction[f];
- }
- FactionCars[fc][fPrice] = 0;
- for(new mod;mod<14;mod++)
- FactionCars[fc][fTuning][mod] = 0;
- 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);
- #if defined FACTION_CARS_LOCKABLE
- FactionCars[fc][fLock] = true;
- #endif
- SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast das Fraktionsfahrzeug erfolgreich erstellt.");
- SendClientMessage(playerid,FACTION_COL_YELLOW,"Vergesse es nicht mit '/fpark' umzuparken.");
- PutPlayerInVehicle(playerid,FactionCars[fc][fCarid],0);
- return true;
- }
- }SendClientMessage(playerid,FACTION_COL_GREY,"Die Maximale Anzahl von Fraktionsfahrzeugen wurde bereits erreicht.");
- }else SendClientMessage(playerid,FACTION_COL_GREY,"Falsche Fraktion!");
- }else SendClientMessage(playerid,FACTION_COL_GREY,"Benutze: '/efa [Model] [Farbe(1)] [Farbe(2)] [Hauptfraktion]'.");
- }else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht berechtigt diesen Befehl anzuwenden.");
- return true;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate){
- if(newstate==PLAYER_STATE_DRIVER){
- new Carid = GetPlayerVehicleID(playerid);
- for(new fbl;fbl<sizeof(FactionBuylist);fbl++){
- if(Carid == FactionBuylist[fbl][fbCarid]){
- if(IsAllowedFactionToBuy(GetPlayerLeader(playerid))){
- TogglePlayerControllable(playerid,false);
- new fblText[256];
- 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]);
- ShowPlayerDialog(playerid,DIALOG_FACTION_CAR_BUY,DIALOG_STYLE_MSGBOX,"{FFFFFF}Fraktionsautohaus:",fblText,"Nein","Ja");
- }else{
- SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht brechtigt Fraktionsfahrzeuge zu kaufen!");
- new Float:pPos[3];
- GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
- SetPlayerPos(playerid,pPos[0]+2.0,pPos[1]+2.0,pPos[2]);
- }break;
- }
- }
- for(new fc;fc<sizeof(FactionCars);fc++){
- if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
- if(FactionCars[fc][fCarid] == GetPlayerVehicleID(playerid)){
- for(new f;f<5;f++){
- if(GetPlayerAdmin(playerid) >= NEEDED_ADMINLEVEL || GetPlayerFaction(playerid) == FactionCars[fc][fFaction][f])
- return true;
- }
- SendClientMessage(playerid,FACTION_COL_GREY,"Du bestitzt für dieses Fahrzeug keine Schlüssel, du verlässt das Fahrzeug.");
- RemovePlayerFromVehicle(playerid);
- return true;
- }
- }
- }
- }return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
- if(dialogid == DIALOG_FACTION_CAR_BUY){
- if(response){
- new Float:pPos[3];
- GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
- SetPlayerPos(playerid,pPos[0]+2.0,pPos[1]+2.0,pPos[2]);
- TogglePlayerControllable(playerid,true);
- }
- if(!response){
- if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
- if(IsAllowedFactionToBuy(GetPlayerLeader(playerid))){
- if(GetFactioncarsOfFaction(GetPlayerLeader(playerid)) < MAX_BUY){
- new Carid = GetPlayerVehicleID(playerid);
- for(new fbl;fbl<sizeof(FactionBuylist);fbl++){
- if(Carid == FactionBuylist[fbl][fbCarid]){
- if(GetPlayerMoney(playerid) >= FactionBuylist[fbl][fbPrice]){
- for(new fc;fc<sizeof(FactionCars);fc++){
- if(FactionCars[fc][fVehid] < 400 || FactionCars[fc][fVehid] > 611){
- FactionCars[fc][fVehid] = FactionBuylist[fbl][fbVehid];
- FactionCars[fc][fPos][0] = FactionBuySpawn[0];
- FactionCars[fc][fPos][1] = FactionBuySpawn[1];
- FactionCars[fc][fPos][2] = FactionBuySpawn[2];
- FactionCars[fc][fPos][3] = FactionBuySpawn[3];
- new Color[2];
- GetDefaultCarColorOfFaction(GetPlayerLeader(playerid),Color[0],Color[1]);
- FactionCars[fc][fCol][0] = Color[0];
- FactionCars[fc][fCol][1] = Color[1];
- FactionCars[fc][fPrice] = FactionBuylist[fbl][fbPrice];
- for(new slot;slot<14;slot++){
- FactionCars[fc][fTuning][slot] = 0;
- }
- 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);
- #if defined FACTION_CARS_LOCKABLE
- fLockCar(FactionCars[fc][fCarid]);
- FactionCars[fc][fLock] = true;
- #endif
- for(new f;f<5;f++){
- FactionCars[fc][fFaction][f] = -255;
- }
- FactionCars[fc][fFaction][0] = GetPlayerLeader(playerid);
- GivePlayerMoney(playerid,-FactionBuylist[fbl][fbPrice]);
- TogglePlayerControllable(playerid,true);
- new Float:pPos[3];
- GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
- SetPlayerPos(playerid,pPos[0]+2.0,pPos[1]+2.0,pPos[2]);
- SendClientMessage(playerid,FACTION_COL_YELLOW,"Glückwunsch zum neuen Fahrzeug.");
- SendClientMessage(playerid,FACTION_COL_YELLOW,"Bitte vergesse nicht das Fahrzeug mit: '/fpark' umzuparken.");
- SendClientMessage(playerid,FACTION_COL_YELLOW,"Das Fahrzeug steht nun am Ausgabepunkt bereit!");
- return 1;
- }
- }
- new Float:pPos[3];
- GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
- SetPlayerPos(playerid,pPos[0]+2.0,pPos[1]+2.0,pPos[2]);
- TogglePlayerControllable(playerid,true);
- SendClientMessage(playerid,FACTION_COL_GREY,"Die maximale Anzahl von Fraktionsfahrzeugen ist bereits erreicht.");
- }else{
- new Float:pPos[3];
- GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
- SetPlayerPos(playerid,pPos[0]+2.0,pPos[1]+2.0,pPos[2]);
- TogglePlayerControllable(playerid,true);
- SendClientMessage(playerid,FACTION_COL_GREY,"Du hast nicht genügend Geld bei dir!");
- }return 1;
- }
- }
- }else{
- new Float:pPos[3];
- GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
- SetPlayerPos(playerid,pPos[0]+2.0,pPos[1]+2.0,pPos[2]);
- TogglePlayerControllable(playerid,true);
- SendClientMessage(playerid,FACTION_COL_GREY,"Du hast nicht genügend Geld bei dir!");
- SendClientMessage(playerid,FACTION_COL_GREY,"Deine Fraktion hat das Limit von Fahrzeugen bereits erreicht.");
- }
- }else{
- SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht brechtigt Fraktionsfahrzeuge zu kaufen!");
- TogglePlayerControllable(playerid,true);
- new Float:pPos[3];
- GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
- SetPlayerPos(playerid,pPos[0]+2.0,pPos[1]+2.0,pPos[2]);
- }
- }
- }return 1;
- }return 0;
- }
- public OnVehicleMod(playerid, vehicleid, componentid){
- for(new fc;fc<sizeof(FactionCars);fc++){
- if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
- if(FactionCars[fc][fCarid] == vehicleid){
- #if defined FACTION_CARS_TUNEABLE
- if((FactionCars[fc][fFaction][0] == GetPlayerLeader(playerid) || GetPlayerAdmin(playerid)) && IsAllowedFactionToTune(FactionCars[fc][fFaction][0]))
- FactionCars[fc][fTuning][GetVehicleComponentType(componentid)] = componentid;
- else
- SetTimerEx("RemoveComponent",3000,false,"dd",vehicleid,componentid);
- #else
- SetTimerEx("RemoveComponent",3000,false,"dd",vehicleid,componentid);
- #endif
- break;
- }
- }
- }return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid){
- for(new fc;fc<sizeof(FactionCars);fc++){
- if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
- if(FactionCars[fc][fCarid] == vehicleid){
- SetTimerEx("ChangePaintjob",3000,false,"dd",FactionCars[fc][fCarid],3);
- break;
- }
- }
- }return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2){
- for(new fc;fc<sizeof(FactionCars);fc++){
- if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
- if(FactionCars[fc][fCarid] == vehicleid){
- SetTimerEx("ChangeColor",3000,false,"ddd",FactionCars[fc][fCarid],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1]);
- break;
- }
- }
- }return 1;
- }
- #if defined FACTION_CARS_LOCKABLE
- public LockFactionCarDoors(){
- ForAllPlayers(i){
- for(new fc;fc<sizeof(FactionCars);fc++){
- if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
- if(FactionCars[fc][fLock] == true){
- 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)
- SetVehicleParamsForPlayer(FactionCars[fc][fCarid],i,false,false);
- else
- SetVehicleParamsForPlayer(FactionCars[fc][fCarid],i,false,true);
- }
- }
- }
- }return true;
- }
- stock fLockCar(vehicleid){
- ForAllPlayers(i)
- SetVehicleParamsForPlayer(vehicleid,i,false,true);
- return true;
- }
- stock fUnlockCar(vehicleid){
- ForAllPlayers(i)
- SetVehicleParamsForPlayer(vehicleid,i,false,false);
- return true;
- }
- #endif
- public DestroyAndCreateFactionCar(fc){
- if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
- DestroyVehicle(FactionCars[fc][fCarid]);
- 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);
- #if defined FACTION_CARS_TUNEABLE
- if(IsAllowedFactionToTune(FactionCars[fc][fFaction][0])){
- if(FactionCars[fc][fTuning][0] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][0]); }
- if(FactionCars[fc][fTuning][1] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][1]); }
- if(FactionCars[fc][fTuning][2] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][2]); }
- if(FactionCars[fc][fTuning][3] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][3]); }
- if(FactionCars[fc][fTuning][4] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][4]); }
- if(FactionCars[fc][fTuning][5] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][5]); }
- if(FactionCars[fc][fTuning][6] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][6]); }
- if(FactionCars[fc][fTuning][7] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][7]); }
- if(FactionCars[fc][fTuning][8] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][8]); }
- if(FactionCars[fc][fTuning][9] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][9]); }
- if(FactionCars[fc][fTuning][10] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][10]); }
- if(FactionCars[fc][fTuning][11] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][11]); }
- if(FactionCars[fc][fTuning][12] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][12]); }
- if(FactionCars[fc][fTuning][13] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][13]); }
- }
- #endif
- }return true;
- }
- public LoadFactionCars(){
- if(!fexist(FACTION_CAR_FILE)){
- new File:tfFile=fopen(FACTION_CAR_FILE,io_write);
- fclose(tfFile);
- }
- new File:fFile=fopen(FACTION_CAR_FILE,io_read),Content[1024],fc;
- while(fread(fFile,Content) && fc<sizeof(FactionCars)){
- StripNewLine(Content);
- sscanf(Content,"dffffdddddddddddddddddddddd",
- 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],
- FactionCars[fc][fFaction][0],
- FactionCars[fc][fFaction][1],
- FactionCars[fc][fFaction][2],
- FactionCars[fc][fFaction][3],
- FactionCars[fc][fFaction][4],
- FactionCars[fc][fTuning][0],
- FactionCars[fc][fTuning][1],
- FactionCars[fc][fTuning][2],
- FactionCars[fc][fTuning][3],
- FactionCars[fc][fTuning][4],
- FactionCars[fc][fTuning][5],
- FactionCars[fc][fTuning][6],
- FactionCars[fc][fTuning][7],
- FactionCars[fc][fTuning][8],
- FactionCars[fc][fTuning][9],
- FactionCars[fc][fTuning][10],
- FactionCars[fc][fTuning][11],
- FactionCars[fc][fTuning][12],
- FactionCars[fc][fTuning][13],
- FactionCars[fc][fPrice]);
- if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
- 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);
- #if defined FACTION_CARS_LOCKABLE
- fLockCar(FactionCars[fc][fCarid]);
- FactionCars[fc][fLock] = true;
- #endif
- #if defined FACTION_CARS_TUNEABLE
- if(IsAllowedFactionToTune(FactionCars[fc][fFaction][0])){
- if(FactionCars[fc][fTuning][0] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][0]); }
- if(FactionCars[fc][fTuning][1] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][1]); }
- if(FactionCars[fc][fTuning][2] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][2]); }
- if(FactionCars[fc][fTuning][3] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][3]); }
- if(FactionCars[fc][fTuning][4] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][4]); }
- if(FactionCars[fc][fTuning][5] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][5]); }
- if(FactionCars[fc][fTuning][6] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][6]); }
- if(FactionCars[fc][fTuning][7] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][7]); }
- if(FactionCars[fc][fTuning][8] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][8]); }
- if(FactionCars[fc][fTuning][9] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][9]); }
- if(FactionCars[fc][fTuning][10] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][10]); }
- if(FactionCars[fc][fTuning][11] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][11]); }
- if(FactionCars[fc][fTuning][12] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][12]); }
- if(FactionCars[fc][fTuning][13] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][13]); }
- }
- #endif
- fc++;
- }
- }fclose(fFile);
- return printf(" '%d' Fraktionsfahrzeuge wurden geladen & erstellt.",fc);
- }
- public SaveFactionCars(bool:destroy){
- if(fexist(FACTION_CAR_FILE)) fremove(FACTION_CAR_FILE);
- new File:fFile=fopen(FACTION_CAR_FILE,io_append),Content[1024];
- for(new fc;fc<sizeof(FactionCars);fc++){
- if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
- 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",
- 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],
- FactionCars[fc][fFaction][0],
- FactionCars[fc][fFaction][1],
- FactionCars[fc][fFaction][2],
- FactionCars[fc][fFaction][3],
- FactionCars[fc][fFaction][4],
- FactionCars[fc][fTuning][0],
- FactionCars[fc][fTuning][1],
- FactionCars[fc][fTuning][2],
- FactionCars[fc][fTuning][3],
- FactionCars[fc][fTuning][4],
- FactionCars[fc][fTuning][5],
- FactionCars[fc][fTuning][6],
- FactionCars[fc][fTuning][7],
- FactionCars[fc][fTuning][8],
- FactionCars[fc][fTuning][9],
- FactionCars[fc][fTuning][10],
- FactionCars[fc][fTuning][11],
- FactionCars[fc][fTuning][12],
- FactionCars[fc][fTuning][13],
- FactionCars[fc][fPrice]);
- fwrite(fFile,Content);
- if(destroy == true){
- if(DestroyVehicle(FactionCars[fc][fCarid]))
- FactionCars[fc][fCarid] = -255;
- }
- }
- }fclose(fFile);
- return true;
- }
- public RespawnFactionBuylist(){
- for(new fbl;fbl<sizeof(FactionBuylist);fbl++)
- SetVehicleToRespawn(FactionBuylist[fbl][fbCarid]);
- return 1;
- }
- public RemoveComponent(vehicleid,componentid)
- return RemoveVehicleComponent(vehicleid,componentid);
- public ChangePaintjob(vehicleid,paintjobid)
- return ChangeVehiclePaintjob(vehicleid,paintjobid);
- public ChangeColor(vehicleid,color1,color2)
- return ChangeVehicleColor(vehicleid,color1,color2);
- #if defined FACTION_CARS_TUNEABLE
- stock IsAllowedFactionToTune(Faction){
- if(Faction){
- if(Faction == 1) return true;
- }return false;
- }
- #endif
- stock IsAllowedFactionToBuy(Faction){
- if(Faction){
- if(Faction == 1) return true;
- }return false;
- }
- stock GetDefaultCarColorOfFaction(Faction,&col1,&col2){
- if(Faction==1){
- col1 = 1;
- col2 = 1;
- }return 1;
- }
- stock GetFactioncarsOfFaction(Faction){
- new Cars;
- for(new fc;fc<sizeof(FactionCars);fc++){
- if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
- if(FactionCars[fc][fFaction][0] == Faction)
- Cars++;
- }
- }return Cars;
- }
- stock GetPlayerFaction(playerid){
- new Leader=GetPlayerLeader(playerid);
- if(Leader)
- return Leader;
- new Member=GetPlayerMember(playerid);
- if(Member)
- return Member;
- return 0;
- }
- stock GetPlayerLeader(playerid)
- return CallRemoteFunction("GetPlayerLeader","i",playerid);
- stock GetPlayerMember(playerid)
- return CallRemoteFunction("GetPlayerMember","i",playerid);
- stock GetPlayerAdmin(playerid)
- {
- new admlvl = CallRemoteFunction("GetPlayerAdmin","i",playerid);
- if(admlvl)
- return admlvl;
- else if(IsPlayerAdmin(playerid))
- return NEEDED_ADMINLEVEL;
- return false;
- }
- stock sscanf(string[],format[],{Float,_}:...){
- new formatPos=0,stringPos=0,paramPos=2,paramCount=numargs();
- while(paramPos < paramCount && string[stringPos]){
- switch (format[formatPos++]){
- case '\0':{return 0;}case 'i','d':{
- new neg=1,num=0,ch=string[stringPos];
- if(ch=='-'){neg=-1;ch=string[++stringPos];}
- do{ stringPos++;
- if(ch>='0'&&ch<='9'){num=(num*10)+(ch-'0');}else{return 1;}
- }while((ch=string[stringPos])&&ch!=' ');setarg(paramPos,0,num*neg);}
- case 'h','x':{
- new ch,num=0;while((ch=string[stringPos++])){
- switch (ch){
- case 'x','X':{num=0;continue;}case '0'..'9':{num=(num<<4)|(ch-'0');}
- case 'a'..'f':{num=(num<<4)|(ch-('a'-10));}case 'A'..'F':{num=(num<<4)|(ch-('A'-10));}
- case ' ':{break;}default:{return 1;}}
- }setarg(paramPos,0,num);}
- case 'c':{setarg(paramPos,0,string[stringPos++]);}
- case 'f':{
- new tmp[25];
- strmid(tmp,string,stringPos,stringPos+sizeof(tmp)-2);
- setarg(paramPos,0,_:floatstr(tmp));}
- case 's','z':{
- new i=0,ch;
- if(format[formatPos]){
- while ((ch=string[stringPos++])&&ch!=' '){
- setarg(paramPos,i++,ch);
- }if(!i)return 1;
- }else{while((ch=string[stringPos++])){setarg(paramPos,i++,ch);}
- }stringPos--;setarg(paramPos,i,'\0');
- }default:{continue;}}
- while(string[stringPos]&&string[stringPos]!=' '){stringPos++;}
- while(string[stringPos]==' '){stringPos++;}
- paramPos++;}
- while(format[formatPos]=='z')formatPos++;
- return format[formatPos];
- }
- stock StripNewLine(string[]){
- new len=strlen(string);
- if(string[0]==0) return ;
- if((string[len-1]=='\n')||(string[len - 1]=='\r')){
- string[len - 1] = 0;
- if(string[0]==0) return ;
- if((string[len-2]=='\n')||(string[len-2]=='\r')) string[len-2]=0;
- }
- }
- AntiDeAMX(){
- new a[][]={
- "Unarmed (Fist)",
- "Brass K"
- };
- #pragma unused a
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement