[AJUDA] Preciso de ajuda em 2 coisas
#1

Eae galera blz?

Entгo preciso de ajuda pra salvar o sistema de luta que eu fiz tipo pra salvar a luta que o player escolheu eu criei o comando:

Em OnPlayerCommandText

Код:
if(strcmp("/luta", cmd, true) == 0)
{
        if(PlayerToPoint(1.0,playerid,760.8009,5.5351,1000.7086))
        {
            new str[255] = " 1    Boxe\n 2    KungFu\n 3    Luta de Rua\n 4    GrabKick\n 5    ElBow";
            ShowPlayerDialog(playerid, 200, DIALOG_STYLE_LIST, "Estilos de Luta", str, "Selecionar", "Sair");
        }
        return 1;
    }
E tb em OnDialogResponse

Код:
   if(dialogid == 200)
    {
        if(response)
                {
        if(listitem == 0)
        {
        SetPlayerFightingStyle(playerid, FIGHT_STYLE_BOXING);
        }
        if(listitem == 1)
        {
        SetPlayerFightingStyle(playerid, FIGHT_STYLE_KUNGFU);
        }
        if(listitem == 2)
        {
        SetPlayerFightingStyle(playerid, FIGHT_STYLE_KNEEHEAD);
        }
        if(listitem == 3)
        {
        SetPlayerFightingStyle (playerid, FIGHT_STYLE_GRABKICK);
        }
        if(listitem == 4)
        {
        SetPlayerFightingStyle(playerid, FIGHT_STYLE_ELBOW);
        }
                }
                return 1;
        }
Alguem pode me ajudar a salvar a luta que o player escolheu mesmo quando dar gmx sempre quando ele entrar continua a mesma.

E tb preciso de um sistema de ban que salve adm que baniu e motivo alguem sabe fazer?
Reply
#2

Para salvar qualquer coisa, as opзхes mais usadas sгo:

1. Salvar usando um sistema de "Register/Login" com dados como: Senha, Dinheiro, etc.
2. Salvar automaticamente usando o nome atual do jogador ou IP. Porйm, isso nгo й seguro. Outro jogador que utilizar o mesmo nome do jogador passado irб incializar o mesmo arquivo, ou seja, vai ter o mesmo "Fight Style". E tambйm existe a questгo daquelas pessoas com IP nгo fixo, toda vez que se reconectarem a internet e entrarem no servidor nгo irгo inicializar o arquivo.

Para salvar alguma coisa, primeiro vocк deve ter algum lugar para salvar. Entгo, suponhamos que vocк queria simplesmente salvar em arquivos na pasta do servidor. Como й bem simples, vou dar-lhe um exemplo BБSICO usando DINI:

Topo do GM/FS:
Код:
new nome[30];
new FightS[MAX_PLAYERS];
OnPlayerConnect
Код:
GetPlayerName(playerid,nome,30); 
if(!dini_Exists(nome)) dini_Create(nome);
else if(dini_Exists(nome)) FightS[playerid] = dini_Int(nome,"FightStyle");
Isso irб verificar se existe algum arquivo com o nome atual do jogador, caso nгo exista ele irб criar um.

OnPlayerDisconnect
Код:
GetPlayerName(playerid,nome,30);
dini_IntSet(nome,"FightStyle", FightS[playerid]);
Salva o ъltimo "FightStyle" (Estilo de Luta do jogador antes dele sair.

OnPlayerSpawn(playerid)
Код:
CarregarFightStyle(playerid);
Isso irб carregar a funзгo que vai verificar o "FightStyle" (Estilo de Luta) do jogador. Isso nгo й necessбrio, vocк poderia colocar toda a funзгo aqui mesmo, porйm, acredito que ficaria mais fбcil de vocк entender.

Код:
stock CarregarFightStyle(playerid)
{
if(FightS[playerid] == 0)
SetPlayerFightingStyle(playerid, FIGHT_STYLE_ELBOW);
if(FightS[playerid] == 1)
SetPlayerFightingStyle(playerid, FIGHT_STYLE_BOXING);
if(FightS[playerid] == 2)
SetPlayerFightingStyle(playerid, FIGHT_STYLE_GRABKICK);
if(FightS[playerid] == 3)
SetPlayerFightingStyle(playerid, FIGHT_STYLE_KNEEHEAD);
if(FightS[playerid] == 4)
SetPlayerFightingStyle(playerid, FIGHT_STYLE_KUNGFU);
if(FightS[playerid] == 5)
SetPlayerFightingStyle(playerid, FIGHT_STYLE_NORMAL);
return 1;
}
Coloque isso em qualquer parte (Fora de alguma funзгo) do seu script.


E apenas acrescentei algumas linhas no seu "Dialog":
Код:
if(dialogid == 200)
    {
        if(response)
            {
        		if(listitem == 0)
        		{
        			SetPlayerFightingStyle(playerid, FIGHT_STYLE_BOXING);
        			FightS[playerid] = 0;
        		}
        		if(listitem == 1)
        		{
        			SetPlayerFightingStyle(playerid, FIGHT_STYLE_KUNGFU);
        			FightS[playerid] = 1;
        		}
        			if(listitem == 2)
        		{
        			SetPlayerFightingStyle(playerid, FIGHT_STYLE_KNEEHEAD);
        			FightStyle[playerid] = 2;
        		}
        		if(listitem == 3)
        		{
        			SetPlayerFightingStyle (playerid, FIGHT_STYLE_GRABKICK);
        			FightS[playerid] = 3;
        		}
        		if(listitem == 4)
        		{
        			SetPlayerFightingStyle(playerid, FIGHT_STYLE_ELBOW);
        			FightS[playerid] = 4;
        		}
        	}
        	return 1;
        }
Bom, como eu disse, este й um sistema realmente simples. Existem diversas outras maneiras (algumas mais fбceis e atй mais eficientes) para fazer isso, porйm, acredito que este й o modo mais fбcil de se entender. Tenha isso como base. Caso seu servidor tenha muitos jogadores, recomendo que use um sistema mais avanзado para salvar juntamente com o IP do jogador e usando algum sistema mais novo como Y_Includes para aprimorar a performance.

Obs: Nгo testei o script.
Reply
#3

._.

Qual inc de salvamento vocк usa ?
Reply
#4

Quote:
Originally Posted by Lucas Nicolas
Посмотреть сообщение
LOL!
Luxurion й BR/PT?
Australiano. Mais vivo no Brasil a aproximadamente 5 anos.
Reply
#5

LOL '-'
Reply
#6

Aconselho voce criar 3 publics. Uma que salva, uma que reseta e uma que carrega todas as informaзoes do seu servidor, salva elas usando Dini
Se nao sabe usar dini veja aqui:
https://sampforum.blast.hk/showthread.php?tid=180237

voce poderб salvar outras coisas nessa public como tunagem dos carros entre outras coisas.
Reply
#7

@off
por isso tem otimos scripts
Seu velocimetr e mara Luxurion =]
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)