Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Vim trazer hoje um tutorial bem útil para quem esta aprendendo a linguagem lua.

Com a autorização do grande Jhon vou postar aqui um tópico desenvolvido por ele.

Tutorial Básico sobre CreatureScripts

CreatureScripts = São scripts que serão ativados após uma determinada ação criada pelo monstro ou personagem. Essas ações são determinadas como funções. Existem varias funções utilizadas para a criação de creaturescripts e estas são:

onDeath(cid, corpse, killer)-- que é executada ao morrer.

onPrepareDeath(cid, lastHitKiller, mostDamageKiller) -- semelhante a onDeath.

onAttack(cid, target) -- executa ao atacar.

onCombat(cid, target) -- semelhante ao onAttack.

onLogin(cid) -- executa ao logar.

onLook(cid, thing, position, lookDistance) -- executa ao dar look.

onAdvance(cid, skill, oldLevel, newLevel) -- executa ao upar skills/levels.

onStatsChange(cid, attacker, type, combat, value) -- executa ao perder ou ganhar life/mana/condições.

onLogout(cid) -- executa ao deslogar.

onKill(cid, target, lastHit) -- executa ao matar.

onThink(cid, interval) -- executa em determinado tempo.

onJoinChannel(cid, channelId, users) -- executa ao entrar em um chat.

onReceiveMail(cid, sender, item, openBox) -- executa ao receber um parcel/carta.

onReportBug(cid, comment) -- executa ao reportar bug.
Para criar esse tipo de script, primeiramente vai na pasta data/creaturescripts/scripts e duplica um arquivo e salve com "nomedesejado"; Agora você vai determinar que função você vai precisar para criação do seu script. Para exemplo vou usar a função "onAdvance"(ao upar). Neste exemplo, quando o player upar level 100 ele irá ganhar 1kk:
1 function onAdvance(cid, skill, oldLevel, newLevel)


2 if (getPlayerLevel(cid) == 100) then

3	 doPlayerAddItem(cid, 2160, 100)

4		doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Parabéns, você ganhou 1kk por atingir level 100!")

5	 doSendMagicEffect(getCreaturePosition(cid), 30)

6 end


7 return true

8 end
Numerei as linhas para melhor entendimento, nos seus scripts vocês não devem numerar.
linha 1 = Inicio da função onAdvance, essa linha recebe algumas informações do player que upou, como seu cid, seus skills o velho level e o novo level. Obs: cid = creature id, numero de identificação do player/monstro.

linha 2 = Inicia-se um if onde verifica se o level do player é igual a 100. Se for verdadeiro, o script executa as linhas 3,4 e 5, senão pula direto a linha 6.

linha 3 = Adiciona 100 itens com o id 2160 ao player.

linha 4 = Manda uma mensagem parabenizando o player.

linha 5 = Solta o efeito de numero 30, na posição em que o player esta.

linha 6 = Finaliza a verificação do if.

linha 7 = Retorna verdadeiro. Obs: sempre é necessario ela linha no final de seu código.

linha 8 = Finaliza a função onAdvance.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Por fim para funcionamento do seu script é necessario adicionar 2 tags: 1º- No "data/creaturescripts/creaturescripts.xml" 2º- No arquivo "data/creaturescripts/scripts/login.lua", Obs: se o script que você for fazer for de função onLogin, não precisa adicionar a segunda tag. 1º Tag: Vai em data/creaturescripts/creaturescripts.xml e cole a tag:
<event type="advance" name="QualquerNome" event="script" value="nomedesejado.lua"/>
O type="" , será o nome da função de seu script após a palavra "on" e sempre tudo em minusculo. O name="", use qualquer nome porem esse nome vai ser usado para registrar no script onLogin na tag2. O value="", é o nome com qual você salvou seu script. Agora em data/creaturescripts/scripts/login.lua, sempre antes do último return true:
registerCreatureEvent(cid, "QualquerNome")

QualquerNome é o name que você adicionou na tag1 do creaturescripts.xml.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Acho que é isso aew, espero ter ajudado a galera que esta iniciando.smile_positivo.gif

Dica para criação de scripts:

Para melhor edição e organização use Notepad++: http://www.baixaki.c...ad/notepad-.htm

Sempre usar uma lista de funções como apoio: http://tibiaking.com...funcoes-em-lua/

E sempre pesquise por scripts prontos e tutoriais para ter uma base.

CREDITOS:

JHON pelo tutorial completo!

Anne por trazer ao TK.

16/11/2014

23/11/2014

 

RIP AnneMotta 21/01/2012 - 15/01/2014

Liga das lendas: DIAMOND É A META

6qpqBbJ.png

  • Respostas 14
  • Visualizações 3.1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo