stock SaveHouses()
{
for(new i=1;i < MAX_HOUSES;i++)
{
if(HouseTaken[i] == 0) continue;
new hFile[35];
format(hFile, 35, HOUSE_PATH, i);
new INI:File = INI_Open(hFile);
INI_SetTag(File, "House Data");
INI_WriteFloat(File, "ExitX", HouseInfo[i][ExitX]);
INI_WriteFloat(File, "ExitY", HouseInfo[i][ExitY]);
INI_WriteFloat(File, "ExitZ", HouseInfo[i][ExitZ]);
INI_WriteFloat(File, "ExitA", HouseInfo[i][ExitA]);
INI_Close(File);
}
}
CMD:createhouse(playerid, params[])
{
new type[128], string[256];
new id = GetAvailableID();
if(sscanf(params, "s[128]",type))
{
SendClientMessage(playerid, COLOR_RED, "/createhouse");
return 1;
}
if(!strcmp(type, "1", true, 2))
{
HouseInfo[id][EnterX] = 2308.8;
HouseInfo[id][EnterY] = -1212.8;
HouseInfo[id][EnterZ] = 1049.0;
HouseInfo[id][EnterInt] = 6;
HouseInfo[id][Price] = 9000;
HouseInfo[id][Level] = 3;
}
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
HouseInfo[id][ExitX] = Pos[0];
HouseInfo[id][ExitY] = Pos[1];
HouseInfo[id][ExitZ] = Pos[2];
SaveHouses();
return 1;
}
CMD:sellhouse(playerid, params[])
{
{
new id = PlayerInfo[playerid][pHouseID];
HouseInfo[id][Owned] = 0;
HouseInfo[id][Locked] = 0;
PlayerInfo[playerid][pHouseKey] = 0;
PlayerInfo[playerid][pHouseID] = 0;
}
return 1;
}
stock GetAvailableID()
{
for(new i = 1; i<MAX_HOUSES; i++)
{
if(HouseTaken[i] == 0) return i;
}
return -1;
}
PlayerInfo[playerid][pHouseKey] = 0;
PlayerInfo[playerid][pHouseID] = 0;
|
You didn't set ownership in create house function. You have to set
pawn Код:
|
|
You could set each house is different vw so then just check the output if a player on the output cord , and if its a vw same as the one in the house you just put him on house exit cord.
|

|
Jednostavno,znači napraviљ u enumu VW i sad kada praviљ kuću u VW konstukciju dodaљ primar od unosa,znači
HouseInfo[id][VW] = id; I onda kada ulazi u kuću postaviљ mu VirtualWorld na World kuće i onda kad izlazi iz kuće proveriљ ako mu je VW i pozicija ista kao od te kuće samo mu postaviљ vanjske kord ulaza i to je to. |
HouseInfo[id][EnterVW] = id;
for(new i = 1; i < sizeof(HouseInfo); i++)
{
if(IsPlayerInRangeOfPoint(playerid,1.0,HouseInfo[i][ExitX],HouseInfo[i][ExitY],HouseInfo[i][ExitZ]))
{
if(HouseInfo[i][Locked] == 1) return KucaJeZakljucana(playerid);
if(HouseInfo[i][EnterX] == 0) return KucaNemaInterior(playerid);
SetPlayerPos(playerid, HouseInfo[i][EnterX],HouseInfo[i][EnterY],HouseInfo[i][EnterZ]);
SetPlayerInterior(playerid, HouseInfo[i][EnterInt]);
SetPlayerVirtualWorld(playerid, HouseInfo[i][EnterVW]);
}
else if(IsPlayerInRangeOfPoint(playerid,3.0,HouseInfo[i][EnterX],HouseInfo[i][EnterY],HouseInfo[i][EnterZ]))
{
SetPlayerPos(playerid, HouseInfo[i][ExitX],HouseInfo[i][ExitY],HouseInfo[i][ExitZ]);
SetPlayerInterior(playerid, HouseInfo[i][ExitInt]);
SetPlayerVirtualWorld(playerid, HouseInfo[i][ExitVW]);
}
}