Songason

30/10/2013, 09:13 PM

When I /exitgarage, I come in the middle of nowhere. This happens in every garage.

Code of /entergarage + /exitgarage:

if(strcmp(cmd, "/entergarage", true) == 0 || strcmp(cmd, "/enterga", true) == 0)

{

if(IsPlayerConnected(playerid))

{

new Seat[MAX_PLAYERS], InCar[MAX_PLAYERS];

new i = IsPlayerNearGarage(playerid), intoset, vehicleid;

if(i == -1) return SendClientMessage(playerid, GREY, " You are not near a garage.");

if(GarageInfo[i][GarageSize] == 1) { intoset = 2; }

if(GarageInfo[i][GarageSize] == 2) { intoset = 3; }

if(GarageInfo[i][GarageSize] == 3) { intoset = 1; }

if(GarageInfo[i][GarageLocked]) return SendClientMessage(playerid, GREY, "This garage is locked.");

if(IsPlayerInRangeOfPoint(playerid, 5.5, GarageInfo[i][GarageEnterX], GarageInfo[i][GarageEnterY], GarageInfo[i][GarageEnterZ]))

{

if(GetPlayerState(playerid) == 2)

{

vehicleid = GetPlayerVehicleID(playerid);

SetVehiclePos(vehicleid, GarageInfo[i][GarageInsideX], GarageInfo[i][GarageInsideY], GarageInfo[i][GarageInsideZ] + 0.4);

SetVehicleZAngle(vehicleid, GarageInfo[i][GarageInsideA]);

SetVehicleWorld(vehicleid, i);

SetVehicleInterior(vehicleid, intoset);

for(new j = 0; j < MAX_PLAYERS; j++)

{

if(IsPlayerInVehicle(j, vehicleid))

{

InCar[j] = vehicleid;

Seat[j] = GetPlayerVehicleSeat(j);

SetPlayerInterior(j, intoset);

SetPlayerVirtualWorld(j, i);

SetPVarInt(j, "InGarage", 1);

}

}

}

SetPlayerPosEx(playerid, GarageInfo[i][GarageInsideX], GarageInfo[i][GarageInsideY], GarageInfo[i][GarageInsideZ]);

SetPlayerFacingAngle(playerid, GarageInfo[i][GarageInsideA]);

SetPlayerInterior(playerid, intoset);

SetPlayerVirtualWorld(playerid, i);

if (vehicleid != 0)

{

for (new j = 0; j < MAX_PLAYERS; j++)

{

if (InCar[j] == 0) continue;

if (InCar[j] == vehicleid)

{

PutPlayerInVehicle(j, vehicleid, Seat[j]);

}

}

}

SetPVarInt(playerid, "InGarage", 1);

OnPlayerEnterGarage(playerid, i);

return 1;

}

else

{

SendClientMessage(playerid, GREY, " You are not near a garage.");

return 1;

}

}

return 1;

}

if(strcmp(cmd, "/exitgarage", true) == 0 || strcmp(cmd, "/exitga", true) == 0)

{

if(IsPlayerConnected(playerid))

{

new Seat[MAX_PLAYERS], InCar[MAX_PLAYERS];

new i = GetPlayerVirtualWorld(playerid), vehicleid;

if(i == 0) return SendClientMessage(playerid, GREY, " You are not inside a garage.");

if(GarageInfo[i][GarageLocked]) return SendClientMessage(playerid, GREY, " You've been locked inside the garage, tough luck.");

if(IsPlayerInRangeOfPoint(playerid, 30.0, GarageInfo[i][GarageInsideX], GarageInfo[i][GarageInsideY], GarageInfo[i][GarageInsideZ]) && GetPlayerVirtualWorld(playerid) == i)

{

if(GetPlayerState(playerid) == 2)

{

vehicleid = GetPlayerVehicleID(playerid);

for(new j = 0; j < MAX_PLAYERS; j++)

{

if(IsPlayerInVehicle(j, vehicleid))

{

InCar[j] = vehicleid;

Seat[j] = GetPlayerVehicleSeat(playerid);

SetPlayerInterior(j, 0);

SetPlayerVirtualWorld(j, 0);

SetPVarInt(j, "InGarage", 0);

}

}

SetVehiclePos(vehicleid, GarageInfo[i][GarageExitX], GarageInfo[i][GarageExitY], GarageInfo[i][GarageExitZ]);

SetVehicleZAngle(vehicleid, GarageInfo[i][GarageExitA]);

SetVehicleWorld(vehicleid, 0);

SetVehicleInterior(vehicleid, 0);

}

SetPlayerPosEx(playerid, GarageInfo[i][GarageExitX], GarageInfo[i][GarageExitY], GarageInfo[i][GarageExitZ]);

SetPlayerFacingAngle(playerid, GarageInfo[i][GarageExitA]);

SetPlayerInterior(playerid, 0);

SetPlayerVirtualWorld(playerid, 0);

if(vehicleid != 0)

{

for (new j = 0; j < MAX_PLAYERS; j++)

{

if (InCar[j] == 0) continue;

if (InCar[j] == vehicleid)

{

PutPlayerInVehicle(j, vehicleid, Seat[j]);

}

}

PutPlayerInVehicle(playerid, vehicleid, 0);

}

SetPVarInt(playerid, "InGarage", 0);

return 1;

}

else

{

SendClientMessage(playerid, GREY, " You are not near a garage exit.");

return 1;

}

}

return 1;

}

Code of /entergarage + /exitgarage:

if(strcmp(cmd, "/entergarage", true) == 0 || strcmp(cmd, "/enterga", true) == 0)

{

if(IsPlayerConnected(playerid))

{

new Seat[MAX_PLAYERS], InCar[MAX_PLAYERS];

new i = IsPlayerNearGarage(playerid), intoset, vehicleid;

if(i == -1) return SendClientMessage(playerid, GREY, " You are not near a garage.");

if(GarageInfo[i][GarageSize] == 1) { intoset = 2; }

if(GarageInfo[i][GarageSize] == 2) { intoset = 3; }

if(GarageInfo[i][GarageSize] == 3) { intoset = 1; }

if(GarageInfo[i][GarageLocked]) return SendClientMessage(playerid, GREY, "This garage is locked.");

if(IsPlayerInRangeOfPoint(playerid, 5.5, GarageInfo[i][GarageEnterX], GarageInfo[i][GarageEnterY], GarageInfo[i][GarageEnterZ]))

{

if(GetPlayerState(playerid) == 2)

{

vehicleid = GetPlayerVehicleID(playerid);

SetVehiclePos(vehicleid, GarageInfo[i][GarageInsideX], GarageInfo[i][GarageInsideY], GarageInfo[i][GarageInsideZ] + 0.4);

SetVehicleZAngle(vehicleid, GarageInfo[i][GarageInsideA]);

SetVehicleWorld(vehicleid, i);

SetVehicleInterior(vehicleid, intoset);

for(new j = 0; j < MAX_PLAYERS; j++)

{

if(IsPlayerInVehicle(j, vehicleid))

{

InCar[j] = vehicleid;

Seat[j] = GetPlayerVehicleSeat(j);

SetPlayerInterior(j, intoset);

SetPlayerVirtualWorld(j, i);

SetPVarInt(j, "InGarage", 1);

}

}

}

SetPlayerPosEx(playerid, GarageInfo[i][GarageInsideX], GarageInfo[i][GarageInsideY], GarageInfo[i][GarageInsideZ]);

SetPlayerFacingAngle(playerid, GarageInfo[i][GarageInsideA]);

SetPlayerInterior(playerid, intoset);

SetPlayerVirtualWorld(playerid, i);

if (vehicleid != 0)

{

for (new j = 0; j < MAX_PLAYERS; j++)

{

if (InCar[j] == 0) continue;

if (InCar[j] == vehicleid)

{

PutPlayerInVehicle(j, vehicleid, Seat[j]);

}

}

}

SetPVarInt(playerid, "InGarage", 1);

OnPlayerEnterGarage(playerid, i);

return 1;

}

else

{

SendClientMessage(playerid, GREY, " You are not near a garage.");

return 1;

}

}

return 1;

}

if(strcmp(cmd, "/exitgarage", true) == 0 || strcmp(cmd, "/exitga", true) == 0)

{

if(IsPlayerConnected(playerid))

{

new Seat[MAX_PLAYERS], InCar[MAX_PLAYERS];

new i = GetPlayerVirtualWorld(playerid), vehicleid;

if(i == 0) return SendClientMessage(playerid, GREY, " You are not inside a garage.");

if(GarageInfo[i][GarageLocked]) return SendClientMessage(playerid, GREY, " You've been locked inside the garage, tough luck.");

if(IsPlayerInRangeOfPoint(playerid, 30.0, GarageInfo[i][GarageInsideX], GarageInfo[i][GarageInsideY], GarageInfo[i][GarageInsideZ]) && GetPlayerVirtualWorld(playerid) == i)

{

if(GetPlayerState(playerid) == 2)

{

vehicleid = GetPlayerVehicleID(playerid);

for(new j = 0; j < MAX_PLAYERS; j++)

{

if(IsPlayerInVehicle(j, vehicleid))

{

InCar[j] = vehicleid;

Seat[j] = GetPlayerVehicleSeat(playerid);

SetPlayerInterior(j, 0);

SetPlayerVirtualWorld(j, 0);

SetPVarInt(j, "InGarage", 0);

}

}

SetVehiclePos(vehicleid, GarageInfo[i][GarageExitX], GarageInfo[i][GarageExitY], GarageInfo[i][GarageExitZ]);

SetVehicleZAngle(vehicleid, GarageInfo[i][GarageExitA]);

SetVehicleWorld(vehicleid, 0);

SetVehicleInterior(vehicleid, 0);

}

SetPlayerPosEx(playerid, GarageInfo[i][GarageExitX], GarageInfo[i][GarageExitY], GarageInfo[i][GarageExitZ]);

SetPlayerFacingAngle(playerid, GarageInfo[i][GarageExitA]);

SetPlayerInterior(playerid, 0);

SetPlayerVirtualWorld(playerid, 0);

if(vehicleid != 0)

{

for (new j = 0; j < MAX_PLAYERS; j++)

{

if (InCar[j] == 0) continue;

if (InCar[j] == vehicleid)

{

PutPlayerInVehicle(j, vehicleid, Seat[j]);

}

}

PutPlayerInVehicle(playerid, vehicleid, 0);

}

SetPVarInt(playerid, "InGarage", 0);

return 1;

}

else

{

SendClientMessage(playerid, GREY, " You are not near a garage exit.");

return 1;

}

}

return 1;

}