Vou Dividir em 2 Partes
Criar Sistema de Level
Salvar Level
Introdução:
Bom um amigo meu queria saber como faz um sistema de Sistema de Level com Respeito entãoeu como sou uma pessoa bondosa que ajuda os outro (rs) vou posta aqui um Tut rápido, se tiver erros PM-ME, neste tuto iremos usar Arrays para salvar o level nelas
Topo GM:
Code:
- Código:
new Level[MAX_PLAYERS];
new Respeito[MAX_PLAYERS];
Essa são as duas arrays,
-Explicação:
new Level/Respeito -> Array unidimensionais
MAX_PLAYERS -> Constante que indica que a array se aplica a todos players do server, muito melhor do que estar olhando o seu números de slots e colocar ali, cada vez que muda
Vamos Agora Criar um Timer em OnPlayerConnect, (ao player conectar começa contar):
Code:
SetTimerEx("Timer",1000,true,"i",playerid);
-Explicação:
SetTimerEx ->
Timer -> Nome da Public que iremos chamar
1000 -> Tempo que iremos chamar a public , aumentar Respeito
playerid -> A quem se aplica a função
true -> Timer Irá se repetir a cada numero (1000) de segundos
Então Vamos Criar a Public/CallBack Adicional:
Final GM:
Code:
- Código:
forward Timer(playerid);
public Timer(playerid)
{
Respeito[playerid]++;
SendClientMessage(playerid,COR_AQUI,"Parabens Aumentou seu Respeito Mais um Pouco Aumenta o Level");
if(Respeito[playerid] == 5)
{
Level[playerid]++;
SendClientMessage(playerid,COR_AQUI,"**** Parabens Upou Seu Level ****");
Respeito[playerid] = 0;
}
return 1;
}
-Explicação:
forward -> Define Nossa Public Adicional
Enfim,Quando Chamar a Public:
Respeito[playerid]++; -> Irá Aumentar Nosso 'Respeito' (Aplicado ao 'playerid') Usando ++ (+1)
if(Respeito[playerid] == 5) -> Irá Chegar o Respeito (aplicado ao 'playerid') usando Comparador 'IF' Caso For Igual a 5 Irá Aumenta o Level
Level[playerid]++; -> Irá Aumentar o Level (+1)
Respeito[playerid] = 0; -> Após o Respeito Chegar a 5 Irá Resetar, Assim sucessivamente chamando +1 Leve e resetando o respeito para reinicia-lo
Parte 2: Salvando Seu Level:
Bom Agora Vamos Salvar o Level,
Topo Gm:
Code:
- Código:
#include <dini>
Irá Adicionar a Include Dini (Necessita Tela na Pasta 'pawno/include')
Em OnGameModeInit:
Code:
- Código:
if(!fexist("levels.dkn")) dini_Create("levels.dkn");
Irá Criar Um Arquivo na pasta 'scriptfiles' Onde guardara os level's
Em OnPlayerDisconnect:
Code:
dini_IntSet("levels.dkn",PlayerName(playerid),Level[playerid]);
Irá Salvar Level do Player
Em OnPlayerConnect:
Code:
- Código:
if(dini_Isset("levels.dkn",PlayerName(playerid))) Level[playerid] = (playerid,dini_Int("levels.dkn",PlayerName(playerid)));
Irá Setar O Level do Player para Numero do Arquivo
Final GM:
Code:
- Código:
stock PlayerName(playerid)
{
new PlayerNameLevel[MAX_PLAYERS];
GetPlayerName(playerid, PlayerNameLevel, MAX_PLAYERS);
return PlayerNameLevel;
}
Estou Aqui Criando um Filterscript aqui mais tarde posto (com text draw's indicativas)
Espero ter Esclarecido Alguma Dúvida
Criado por DraKoN não permitido em outros veículos de comunicações da internet sem autorização do autor