05.01.2014, 18:10
Hey everyone. I'm using one of the filterscripts of car ownership systems. However, after a car has been crashed/destroyed, it just respawns in the same position it was destroyed at. So I got rid of it and now trying to create a command which would respawn the car with all the tune when a player types in a command and pays amount of money for it. However, something doesn't work out for me and what happens after I type in the command - the car spawns but in the farm (Blueberry). Please help?
OnVehicleDeath
The command
What I did was: After the vehicle gets destroyed the FILE with the car information gets destroyed too and a new file is created in different folder with the same information. On the command after the car has been repaired, the new file gets destroyed and the one which was created originally gets back (gets created again).
I'm not a PRO at the car ownership systems at all, actually opposite and trying to learn something useful. Please tell me if some parts don't make sense at all or are not needed and also what I should change to make this work? Sorry for different language "error messages" with SendClientMessage used in the codes, but they are just notices right? So yeah, I would appreciate any help!
OnVehicleDeath
Код:
new string[32], playername[MAX_PLAYER_NAME]; GetPlayerName(killerid, playername, sizeof(playername)); format(string, sizeof(string), "Trunk/%s.ini", playername); new File: hFile = fopen(string, io_write); if(hFile) { // Vehicle destroyed, too bad... fclose(hFile); fremove(string); } // Destroyed[vehicleid] = true; new file[256], remontas[256], name[24]; GetPlayerName(killerid, name, 24); format(file,sizeof(file),"TransportoPr/%s.ini",name); GetPlayerName(killerid, name, 24); format(remontas,sizeof(remontas),"Remontas/%s.ini",name); if(dini_Exists(file)) { dini_IntSet(file, "Model", GetVehicleModel(Vehicle[killerid])); dini_IntSet(file, "Price", VehicleInfo[killerid][Price]); dini_FloatSet(file, "X", VehicleInfo[killerid][CarX]); dini_FloatSet(file, "Y", VehicleInfo[killerid][CarY]); dini_FloatSet(file, "Z", VehicleInfo[killerid][CarZ]); dini_FloatSet(file, "Rot", VehicleInfo[killerid][CarRot]); dini_IntSet(file, "Locked", VehicleInfo[killerid][Locked]); dini_Set(file, "Plate", VehPlate[Vehicle[killerid]]); dini_IntSet(file, "mod1", VehicleInfo[killerid][mod1]); dini_IntSet(file, "mod2", VehicleInfo[killerid][mod2]); dini_IntSet(file, "mod3", VehicleInfo[killerid][mod3]); dini_IntSet(file, "mod4", VehicleInfo[killerid][mod4]); dini_IntSet(file, "mod5", VehicleInfo[killerid][mod5]); dini_IntSet(file, "mod6", VehicleInfo[killerid][mod6]); dini_IntSet(file, "mod7", VehicleInfo[killerid][mod7]); dini_IntSet(file, "mod8", VehicleInfo[killerid][mod8]); dini_IntSet(file, "mod9", VehicleInfo[killerid][mod9]); dini_IntSet(file, "mod10", VehicleInfo[killerid][mod10]); dini_IntSet(file, "mod11", VehicleInfo[killerid][mod11]); dini_IntSet(file, "mod12", VehicleInfo[killerid][mod12]); dini_IntSet(file, "mod13", VehicleInfo[killerid][mod13]); dini_IntSet(file, "mod14", VehicleInfo[killerid][mod14]); dini_IntSet(file, "mod15", VehicleInfo[killerid][mod15]); dini_IntSet(file, "mod16", VehicleInfo[killerid][mod16]); dini_IntSet(file, "mod17", VehicleInfo[killerid][mod17]); dini_IntSet(file, "paintjob", VehicleInfo[killerid][paintjob]); dini_IntSet(file, "color1", VehicleInfo[killerid][colora]); dini_IntSet(file, "color2", VehicleInfo[killerid][colorb]); // Kuriame remontaaa dini_Create(remontas); dini_IntSet(remontas, "Model", GetVehicleModel(Vehicle[killerid])); dini_IntSet(remontas, "Price", VehicleInfo[killerid][Price]); dini_FloatSet(remontas, "X", VehicleInfo[killerid][CarX]); dini_FloatSet(remontas, "Y", VehicleInfo[killerid][CarY]); dini_FloatSet(remontas, "Z", VehicleInfo[killerid][CarZ]); dini_FloatSet(remontas, "Rot", VehicleInfo[killerid][CarRot]); dini_IntSet(remontas, "Locked", VehicleInfo[killerid][Locked]); dini_Set(remontas, "Plate", VehPlate[Vehicle[killerid]]); dini_IntSet(remontas, "mod1", VehicleInfo[killerid][mod1]); dini_IntSet(remontas, "mod2", VehicleInfo[killerid][mod2]); dini_IntSet(remontas, "mod3", VehicleInfo[killerid][mod3]); dini_IntSet(remontas, "mod4", VehicleInfo[killerid][mod4]); dini_IntSet(remontas, "mod5", VehicleInfo[killerid][mod5]); dini_IntSet(remontas, "mod6", VehicleInfo[killerid][mod6]); dini_IntSet(remontas, "mod7", VehicleInfo[killerid][mod7]); dini_IntSet(remontas, "mod8", VehicleInfo[killerid][mod8]); dini_IntSet(remontas, "mod9", VehicleInfo[killerid][mod9]); dini_IntSet(remontas, "mod10", VehicleInfo[killerid][mod10]); dini_IntSet(remontas, "mod11", VehicleInfo[killerid][mod11]); dini_IntSet(remontas, "mod12", VehicleInfo[killerid][mod12]); dini_IntSet(remontas, "mod13", VehicleInfo[killerid][mod13]); dini_IntSet(remontas, "mod14", VehicleInfo[killerid][mod14]); dini_IntSet(remontas, "mod15", VehicleInfo[killerid][mod15]); dini_IntSet(remontas, "mod16", VehicleInfo[killerid][mod16]); dini_IntSet(remontas, "mod17", VehicleInfo[killerid][mod17]); dini_IntSet(remontas, "paintjob", VehicleInfo[killerid][paintjob]); dini_IntSet(remontas, "color1", VehicleInfo[killerid][colora]); dini_IntSet(remontas, "color2", VehicleInfo[killerid][colorb]); DestroyVehicle(Vehicle[killerid]); dini_Remove(file); }
Код:
if(strcmp(cmdtext,"/remont", true) == 0) { new file[256],remontas[256],vardas[MAX_PLAYER_NAME]; GetPlayerName(playerid, vardas, sizeof(vardas)); format(remontas,sizeof(remontas),"Remontas/%s.ini",vardas); format(file,sizeof(file),"TransportoPr/%s.ini",vardas); if(dini_Exists(remontas)) { if(GetPlayerMoney(playerid) > 1000) { GivePlayerMoney(playerid,-1000); SendClientMessage(playerid,ZALIA,"Jыsш transporto priemonл sutaisyta ir pristatyta (/rasti)"); dini_Create(file); dini_IntSet(file, "Model", GetVehicleModel(Vehicle[playerid])); dini_IntSet(file, "Price", VehicleInfo[playerid][Price]); dini_FloatSet(file, "X", VehicleInfo[playerid][CarX]); dini_FloatSet(file, "Y", VehicleInfo[playerid][CarY]); dini_FloatSet(file, "Z", VehicleInfo[playerid][CarZ]); dini_FloatSet(file, "Rot", VehicleInfo[playerid][CarRot]); dini_IntSet(file, "Locked", VehicleInfo[playerid][Locked]); dini_Set(file, "Plate", VehPlate[Vehicle[playerid]]); dini_IntSet(file, "mod1", VehicleInfo[playerid][mod1]); dini_IntSet(file, "mod2", VehicleInfo[playerid][mod2]); dini_IntSet(file, "mod3", VehicleInfo[playerid][mod3]); dini_IntSet(file, "mod4", VehicleInfo[playerid][mod4]); dini_IntSet(file, "mod5", VehicleInfo[playerid][mod5]); dini_IntSet(file, "mod6", VehicleInfo[playerid][mod6]); dini_IntSet(file, "mod7", VehicleInfo[playerid][mod7]); dini_IntSet(file, "mod8", VehicleInfo[playerid][mod8]); dini_IntSet(file, "mod9", VehicleInfo[playerid][mod9]); dini_IntSet(file, "mod10", VehicleInfo[playerid][mod10]); dini_IntSet(file, "mod11", VehicleInfo[playerid][mod11]); dini_IntSet(file, "mod12", VehicleInfo[playerid][mod12]); dini_IntSet(file, "mod13", VehicleInfo[playerid][mod13]); dini_IntSet(file, "mod14", VehicleInfo[playerid][mod14]); dini_IntSet(file, "mod15", VehicleInfo[playerid][mod15]); dini_IntSet(file, "mod16", VehicleInfo[playerid][mod16]); dini_IntSet(file, "mod17", VehicleInfo[playerid][mod17]); dini_IntSet(file, "paintjob", VehicleInfo[playerid][paintjob]); dini_IntSet(file, "color1", VehicleInfo[playerid][colora]); dini_IntSet(file, "color2", VehicleInfo[playerid][colorb]); VehicleInfo[playerid][Model] = dini_Int(file, "Model"); VehicleInfo[playerid][Price] = dini_Int(file, "Price"); VehicleInfo[playerid][CarX] = dini_Float(file, "X"); VehicleInfo[playerid][CarY] = dini_Float(file, "Y"); VehicleInfo[playerid][CarZ] = dini_Float(file, "Z"); VehicleInfo[playerid][CarRot] = dini_Float(file, "Rot"); VehicleInfo[playerid][Locked] = dini_Int(file, "Locked"); VehicleInfo[playerid][mod1] = dini_Int(file, "mod1"); VehicleInfo[playerid][mod2] = dini_Int(file, "mod2"); VehicleInfo[playerid][mod3] = dini_Int(file, "mod3"); VehicleInfo[playerid][mod4] = dini_Int(file, "mod4"); VehicleInfo[playerid][mod5] = dini_Int(file, "mod5"); VehicleInfo[playerid][mod6] = dini_Int(file, "mod6"); VehicleInfo[playerid][mod7] = dini_Int(file, "mod7"); VehicleInfo[playerid][mod8] = dini_Int(file, "mod8"); VehicleInfo[playerid][mod9] = dini_Int(file, "mod9"); VehicleInfo[playerid][mod10] = dini_Int(file, "mod10"); VehicleInfo[playerid][mod11] = dini_Int(file, "mod11"); VehicleInfo[playerid][mod12] = dini_Int(file, "mod12"); VehicleInfo[playerid][mod13] = dini_Int(file, "mod13"); VehicleInfo[playerid][mod14] = dini_Int(file, "mod14"); VehicleInfo[playerid][mod15] = dini_Int(file, "mod15"); VehicleInfo[playerid][mod16] = dini_Int(file, "mod16"); VehicleInfo[playerid][mod17] = dini_Int(file, "mod17"); VehicleInfo[playerid][paintjob] = dini_Int(file, "paintjob"); VehicleInfo[playerid][colora] = dini_Int(file, "color1"); VehicleInfo[playerid][colorb] = dini_Int(file, "color2"); Vehicle[playerid] = CreateVehicle(VehicleInfo[playerid][Model], 1369.7883, 460.0056, 20.0077, 244.3673, VehicleInfo[playerid][colora], VehicleInfo[playerid][colorb], 3600000); if(VehicleInfo[playerid][mod1]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod1]); } if(VehicleInfo[playerid][mod2]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod2]); } if(VehicleInfo[playerid][mod3]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod3]); } if(VehicleInfo[playerid][mod4]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod4]); } if(VehicleInfo[playerid][mod5]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod5]); } if(VehicleInfo[playerid][mod6]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod6]); } if(VehicleInfo[playerid][mod7]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod7]); } if(VehicleInfo[playerid][mod8]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod8]); } if(VehicleInfo[playerid][mod9]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod9]); } if(VehicleInfo[playerid][mod10]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod10]); } if(VehicleInfo[playerid][mod11]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod11]); } if(VehicleInfo[playerid][mod12]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod12]); } if(VehicleInfo[playerid][mod13]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod13]); } if(VehicleInfo[playerid][mod14]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod14]); } if(VehicleInfo[playerid][mod15]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod15]); } if(VehicleInfo[playerid][mod16]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod16]); } if(VehicleInfo[playerid][mod17]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod17]); } if(VehicleInfo[playerid][colora]!=0 || VehicleInfo[playerid][colorb]!=0) { ChangeVehicleColor(Vehicle[playerid],VehicleInfo[playerid][colora],VehicleInfo[playerid][colorb]); } if(VehicleInfo[playerid][paintjob]!=0) { ChangeVehiclePaintjob(Vehicle[playerid],VehicleInfo[playerid][paintjob]); } new tmp[256]; tmp = dini_Get(file, "Plate"); gPlayerHasCar[playerid] = 1; VehOwned[Vehicle[playerid]] = 1; OwnerID[Vehicle[playerid]] = playerid; SetVehicleParamsForPlayer(Vehicle[playerid], playerid, 0, VehicleInfo[playerid][Locked]); gVehLocked[Vehicle[playerid]] = VehicleInfo[playerid][Locked]; SetVehicleNumberPlate(Vehicle[playerid], tmp); VehPlate[Vehicle[playerid]] = tmp; } else { SendClientMessage(playerid,RAUDONA,"Neturite pakankamai pinigш! (1000LT)"); } } dini_Remove(remontas); return 1; }
I'm not a PRO at the car ownership systems at all, actually opposite and trying to learn something useful. Please tell me if some parts don't make sense at all or are not needed and also what I should change to make this work? Sorry for different language "error messages" with SendClientMessage used in the codes, but they are just notices right? So yeah, I would appreciate any help!