[PROBLEM] Exit problem
#1

Hello, i have problem with house system.

Im created 30 houses, and buyed one house, and im sell this house. buyed new house, and when exit from house, server port me to last buyed house (first house what buyed).

here is my function for house system.

(i will pasto only function for save exit cordinates)





savehouses function:
Код:
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);
     }
}
command createhouse:

Код:
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;
}


command sellhouse:
Код:
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;
}
GetAvailableID function
Код:
stock GetAvailableID()
{
	for(new i = 1; i<MAX_HOUSES; i++)
	{
 		if(HouseTaken[i] == 0) return i;
	}
	return -1;
}
Thanks.
Reply
#2

You didn't set ownership in create house function. You have to set
pawn Код:
PlayerInfo[playerid][pHouseKey] = 0;
PlayerInfo[playerid][pHouseID] = 0;
Unless there's some other command you didn't show us
Reply
#3

Quote:
Originally Posted by Misiur
Посмотреть сообщение
You didn't set ownership in create house function. You have to set
pawn Код:
PlayerInfo[playerid][pHouseKey] = 0;
PlayerInfo[playerid][pHouseID] = 0;
Unless there's some other command you didn't show us
When player registred/selling house she got that two variables to 0.
Reply
#4

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.
Reply
#5

Quote:
Originally Posted by cPawn
Посмотреть сообщение
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.
hrvat sam, pa mi mos na bosanskom napisati opsirnije

kako mislis ? daj mi objasni kako bi tocnije rijesio taj problem


EDIT:

In scriptifiles is same cord for exit. but im use /Createhouse on other place.
Reply
#6

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.
Reply
#7

Quote:
Originally Posted by cPawn
Посмотреть сообщение
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.
aha, probat cu nekako, ali nije mi u svim fileovima isti exit , ono, random je. :S
Reply
#8

Nema veze exit prim ključ je vw.
Samo uradi kako sam ti rekao.
Reply
#9

Ali izlaz iz kuce super radi, u kuci je izlaz di i treba bit,al je problem sta dok izade, porta ga kod neke druge kuce. to mene muci.


znaci moram postaviti dok radim kucu da postavlja moj virutal world, a to je 0, al onda dok bude izlazio, nece bit dobro,jer mu je virtual world ko i id kuce, a trebao bi mu bit 0 da moze izac, i on nece moc izac jer mu nije vw 0.
Reply
#10

napravio sam.



pod createhouse cmd:

Код:
HouseInfo[id][EnterVW] = id;
izlaz/ulaz


Код:
	    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]);
   			}
   		}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)