27.08.2012, 18:28
So i have made a command to create a backdoor in a players house
When i create it and leave the house from the interior it works fine
But if i want to enter the house from the backdoor to go into the interior it dont do anything ...
Please help
Thanks
Please help
Thanks
When i create it and leave the house from the interior it works fine
But if i want to enter the house from the backdoor to go into the interior it dont do anything ...
Please help
Thanks
pawn Код:
command(createbackdoor, playerid, params[])
{
new Usage[128], string[128], houseid;
if(sscanf(params, "zd", Usage, houseid))
{
if(Player[playerid][AdminLevel] >= 5)
{
SendClientMessage(playerid, WHITE, "SYNTAX: /createbackdoor [usage] [houseid]");
SendClientMessage(playerid, GREY, "Usage: Interior, Exterior or Complete.");
}
}
else
{
if(Player[playerid][AdminLevel] >= 5)
{
if(strcmp(Usage, "exterior", true) == 0)
{
Player[playerid][BackDoorExterior]++;
Player[playerid][bdExtID] = GetPlayerInterior(playerid);
GetPlayerPos(playerid, Player[playerid][bdExtX], Player[playerid][bdExtY], Player[playerid][bdExtZ]);
format(string, sizeof(string), "Exterior set! (X: %f, Y: %f, Z: %f).", Player[playerid][bdExtX], Player[playerid][bdExtY], Player[playerid][bdExtZ]);
SendClientMessage(playerid, WHITE, string);
}
if(strcmp(Usage, "interior", true) == 0)
{
Player[playerid][BackDoorInterior]++;
Player[playerid][bdIntID] = GetPlayerInterior(playerid);
GetPlayerPos(playerid, Player[playerid][bdIntX], Player[playerid][bdIntY], Player[playerid][bdIntZ]);
format(string, sizeof(string), "Interior set! (X: %f, Y: %f, Z: %f).", Player[playerid][bdIntX], Player[playerid][bdIntY], Player[playerid][bdIntZ]);
SendClientMessage(playerid, WHITE, string);
}
if(strcmp(Usage, "complete", true) == 0)
{
if(Player[playerid][BackDoorInterior] > 0 || Player[playerid][BackDoorExterior] > 0)
{
new BackDoor = SpawnedBackDoors+1;
if(BackDoor >= MAX_BACKDOORS)
{
SendClientMessage(playerid, WHITE, "Too many back doors are currently spawned!");
}
else
{
format(string, sizeof(string), "Houses/House_%d.ini", houseid);
if(fexist(string))
{
Houses[houseid][bdInteriorID] = Player[playerid][bdIntID];
Houses[houseid][bdExteriorID] = Player[playerid][bdExtID];
Houses[houseid][bdInteriorX] = Player[playerid][bdIntX];
Houses[houseid][bdInteriorY] = Player[playerid][bdIntY];
Houses[houseid][bdInteriorZ] = Player[playerid][bdIntZ];
Houses[houseid][bdExteriorX] = Player[playerid][bdExtX];
Houses[houseid][bdExteriorY] = Player[playerid][bdExtY];
Houses[houseid][bdExteriorZ] = Player[playerid][bdExtZ];
dini_Create(string);
dini_IntSet(string, "BackDoorInteriorID", Houses[houseid][bdInteriorID]);
dini_FloatSet(string, "BackDoorInteriorX", Houses[houseid][bdInteriorX]);
dini_FloatSet(string, "BackDoorInteriorY", Houses[houseid][bdInteriorY]);
dini_FloatSet(string, "BackDoorInteriorZ", Houses[houseid][bdInteriorZ]);
dini_IntSet(string, "BackDoorExteriorID", 0);
dini_FloatSet(string, "BackDoorExteriorX", Houses[houseid][bdExteriorX]);
dini_FloatSet(string, "BackDoorExteriorY", Houses[houseid][bdExteriorY]);
dini_FloatSet(string, "BackDoorExteriorZ", Houses[houseid][bdExteriorZ]);
SendClientMessage(playerid, NICESKY, "Successfully created back door!");
SetPlayerInterior(playerid, Houses[houseid][bdExteriorID]);
SetPlayerPos(playerid, Houses[houseid][bdExteriorX], Houses[houseid][bdExteriorY], Houses[houseid][bdExteriorZ]);
}
}
}
else
{
SendClientMessage(playerid, WHITE, "You must select an exterior and an interior first!");
}
}
}
}
return 1;
}
pawn Код:
for(new i = 0; i < sizeof(Houses); i++)
{
if(GetPlayerVirtualWorld(playerid) >= 55000 && GetPlayerVirtualWorld(playerid) < 65000 && IsPlayerInRangeOfPoint(playerid, 3, Houses[i][bdInteriorX], Houses[i][bdInteriorY], Houses[i][bdInteriorZ]))
{
if(Player[playerid][InHouse] != 0)
{
SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid, Houses[Player[playerid][InHouse]][bdExteriorID]);
SetPlayerPos(playerid, Houses[Player[playerid][InHouse]][bdExteriorX], Houses[Player[playerid][InHouse]][bdExteriorY], Houses[Player[playerid][InHouse]][hExteriorZ]);
Player[playerid][InHouse] = 0;
TextDrawHideForPlayer(playerid, ExitTextdraw);
}
else
{
if(IsPlayerInRangeOfPoint(playerid, 3, Houses[i][bdExteriorX], Houses[i][bdExteriorY], Houses[i][bdExteriorZ]))
{
SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid, Houses[Player[playerid][InHouse]][bdInteriorID]);
SetPlayerPos(playerid, Houses[Player[playerid][InHouse]][bdInteriorX], Houses[Player[playerid][InHouse]][bdInteriorY], Houses[Player[playerid][InHouse]][bdInteriorZ]);
}
}
}
}
Thanks