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]); } }