Ajuda aki to estressado com isso! -
Tony_Rodrigues - 23.08.2012
Bom galera, estou puto da vida ja com isso..
Vocк entra em uma casa e sai na outra, nгo й coordenadas pq ja chequei todas ..
Olhem ai:
pawn Код:
//PARA ENTRAR E SAIR DA CASA
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == 4 && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
for(new i = 1; i < sizeof(CasaInfo); i++){
if(Posicao(2.0,playerid,CasaInfo[i][kX],CasaInfo[i][kY],CasaInfo[i][kZ])){
if(CasaInfo[i][kTemDono] == 0){
if(PlayerInfo[playerid][Casa] >= 1) return MSG(playerid, AzulBB, "Vocк jб tem uma casa!");
strmid(CasaInfo[i][kDono], NomeP(playerid), 0, strlen(NomeP(playerid)), 999);
CasaInfo[i][kTemDono] = 1;
GivePlayerMoney(playerid, -CasaInfo[i][kPreco]);
PlayerInfo[playerid][Casa] = CasaInfo[i][kID];
Att3DText2();
SalvarCasas();
MSG(playerid,AzulBB,"Parabens pela sua nova casa!");}}}
}
if(newkeys == 16 && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
//Entrada Casas:
for(new i = 1; i < sizeof(CasaInfo); i++){
if(Posicao(2.0,playerid,CasaInfo[i][kX],CasaInfo[i][kY],CasaInfo[i][kZ])){
SetPlayerPos(playerid,CasaInfo[i][kiX],CasaInfo[i][kiY],CasaInfo[i][kiZ]);
SetPlayerInterior(playerid,CasaInfo[i][kInt]);
SetPlayerVirtualWorld(playerid,CasaInfo[i][kVirtual]);
MSG(playerid,-1, "BEM VINDO EM {FF8000}CASA");}}
//Saida Casas:
for(new i = 1; i < sizeof(CasaInfo); i++){
if(Posicao(2.0,playerid,CasaInfo[i][kiX],CasaInfo[i][kiY],CasaInfo[i][kiZ])){
SetPlayerPos(playerid,CasaInfo[i][kX],CasaInfo[i][kY],CasaInfo[i][kZ]);
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
MSG(playerid,-1, "BEM VINDO EM {FF8000}SAN FIERRO");}}
}
return 1;
}
Hoje tava revendo meu GM e achei este bug quando entrei no server.. E eu ja tinha dado o sistema como encerrado Fail-me ;(
Re: Ajuda aki to estressado com isso! -
Yaakin - 24.08.2012
Isto porque os interiores sгo iguais, ou seja й o mesmo local, para solucionar faltou o GetPlayerVirtualWorld:
PHP код:
//PARA ENTRAR E SAIR DA CASA
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == 4 && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
for(new i = 1; i < sizeof(CasaInfo); i++){
if(Posicao(2.0,playerid,CasaInfo[i][kX],CasaInfo[i][kY],CasaInfo[i][kZ])){
if(CasaInfo[i][kTemDono] == 0){
if(PlayerInfo[playerid][Casa] >= 1) return MSG(playerid, AzulBB, "Vocк jб tem uma casa!");
strmid(CasaInfo[i][kDono], NomeP(playerid), 0, strlen(NomeP(playerid)), 999);
CasaInfo[i][kTemDono] = 1;
GivePlayerMoney(playerid, -CasaInfo[i][kPreco]);
PlayerInfo[playerid][Casa] = CasaInfo[i][kID];
Att3DText2();
SalvarCasas();
MSG(playerid,AzulBB,"Parabens pela sua nova casa!");}}}
}
if(newkeys == 16 && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
//Entrada Casas:
for(new i = 1; i < sizeof(CasaInfo); i++){
if(Posicao(2.0,playerid,CasaInfo[i][kX],CasaInfo[i][kY],CasaInfo[i][kZ])){
SetPlayerPos(playerid,CasaInfo[i][kiX],CasaInfo[i][kiY],CasaInfo[i][kiZ]);
SetPlayerInterior(playerid,CasaInfo[i][kInt]);
SetPlayerVirtualWorld(playerid,CasaInfo);
MSG(playerid,-1, "BEM VINDO EM {FF8000}CASA");
}
}
//Saida Casas:
for(new i = 1; i < sizeof(CasaInfo); i++){
if(GetPlayerVirtualWorld(playerid) == CasaInfo){
if(Posicao(2.0,playerid,CasaInfo[i][kiX],CasaInfo[i][kiY],CasaInfo[i][kiZ])){
SetPlayerPos(playerid,CasaInfo[i][kX],CasaInfo[i][kY],CasaInfo[i][kZ]);
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
MSG(playerid,-1, "BEM VINDO EM {FF8000}SAN FIERRO");
}
}
}
}
return 1;
}
Creio que resolverб, sу nгo esquece de identar os cуdigos.
OBS: Identa os cуdigos, pq quando postei eles desarrumaram..