Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Ganz oben
- //****************************FraktionsAutohaus
- #define FACTION_CAR_FILE ("Fraktionsautos.cfg")//Datei wo die gesamten Fraktionsfahrzeuge gespeichert werden sollen!
- #define MAX_FACTION_CARS (900)//Die Maximale anzahl von Fraktionsfahrzeugen!
- #define NEEDED_ADMINLEVEL (2000)//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 (20)//Die Maximale anzahl von Fahrzeugen die eine Fraktion kaufen darf!
- #define FACTION_CARS_TUNEABLE
- #if defined FACTION_CARS_LOCKABLE
- #include <ForAllPlayers>
- #endif
- #define FACTION_COL_GREY (0xAFAFAFAA)
- #define FACTION_COL_YELLOW (0xFFFF00FF)
- #define DIALOG_FACTION_CAR_BUY (37)
- forward LoadFactionCars();
- forward GetPlayerAdmin(playerid);
- forward GetPlayerFaction(playerid);
- 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] = {
- {522,2148.9592,-1203.7820,23.4015,270.7132,125000},
- {468,2148.8416,-1198.6277,23.5484,270.6686,50000},
- {521,2148.8354,-1193.8409,23.3892,273.6788,60000},
- {463,2148.8162,-1189.3861,23.3559,270.8835,100000},
- {560,2147.7915,-1184.9808,23.4986,270.9496,75000},
- {492,2147.9016,-1180.3137,23.6047,270.6128,45000},
- {411,2147.6257,-1175.4165,23.5554,270.8578,150000},
- {482,2148.1213,-1170.7794,23.9654,269.8470,80000},
- {480,2148.4258,-1166.2168,23.6183,270.5198,50000},
- {541,2148.3015,-1161.6859,23.4524,271.2336,85000},
- {451,2148.7183,-1157.2542,23.5570,270.2093,125000},
- {567,2148.3457,-1152.6370,23.8355,271.7301,65000},
- {517,2148.4995,-1148.0367,24.2926,266.3909,70000},
- {474,2148.8254,-1143.1571,24.7635,268.2365,90000},
- {579,2149.3972,-1138.1804,25.4343,267.9803,95000},
- {409,2150.1770,-1133.4166,25.3441,267.8805,200000},
- {402,2161.4856,-1143.9536,24.6411,90.5938,80000},
- {415,2161.5073,-1148.7062,24.1167,90.0089,95000},
- {559,2161.4192,-1152.9534,23.5902,90.4705,60000},
- {477,2161.1555,-1158.0975,23.5942,90.8282,50000},
- {562,2161.2671,-1163.5746,23.4773,90.4966,55000},
- {600,2161.4624,-1168.3546,23.5338,88.9059,85000},
- {602,2161.3105,-1173.1294,23.6283,89.8608,65000},
- {412,2161.2407,-1177.7957,23.6598,89.1901,45000},
- {536,2161.1609,-1182.7480,23.5582,90.7687,70000},
- {565,2161.5532,-1187.6403,23.4470,90.5903,75000},
- {421,2161.4236,-1192.7438,23.7054,91.6409,85000},
- {487,2157.8909,-1208.9708,24.0838,2.2801,450000}
- };
- new Float:FactionBuySpawn[4]={2131.0757,-1140.9038,25.1670,20.6953};
- 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];
- //*************[/pwn]
- weiter unten
- [pwn]forward START_FRAC();
- public START_FRAC(){
- LoadFactionCars();
- #if defined FACTION_CARS_LOCKABLE
- FactionCarsTimer = SetTimer("LockFactionCarDoors",1037,true);
- #endif
- SaveFactionCarsTimer = SetTimerEx("SaveFactionCars",((1000*60)*15),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),"|--- GangAutoHaus ---|\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;
- }
- forward STOP_FRAC();
- public STOP_FRAC()
- {
- 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;
- }
- forward FRAC_OnPlayerEnterVehicle(playerid, vehicleid, ispassenger);
- public FRAC_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 Gangautos 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;
- }
- forward FRAC_OnVehicleDeath(vehicleid, killerid);
- public FRAC_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;
- }
- forward FRAC_OnPlayerCommandText(playerid, cmdtext[]);
- public FRAC_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 Carid1 = GetPlayerVehicleID(playerid);
- for(new fc;fc<sizeof(FactionCars);fc++){
- if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
- if(Carid1 == FactionCars[fc][fCarid]){
- if(FactionCars[fc][fFaction][0] == GetPlayerLeader(playerid)){
- 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(50%% vom Kaufpreis) verkauft.",(FactionCars[fc][fPrice]/2));
- SendClientMessage(playerid,FACTION_COL_YELLOW,fText);
- CallRemoteFunction("Script_GivePlayerMoney","id",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 '15' Minuten respawnen.");
- LastRespawned[GetPlayerFaction(playerid)-1] = gettime()+(60*15);
- 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 1;
- }
- 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;
- }
- forward FRAC_OnPlayerStateChange(playerid, newstate, oldstate);
- public FRAC_OnPlayerStateChange(playerid, newstate, oldstate){
- if(newstate==PLAYER_STATE_DRIVER){
- new Carid1 = GetPlayerVehicleID(playerid);
- for(new fbl;fbl<sizeof(FactionBuylist);fbl++){
- if(Carid1 == 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.5,pPos[1]+2.5,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;
- }
- forward FRAC_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
- public FRAC_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.5,pPos[1]+2.5,pPos[2]);
- TogglePlayerControllable(playerid,true);
- }
- if(!response){
- if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
- if(IsAllowedFactionToBuy(GetPlayerLeader(playerid))){
- if(GetFactioncarsOfFaction(GetPlayerLeader(playerid)) < MAX_BUY){
- new Carid1 = GetPlayerVehicleID(playerid);
- for(new fbl;fbl<sizeof(FactionBuylist);fbl++){
- if(Carid1 == FactionBuylist[fbl][fbCarid]){
- if(CallRemoteFunction("Script_GetPlayerMoney","i",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);
- print(">>> Nach dem Autoerstellen!");
- #if defined FACTION_CARS_LOCKABLE
- fLockCar(FactionCars[fc][fCarid]);
- FactionCars[fc][fLocked] = true;
- #endif
- for(new f;f<5;f++)
- {
- FactionCars[fc][fFaction][f] = -255;
- }
- FactionCars[fc][fFaction][0] = GetPlayerLeader(playerid);
- PutPlayerInVehicle(playerid,FactionCars[fc][fCarid],0);
- CallRemoteFunction("Script_SetPlayerMoney","id",playerid,(CallRemoteFunction("Script_GetPlayerMoney","i",playerid)-FactionBuylist[fbl][fbPrice]));
- new Float:pPos[3];
- GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
- SetPlayerPos(playerid,pPos[0]+2.5,pPos[1]+2.5,pPos[2]);
- TogglePlayerControllable(playerid,true);
- 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 am Ausgabepunkt bereit!");
- return 1;
- }
- }SendClientMessage(playerid,FACTION_COL_GREY,"Die maximale Anzahl von Fraktionsfahrzeugen ist bereits erreicht.");
- }else SendClientMessage(playerid,FACTION_COL_GREY,"Du hast nicht genügend Geld bei dir!");
- break;
- }
- }
- }else 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!");
- new Float:pPos[3];
- GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
- SetPlayerPos(playerid,pPos[0]+2.5,pPos[1]+2.5,pPos[2]);
- TogglePlayerControllable(playerid,true);
- }
- }return 1;
- }return 0;
- }
- forward FRAC_OnVehicleMod(playerid, vehicleid, componentid);
- public FRAC_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;
- }
- forward FRAC_OnVehiclePaintjob(playerid, vehicleid, paintjobid);
- public FRAC_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;
- }
- forward FRAC_OnVehicleRespray(playerid, vehicleid, color1, color2);
- public FRAC_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 >= 5 && Faction <= 20) || Faction >= 22 && Faction <= 25) return true;
- }return false;
- }
- #endif
- stock IsAllowedFactionToBuy(Faction){
- if(Faction){
- if((Faction >= 5 && Faction <= 20) || Faction >= 22 && Faction <= 25) return true;
- }return false;
- }
- stock GetDefaultCarColorOfFaction(Faction,&col1,&col2){
- if(Faction==5)
- {
- col1 = 0;
- col2 = 0;
- }
- else if(Faction==6)
- {
- col1 = 15;
- col2 = 15;
- }
- else if(Faction==13)
- {
- col1 = 86;
- col2 = 86;
- }
- else if(Faction==14)
- {
- col1 = 22;
- col2 = 22;
- }
- else if(Faction==15)
- {
- col1 = 3;
- col2 = 3;
- }
- else if(Faction==16)
- {
- col1 = 6;
- col2 = 6;
- }
- else if(Faction==17)
- {
- col1 = 93;
- col2 = 93;
- }
- else if(Faction==19)
- {
- col1 = 0;
- col2 = 0;
- }
- else if(Faction==22)
- {
- col1 = 116;
- col2 = 116;
- }
- else
- {
- col1 = 0;
- col2 = 0;
- }
- 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;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement