Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Autohaus von Elias939
- //Bitte Credits drin lassen
- //Sieht ja keiner :)
- #include <a_samp>
- #define MAX_CARS_AT_SHOP 30 //Hier schreiben, wieviele Wagen es im Shop MAXIMAL geben
- new Float:carspawn[4],Float:bpcoords[3],csPickup,LoadedVehicles=-1,VehicleDoorStatus[MAX_VEHICLES],ReviewingVehicleID[MAX_PLAYERS]={-1,...},ShowingVehicle[MAX_PLAYERS]={-1,...};
- new VehicleName[212][] = {
- "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 1", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo",
- "Seasparrow", "Pizzaboy", "Tram", "Trailer 2", "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 LA", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit",
- "Utility", "Nevada", "Yosemite", "Windsor", "Monster A", "Monster B", "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 3", "Emperor", "Wayfarer", "Euros", "Hotdog",
- "Club", "Freight Carriage", "Trailer 4", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car (LSPD)", "Police Car (SFPD)",
- "Police Car (LVPD)", "Police Ranger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage Trailer A",
- "Luggage Trailer B", "Stairs", "Boxville", "Tiller", "Utility Trailer" };
- enum e_PlayerVehicle
- {
- pvID,
- pvModel,
- Float:pvX,
- Float:pvY,
- Float:pvZ,
- Float:pvA,
- pvColor1,
- pvColor2,
- pvPaintjob,
- pvModSlot[14]
- }
- new PlayerVehicle[MAX_PLAYERS][2][e_PlayerVehicle];
- enum e_ShopVehicle
- {
- svModel,
- svCost
- }
- new ShopVehicle[MAX_CARS_AT_SHOP][e_ShopVehicle];
- enum e_VehicleReviewData
- {
- Float:vrVehiclePos[4],
- Float:vrCameraPos[3]
- }
- new VehicleReviewData[e_VehicleReviewData];
- public OnFilterScriptInit()
- {
- //LOADING SHOP PICKUP AND CAR SPAWN COORDINATES
- new File:csfile,readline[256],bpModel;
- if(!fexist("carshop.cfg")) { //Die PickupID beim Shop, die Pickup Positionen und die Spawnpositionen vom Wagen, die der Spieler neulich gekauft hat
- csfile=fopen("carshop.cfg",io_write);
- fwrite(csfile,"shopPickup=1210\r\nbuyposX=0.0\r\nbuyposY=0.0\r\nbuyposZ=0.0\r\ncarspawnX=0.0\r\ncarspawnY=0.0\r\ncarspawnZ=0.0\r\ncarspawnA=0.0");
- fclose(csfile); }
- else {
- csfile=fopen("carshop.cfg",io_read);
- while(fread(csfile,readline)) {
- if(!strcmp(readline,"shopPickup=",true,11)) { bpModel=strval(strpart(readline,1,'=')); }
- else if(!strcmp(readline,"buyposX=",true,8)) { bpcoords[0]=floatstr(strpart(readline,1,'=')); }
- else if(!strcmp(readline,"buyposY=",true,8)) { bpcoords[1]=floatstr(strpart(readline,1,'=')); }
- else if(!strcmp(readline,"buyposZ=",true,8)) { bpcoords[2]=floatstr(strpart(readline,1,'=')); csPickup=CreatePickup(bpModel,2,bpcoords[0],bpcoords[1],bpcoords[2]); }
- else if(!strcmp(readline,"carspawnX=",true,10)) { carspawn[0]=floatstr(strpart(readline,1,'=')); }
- else if(!strcmp(readline,"carspawnY=",true,10)) { carspawn[1]=floatstr(strpart(readline,1,'=')); }
- else if(!strcmp(readline,"carspawnZ=",true,10)) { carspawn[2]=floatstr(strpart(readline,1,'=')); }
- else if(!strcmp(readline,"carspawnA=",true,10)) { carspawn[3]=floatstr(strpart(readline,1,'=')); } }
- fclose(csfile); }
- if(!fexist("carshopreview.cfg")) { //falls "carshopreview.cfg" nicht existiert, werden die standart Review positionen genommen. Keine sorge, es ist an einem sehr schönen, sogar perfekten platz ;)
- VehicleReviewData[vrVehiclePos][0]=1937.6018;
- VehicleReviewData[vrVehiclePos][1]=1628.1865;
- VehicleReviewData[vrVehiclePos][2]=72.2850;
- VehicleReviewData[vrVehiclePos][3]=299.3142;
- VehicleReviewData[vrCameraPos][0]=1945.2854;
- VehicleReviewData[vrCameraPos][1]=1630.0295;
- VehicleReviewData[vrCameraPos][2]=75.5296;
- csfile=fopen("carshopreview.cfg",io_write);
- format(readline,sizeof(readline),"carPosAtReviewX=%f\r\ncarPosAtReviewY=%f\r\ncarPosAtReviewZ=%f\r\ncarPosAtReviewA=%f\r\ncamPosAtReviewX=%f\r\ncamPosAtReviewY=%f\r\ncamPosAtReviewZ=%f",VehicleReviewData[vrVehiclePos][0],VehicleReviewData[vrVehiclePos][1],VehicleReviewData[vrVehiclePos][2],VehicleReviewData[vrVehiclePos][3],VehicleReviewData[vrCameraPos][0],VehicleReviewData[vrCameraPos][1],VehicleReviewData[vrCameraPos][2]);
- fwrite(csfile,readline),fclose(csfile); }
- else {
- csfile=fopen("carshopreview.cfg",io_read);
- while(fread(csfile,readline)) {
- if(!strcmp(readline,"carPosAtReviewX=",true,16)) { VehicleReviewData[vrVehiclePos][0]=floatstr(strpart(readline,1,'=')); }
- else if(!strcmp(readline,"carPosAtReviewY=",true,16)) { VehicleReviewData[vrVehiclePos][1]=floatstr(strpart(readline,1,'=')); }
- else if(!strcmp(readline,"carPosAtReviewZ=",true,16)) { VehicleReviewData[vrVehiclePos][2]=floatstr(strpart(readline,1,'=')); }
- else if(!strcmp(readline,"carPosAtReviewA=",true,16)) { VehicleReviewData[vrVehiclePos][3]=floatstr(strpart(readline,1,'=')); }
- else if(!strcmp(readline,"camPosAtReviewX=",true,16)) { VehicleReviewData[vrCameraPos][0]=floatstr(strpart(readline,1,'=')); }
- else if(!strcmp(readline,"camPosAtReviewY=",true,16)) { VehicleReviewData[vrCameraPos][1]=floatstr(strpart(readline,1,'=')); }
- else if(!strcmp(readline,"camPosAtReviewZ=",true,16)) { VehicleReviewData[vrCameraPos][2]=floatstr(strpart(readline,1,'=')); } }
- fclose(csfile); }
- if(!fexist("shopcars.cfg")) { //shopcars.cfg enthaltet die Wagen-ID's und Kosten, die im Shop verkauft werden.
- csfile=fopen("shopcars.cfg",io_write);
- fwrite(csfile,"--> Bitte schreibe hier die Wagen-id's und Kosten der Wagen, die verkauft werden sollen.\r\n--> In dieser Form:\r\n--> \"AUTOMODELLID KOSTEN\"");
- print("--> Bitte schreibe in scriptfiles/shopcars.cfg die Wagen-id's und Kosten der Wagen, die verkauft werden sollen.\r\n--> In dieser Form:\r\n--> \"AUTOMODELLID KOSTEN\"");
- fclose(csfile); }
- else {
- csfile=fopen("shopcars.cfg",io_read);
- for(new i=0;fread(csfile,readline);i++) {
- if(!strcmp(readline,"-->")) { print("--> Bitte schreibe in scriptfiles/shopcars.cfg die Wagen-id's und Kosten der Wagen, die verkauft werden sollen.\r\n--> In dieser Form:\r\n--> \"AUTOMODELLID KOSTEN\""); break; }
- ShopVehicle[i][svModel]=strval(strpart(readline,0)); ShopVehicle[i][svCost]=strval(strpart(readline,1));
- LoadedVehicles++; }
- fclose(csfile); }
- print("\r\n------------------------");
- print(" Dynamic Car-Shop Loaded!");
- print("--------------------------\r\n");
- return 1;
- }
- public OnFilterScriptExit()
- {
- DestroyPickup(csPickup);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- LoadPlayerVehicle(playerid);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new readline[MAX_PLAYER_NAME];
- GetPlayerName(playerid,readline,sizeof(readline));
- format(readline,sizeof(readline),"PlayerVehicles/%s.car",readline);
- if(fexist(readline)) {
- DestroyVehicle(PlayerVehicle[playerid][0][pvID]);
- DestroyVehicle(PlayerVehicle[playerid][1][pvID]);
- SavePlayerVehicle(playerid); }
- if(ShowingVehicle[playerid]>-1) {
- SetPlayerVirtualWorld(playerid,0);
- DestroyVehicle(ReviewingVehicleID[playerid]);
- ReviewingVehicleID[playerid]=-1;
- ShowingVehicle[playerid]=-1; }
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if(!strcmp(cmdtext,"/car",true,4))
- {
- new pChoise[5];
- strpack(pChoise,strpart(cmdtext,1));
- if(!strlen(pChoise))
- {
- SendClientMessage(playerid,0xFF6347AA,"BENUTZUNG: {FFFFFF}/car [aktion]");
- SendClientMessage(playerid,0xFF6347AA,"AKTIONEN:");
- SendClientMessage(playerid,0xFF6347AA,"'lock': {FFFFFF}Fahrzeug ab- und aufschließen.");
- SendClientMessage(playerid,0xFF6347AA,"'park': {FFFFFF}Fahrzeug parken.");
- SendClientMessage(playerid,0xFF6347AA,"'sell': {FFFFFF}Fahrzeug verkaufen.");
- return 1;
- }
- if(!strcmp(pChoise,"lock",true))
- {
- new vehtolock=0;
- if(!IsPlayerNearVehicle(playerid,PlayerVehicle[playerid][0][pvID],2.0) && !IsPlayerNearVehicle(playerid,PlayerVehicle[playerid][1][pvID],2.0)) { return SendClientMessage(playerid,0xFFFFFFFF,"Du bist nicht bei deinem Fahrzeug!"); }
- if(!IsPlayerNearVehicle(playerid,PlayerVehicle[playerid][0][pvID],2.0)) { vehtolock=1; }
- if(!VehicleDoorStatus[PlayerVehicle[playerid][vehtolock][pvID]]) { //falls der Wagen aufgeschlossen ist...:
- VehicleDoorStatus[PlayerVehicle[playerid][vehtolock][pvID]]=1;
- GameTextForPlayer(playerid,"~r~abgeschlossen",3000,6); }
- else { //...andernfalls...:
- VehicleDoorStatus[PlayerVehicle[playerid][vehtolock][pvID]]=0;
- GameTextForPlayer(playerid,"~g~aufgeschlossen",3000,6); }
- SetVehicleParamsForAll(PlayerVehicle[playerid][vehtolock][pvID],0,VehicleDoorStatus[PlayerVehicle[playerid][vehtolock][pvID]]);
- return 1;
- }
- if(!strcmp(pChoise,"sell",true))
- {
- new vehtosell,str[4],pName[MAX_PLAYER_NAME],string[64],i,File:csfile;
- if(!IsPlayerInRangeOfPoint(playerid,7.0,bpcoords[0],bpcoords[1],bpcoords[2]) || (!IsPlayerInVehicle(playerid,PlayerVehicle[playerid][0][pvID]) && !IsPlayerInVehicle(playerid,PlayerVehicle[playerid][1][pvID]))) { return SendClientMessage(playerid,0xFFFFFFFF,"Bitte steige in dein Wagen, fahre nahe dem Kaufpickup und tippe '/car sell'!"); }
- if(!IsPlayerInVehicle(playerid,PlayerVehicle[playerid][0][pvID])) { vehtosell=1; }
- PlayerVehicle[playerid][vehtosell][pvModel]=0;
- PlayerVehicle[playerid][vehtosell][pvX]=0.0;
- PlayerVehicle[playerid][vehtosell][pvY]=0.0;
- PlayerVehicle[playerid][vehtosell][pvZ]=0.0;
- PlayerVehicle[playerid][vehtosell][pvA]=0.0;
- PlayerVehicle[playerid][vehtosell][pvColor1]=0;
- PlayerVehicle[playerid][vehtosell][pvColor2]=0;
- PlayerVehicle[playerid][vehtosell][pvPaintjob]=0;
- for(i=0;i<13;i++) {
- PlayerVehicle[playerid][vehtosell][pvModSlot][i]=0; }
- SetPlayerPos(playerid,carspawn[0],carspawn[1],carspawn[2]);
- DestroyVehicle(PlayerVehicle[playerid][vehtosell][pvID]);
- PlayerVehicle[playerid][vehtosell][pvID]=0;
- format(str,4,"[%d",vehtosell);
- GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
- format(string,sizeof(string),"PlayerVehicles/%s.car",pName);
- csfile=fopen(string,io_read);
- for(i=0; fread(csfile,string); i++) { if(!strcmp(string,str,false,2)) { break; } }
- fclose(csfile);
- format(string,sizeof(string),"PlayerVehicles/%s.car",pName);
- fremoveline(string,i);
- csfile=fopen(string,io_read);
- fread(csfile,string),fclose(csfile);
- if(!strlen(string)) { format(string,sizeof(string),"PlayerVehicles/%s.car",pName); fremove(string); }
- for(i=0;i<MAX_CARS_AT_SHOP;i++) { if(ShopVehicle[i][svModel]==PlayerVehicle[playerid][vehtosell][pvModel]) break; }
- GivePlayerMoney(playerid,ShopVehicle[i][svCost]/2);
- SendClientMessage(playerid,0x33CCFF,"AUTOHAUS: {FFFFFF}Du hast deinen Wagen zurück verkauft und hast die hälfte des Fahrzeugkosten zurück erhalten.");
- return 1;
- }
- if(!strcmp(pChoise,"park",true))
- {
- new vehtopark;
- if(!IsPlayerInVehicle(playerid,PlayerVehicle[playerid][0][pvID]) && !IsPlayerInVehicle(playerid,PlayerVehicle[playerid][1][pvID])) { return SendClientMessage(playerid,0xFFFFFFFF,"Bitte steige in dein Wagen, fahre nahe dem Kaufpickup und tippe '/car sell'!"); }
- if(!IsPlayerInVehicle(playerid,PlayerVehicle[playerid][0][pvID])) { vehtopark=1; }
- GetVehiclePos(PlayerVehicle[playerid][0][pvID],PlayerVehicle[playerid][vehtopark][pvX],PlayerVehicle[playerid][vehtopark][pvY],PlayerVehicle[playerid][vehtopark][pvZ]);
- GetVehicleZAngle(PlayerVehicle[playerid][0][pvID],PlayerVehicle[playerid][vehtopark][pvA]);
- SendClientMessage(playerid,0x9EC73D,"INFO: {FFFFFF}Dein Fahrzeug wurde hier {FF6347}erfolgreich {FFFFFF}geparkt!");
- SavePlayerVehicle(playerid);
- SendClientMessage(playerid,0x9EC73D,"INFO: {FFFFFF}Du kannst dein Fahrzeug nun wenn du dich einloggst, immer {33CCFF}hier {FFFFFF}finden!");
- return 1;
- }
- return 1;
- }
- return 0;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- new string[64];
- if(pickupid==csPickup)
- {
- if(PlayerVehicle[playerid][0][pvModel] && PlayerVehicle[playerid][1][pvModel]) { return SendClientMessage(playerid,0x33CCFF,"AUTOHAUS: {FFFFFF}Du besitzt bereits 2 wagen! Du musst erst einen verkaufen, wenn du einen anderen kaufen willst."); }
- SetPlayerVirtualWorld(playerid,playerid); //jeder Spieler hat die Virtuelle welt von seiner spielerid. so hat jeder seine eigene virtuelle welt, und so gibt es auch kein Weg dass 2 spieler sich treffen, während sie wagen auswählen =)
- TogglePlayerControllable(playerid,0);
- SetPlayerPos(playerid,VehicleReviewData[vrVehiclePos][0],VehicleReviewData[vrVehiclePos][1],(VehicleReviewData[vrVehiclePos][2]-5));
- SetPlayerCameraPos(playerid,VehicleReviewData[vrCameraPos][0],VehicleReviewData[vrCameraPos][1],VehicleReviewData[vrCameraPos][2]);
- SetPlayerCameraLookAt(playerid,VehicleReviewData[vrVehiclePos][0],VehicleReviewData[vrVehiclePos][1],VehicleReviewData[vrVehiclePos][2]);
- ShowingVehicle[playerid]=0;
- ReviewingVehicleID[playerid]=CreateVehicle(ShopVehicle[0][svModel],VehicleReviewData[vrVehiclePos][0],VehicleReviewData[vrVehiclePos][1],VehicleReviewData[vrVehiclePos][2],VehicleReviewData[vrVehiclePos][3],-1,-1,60);
- SetVehicleParamsForAll(ReviewingVehicleID[playerid],1,1);
- SetVehicleVirtualWorld(ReviewingVehicleID[playerid],playerid);
- SendClientMessage(playerid,0x33CCFF,"AUTOHAUS: {FFFFFF}Mit Maustaste rechts & Maustaste Links kannst du Die Autos switchen.");
- SendClientMessage(playerid,0x33CCFF,"AUTOHAUS: {FFFFFF}Mit Enter kannst du den Shop verlassen.");
- SendClientMessage(playerid,0x33CCFF,"AUTOHAUS: {FFFFFF}Drücke Leertaste um das Auto zu kaufen.");
- format(string,sizeof(string),"~w~%s~n~~g~$%d",VehicleName[ShopVehicle[0][svModel]-400],ShopVehicle[0][svCost]);
- GameTextForPlayer(playerid,string,30000,4);
- }
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- new string[64];
- if(ShowingVehicle[playerid]>-1)
- {
- if((newkeys == KEY_FIRE) || (newkeys == KEY_HANDBRAKE)) //Vorheriger Fahrzeug / Nächster Fahrzeug
- {
- if(newkeys==KEY_FIRE) {
- ShowingVehicle[playerid]--;
- if(ShowingVehicle[playerid]<0) { ShowingVehicle[playerid]=LoadedVehicles; } }
- else if(newkeys==KEY_HANDBRAKE) {
- ShowingVehicle[playerid]++;
- if(ShowingVehicle[playerid]>LoadedVehicles) { ShowingVehicle[playerid]=0; } }
- DestroyVehicle(ReviewingVehicleID[playerid]);
- ReviewingVehicleID[playerid]=CreateVehicle(ShopVehicle[ShowingVehicle[playerid]][svModel],VehicleReviewData[vrVehiclePos][0],VehicleReviewData[vrVehiclePos][1],VehicleReviewData[vrVehiclePos][2],VehicleReviewData[vrVehiclePos][3],-1,-1,60);
- SetVehicleParamsForAll(ReviewingVehicleID[playerid],1,1);
- SetVehicleVirtualWorld(ReviewingVehicleID[playerid],playerid);
- format(string,sizeof(string),"~w~%s~n~~g~$%d",VehicleName[ShopVehicle[ShowingVehicle[playerid]][svModel]-400],ShopVehicle[ShowingVehicle[playerid]][svCost]);
- GameTextForPlayer(playerid,string,30000,4);
- return 1;
- }
- if(newkeys & KEY_SPRINT) //Kaufen
- {
- if(ShopVehicle[ShowingVehicle[playerid]][svCost]>GetPlayerMoney(playerid)) { return SendClientMessage(playerid,0x33CCFF,"AUTOHAUS: {FFFFFF}Du kannst dir diesen Wagen nicht leisten..."),SendClientMessage(playerid,0x33CCFF,"AUTOHAUS: {FFFFFF}Kein problem, schau weiter, wir haben eventuell noch billigere Modelle zu bieten, die du dir leisten kannst!"); }
- new pbvn=0;
- DestroyVehicle(ReviewingVehicleID[playerid]);
- ReviewingVehicleID[playerid]=-1;
- if(PlayerVehicle[playerid][0][pvModel]) { pbvn=1; }
- PlayerVehicle[playerid][pbvn][pvModel]=ShopVehicle[ShowingVehicle[playerid]][svModel];
- PlayerVehicle[playerid][pbvn][pvX]=carspawn[0];
- PlayerVehicle[playerid][pbvn][pvY]=carspawn[1];
- PlayerVehicle[playerid][pbvn][pvZ]=carspawn[2];
- PlayerVehicle[playerid][pbvn][pvA]=carspawn[3];
- PlayerVehicle[playerid][pbvn][pvColor1]=-1;
- PlayerVehicle[playerid][pbvn][pvColor2]=-1;
- PlayerVehicle[playerid][pbvn][pvPaintjob]=3;
- for(new i=0;i<14;i++) {
- PlayerVehicle[playerid][pbvn][pvModSlot][i]=-1; }
- GivePlayerMoney(playerid,-ShopVehicle[ShowingVehicle[playerid]][svCost]);
- SavePlayerVehicle(playerid);
- PlayerVehicle[playerid][pbvn][pvID]=CreateVehicle(PlayerVehicle[playerid][pbvn][pvModel],carspawn[0],carspawn[1],carspawn[2],carspawn[3],-1,-1,600000);
- SetVehicleParamsForAll(PlayerVehicle[playerid][pbvn][pvID],0,1);
- VehicleDoorStatus[PlayerVehicle[playerid][pbvn][pvID]]=1;
- SetPlayerVirtualWorld(playerid,0);
- SetPlayerPos(playerid,carspawn[0],carspawn[1],carspawn[2]+5);
- TogglePlayerControllable(playerid,1);
- GameTextForPlayer(playerid," ",1000,4);
- SendClientMessage(playerid,0x33CCFF,"AUTOHAUS: {FFFFFF}Glückwunsch, du hast einen neuen Wagen gekauft!");
- SendClientMessage(playerid,0x33CCFF,"AUTOHAUS: {FFFFFF}Benutze '/car' um alle Befehle für deinen Wagen zu sehen.");
- SendClientMessage(playerid,0x33CCFF,"AUTOHAUS: {FFFFFF}Dein Fahrzeug ist erstmal abgeschlossen, damit kein anderer vor dir einsteigt, benutze '/car lock' um es aufzuschließen.");
- SetCameraBehindPlayer(playerid);
- ShowingVehicle[playerid]=-1;
- return 1;
- }
- if(newkeys & KEY_SECONDARY_ATTACK) //Verlassen ohne etwas zu kaufen
- {
- SetPlayerPos(playerid,carspawn[0],carspawn[1],carspawn[2]);
- SetPlayerVirtualWorld(playerid,0);
- TogglePlayerControllable(playerid,1);
- SetCameraBehindPlayer(playerid);
- GameTextForPlayer(playerid," ",1000,4);
- DestroyVehicle(ReviewingVehicleID[playerid]);
- ReviewingVehicleID[playerid]=-1;
- ShowingVehicle[playerid]=-1;
- return 1;
- }
- }
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- for(new i,pcnt=GetMaxPlayers();i<pcnt;i++) {
- if(IsPlayerConnected(i)) {
- for(new x;x<2;x++) {
- if(PlayerVehicle[i][x][pvID]==vehicleid) {
- SetVehicleParamsForPlayer(vehicleid,forplayerid,0,VehicleDoorStatus[vehicleid]); } } } }
- return 1;
- }
- /**********************************************************************************************
- **********************************************************************************************/
- stock LoadPlayerVehicle(playerid) {
- new readline[256];
- GetPlayerName(playerid,readline,MAX_PLAYER_NAME);
- format(readline,sizeof(readline),"PlayerVehicles/%s.car",readline);
- if(fexist(readline)) {
- new File:csfile=fopen(readline,io_read);
- while(fread(csfile,readline)) {
- new lpvid;
- if(!strcmp(readline,"[0",false,2)) { lpvid=0; }
- else if(!strcmp(readline,"[1",false,2)) { lpvid=1; }
- PlayerVehicle[playerid][lpvid][pvModel]=strval(strpart(readline,1));
- PlayerVehicle[playerid][lpvid][pvX]=floatstr(strpart(readline,2));
- PlayerVehicle[playerid][lpvid][pvY]=floatstr(strpart(readline,3));
- PlayerVehicle[playerid][lpvid][pvZ]=floatstr(strpart(readline,4));
- PlayerVehicle[playerid][lpvid][pvA]=floatstr(strpart(readline,5));
- PlayerVehicle[playerid][lpvid][pvColor1]=strval(strpart(readline,6));
- PlayerVehicle[playerid][lpvid][pvColor2]=strval(strpart(readline,7));
- PlayerVehicle[playerid][lpvid][pvPaintjob]=strval(strpart(readline,8));
- PlayerVehicle[playerid][lpvid][pvID]=CreateVehicle(PlayerVehicle[playerid][lpvid][pvModel],PlayerVehicle[playerid][lpvid][pvX],PlayerVehicle[playerid][lpvid][pvY],PlayerVehicle[playerid][lpvid][pvZ],PlayerVehicle[playerid][lpvid][pvA],PlayerVehicle[playerid][lpvid][pvColor1],PlayerVehicle[playerid][lpvid][pvColor2],30);
- ChangeVehiclePaintjob(PlayerVehicle[playerid][lpvid][pvID],PlayerVehicle[playerid][lpvid][pvPaintjob]);
- for(new i=0;i<13;i++) {
- PlayerVehicle[playerid][lpvid][pvModSlot][i]=strval(strpart(readline,i+9));
- if(PlayerVehicle[playerid][lpvid][pvModSlot][i]!=-1) { AddVehicleComponent(PlayerVehicle[playerid][lpvid][pvID],PlayerVehicle[playerid][lpvid][pvModSlot][i]); } }
- fclose(csfile); } }
- return 1; }
- stock SavePlayerVehicle(playerid) {
- new string[256],pName[MAX_PLAYER_NAME],File:pvfile;
- GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
- format(string,sizeof(string),"PlayerVehicles/%s.car",pName);
- pvfile=fopen(string,io_write);
- for(new i=0; i<2; i++) {
- if(PlayerVehicle[playerid][i][pvModel]) {
- new str[2][64];
- format(string,sizeof(string),"[%d] %d %f %f %f %f %d %d %d ",i,PlayerVehicle[playerid][i][pvModel],PlayerVehicle[playerid][i][pvX],PlayerVehicle[playerid][i][pvY],PlayerVehicle[playerid][i][pvZ],PlayerVehicle[playerid][i][pvA],PlayerVehicle[playerid][i][pvColor1],PlayerVehicle[playerid][i][pvColor2],PlayerVehicle[playerid][i][pvPaintjob]);
- format(str[0],64,"%d %d %d %d %d %d %d ",PlayerVehicle[playerid][i][pvModSlot][0],PlayerVehicle[playerid][i][pvModSlot][1],PlayerVehicle[playerid][i][pvModSlot][2],PlayerVehicle[playerid][i][pvModSlot][3],PlayerVehicle[playerid][i][pvModSlot][4],PlayerVehicle[playerid][i][pvModSlot][5],PlayerVehicle[playerid][i][pvModSlot][6]);
- format(str[1],64,"%d %d %d %d %d %d %d\r\n",PlayerVehicle[playerid][i][pvModSlot][7],PlayerVehicle[playerid][i][pvModSlot][8],PlayerVehicle[playerid][i][pvModSlot][9],PlayerVehicle[playerid][i][pvModSlot][10],PlayerVehicle[playerid][i][pvModSlot][11],PlayerVehicle[playerid][i][pvModSlot][12],PlayerVehicle[playerid][i][pvModSlot][13]);
- strins(string,str[0],strlen(string)),strins(string,str[1],strlen(string));
- fwrite(pvfile,string); } }
- return fclose(pvfile); }
- /**********************************************************************************************
- **********************************************************************************************/
- stock IsPlayerNearVehicle(FXF_playerid, FXF_vehicleid, Float:radi) {
- new Float:FXF_oldposx, Float:FXF_oldposy, Float:FXF_oldposz,
- Float:FXF_tempposx, Float:FXF_tempposy, Float:FXF_tempposz,
- Float:x,Float:y,Float:z;
- GetPlayerPos(FXF_playerid,x,y,z);
- GetVehiclePos(FXF_vehicleid, FXF_oldposx, FXF_oldposy, FXF_oldposz);
- FXF_tempposx = (FXF_oldposx -x);
- FXF_tempposy = (FXF_oldposy -y);
- FXF_tempposz = (FXF_oldposz -z);
- if(((FXF_tempposx < radi) && (FXF_tempposx > -radi)) && ((FXF_tempposy < radi) && (FXF_tempposy > -radi)) && ((FXF_tempposz < radi) && (FXF_tempposz > -radi))) {
- return 1; }
- return 0; }
- stock SetVehicleParamsForAll(vehicleid, objective, doorslocked) {
- for(new i=0;i<MAX_PLAYERS;i++) { SetVehicleParamsForPlayer(vehicleid,i,objective,doorslocked); } }
- stock fremoveline(filedir[],line)
- {
- if(!fexist(filedir)) { return 0; }
- new rdline[256],str[1024],File:tmpfile = fopen(filedir,io_read);
- for(new i=0;fread(tmpfile,rdline); i++) {
- if(i==line) { continue; }
- strins(str,rdline,strlen(str)); }
- fclose(tmpfile),fremove(filedir);
- tmpfile=fopen(filedir,io_write);
- return fwrite(tmpfile,str),fclose(tmpfile),1;
- }
- stock strpart(const string[], strpos=0, sep=' ') {
- new tmpstr[128],cnt[2];
- format(tmpstr,128,"%s",string);
- for(new i=0,len=strlen(tmpstr); i<len; ++i) {
- if(tmpstr[i]==sep) {
- if(!strpos) { strdel(tmpstr,i,128); break; }
- else if(strpos==cnt[1]) { strdel(tmpstr,i,128); break; }
- else if(strpos==(cnt[1]+1)) { cnt[0]=i+1; strdel(tmpstr,0,cnt[0]); i=0; len=strlen(tmpstr); cnt[1]++; continue; }
- else { cnt[1]++; } } }
- if(!strcmp(tmpstr,string)) { tmpstr="\0"; }
- return tmpstr; }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement