[AJUDA] Comandos /s e /r para salvar coordenadas
#1

RESOLVIDO

Bom galera primeiro. meu nome й Klйversson nick Sa-MP: Dj_Paradox.
Sou antigo no forum mas recentemente registrado.

O Codigo:

Quote:

if (strcmp("/s", cmdtext, true, 10) == 0)
{
new Jogador[MAX_PLAYER_NAME], data[256];
GetPlayerName(playerid, Jogador, sizeof(Jogador));
GetPlayerPos(playerid,PDXX[playerid],PDXY[playerid],PDXZ[playerid]);
GetPlayerFacingAngle(playerid,PDXA[playerid]);
format(data, sizeof(data), "/rs/%s.spawn.ini", Jogador);
dini_FloatSet(data,"CoordenadaX",PDXX[playerid]);
dini_FloatSet(data,"CoordenadaY",PDXY[playerid]);
dini_FloatSet(data,"CoordenadaZ",PDXZ[playerid]);
dini_FloatSet(data,"CoordenadaA",PDXA[playerid]);
SendClientMessage(playerid, 0x33FF00FF, "Sua Localizaзгo foi salva com sucesso ! By Dj_Paradox.");
return 1;
}

if (strcmp("/r", cmdtext, true, 10) == 0)
{
new VolteiPraCa[MAX_PLAYER_NAME], voltarcoordenada[256];
GetPlayerName(playerid, VolteiPraCa, sizeof(VolteiPraCa));
format(voltarcoordenada, sizeof(voltarcoordenada), "/rs/%s.spawn.ini", VolteiPraCa);
if (!dini_Exists(voltarcoordenada))
{
PDXX[playerid] = dini_Float(voltarcoordenada,"CoordenadaX");
PDXY[playerid] = dini_Float(voltarcoordenada,"CoordenadaY");
PDXZ[playerid] = dini_Float(voltarcoordenada,"CoordenadaZ");
PDXA[playerid] = dini_Float(voltarcoordenada,"CoordenadaA");
SetPlayerPos(playerid, PDXX[playerid], PDXY[playerid], PDXZ[playerid]);
SetPlayerFacingAngle(playerid, PDXA[playerid]);
SetCameraBehindPlayer(playerid);
SendClientMessage(playerid, 0x33FF00FF, "Vocк voltou para sua antiga localizaзгo salva em /s ! By Dj_Paradox.");
if(!fexist(voltarcoordenada))
{
dini_Create(voltarcoordenada);
}
}
return 1;
}

OBS: Dados retirados do FS VoltarCoordenada Feito Por: Ken_xD(rjjj). Desculpa ae nгo ter colocado ^^
Codigo Correto:
Код:
new  Float:AA,
     Float:BB,
     Float:CC;

	if (strcmp(cmdtext, "/s", true) == 0)
    {
    new Jogador[MAX_PLAYER_NAME], data[256];  //definido jogador e string
       if(!fexist(data))   dini_Create(data); //Cria o arquivo - [ALERT BUG] [ALERT BUG] o.O quando ele vai criar o arquivo ele feixa altomatico o samp-server. o.O pq sera?
    GetPlayerName(playerid, Jogador, sizeof(Jogador)); //pega o nick do player
    format(data, sizeof(data), "%s-Salvar.ini", Jogador); //Salva o arquivo
    GetPlayerPos(playerid,AA,BB,CC);
    dini_FloatSet(data,"CoordenadaX",Float:AA); // Pega coordenada X
    dini_FloatSet(data,"CoordenadaY",Float:BB); // Pega coordenada Y
    dini_FloatSet(data,"CoordenadaZ",Float:CC); // Pega coordenada Z
    SendClientMessage(playerid, 0x33FF00FF, "Sua Localizaзгo foi salva com sucesso ! By Dj_Paradox."); // Manda a mensagen para o player
	return 1;
    }

	if (strcmp(cmdtext, "/r", true) == 0)
    {
    new Jogador[MAX_PLAYER_NAME], data[256]; //definido jogador e string
    GetPlayerName(playerid, Jogador, sizeof(Jogador)); // Pega o nick do player
    format(data, sizeof(data), "%s-Salvar.ini", Jogador); // abri o arquivo salvo com comando /s
    SetPlayerPos(playerid,dini_Float(data,"CoordenadaX"),dini_Float(data,"CoordenadaY"),dini_Float(data,"CoordenadaZ") ); // coloca o player nas coordenadas salvas
    SendClientMessage(playerid, 0x33FF00FF, "Vocк voltou para sua antiga localizaзгo salva em /s ! By Dj_Paradox.");  // Manda a mensagen para o player
	return 1;
    }
By HigorOliveira - Explicaзгo By Eu ^^

A duvida:
Estou querendo fazer /s Para salvar as coordenadas do player, e /r para voltar para as coordenadas antigas salvas por /s...mas so que nao esta salvando as coordenadas, o estranho e que compila tudo ok sem erro, quando tento usar o comando /s aparece a mensagen "Sua Localizaзгo foi salva com sucesso ! By Dj_Paradox" como realmente e pra ser mas vou ver na pasta e nao aparece nada nenhum registro...
Alguem me ajuda pf...
Reply
#2

dini_FloatSet(data,"CoordenadaX",Float:PDXX[playerid]);
dini_FloatSet(data,"CoordenadaY",Float:PDXY[playerid]);
dini_FloatSet(data,"CoordenadaZ",Float:PDXZ[playerid]);
dini_FloatSet(data,"CoordenadaA",Float:PDXA[playerid]);
Reply
#3

Antes de mais nada, por favor lembre-se dos crйditos desse cуdigo, por que por acaso eu sou o criador do mesmo que й parte de um FS que fiz e postei aqui no fуrum (veja na minha assinatura)


Provas pra eu dizer isso:


pawn Код:
.spawn.ini  //Extensгo de arquivo que eu criei especialmente pro meu FS
new VolteiPraCa[MAX_PLAYER_NAME]; //Variavel original do meu FS
new voltarcoordenada[256]; //Variavel original do meu FS
new data[256]; //Sempre uso essa variбvel para formatar uma string qualquer :D

Bem....Arrumei seu comando


pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/s", cmdtext, true, 1) == 0)
    {
        new Jogador[MAX_PLAYER_NAME], data[256];
        GetPlayerName(playerid, Jogador, sizeof(Jogador));
        GetPlayerPos(playerid,PDXX[playerid],PDXY[playerid],PDXZ[playerid]);
        GetPlayerFacingAngle(playerid,PDXA[playerid]);
        format(data, sizeof(data), "/rs/%s.spawn.ini", Jogador);
        if(!fexist(data))
        {
            dini_Create(data);
        }
        dini_FloatSet(data,"CoordenadaX",PDXX[playerid]);
        dini_FloatSet(data,"CoordenadaY",PDXY[playerid]);
        dini_FloatSet(data,"CoordenadaZ",PDXZ[playerid]);
        dini_FloatSet(data,"CoordenadaA",PDXA[playerid]);
        SendClientMessage(playerid, 0x33FF00FF, "Sua Localizaзгo foi salva com sucesso ! By Dj_Paradox.");
        return 1;
    }
    if (strcmp("/r", cmdtext, true, 1) == 0)
    {
        new VolteiPraCa[MAX_PLAYER_NAME], voltarcoordenada[256];
        GetPlayerName(playerid, VolteiPraCa, sizeof(VolteiPraCa));
        format(voltarcoordenada, sizeof(voltarcoordenada), "/rs/%s.spawn.ini", VolteiPraCa);
        if (dini_Exists(voltarcoordenada))
        {
            PDXX[playerid] = dini_Float(voltarcoordenada,"CoordenadaX");
            PDXY[playerid] = dini_Float(voltarcoordenada,"CoordenadaY");
            PDXZ[playerid] = dini_Float(voltarcoordenada,"CoordenadaZ");
            PDXA[playerid] = dini_Float(voltarcoordenada,"CoordenadaA");
            SetPlayerPos(playerid, PDXX[playerid], PDXY[playerid], PDXZ[playerid]);
            SetPlayerFacingAngle(playerid, PDXA[playerid]);
            SetCameraBehindPlayer(playerid);
            SendClientMessage(playerid, 0x33FF00FF, "Vocк voltou para sua antiga localizaзгo salva em /s ! By Dj_Paradox.");
        }
        else
        {
            dini_Create(voltarcoordenada);
        }
        return 1;
    }
    return 0;
}

Espero ter ajudado
Reply
#4

pawn Код:
new
     Float:AA,
     Float:BB,
     Float:CC;

    if(strcmp(cmd, "/s", true) == 0)
    {
        if(!fexist(data))   dini_Create(data);

    new Jogador[MAX_PLAYER_NAME], data[256];
    GetPlayerName(playerid, Jogador, sizeof(Jogador));
    format(data, sizeof(data), "%s-Salvar.ini", Jogador);
    GetPlayerPos(playerid,AA,BB,CC);
    dini_FloatSet(data,"CoordenadaX",Float:AA);
    dini_FloatSet(data,"CoordenadaY",Float:BB);
    dini_FloatSet(data,"CoordenadaZ",Float:CC);
    }

    if(strcmp(cmd, "/r", true) == 0)
    {
    new Jogador[MAX_PLAYER_NAME], data[256];
    GetPlayerName(playerid, Jogador, sizeof(Jogador));
    format(data, sizeof(data), "%s-Salvar.ini", Jogador);
    SetPlayerPos(playerid,dini_Float(data,"CoordenadaX"),dini_Float(data,"CoordenadaY"),dini_Float(data,"CoordenadaZ") );
    }
Reply
#5


Infelimente nao funcionou Higor, Acontece como no print quando digita /r...
RJJJ infelimente o seu codigo tbm nao funcionou, ele cria o arquivo de boa... Mas /r nao server funciona ao envez de abrir as coordenadas ele salva coordenadas como se foзe o /s msm... ( Desculpa pelos creditos ja ageitei
Reply
#6

Quote:
Originally Posted by Dj_Paradox
Посмотреть сообщение
Mals ae pelos creditos ja ageitei...
Код:
new
     Float:AA,
     Float:BB,
     Float:CC;

    if(strcmp(cmd, "/s", true) == 0)
    {
        if(!fexist(data))   dini_Create(data);

    new Jogador[MAX_PLAYER_NAME], data[256];
    GetPlayerName(playerid, Jogador, sizeof(Jogador));
    format(data, sizeof(data), "%s-Salvar.ini", Jogador);
    GetPlayerPos(playerid,AA,BB,CC);
    dini_FloatSet(data,"CoordenadaX",Float:AA);
    dini_FloatSet(data,"CoordenadaY",Float:BB);
    dini_FloatSet(data,"CoordenadaZ",Float:CC);
    }

    if(strcmp(cmd, "/r", true) == 0)
    {
    new Jogador[MAX_PLAYER_NAME], data[256];
    GetPlayerName(playerid, Jogador, sizeof(Jogador));
    format(data, sizeof(data), "%s-Salvar.ini", Jogador);
    SetPlayerPos(playerid,dini_Float(data,"CoordenadaX"),dini_Float(data,"CoordenadaY"),dini_Float(data,"CoordenadaZ") );
    }
Reply
#7

Quote:
Originally Posted by [Banido]HigorOliver
Посмотреть сообщение
Код:
new
     Float:AA,
     Float:BB,
     Float:CC;

    if(strcmp(cmd, "/s", true) == 0)
    {
        if(!fexist(data))   dini_Create(data);

    new Jogador[MAX_PLAYER_NAME], data[256];
    GetPlayerName(playerid, Jogador, sizeof(Jogador));
    format(data, sizeof(data), "%s-Salvar.ini", Jogador);
    GetPlayerPos(playerid,AA,BB,CC);
    dini_FloatSet(data,"CoordenadaX",Float:AA);
    dini_FloatSet(data,"CoordenadaY",Float:BB);
    dini_FloatSet(data,"CoordenadaZ",Float:CC);
    }

    if(strcmp(cmd, "/r", true) == 0)
    {
    new Jogador[MAX_PLAYER_NAME], data[256];
    GetPlayerName(playerid, Jogador, sizeof(Jogador));
    format(data, sizeof(data), "%s-Salvar.ini", Jogador);
    SetPlayerPos(playerid,dini_Float(data,"CoordenadaX"),dini_Float(data,"CoordenadaY"),dini_Float(data,"CoordenadaZ") );
    }
tbm nao funciona =/ assim nem salvar o arquivo e como antes com o primeiro codigo...
Mais alguem?
Reply
#8

RJJJ olha so seu comando salva as coordenadas sem problema
CoordenadaX=1173.288452
CoordenadaY=-2039.690795
CoordenadaZ=69.007812
CoordenadaA=93.405143
o unico problema e que ele considera /r = /s os 2 servem so pra salvar e nada pra abrir as coordenadas... pq sera = /?
Reply
#9

=D Obrigado a todos principalmente ao HigorOliveira....
Codigo:

Код:
Topo:
#include <Dini>
#pragma tabsize 0

public OnPlayerCommandText(playerid, cmdtext[]){ 

new Float:AA,
     Float:BB,
     Float:CC;

	if (strcmp(cmdtext, "/s", true) == 0)
    {
	new data[256];
        if(!fexist(data))   dini_Create(data);

    new Jogador[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Jogador, sizeof(Jogador));
    format(data, sizeof(data), "%s-Salvar.ini", Jogador);
    GetPlayerPos(playerid,AA,BB,CC);
    dini_FloatSet(data,"CoordenadaX",Float:AA);
    dini_FloatSet(data,"CoordenadaY",Float:BB);
    dini_FloatSet(data,"CoordenadaZ",Float:CC);
    }

	if (strcmp(cmdtext, "/r", true) == 0)
    {
    new Jogador[MAX_PLAYER_NAME], data[256];
    GetPlayerName(playerid, Jogador, sizeof(Jogador));
    format(data, sizeof(data), "%s-Salvar.ini", Jogador);
    SetPlayerPos(playerid,dini_Float(data,"CoordenadaX"),dini_Float(data,"CoordenadaY"),dini_Float(data,"CoordenadaZ") );
    }
Testado e aprovado =) vlw...
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)