PHP код:
CMD:resetcar(playerid, params[])
{
new playername[25], string[256], giveplayerid, moneys1, tmp[256], slt;
if(!vipmember[playerid])
{
new ownerid = IsVehicleOwned(pvehicle[playerid][0]);
if (ownerid != playerid) return SendClientMessage(playerid, COLOR_RED, "You Dont Own any Vehicle");
if (IsPlayerInVehicle(playerid, pvehicle[playerid][0])) return SendClientMessage2(playerid, COLOR_SILVER, "Your vehicle doesn't need relocating, you are in it!");
if (GetVehicleHealth2(pvehicle[playerid][0]) == 100.0) return SendClientMessage2(playerid, COLOR_RED, "Your vehicle can't be reset due to the damage.");
new tvar6=-1;
sscanf(params, "d", tvar6);
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
new tvar1 = dini_Int(AddDirFile(dir_userfiles, playername), "propowned")-1;
new tvar12 = dini_Int(AddDirFile(dir_userfiles, playername), "busowned")-1;
if (tvar1 != -1 && tvar12 == -1 && tvar6 == -1)
{
if (DoesPlayerHaveMenuOpen(playerid) || GetPlayerDialog(playerid) != -1) return SendClientMessage2(playerid, COLOR_WHITE, "SERVER: Please exit your current menu first.");
ShowPlayerDialog2(playerid, DIALOG_RESET_CAR, DIALOG_STYLE_LIST, "Where do you want to reset your car?", "Police Department\nYour Property", "Select", "Cancel");
return 1;
}
else if (tvar12 != -1 && tvar1 == -1 && tvar6 == -1)
{
if (DoesPlayerHaveMenuOpen(playerid) || GetPlayerDialog(playerid) != -1) return SendClientMessage2(playerid, COLOR_WHITE, "SERVER: Please exit your current menu first.");
ShowPlayerDialog2(playerid, DIALOG_RESET_CAR3, DIALOG_STYLE_LIST, "Where do you want to reset your car?", "Police Department\nYour Business", "Select", "Cancel");
return 1;
}
else if(tvar12 != -1 && tvar1 != -1 && tvar6 == -1)
{
if (DoesPlayerHaveMenuOpen(playerid) || GetPlayerDialog(playerid) != -1) return SendClientMessage2(playerid, COLOR_WHITE, "SERVER: Please exit your current menu first.");
ShowPlayerDialog2(playerid, DIALOG_RESET_CAR2, DIALOG_STYLE_LIST, "Where do you want to reset your car?", "Police Department\nYour Property\nYour Business", "Select", "Cancel");
return 1;
}
format(string, 50, "V_%s_0", playername);
new tvar2 = dini_Int(AddDirFile(dir_carfiles, string), "model");
new panels, doors, lights, tires, Float:health;
if (tvar1 == -1 || tvar6 == 0 || tvar12 != -1) {
new tvar3, tvar4, tvar5, Float:x, Float:y, Float:z, Float:a;
giveplayerid = -1;
tvar5 = vehstored[pvehicle[playerid][0]];
if (tvar5 != -1) {
holdsv[tvar5] = 0;
vehstored[pvehicle[playerid][0]] = -1;
}
if (GetPlayerInterior(playerid) != 0) {
new shamalid = GetPlayerShamalID(playerid);
if (shamalid != 0 && GetVehicleInterior(shamalid) == 0) {
GetVehiclePos(shamalid, x, y, z);
}
else {
x = adata[plastdoor[playerid]][ax];
y = adata[plastdoor[playerid]][ay];
z = adata[plastdoor[playerid]][az];
}
}
else {
GetPlayerPos(playerid, x, y, z);
}
for (new d = 0; d < sizeof(pdCoords); d++) {
if (PointToPoint2D(x, y, pdCoords[d][0], pdCoords[d][1]) <= PointToPoint2D(x, y, pdCoords[tvar3][0], pdCoords[tvar3][1])) {
tvar4 = -1;
for (new b = 0; b < sizeof(pdCarCoords); b++) {
if (pdCarCoords[b][4] == d+1 && holdsv[b] == 0) {
tvar4 = b;
break;
}
}
if (tvar4 != -1) {
giveplayerid = d;
moneys1 = tvar4;
}
tvar3 = d;
}
}
if (giveplayerid == -1) {
return SendClientMessage2(playerid, COLOR_WHITE, "Sorry there are no spaces available to relocate your vehicle.");
}
if (tvar2 == 457 || tvar2 == 596 || tvar2 == 597 || tvar2 == 598) {
for (new i = 0; i < PLAYERS; i++) {
format(tmp, 12, "hpevsp%d", pvehicle[playerid][0]);
if (GetPVarInt(i, tmp) == 1) {
SetPVarInt(i, tmp, 0);
}
}
}
if (bootdcp[pvehicle[playerid][0]] != 0) {
DestroyDynamicCP(bootdcp[pvehicle[playerid][0]]);
for (new i = 0; i < PLAYERS; i++) {
if (IsPlayerConnected2(i) && pdynamiccp[i] == bootdcp[pvehicle[playerid][0]]) {
CallLocalFunction("OnPlayerLeaveDynamicCP", "dd", i, pdynamiccp[i]);
}
}
cptype[bootdcp[pvehicle[playerid][0]]][0] = 0;
cptype[bootdcp[pvehicle[playerid][0]]][1] = -1;
bootdcp[pvehicle[playerid][0]] = 0;
}
if (tvar5 == -1 && GetVehicleVirtualWorld(pvehicle[playerid][0]) == 0) {
GetVehiclePos(pvehicle[playerid][0], x, y, z);
GetVehicleZAngle(pvehicle[playerid][0], a);
dini_FloatSet(AddDirFile(dir_carfiles, string), "X", x);
dini_FloatSet(AddDirFile(dir_carfiles, string), "Y", y);
dini_FloatSet(AddDirFile(dir_carfiles, string), "Z", z);
dini_FloatSet(AddDirFile(dir_carfiles, string), "A", a);
}
new temp1 = pvehicle[playerid][0];
new temp2 = GetVehicleModel(temp1);
if (tvar2 == temp2) {
GetVehicleDamageStatus(pvehicle[playerid][0], panels, doors, lights, tires);
dini_IntSet(AddDirFile(dir_carfiles, string), "panels", panels);
dini_IntSet(AddDirFile(dir_carfiles, string), "doors", doors);
dini_IntSet(AddDirFile(dir_carfiles, string), "lights", lights);
dini_IntSet(AddDirFile(dir_carfiles, string), "tires", tires);
}
else {
vmodelused[temp2-400] --;
if (vmodelused[temp2-400] == 0) vehiclemodels --;
dini_IntSet(AddDirFile(dir_carfiles, string), "panels", 0);
dini_IntSet(AddDirFile(dir_carfiles, string), "doors", 0);
dini_IntSet(AddDirFile(dir_carfiles, string), "lights", 0);
dini_IntSet(AddDirFile(dir_carfiles, string), "tires", 0);
}
GetVehicleHealth(pvehicle[playerid][0], health);
dini_FloatSet(AddDirFile(dir_carfiles, string), "health", health-1000);
DestroyVehicle(pvehicle[playerid][0]);
pvehicle[playerid][0] = CreateVehicle(tvar2, pdCarCoords[moneys1][0], pdCarCoords[moneys1][1], pdCarCoords[moneys1][2], pdCarCoords[moneys1][3], vehcol[pvehicle[playerid][0]][0], vehcol[pvehicle[playerid][0]][1], -1);
if (pvehicle[playerid][0] != temp1) {
vehcol[pvehicle[playerid][0]][0] = vehcol[temp1][0];
vehcol[pvehicle[playerid][0]][1] = vehcol[temp1][1];
vehcol[temp1][0] = 0;
vehcol[temp1][1] = 0;
if (bootdata[temp1][0][0] != 0)
{
bootdata[pvehicle[playerid][0]][0][0] = bootdata[temp1][0][0];
bootdata[temp1][0][0] = 0;
bootdata[pvehicle[playerid][0]][0][1] = bootdata[temp1][0][1];
bootdata[temp1][0][1] = 0;
bootdata[pvehicle[playerid][0]][0][2] = bootdata[temp1][0][2];
bootdata[temp1][0][2] = 0;
bootdata[pvehicle[playerid][0]][0][3] = bootdata[temp1][0][3];
bootdata[temp1][0][3] = 0;
bootdata[pvehicle[playerid][0]][0][4] = bootdata[temp1][0][4];
bootdata[temp1][0][4] = 0;
}
if (bootdata[temp1][1][0] != 0)
{
bootdata[pvehicle[playerid][0]][1][0] = bootdata[temp1][1][0];
bootdata[temp1][1][0] = 0;
bootdata[pvehicle[playerid][0]][1][1] = bootdata[temp1][1][1];
bootdata[temp1][1][1] = 0;
bootdata[pvehicle[playerid][0]][1][2] = bootdata[temp1][1][2];
bootdata[temp1][1][2] = 0;
bootdata[pvehicle[playerid][0]][1][3] = bootdata[temp1][1][3];
bootdata[temp1][1][3] = 0;
bootdata[pvehicle[playerid][0]][1][4] = bootdata[temp1][1][4];
bootdata[temp1][1][4] = 0;
}
if (plockedveh[playerid] == temp1) {
for (new i = 0; i < PLAYERS; i++) {
if (i != playerid) {
vehiclelocked[i][temp1] = false;
vehiclelocked[i][pvehicle[playerid][0]] = true;
}
}
plockedveh[playerid] = pvehicle[playerid][0];
}
Gas[pvehicle[playerid][0]] = Gas[temp1];
Gas[temp1] = FuelMax;
}
//
SetVehicleHealth(pvehicle[playerid][0], health);
if (tvar2 == temp2) {
UpdateVehicleDamageStatus(pvehicle[playerid][0], panels, doors, lights, tires);
}
for (new d = 0; d < CAR_MOD_SLOTS; d++) {
format(tmp, 24, "mod_s%d", d);
if (dini_Isset(AddDirFile(dir_carfiles, string), tmp)) {
AddVehicleComponent(pvehicle[playerid][0], dini_Int(AddDirFile(dir_carfiles, string), tmp));
}
}
if (dini_Isset(AddDirFile(dir_carfiles, string), "paintjob")) {
ChangeVehiclePaintjob(pvehicle[playerid][0], dini_Int(AddDirFile(dir_carfiles, string), "paintjob"));
}
if (dini_Isset(AddDirFile(dir_carfiles, string), "lplate")) {
if (dini_Isset(AddDirFile(dir_carfiles, string), "platecolor")) {
format(tmp, 32, "{%s}%s", dini_Get(AddDirFile(dir_carfiles, string), "platecolor"), dini_Get(AddDirFile(dir_carfiles, string), "lplate"));
SetVehicleNumberPlate2(pvehicle[playerid][0], tmp);
}
else {
SetVehicleNumberPlate2(pvehicle[playerid][0], dini_Get(AddDirFile(dir_carfiles, string), "lplate"));
}
}
vehstored[pvehicle[playerid][0]] = moneys1;
holdsv[moneys1] = pvehicle[playerid][0];
if( dini_Int(AddDirFile(dir_carfiles, string), "nenon11") || dini_Int(AddDirFile(dir_carfiles, string), "nenon12"))
{
dini_IntSet(AddDirFile(dir_userfiles, playername), "Neon", 0);
DestroyObject(obj3[pvehicle[playerid][0]]);
DestroyObject(obj4[pvehicle[playerid][0]]);
dini_Unset(AddDirFile(dir_carfiles, string), "nenon11");
dini_Unset(AddDirFile(dir_carfiles, string), "nenon12");
obj3[pvehicle[playerid][0]] = 0;
obj4[pvehicle[playerid][0]] = 0;
}
format(string, 128, "Your %s has been allocated to %s.", vehName[tvar2-400], pdNames[giveplayerid]);
SendClientMessage2(playerid, COLOR_ORANGE, string);
}
printf("[resetcar] %s (Id%d) has reset their vehicle.", playername, playerid);
SetPVarInt(playerid, "Vehicle", pvehicle[playerid][0]);
}
else
{
if(sscanf(params, "d", slt)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /resetcar [slot]");
new ownerid = IsVehicleOwned(pvehicle[playerid][slt]);
if (ownerid != playerid) return SendClientMessage(playerid, COLOR_RED, "You Dont Own any Vehicle");
if (IsPlayerInVehicle(playerid, pvehicle[playerid][slt])) return SendClientMessage2(playerid, COLOR_SILVER, "Your vehicle doesn't need relocating, you are in it!");
if (GetVehicleHealth2(pvehicle[playerid][slt]) == 100.0) return SendClientMessage2(playerid, COLOR_RED, "Your vehicle can't be reset due to the damage.");
if(slt>3 || slt<1) return SendClientMessage(playerid, COLOR_RED, "ERROR: Available Slots 1-3.");
new tvar6=-1;
sscanf(params, "d", tvar6);
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
new tvar1 = dini_Int(AddDirFile(dir_userfiles, playername), "propowned")-1;
new tvar12 = dini_Int(AddDirFile(dir_userfiles, playername), "busowned")-1;
if (tvar1 != -1 && tvar12 == -1 && tvar6 == -1)
{
if (DoesPlayerHaveMenuOpen(playerid) || GetPlayerDialog(playerid) != -1) return SendClientMessage2(playerid, COLOR_WHITE, "SERVER: Please exit your current menu first.");
ShowPlayerDialog2(playerid, DIALOG_RESET_CAR, DIALOG_STYLE_LIST, "Where do you want to reset your car?", "Police Department\nYour Property", "Select", "Cancel");
return 1;
}
else if (tvar12 != -1 && tvar1 == -1 && tvar6 == -1)
{
if (DoesPlayerHaveMenuOpen(playerid) || GetPlayerDialog(playerid) != -1) return SendClientMessage2(playerid, COLOR_WHITE, "SERVER: Please exit your current menu first.");
ShowPlayerDialog2(playerid, DIALOG_RESET_CAR3, DIALOG_STYLE_LIST, "Where do you want to reset your car?", "Police Department\nYour Business", "Select", "Cancel");
return 1;
}
else if(tvar12 != -1 && tvar1 != -1 && tvar6 == -1)
{
if (DoesPlayerHaveMenuOpen(playerid) || GetPlayerDialog(playerid) != -1) return SendClientMessage2(playerid, COLOR_WHITE, "SERVER: Please exit your current menu first.");
ShowPlayerDialog2(playerid, DIALOG_RESET_CAR2, DIALOG_STYLE_LIST, "Where do you want to reset your car?", "Police Department\nYour Property\nYour Business", "Select", "Cancel");
return 1;
}
format(string, 50, "V_%s_%d", playername, slt);
new tvar2 = dini_Int(AddDirFile(dir_carfiles, string), "model");
new panels, doors, lights, tires, Float:health;
if (tvar1 == -1 || tvar6 == 0 || tvar12 != -1) {
new tvar3, tvar4, tvar5, Float:x, Float:y, Float:z, Float:a;
giveplayerid = -1;
tvar5 = vehstored[pvehicle[playerid][slt]];
if (tvar5 != -1) {
holdsv[tvar5] = 0;
vehstored[pvehicle[playerid][slt]] = -1;
}
if (GetPlayerInterior(playerid) != 0) {
new shamalid = GetPlayerShamalID(playerid);
if (shamalid != 0 && GetVehicleInterior(shamalid) == 0) {
GetVehiclePos(shamalid, x, y, z);
}
else {
x = adata[plastdoor[playerid]][ax];
y = adata[plastdoor[playerid]][ay];
z = adata[plastdoor[playerid]][az];
}
}
else {
GetPlayerPos(playerid, x, y, z);
}
for (new d = 0; d < sizeof(pdCoords); d++) {
if (PointToPoint2D(x, y, pdCoords[d][0], pdCoords[d][1]) <= PointToPoint2D(x, y, pdCoords[tvar3][0], pdCoords[tvar3][1])) {
tvar4 = -1;
for (new b = 0; b < sizeof(pdCarCoords); b++) {
if (pdCarCoords[b][4] == d+1 && holdsv[b] == 0) {
tvar4 = b;
break;
}
}
if (tvar4 != -1) {
giveplayerid = d;
moneys1 = tvar4;
}
tvar3 = d;
}
}
if (giveplayerid == -1) {
return SendClientMessage2(playerid, COLOR_WHITE, "Sorry there are no spaces available to relocate your vehicle.");
}
if (tvar2 == 457 || tvar2 == 596 || tvar2 == 597 || tvar2 == 598) {
for (new i = 0; i < PLAYERS; i++) {
format(tmp, 12, "hpevsp%d", pvehicle[playerid][slt]);
if (GetPVarInt(i, tmp) == 1) {
SetPVarInt(i, tmp, 0);
}
}
}
if (bootdcp[pvehicle[playerid][slt]] != 0) {
DestroyDynamicCP(bootdcp[pvehicle[playerid][slt]]);
for (new i = 0; i < PLAYERS; i++) {
if (IsPlayerConnected2(i) && pdynamiccp[i] == bootdcp[pvehicle[playerid][slt]]) {
CallLocalFunction("OnPlayerLeaveDynamicCP", "dd", i, pdynamiccp[i]);
}
}
cptype[bootdcp[pvehicle[playerid][slt]]][0] = 0;
cptype[bootdcp[pvehicle[playerid][slt]]][1] = -1;
bootdcp[pvehicle[playerid][slt]] = 0;
}
if (tvar5 == -1 && GetVehicleVirtualWorld(pvehicle[playerid][slt]) == 0) {
GetVehiclePos(pvehicle[playerid][slt], x, y, z);
GetVehicleZAngle(pvehicle[playerid][slt], a);
dini_FloatSet(AddDirFile(dir_carfiles, string), "X", x);
dini_FloatSet(AddDirFile(dir_carfiles, string), "Y", y);
dini_FloatSet(AddDirFile(dir_carfiles, string), "Z", z);
dini_FloatSet(AddDirFile(dir_carfiles, string), "A", a);
}
new temp1 = pvehicle[playerid][slt];
new temp2 = GetVehicleModel(temp1);
if (tvar2 == temp2) {
GetVehicleDamageStatus(pvehicle[playerid][0], panels, doors, lights, tires);
dini_IntSet(AddDirFile(dir_carfiles, string), "panels", panels);
dini_IntSet(AddDirFile(dir_carfiles, string), "doors", doors);
dini_IntSet(AddDirFile(dir_carfiles, string), "lights", lights);
dini_IntSet(AddDirFile(dir_carfiles, string), "tires", tires);
}
else {
vmodelused[temp2-400] --;
if (vmodelused[temp2-400] == 0) vehiclemodels --;
dini_IntSet(AddDirFile(dir_carfiles, string), "panels", 0);
dini_IntSet(AddDirFile(dir_carfiles, string), "doors", 0);
dini_IntSet(AddDirFile(dir_carfiles, string), "lights", 0);
dini_IntSet(AddDirFile(dir_carfiles, string), "tires", 0);
}
GetVehicleHealth(pvehicle[playerid][slt], health);
dini_FloatSet(AddDirFile(dir_carfiles, string), "health", health-1000);
DestroyVehicle(pvehicle[playerid][slt]);
pvehicle[playerid][slt] = CreateVehicle(tvar2, pdCarCoords[moneys1][0], pdCarCoords[moneys1][1], pdCarCoords[moneys1][2], pdCarCoords[moneys1][3], vehcol[pvehicle[playerid][0]][0], vehcol[pvehicle[playerid][0]][1], -1);
if (pvehicle[playerid][slt] != temp1) {
vehcol[pvehicle[playerid][slt]][0] = vehcol[temp1][0];
vehcol[pvehicle[playerid][slt]][1] = vehcol[temp1][1];
vehcol[temp1][0] = 0;
vehcol[temp1][1] = 0;
if (bootdata[temp1][0][0] != 0)
{
bootdata[pvehicle[playerid][slt]][0][0] = bootdata[temp1][0][0];
bootdata[temp1][0][0] = 0;
bootdata[pvehicle[playerid][slt]][0][1] = bootdata[temp1][0][1];
bootdata[temp1][0][1] = 0;
bootdata[pvehicle[playerid][slt]][0][2] = bootdata[temp1][0][2];
bootdata[temp1][0][2] = 0;
bootdata[pvehicle[playerid][slt]][0][3] = bootdata[temp1][0][3];
bootdata[temp1][0][3] = 0;
bootdata[pvehicle[playerid][slt]][0][4] = bootdata[temp1][0][4];
bootdata[temp1][0][4] = 0;
}
if (bootdata[temp1][1][0] != 0)
{
bootdata[pvehicle[playerid][slt]][1][0] = bootdata[temp1][1][0];
bootdata[temp1][1][0] = 0;
bootdata[pvehicle[playerid][slt]][1][1] = bootdata[temp1][1][1];
bootdata[temp1][1][1] = 0;
bootdata[pvehicle[playerid][slt]][1][2] = bootdata[temp1][1][2];
bootdata[temp1][1][2] = 0;
bootdata[pvehicle[playerid][slt]][1][3] = bootdata[temp1][1][3];
bootdata[temp1][1][3] = 0;
bootdata[pvehicle[playerid][slt]][1][4] = bootdata[temp1][1][4];
bootdata[temp1][1][4] = 0;
}
if (plockedveh[playerid] == temp1) {
for (new i = 0; i < PLAYERS; i++) {
if (i != playerid) {
vehiclelocked[i][temp1] = false;
vehiclelocked[i][pvehicle[playerid][0]] = true;
}
}
plockedveh[playerid] = pvehicle[playerid][slt];
}
Gas[pvehicle[playerid][slt]] = Gas[temp1];
Gas[temp1] = FuelMax;
}
//
SetVehicleHealth(pvehicle[playerid][slt], health);
if (tvar2 == temp2) {
UpdateVehicleDamageStatus(pvehicle[playerid][slt], panels, doors, lights, tires);
}
for (new d = 0; d < CAR_MOD_SLOTS; d++) {
format(tmp, 24, "mod_s%d", d);
if (dini_Isset(AddDirFile(dir_carfiles, string), tmp)) {
AddVehicleComponent(pvehicle[playerid][slt], dini_Int(AddDirFile(dir_carfiles, string), tmp));
}
}
if (dini_Isset(AddDirFile(dir_carfiles, string), "paintjob")) {
ChangeVehiclePaintjob(pvehicle[playerid][slt], dini_Int(AddDirFile(dir_carfiles, string), "paintjob"));
}
if (dini_Isset(AddDirFile(dir_carfiles, string), "lplate")) {
if (dini_Isset(AddDirFile(dir_carfiles, string), "platecolor")) {
format(tmp, 32, "{%s}%s", dini_Get(AddDirFile(dir_carfiles, string), "platecolor"), dini_Get(AddDirFile(dir_carfiles, string), "lplate"));
SetVehicleNumberPlate2(pvehicle[playerid][slt], tmp);
}
else {
SetVehicleNumberPlate2(pvehicle[playerid][slt], dini_Get(AddDirFile(dir_carfiles, string), "lplate"));
}
}
vehstored[pvehicle[playerid][slt]] = moneys1;
holdsv[moneys1] = pvehicle[playerid][slt];
if( dini_Int(AddDirFile(dir_carfiles, string), "nenon11") || dini_Int(AddDirFile(dir_carfiles, string), "nenon12"))
{
dini_IntSet(AddDirFile(dir_userfiles, playername), "Neon", 0);
DestroyObject(obj3[pvehicle[playerid][slt]]);
DestroyObject(obj4[pvehicle[playerid][slt]]);
dini_Unset(AddDirFile(dir_carfiles, string), "nenon11");
dini_Unset(AddDirFile(dir_carfiles, string), "nenon12");
obj3[pvehicle[playerid][slt]] = 0;
obj4[pvehicle[playerid][slt]] = 0;
}
format(string, 128, "Your %s has been allocated to %s.", vehName[tvar2-400], pdNames[giveplayerid]);
SendClientMessage2(playerid, COLOR_ORANGE, string);
}
printf("[resetcar] %s (Id%d) has reset their vehicle.", playername, playerid);
SetPVarInt(playerid, "Vehicle", pvehicle[playerid][slt]);
}
return 1;
}