SA-MP Forums Archive
[Ajuda] Ajuda aki to estressado com isso! - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Ajuda aki to estressado com isso! (/showthread.php?tid=371588)



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(playeridnewkeysoldkeys)
{
    if(
newkeys == && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    {
        for(new 
1sizeof(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(playeridAzulBB"Vocк jб tem uma casa!");
                    
strmid(CasaInfo[i][kDono], NomeP(playerid), 0strlen(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 1sizeof(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 1sizeof(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..