Dъvida.
#1

pawn Код:
#include <a_samp>
#include <dini>
#include <dudb>


#define SetPlayerHoldingObject(%1, %2, %3, %4, %5, %6, %7, %8, %9) SetPlayerAttachedObject(%1, MAX_PLAYER_ATTACHED_OBJECTS -1, %2, %3, %4, %5, %6, %7, %8, %9)
#define StopPlayerHoldingObject(%1) RemovePlayerAttachedObject(%1, MAX_PLAYER_ATTACHED_OBJECTS -1)
#define IsPlayerHoldingObject(%1) IsPlayerAttachedObjectSlotUsed(%1, MAX_PLAYER_ATTACHED_OBJECTS -1)


#define masculino    0
#define feminino     1


#define desempregado 0


enum jogadorinfo
{
    profissao,
    sexo,
    leveladministrativo
}


new arquivo[500];


new nome[MAX_PLAYER_NAME];


new informacoes[MAX_PLAYERS][jogadorinfo];


//new Float: salvarx[MAX_PLAYERS], Float: salvary[MAX_PLAYERS], Float: salvarz[MAX_PLAYERS], Float: salvarangulo[MAX_PLAYERS];


new bool: iniciante[MAX_PLAYERS];


main()
{
    print("\n----------------------------------");
    print(" Brasil play sa-mp.");
    print("----------------------------------\n");
}


public OnGameModeInit()
{
    UsePlayerPedAnims();

    SetGameModeText("Bps oficial");

    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);

    AddStaticVehicle(420, -1754.99609375, 954.83312988, 24.59218788, 90.00000000, 6, 6);
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    SetSpawnInfo(playerid, 0, 0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
    SpawnPlayer(playerid);
    return 1;
}

public OnPlayerConnect(playerid)
{
    new texto[500];

    GetPlayerName(playerid, nome, sizeof nome);
    format(arquivo, sizeof arquivo, "contas/%s.ini", nome);

    if (!fexist(arquivo) )
    {
        format(texto, sizeof texto, "{FFFFFF}Bem vindo pela primeira vez.\n\nConta:   %s\n\nPor favor digite uma senha:", nome);
        ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "{FFFFFF}Brasil {18C5FF}play sa-mp{FFFFFF} - registro", texto, "Registrar", "");
    }
    if (fexist(arquivo) )
    {
        format(texto, sizeof texto, "{FFFFFF}Bem vindo novamente.\n\nConta:   %s\n\nPor favor digite sua senha:", nome);
        ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "{FFFFFF}Brasil {18C5FF}play sa-mp{FFFFFF} - login", texto, "Logar", "");
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    GetPlayerName(playerid, nome, sizeof nome);
    /*GetPlayerPos(playerid, salvarx[playerid], salvary[playerid], salvarz[playerid]);
    GetPlayerFacingAngle(playerid, salvarangulo[playerid]);*/

    format(arquivo, sizeof arquivo, "contas/%s.ini", nome);

    if (fexist(arquivo) )
    {
        dini_IntSet(arquivo, "Dinheiro", GetPlayerMoney(playerid) );
        dini_IntSet(arquivo, "Level", GetPlayerScore(playerid) );
        dini_IntSet(arquivo, "Level procurado", GetPlayerWantedLevel(playerid) );
        dini_IntSet(arquivo, "Profissгo", informacoes[playerid][profissao]);
        dini_IntSet(arquivo, "Sexo", informacoes[playerid][sexo]);
        dini_IntSet(arquivo, "Roupa", GetPlayerSkin(playerid) );
        /*dini_FloatSet(arquivo, "Coordenada x", salvarx[playerid]);
        dini_FloatSet(arquivo, "Coordenada y", salvary[playerid]);
        dini_FloatSet(arquivo, "Coordenada z", salvarz[playerid]);
        dini_FloatSet(arquivo, "Angulo", salvarangulo[playerid]);
        SetPVarInt(playerid, "Interior", GetPlayerInterior(playerid) );*/

    }
    return 1;
}

public OnPlayerSpawn(playerid)
{
    if(informacoes[playerid][profissao] == desempregado)
    {
        SetPlayerColor(playerid, 0xFFFFFFFF);

        if (iniciante[playerid] == true)
        {
            if (informacoes[playerid][sexo] == masculino)
            {
                SetPlayerSkin(playerid, 23);
                return 1;
            }
           
            if (informacoes[playerid][sexo] == feminino)
            {
                SetPlayerSkin(playerid, 56);
                return 1;
            }
           
            SetPlayerPos(playerid, -1752.5930, 961.8002, 24.8828);
            SetPlayerFacingAngle(playerid, 180.000);
            SetCameraBehindPlayer(playerid);
            iniciante[playerid] = false;
        }
    }
   
    if (iniciante[playerid] == false)
    {
        /*salvarx[playerid] = dini_Float(arquivo, "Coordenada x");
        salvary[playerid] = dini_Float(arquivo, "Coordenada y");
        salvarz[playerid] = dini_Float(arquivo, "Coordenada z");
        salvarangulo[playerid] = dini_Float(arquivo, "Angulo");
        SetPlayerPos(playerid, salvarx[playerid],  salvary[playerid], salvarz[playerid]);
        SetPlayerFacingAngle(playerid, salvarangulo[playerid]);
        SetPlayerInterior(playerid, GetPVarInt(playerid, "Interior") );
        SetCameraBehindPlayer(playerid);*/

        SetPlayerSkin(playerid, dini_Int(arquivo, "Roupa") );
    }
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    return 1;
}

public OnVehicleSpawn(vehicleid)
{
    return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
    return 1;
}

public OnPlayerText(playerid, text[])
{
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
    return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
    return 1;
}

public OnRconCommand(cmd[])
{
    return 1;
}

public OnObjectMoved(objectid)
{
    return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
    return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
    return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
    return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
    return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
    return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
    return 1;
}

public OnPlayerExitedMenu(playerid)
{
    return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
    return 1;
}

public OnPlayerUpdate(playerid)
{
    GetPlayerName(playerid, nome, sizeof nome);
    format(arquivo, sizeof arquivo, "contas/%s.ini", nome);

    if (fexist(arquivo) )
    {
        dini_IntSet(arquivo, "Dinheiro", GetPlayerMoney(playerid) );
        dini_IntSet(arquivo, "Level", GetPlayerScore(playerid) );
        dini_IntSet(arquivo, "Level procurado", GetPlayerWantedLevel(playerid) );
        dini_IntSet(arquivo, "Level administrativo", informacoes[playerid][leveladministrativo]);
        dini_IntSet(arquivo, "Profissгo", informacoes[playerid][profissao]);
        dini_IntSet(arquivo, "Sexo", informacoes[playerid][sexo]);
        dini_IntSet(arquivo, "Roupa", GetPlayerSkin(playerid) );
    }
    return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
    return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
    return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
    return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new texto[500];

    if (dialogid == 1)
    {
        if (response)
        {
            GetPlayerName(playerid, nome, sizeof nome);

            if (strlen(inputtext) == 0)
            {
                format(texto, sizeof texto, "{FFFFFF}Conta:   %s\n\nPor favor digite algo:", nome);
                ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "{FFFFFF}Brasil {18C5FF}play sa-mp{FFFFFF} - registro", texto, "Registrar", "");
                return 0;
            }

            format(arquivo, sizeof arquivo, "contas/%s.ini", nome);

            if (!fexist(arquivo) )
            {
                dini_Create(arquivo);
                dini_IntSet(arquivo, "Senha", udb_hash(inputtext) );
                ShowPlayerDialog(playerid, 3, DIALOG_STYLE_MSGBOX, "{FFFFFF}Brasil {18C5FF}play sa-mp{FFFFFF} - sexo", "{FFFFFF}Por favor selecione o seu sexo", "Masculino", "Feminino");
            }
        }
    }

    if (dialogid == 2)
    {
        if (response)
        {
            if (strlen(inputtext) == 0)
            {
                GetPlayerName(playerid, nome, sizeof nome);
                format(texto, sizeof texto, "{FFFFFF}Conta:   %s\n\nPor favor digite algo:", nome);
                ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "{FFFFFF}Brasil {18C5FF}play sa-mp{FFFFFF} - login", texto, "Logar", "");
                return 0;
            }

            GetPlayerName(playerid, nome, sizeof nome);
            format(arquivo, sizeof arquivo, "contas/%s.ini", nome);

            if (fexist(arquivo) )
            {
                new senha = dini_Int(arquivo, "Senha");

                if (udb_hash(inputtext) != senha)
                {
                    GetPlayerName(playerid, nome, sizeof nome);
                    format(texto, sizeof texto, "{FFFFFF}Conta:   %s\n\nPor favor digite a senha correta:", nome);
                    ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "{FFFFFF}Brasil {18C5FF}play sa-mp{FFFFFF} - login", texto, "Logar", "");
                    return 1;
                }

                if (udb_hash(inputtext) == senha)
                {
                    SetPlayerMoney(playerid, dini_Int(arquivo,"Dinheiro") );
                    SetPlayerScore(playerid, dini_Int(arquivo, "Level") );
                    SetPlayerWantedLevel(playerid, dini_Int(arquivo, "Level procurado") );
                    informacoes[playerid][leveladministrativo] = dini_Int(arquivo, "Level administrativo");
                    informacoes[playerid][profissao] = dini_Int(arquivo, "Profissгo");
                    informacoes[playerid][sexo] = dini_Int(arquivo, "Sexo");
                    SpawnPlayer(playerid);
                    return 1;
                }
            }
        }
    }

    if (dialogid == 3)
    {
        if (response)
        {
            informacoes[playerid][sexo] = masculino;
            SpawnPlayer(playerid);
            informacoes[playerid][profissao] = desempregado;
            iniciante[playerid] = true;
        }

        else
        {
            informacoes[playerid][sexo] = feminino;
            SpawnPlayer(playerid);
            informacoes[playerid][profissao] = desempregado;
            iniciante[playerid] = true;
        }
    }
    return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    return 1;
}
Queria saber o porque do cj estб nascendo na fazenda e nгo as outras skins no lugar idel e como resolver.
Reply
#2

Usa SetPlayerPos pra definir todas as Skins nascerem em um local sу \ф/
Reply
#3

Olha a callback OnPlayerSpawn.
Reply
#4

Retire SetSpawnInfo do onplayerrequestclass
Reply
#5

pawn Код:
if (informacoes[playerid][sexo] == masculino)
            {
                SetPlayerSkin(playerid, 23);
                return 1;
            }
           
            if (informacoes[playerid][sexo] == feminino)
            {
                SetPlayerSkin(playerid, 56);
                return 1;
            }
           
            SetPlayerPos(playerid, -1752.5930, 961.8002, 24.8828);
            SetPlayerFacingAngle(playerid, 180.000);
            SetCameraBehindPlayer(playerid);
            iniciante[playerid] = false;
Retire esses return 1;
Reply
#6

Nem vi a public OnPlayerSpawn '-'
Reply
#7

Quando tirei o SetSpawnInfo comeзou a ler o AddPlayerClass.
Reply
#8

sei porque, ele deve estar renascendo na fazendo nй?
Код:
    if(informacoes[playerid][profissao] == desempregado)
    {
        SetPlayerColor(playerid, 0xFFFFFFFF);

        if (iniciante[playerid] == true)
        {
            if (informacoes[playerid][sexo] == masculino)
            {
                SetPlayerSkin(playerid, 23);
                return 1;
            }
            
            if (informacoes[playerid][sexo] == feminino)
            {
                SetPlayerSkin(playerid, 56);
                return 1;
            }
            
            SetPlayerPos(playerid, -1752.5930, 961.8002, 24.8828);
            SetPlayerFacingAngle(playerid, 180.000);
            SetCameraBehindPlayer(playerid);
            iniciante[playerid] = false;
        }
    }
Observando essa parte, o player deve atender todas as condiзхes para nascer em (-1752.5930, 961.8002, 24.882
Ele deve ser desempregado e iniciante, porem logo depois do primeiro spawn no (-1752.5930, 961.8002, 24.882 o player deixa de ser iniciante: iniciante[playerid] = false;
A partir dai ele nao atende a condiзгo:

if (iniciante[playerid] == true)

Pra ficar correto acho q vc tem q usar a funзгo:

SetPlayerPos(playerid, -1752.5930, 961.8002, 24.882;

Fora dos cochetes da condiзгo: iniciante[playerid] == true

Espero ter-lo ajudado, e tenho ctz q o problema deve ser esse...
Reply
#9

Nгo й cochete e sim chave.
Reply
#10

Sim errei a palavra, mas vc conseguiu fazer dar certo?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)