[Ajuda]Sistema de Interiores com VW
#1

Oi. Por gostaria de sabe como faзo pra seta o VirtualWorld nos interiores das casas. Pois eu uso o GF ja setei o VW em duas casas com pos de entrada diferente e pos de interior iguais e com o VirtualWorld da primeira casa "1" e da segunda "2" mesmo assim eu entro na casa 1 e sai na ultima casa que comigo й a casa 2 \/\/

CASA 1 \/ O Ultimo nъmero da linha abaixo й o VirtualWolrd "1"
-2738.9810,755.3593,52.9059,271.884979,306.631988,9 99.148437,0,0,0,0,0,0,O estado,Casa 1,25,0,0,2,1,0,0,2000,1,2300,587,-1,-1,193,5,1

CASA 2 \/ O Ultimo nъmero da linha abaixo й o VirtualWolrd "2"
-2738.8330,746.3964,49.4392,271.884979,306.631988,9 99.148437,0,0,0,0,0,0,O estado,Casa 2,50,0,0,2,1,0,1,99999,0,0,587,-1,-1,193,4,2

Olha no meu codigo do entrar ta assim\/
Код:
	    if(IsPlayerConnected(playerid))
		{
			for(new i = 0; i < sizeof(CasaInfo); i++)
			{
				if (PlayerToPoint(3, playerid,CasaInfo[i][hEntrancex], CasaInfo[i][hEntrancey], CasaInfo[i][hEntrancez]))
				{
					//printf("Fornd Casa :%d",i);
					if(PlayerInfo[playerid][pPCasakey] == i || CasaInfo[i][hLock] == 0)
					{
						SetPlayerInterior(playerid,CasaInfo[i][hInt]);
						SetPlayerVirtualWorld(playerid,CasaInfo[i][hVirtualWorld]);
						SetPlayerPos(playerid,CasaInfo[i][hExitx],CasaInfo[i][hExity],CasaInfo[i][hExitz]);
						GameTextForPlayer(playerid, "~w~Bem vindo em casa", 5000, 1);
						PlayerInfo[playerid][pInt] = CasaInfo[i][hInt];
						PlayerInfo[playerid][pLocal] = i;
					}
					else
					{
						GameTextForPlayer(playerid, "~r~Fechado", 5000, 1);
					}
				}
			}
no meu codigo de Sair ta assim\/
Код:
			if (PlayerToPoint(3, playerid,CasaInfo[i][hExitx], CasaInfo[i][hExity], CasaInfo[i][hExitz]))
				{
					SetPlayerInterior(playerid,0);
					SetPlayerVirtualWorld(playerid,0);
					SetPlayerPos(playerid,CasaInfo[i][hEntrancex],CasaInfo[i][hEntrancey],CasaInfo[i][hEntrancez]);
					PlayerInfo[playerid][pInt] = 0;
					PlayerInfo[playerid][pLocal] = 255;
					if(CasaInfo[i][hHel] == 1)
					{
						new Float:tempheal;
						GetPlayerHealth(playerid,tempheal);
						if(tempheal < 100.0)
						{
							SetPlayerHealth(playerid,100.0);
						}
					}
				}
			}



Por favor me ajudem =D
Reply
#2

No comando sair tenta trocar:
Код:
if (PlayerToPoint(3, playerid,CasaInfo[i][hExitx], CasaInfo[i][hExity], CasaInfo[i][hExitz]))
por
Код:
if (PlayerToPoint(3, playerid,CasaInfo[i][hExitx], CasaInfo[i][hExity], CasaInfo[i][hExitz]) && GetPlayerVirtualWorld(i) == CasaInfo[i][hVirtualWorld])
O que eu fiz: adicionei para alйm de checar se estб na saнda da casa, tambйm checar se estб no VW da casa.
Nгo testei nem sei se estб certo, to cansado agora, acordei cedo hoje, caso nгo funcione eu te passo um que funcione amanhг.
Reply
#3

Quote:
Originally Posted by iansinho
Посмотреть сообщение
No comando sair tenta trocar:
Код:
if (PlayerToPoint(3, playerid,CasaInfo[i][hExitx], CasaInfo[i][hExity], CasaInfo[i][hExitz]))
por
Код:
if (PlayerToPoint(3, playerid,CasaInfo[i][hExitx], CasaInfo[i][hExity], CasaInfo[i][hExitz]) && GetPlayerVirtualWorld(i) == CasaInfo[i][hVirtualWorld])
O que eu fiz: adicionei para alйm de checar se estб na saнda da casa, tambйm checar se estб no VW da casa.
Nгo testei nem sei se estб certo, to cansado agora, acordei cedo hoje, caso nгo funcione eu te passo um que funcione amanhг.
Olha iansinho eu fiz isso ae atй deu certo mas eu entro na primeira casa que tem vw "0" ela entra e sai certinho
jб na casa 2 que tem vw "1" eu consigo comprar mais nгo consigo sair .-. nгo faзo a minima ideia doque seja. As coordenadas estгo certas pq ele entra nela e por ela ele devia sair mais eu aperto "F" DIGITO "/SAIR" e nada jб na casa 1 que tem o Virtual world 0 sai e entra normal certinho!
Reply
#4

Alguem da mais opзoes doque possa ta acontecendo agora?
Reply
#5

Hm...
Na sua primeira casa que tem VW 0 ela entra e sai normal.
Na segunda casa que tem VW 1 vocк entra mas o comando /sair nгo funciona, й isso?


@Edit
Achei uma forma pra vocк... xD.

Seguinte, no topo do GM crie essas news.
pawn Код:
new Float:XOldPosH[MAX_PLAYERS];
new Float:YOldPosH[MAX_PLAYERS];
new Float:ZOldPosH[MAX_PLAYERS];
No comando /entrar, adicione o seguinte cуdigo ANTES DO "
SetPlayerPos(playerid,CasaInfo[i][hExitx],CasaInfo[i][hExity],CasaInfo[i][hExitz]);"
Ficando ASSIM:
pawn Код:
GetPlayerPos(playerid,XOldPosH[playerid],YOldPosH[playerid],ZOldPosH[playerid]);
SetPlayerPos(playerid,CasaInfo[i][hExitx],CasaInfo[i][hExity],CasaInfo[i][hExitz]);
No comando /sair, basta editar o cуdigo para:
pawn Код:
if (PlayerToPoint(3, playerid,CasaInfo[i][hExitx], CasaInfo[i][hExity], CasaInfo[i][hExitz]))
          {
            SetPlayerPos(playerid,XOldPosH[playerid],YOldPosH[playerid],ZOldPosH[playerid]);
            SetPlayerInterior(playerid,0);
            SetPlayerVirtualWorld(playerid,0);
           }
Aguardo sua resposta caso ocorra algum erro.
Caso te ajudei \/
Reply
#6

Mano Deu certo agora mas quando o player compra a casa pela primeira vez "entra nela e sai cai la no meio do mapa"
Reply
#7

Simples!!

Vocк nгo fez o player salvar a "pos" antes de entrar na casa, logo apos de compra-la.

pawn Код:
if(str..."/comprar"...
{
Comprou a casa
/*Deve salvar a pos nas variaveis antes de entrar!*/
Entrou na casa
//Quando sair ele carregarб a pos salva nas Var's globais certo?!
//sendo que, antes de ele entrar, ele nгo salvou pos nenhuma!!!!
}
99.9% que seja isso
Reply
#8

Exatamente isso que o Sergiinho falou, na hora de entrar й so salvar as cordenadas com:
pawn Код:
GetPlayerPos(playerid,XOldPosH[playerid],YOldPosH[playerid],ZOldPosH[playerid]);
~
Caso nгo estiver conseguindo, mande o comando /comprar.
Reply
#9

Por Iansinho Deu tudo certinho Muito Obrigado mano pode deixa vou clica ali no negocio na sua assinatura "eu acho que й na assinatura"
Sergiinhonike Valeu ae tan bem =D
Reply
#10

Ow mano, beleza
Tamo aqui pra ajudar XD

E esse negуcio й minha assinatura, й o reputation.
Caso nгo funcione clique ali naquela estrela cinza-escuro abaixo do meu avatar

Boa sorte.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)