[Tutorial] [TUT] Sistema de Level com Respeito
#1

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:
pawn Код:
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):
pawn Код:
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:
pawn Код:
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:
pawn Код:
#include <dini>
Irб Adicionar a Include Dini (Necessita Tela na Pasta 'pawno/include')

Em OnGameModeInit:
pawn Код:
if(!fexist("levels.dkn")) dini_Create("levels.dkn");
Irб Criar Um Arquivo na pasta 'scriptfiles' Onde guardara os level's

Em OnPlayerDisconnect:
pawn Код:
dini_IntSet("levels.dkn",PlayerName(playerid),Level[playerid]);
Irб Salvar Level do Player

Em OnPlayerConnect:
pawn Код:
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:
pawn Код:
stock PlayerName(playerid)
{
new PlayerNameLevel[MAX_PLAYERS];
GetPlayerName(playerid, PlayerNameLevel, MAX_PLAYERS);
return PlayerNameLevel;
}
Irб Definir/Criar a Funзгo PlayerName que defini o Nome do player para salvar ao arquivo


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


Aqui Fruto de Nosso trabalho
http://pastebin.com/Bs5fipaM -> Sem Text Draw's (By:Garfield)
http://forum.sa-mp.com/index.php?topic=176705.0 -> Com Text Draw's

Por Hoje й Sу de FS/TUT rs,



Reply
#2

Muito bom, irei utilizar sу a parte do respeito para melhorar um pouco o meu sistema de level.

Obrigado
Reply
#3

Estб realmente simples, porem muito bom.
Eu fiz um bem mais simples que sу apуs o player jogar Horas aumenta o nivel ^.^
Sу que assim como no meu(EU ACHO)que se o player sair no meio do timer e voltar depois o tempo volta a 0?
Por que assim dai o player seria obrigado a jogar horas seguidas
Reply
#4

muito bom o tutorial.

"PERGUNTA" Esse script funciona pra servidor de drift? em sv de drift nao tem o /rg.
Reply
#5

http://pastebin.com/Bs5fipaM

DraKoN Fiz no Pastebin

Se Puder Incorpora no seu Post
Reply
#6

Quote:
Originally Posted by Lipepva
Estб realmente simples, porem muito bom.
Eu fiz um bem mais simples que sу apуs o player jogar Horas aumenta o nivel ^.^
Sу que assim como no meu(EU ACHO)que se o player sair no meio do timer e voltar depois o tempo volta a 0?
Por que assim dai o player seria obrigado a jogar horas seguidas
Sim, Caso queres salvar o para nгo remomeзar o Respeito do Zero Faзa o Seguinte:

Bom Agora Vamos Salvar o Respeito,
Topo Gm:
pawn Код:
#include <dini>
Irб Adicionar a Include Dini (Necessita Tela na Pasta 'pawno/include')

Em OnGameModeInit:
pawn Код:
if(!fexist("Respeitos.dkn")) dini_Create("Respeitos.dkn");
Irб Criar Um Arquivo na pasta 'scriptfiles' Onde guardara os Respeito's

Em OnPlayerDisconnect:
pawn Код:
dini_IntSet("Respeitos.dkn",PlayerName(playerid),Respeito[playerid]);
Irб Salvar Respeito do Player

Em OnPlayerConnect:
pawn Код:
if(dini_Isset("Respeitos.dkn",PlayerName(playerid))) Respeito[playerid] = (playerid,dini_Int("Respeitos.dkn",PlayerName(playerid)));
@Comando_DS:

Funciona em Qualquer Servidor, sem dar conflito nem nada , desde que seguido os passos correctamente,caso de conflito procure o FS que fiz.
Reply
#7

Drakon se eu quiser que o para o level 2 seja 10 respeitos oque eu faзo?
Reply
#8

Quote:
Originally Posted by Leo Nikov
Drakon se eu quiser que o para o level 2 seja 10 respeitos oque eu faзo?
Mas nгo й ? kkkkkkk euri
Repeito = 5
entao Level = 1

Respeito = 10
entao level = 2

Sendo Assim
Level = 2 Respeito = 10

dггг euri kkkk Fugiu da Escola Rapaz?
Reply
#9

Quote:
Originally Posted by DraKoNeoN
Quote:
Originally Posted by Leo Nikov
Drakon se eu quiser que o para o level 2 seja 10 respeitos oque eu faзo?
Mas nгo й ? kkkkkkk euri
Repeito = 5
entao Level = 1

Respeito = 10
entao level = 2

Sendo Assim
Level = 2 Respeito = 10

dггг euri kkkk Fugiu da Escola Rapaz?
Rimuito
Reply
#10

Nossa meu eu acho que ele queria tipo...
5 Respeitos.
1 Nivel.

Tipo agora 10 respeitos para o nivel 2, e nгo +5.
10 Respeitos.
2 Nivel.
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)