[Pedido] /Continuar
#1

Galera queria que alguйm min ajudasse a fazer o comando /continuar , eu estou usando o dini, se precisarem de alguma linha fale, Obrigado desde jб!
Reply
#2

Tipe:

pawn Код:
if(strcmp("/Continuar", cmdtext, true, 10) == 0)
    {
        new PosSalva[MAX_PLAYER_NAME];
        new vtrr[256];
        GetPlayerName(playerid, PosSalva, sizeof(PosSalva));
        format(vtrr, sizeof(vtrr), Contas, PosSalva);
        ContX[playerid] = dini_Float(vtrr,"ContinuarX");
        ContY[playerid] = dini_Float(vtrr,"ContinuarY");
        ContZ[playerid] = dini_Float(vtrr,"ContinuarZ");
        SetPlayerPos(playerid, ContX[playerid],  ContY[playerid], ContZ[playerid]);
        SetPlayerInterior(playerid, 0);
        SetCameraBehindPlayer(playerid);
        SendClientMessage(playerid, -1, "Mensagem que ele usou o continuar....");
        return 1;
    }
Й apenas й um exemplo. E no caso, troque o ContX..Y...Z pela variбvel que salva a ъltima posiзгo salva de seu servidor..
Reply
#3

Mas nгo tenho ainda a variбvel que salva as pos x , y , z ;//
Reply
#4

Cara, й o seguinte:

Para vocк dar /continuar, vocк deverб salvar as posiзхes antes do quit do player.
Para isso, iremos salvar as coordenadas.

Criamos uma static, que й quase a mesma coisa que new, sу que sгo diferentes

PHP код:
static variavel[40]; 
Aqui salvaremos a coordenada.


PHP код:
          dini_FloatSet(variavel"PosX"PlayerInfo[playerid][x]);
          
dini_FloatSet(variavel"PosY"PlayerInfo[playerid][y]);
          
dini_FloatSet(variavel"PosZ"PlayerInfo[playerid][z]); 
No comando /continuar, vocк acrescentarб:

PHP код:
    PlayerInfo[playerid][x] = dini_Float(variavel"PosX");
    
PlayerInfo[playerid][y] = dini_Float(variavel"PosY");
    
PlayerInfo[playerid][z] = dini_Float(variavel"PosZ"); 
Agora, crie uma enum para salvar as Posiзхes;

PHP код:
enum pInfo
{
     
Float:x,
     
Float:y,
     
Float:z
}; 
E por ъltimo, definimos as floats;

PHP код:
static Float:posxFloat:posyFloat:posz
Desculpe qualquer erro, nгo uso Dini.
Reply
#5

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

new
    JogadorBloqueado[MAX_PLAYERS],
    Jogador[MAX_PLAYER_NAME],
    FLoat: kX[MAX_PLAYERS],
    FLoat: kY[MAX_PLAYERS],
    Float: kZ[MAX_PLAYERS],
    Float: kA[MAX_PLAYERS],
    sStringFrm[128];


public OnPlayerDisconnect(playerid, reason)
{
    GetPlayerName(playerid, Jogador, sizeof(Jogador));
    GetPlayerPos(playerid, kX[playerid], kY[playerid], kZ[playerid]);
    GetPlayerFacingAngle(playerid, kA[playerid]);

    format(sStringFrm, sizeof(sStringFrm), "%s.spawn.ini", Jogador);
    dini_FloatSet(sStringFrm, "cX", kX[playerid]);
    dini_FloatSet(sStringFrm, "cY", kY[playerid]);
    dini_FloatSet(sStringFrm, "cZ", kZ[playerid]);
    dini_FloatSet(sStringFrm, "cA", kA[playerid]);

    return true;
}

public OnPlayerConnect(playerid)
    return JogadorBloqueado[playerid] = 0;


public OnPlayerSpawn(playerid)
{
    GetPlayerName(playerid, Jogador, sizeof(Jogador));
    format(sStringFrm, sizeof(sStringFrm), "%s.spawn.ini", Jogador);
    if(fexist(sStringFrm) && JogadorBloqueadoplayerid] == 0)
    {
        kX[playerid] = dini_Float(sStringFrm,"cX");
        kY[playerid] = dini_Float(sStringFrm,"cY");
        kZ[playerid] = dini_Float(sStringFrm,"cZ");
        kA[playerid] = dini_Float(sStringFrm,"cA");

        SetPlayerPos(playerid, kX[playerid],  kY[playerid], kZ[playerid]);
        SetPlayerFacingAngle(playerid, kA[playerid]);
        SetCameraBehindPlayer(playerid);

        JogadorBloqueado[playerid] = 1;
    }
    if(!fexist(sStringFrm))
    {
        dini_Create(sStringFrm);
        JogadorBloquado[playerid] = 1;
    }
    return true;
}
Reply
#6

Quote:
Originally Posted by clerISoN
Посмотреть сообщение
Galera queria que alguйm min ajudasse a fazer o comando /continuar , eu estou usando o dini, se precisarem de alguma linha fale, Obrigado desde jб!
#include <a_samp>
#include <Dini>


public OnPlayerDisconnect(playerid, reason)
{
new continuar[28];
new Float: x, Float: y, Float: z, Float: angle;
GetPlayerPos(playerid,x,y,z) || GetPlayerFacingAngle(playerid, angle);

format(continuar,28,"Continuar/%s.txt",PlayerName(playerid));
if(dini_Exists(continuar))
{
dini_FloatSet(continuar, "CX",x);
dini_FloatSet(continuar, "CY",y);
dini_FloatSet(continuar, "CZ",z);
dini_FloatSet(continuar, "CA",angle);
}
else if(dini_Create(continuar))
{
dini_FloatSet(continuar, "CX",x);
dini_FloatSet(continuar, "CY",y);
dini_FloatSet(continuar, "CZ",z);
dini_FloatSet(continuar, "CA",angle);
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/continuar", cmdtext, true, 10) == 0)
{
new continuar[28];
format(continuar,28,"Continuar/%s.txt",PlayerName(playerid));
SetPlayerPos(playerid,dini_Float(continuar,"CX"),dini_Float(continuar,"CY"),dini_Float(continuar,"CZ"));
SetPlayerFacingAngle(playerid,dini_Float(continuar ,"CA"));
return 1;
}
return 0;
}
stock PlayerName(playerid)
{
new PlayerNameLevel[MAX_PLAYER_NAME];
GetPlayerName(playerid, PlayerNameLevel, MAX_PLAYER_NAME);
return PlayerNameLevel;
}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)