SA-MP Forums Archive
# Guardar Nivel # - 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: # Guardar Nivel # (/showthread.php?tid=133437)

Pages: 1 2


# Guardar Nivel # - _COTTA_ - 12.03.2010

Boas,
Eu criei este sistema de niveis aqui no forum com a ajuda de alguns membros, mas defacto quando o server reloga os players focam zerados de nivel :S, dessa forma gostaria de saber o que posso fazer para salvar esta informaзao
nao sei talvez um arquivo txt na pasta scriptsfiles com o nome de cada player, ou algo do genero.
Caso algum saiba como solocionar este problema agradecia imenso a ajuda.

Vlw

Code:
#include <a_samp>
#define FILTERSCRIPT
#include <foreach>

new nivel[MAX_PLAYERS];
forward maisnivel();

public OnFilterScriptInit()
{
	print("\n--------------------------------------");
	print(" Blank Filterscript by your name here");
	print("--------------------------------------\n");
	SetTimer("maisnivel", 12*9100, true);
	return 1;
}

public OnFilterScriptExit()
{
	return 1;
}

public OnPlayerConnect(playerid)
{
	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
	return 1;
}

public OnPlayerSpawn(playerid)
{
	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[])
{
	if(strcmp(cmdtext, "/vernivel", true) == 0)
	{
		new string[40];
		format(string, 40,"[Servidor:] SEU NIVEL: %i", nivel[playerid]);
		SendClientMessage(playerid, 0xF60000AA, string);
	}
	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 OnPlayerRequestSpawn(playerid)
{
	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)
{
	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[])
{
	return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
	return 1;
}

public maisnivel()
{
  foreach(Player, i)
  {
		nivel[i] ++;
	}
}



Re: # Guardar Nivel # - noobzord - 12.03.2010

faz um sistema de login \o/



Re: # Guardar Nivel # - _COTTA_ - 12.03.2010

Quote:
Originally Posted by noobzord
faz um sistema de login \o/
xD pois amigo o meu problema й essa como fazer esse sistema :S:S:S

Sabe de algum tudo que ensine a guardar estas coisas atravez desse sistema de login?

Vlw



Re: # Guardar Nivel # - SlashPT - 12.03.2010

vai em DCMD
pawn Code:
//topo

new gPlayerLogged[MAX_PLAYERS];
forward OnPlayerLogin(playerid,password[]);
forward OnPlayerRegister(playerid, password[]);


//COMANDOS
dcmd_login(playerid, params[])
{
    if(IsPlayerConnected(playerid))
    {
        new tmppass[64];
        if(gPlayerLogged[playerid] == 1)
        {
            SendClientMessage(playerid, COLOR_WHITE, "Ja estas logado");
            return 1;
        }
        if(!strlen(params)) return SendClientMessage(playerid, COLOR_WHITE, "[Uso]: /login [password]");
        strmid(tmppass, params, 0, strlen(params), 255);
        OnPlayerLogin(playerid,tmppass);
    }
    return 1;
}

dcmd_registar(playerid, params[])
{
    if(IsPlayerConnected(playerid))
    {
        if(gPlayerLogged[playerid] == 1)
        {
            SendClientMessage(playerid, COLOR_WHITE, "Ja estas logado");
            return 1;
        }
        new sendername[MAX_PLAYER_NAME];
        new string[256];
        GetPlayerName(playerid, sendername, sizeof(sendername));
        format(string, sizeof(string), "%s.ini", sendername);
        new File: hFile = fopen(string, io_read);
        if (hFile)
        {
            SendClientMessage(playerid, COLOR_YELLOW, "Este nome ja esta em uso!");
            fclose(hFile);
            return 1;
        }
        new tmppass[64];
        if(!strlen(params)) return SendClientMessage(playerid, COLOR_WHITE, "[Uso]: /registar [password]");
        strmid(tmppass, params, 0, strlen(params), 255);
        OnPlayerRegister(playerid,tmppass);
    }
    return 1;
}

public OnPlayerLogin(playerid,password[])
{
    new StringC[256];
    new string2[256];
    new tmp2[256];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(st,sizeof(st),"%s.ini",name);
    StringC = dini_Get((st), "Password");
    if (udb_hash(password) != strval(StringC))
    {
        SendClientMessage(playerid, COLOR_WHITE, "SERVIDOR: Password Incorrecta.");
    gPlayerLogged[playerid] = 0;
    }
    else
    {
        dini_Set((st),"Key",password);
        new playername2[MAX_PLAYER_NAME];
        GetPlayerName(playerid, playername2, sizeof(playername2));
        format(StringC, sizeof(StringC), "%s.ini", playername2);
        new File: UserFile = fopen(StringC, io_read);
        if ( UserFile )
        {
            new PassData[256];
            new keytmp[256];
            fread( UserFile , PassData , sizeof( PassData ) );
            keytmp = ini_GetKey( PassData );
            {
                new key[ 256 ] , val[ 256 ];
                new Data[ 256 ];
                while ( fread( UserFile , Data , sizeof( Data ) ) )
                {
                    key = ini_GetKey( Data );
                    if( strcmp( key , "NIVEL" , true ) == 0 ) { val = ini_GetValue( Data ); nivel[playerid] = strval( val ); }
                }
                gPlayerLogged[playerid] = 1;
        fclose(UserFile);
                ResetPlayerMoney(playerid);
                format(string2, sizeof(string2), "SERVIDOR: Bem-Vindo %s",playername2);
                SendClientMessage(playerid, COLOR_WHITE,string2);
                printf("%s has logged in.",playername2);
                SpawnPlayer(playerid);
                format(tmp2, sizeof(tmp2), "~w~Bem-Vindo ~n~~y~  %s", playername2);
                GameTextForPlayer(playerid, tmp2, 5000, 1);
                return 1;
            }

        }
        else
        {
          SendClientMessage(playerid, COLOR_CYAN, "Tu ainda nгo tens conta usa /registar [Password]");
          return 1;
        }
    }
    return 1;
}

public OnPlayerRegister(playerid, password[])
{
    if(IsPlayerConnected(playerid))
    {
        new name[MAX_PLAYER_NAME];
        GetPlayerName(playerid, name, sizeof(name));
    format(st,sizeof(st),"%s.ini",name);
        dini_Create((st));
        dini_IntSet((st), "Password", udb_hash(password));
        dini_Set((st),"Key",password);
        dini_IntSet((st), "NIVEL", 0);
        SendClientMessage(playerid, COLOR_YELLOW, "Conta registada podes agora fazer login utiliza /login [password]");
    }
    return 1;
}
tenta nao tenho a certeza ke funcione ate pk pode conter erros e eu nao testei...


Re: # Guardar Nivel # - _COTTA_ - 14.03.2010

Quote:
Originally Posted by DarK TeaM PT
vai em DCMD
DCMD ?

Nao entendi :S


Re: # Guardar Nivel # - russo666 - 14.03.2010

Quote:
Originally Posted by _COTTA_
Quote:
Originally Posted by DarK TeaM PT
vai em DCMD
DCMD ?

Nao entendi :S
Dcmd

Jб agora o define:

pawn Code:
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
Jб agora sou novato em pawno mas oh Dark isso nгo falta os comandos no onplayercommand text?

pawn Code:
dcmd(login,5,cmdtext);
dcmd(registar,8,cmdtext);



Re: # Guardar Nivel # - SlashPT - 14.03.2010

yaya
:P

e ou bem me engano ou para usares dcmd tambem precisas de um Include??


Re: # Guardar Nivel # - russo666 - 14.03.2010

Quote:
Originally Posted by DarK TeaM PT
yaya
:P

e ou bem me engano ou para usares dcmd tambem precisas de um Include??
Nгo й preciso nenhum include.


Re: # Guardar Nivel # - andmeida10 - 15.03.2010

minha duvida e meia parecida:


Meu GM й um TDM, mais eu quero que quando o cara saia do sv, o nl de procurado fique guardado


Re: # Guardar Nivel # - selular - 18.04.2010

bom eu peguei o seu sistema de level para ver si funcionava e aqui da um erro na hora de compilar

C:\Documents and Settings\Fabinho\Meus documentos\Downloads\Compressed\samp03asvr_R7_win3 2\gamemodes\ice.pwn(3) : fatal error 100: cannot read from file: "foreach"

esse erro e por que nao tenho o include "foreach"?



Re: # Guardar Nivel # - Ambrуsio - 18.04.2010

Quote:
Originally Posted by selular
esse erro e por que nao tenho o include "foreach"?
Exatamente

Tб ai o download:



Re: # Guardar Nivel # - selular - 18.04.2010

Ambrуsio Obrigado mas apareceu otro erro
C:\Documents and Settings\Fabinho\Meus documentos\Downloads\Compressed\samp03asvr_R7_win3 2\gamemodes\ice.pwn(129) : error 025: function heading differs from prototype



Re: # Guardar Nivel # - russo666 - 18.04.2010

Tens aн alguma coisa diferente do que estб definido, acho eu.

Posta o cуdigo.


Re: # Guardar Nivel # - selular - 18.04.2010

Quote:
Originally Posted by russooooo
Tens aн alguma coisa diferente do que estб definido, acho eu.

Posta o cуdigo.
sim tinha uma coisa errado mesmo mas ja arumei
otra coisa quando eu desligo o server e ligo os leveis somi tem auguma manera de salvar os leveis?



Re: # Guardar Nivel # - russo666 - 18.04.2010

Quote:
Originally Posted by selular
Quote:
Originally Posted by russooooo
Tens aн alguma coisa diferente do que estб definido, acho eu.

Posta o cуdigo.
sim tinha uma coisa errado mesmo mas ja arumei
otra coisa quando eu desligo o server e ligo os leveis somi tem auguma manera de salvar os leveis?
Usa o Dini/Dudb.


Re: # Guardar Nivel # - selular - 18.04.2010

Quote:

Usa o Dini/Dudb.

voce tem augum tutorial do Dini/Dudb?


Re: # Guardar Nivel # - SuB_ZeRo0_ - 18.04.2010

Quote:
Originally Posted by selular
Quote:

Usa o Dini/Dudb.

voce tem augum tutorial do Dini/Dudb?
O SEARCH й bom as vezes amigo. ^^


Re: # Guardar Nivel # - Link_ - 12.07.2010

Search


Re: # Guardar Nivel # - Data_Base - 12.07.2010

Quote:
Originally Posted by selular
View Post


esse erro e por que nao tenho o include "foreach"?
Sim vocк tem baixar o include colocar na pasta do pawno > includes e tentar compilar seu script.


Re: # Guardar Nivel # - [VGS]Protioso - 12.07.2010

https://sampforum.blast.hk/showthread.php?tid=112301