[Ajuda] Sair da empresa pela porta
#1

Iae amigos, estou tendo um problema com o meu FS, que eu nгo estou conseguindo fazer um cуdigo para o player sair de dentro da empresa, sem usar o /sairemp, e sim pela porta de saнda!

Eu tentei fazer, vejam oque eu fiz:

pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) //Callback de apertar as teclas...
{
    if ((newkeys == KEY_SECONDARY_ATTACK)) //Tecla F ou ENTER
    {
        if(InfosEmp[playerid][DentroEmp] == true) //Se o player estiver dentro de uma empresa
        {
            if(IsPlayerInRangeOfPoint(playerid,2.0,InfosEmp[playerid][PosSaidaX],InfosEmp[playerid][PosSaidaY],InfosEmp[playerid][PosSaidaZ])) //Se o player estiver na porta da saida (Coordenadas getadas quando ele entra na empresa 'veja na ultima linha')
            {
                SetPlayerInterior(playerid,0); //Volta ao interior do mundo normal
                SetPlayerPos(playerid,InfosEmp[playerid][UltimaPosX],InfosEmp[playerid][UltimaPosY],InfosEmp[playerid][UltimaPosZ]); //E volta nas coordenadas na porta da entrada da empresa
                InfosEmp[playerid][DentroEmp] = false; //Nгo estб mais dentro de uma empresa
            }
        }
        for(new e = 0; e <= MAX_EMPRESAS; ++e)
        {
            new Emps[128];
            format(Emps,sizeof(Emps),"Empresas/%d.ini",e);
            {
                if(IsPlayerInRangeOfPoint(playerid,2.0,DOF2_GetFloat(Emps,"X"),DOF2_GetFloat(Emps,"Y"),DOF2_GetFloat(Emps,"Z"))) //Se o player estiver nas coordenadas da entrada de alguma empresa...
                {
                    if(DOF2_GetInt(Emps,"IDInterior") == 0) //Se for a empresa numero 1...
                    {
                        InfosEmp[playerid][IDEmpPresente] = DOF2_GetInt(Emps,"ID"); //Guardar o numero da empresa que ele estб
                        SetPlayerInterior(playerid,17); //Coloca ele no interior dessa empresa
                        SetPlayerPos(playerid,-25.884498,-185.868988,1003.546875); //Coloca ele nas coordenadas desse interior da empresa
                        FuncoesEmp(playerid); //Aqui vai cobrar o valor da entrada, etc...
                        GetPlayerPos(playerid,InfosEmp[playerid][PosSaidaX],InfosEmp[playerid][PosSaidaY],InfosEmp[playerid][PosSaidaZ]); //E aqui, vai pegar as coordenadas de onde ele spawnou dentro da empresa, na entrada da empresa! Para poder sair por aqui!
                        break;
                    }
                    // Entre vбaarios outros interiores......
                }
            }
        }
    }
    return 1;
}
Porйm, nгo estб dando certo! Quando eu aperto F ou ENTER na saнda da empresa, ele nгo sai, fica parado lб, nгo acontece nada! Aн eu tenho que usar o comando de sair da empresa, que й este:

pawn Код:
CMD:sairemp(playerid)
{
    if(InfosEmp[playerid][DentroEmp] == false)
    {
        SendClientMessage(playerid,-1,"{FFFFFF}[ ! ] {FF0000}Vocк nгo estб dentro de uma empresa{FFFFFF}!");
    }
    else
    {
        SetPlayerInterior(playerid,0);
        SetPlayerPos(playerid,InfosEmp[playerid][UltimaPosX],InfosEmp[playerid][UltimaPosY],InfosEmp[playerid][UltimaPosZ]);
        InfosEmp[playerid][DentroEmp] = false;
    }
    return 1;
}
Faz 1 ano que nгo mecho com Pawn, entгo eu estou noob denovo... Desculpem se o erro que eu cometi й idiota, mas eu ainda nгo peguei o jeito!

Ficaria muito agradecido se alguйm pudesse me ajudar! Nгo estou pedindo um cуdigo pronto, e sim uma ajuda! Um dica de como fazer/resolver! ... se esqueci de postar algum outro cуdigo, me avisem! OBRIGADO!
Reply
#2

Use isso no seu cod

SetPlayerVirtualWorld( playerid, Empresa VirtualWorld );
Reply
#3

O cуdigo parece estar bom...

Faзa um debug completo que irб encontrar o erro mais facilmente.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)