IZ

[Arquivado]Funções Dos Scripts De Lua #5

Por Izaiasousa, 22 de jun. de 2010 em Noticias - Arquivo

otserv
tibia
script
10
2.6k
IzaiasousaI
22 de junho de 2010 às 20:53

Lista de Funções de Lua #5

 

Olá pessoal!



Hoje eu irei entrar em um assunto novo.

Vamos fazer um resuminho do que a gente já viu até aqui?

 

Vimos os tipos de function, vimos as "constantes" (prefiro chamar elas assim) que são do..get..is (ainda existem outras, mas não quis me aprofundar muito no assunto. Ate aqui da pra fazer scripts legais com elas.) Vimos a function onUse e tals.

 

Hoje iremos usar uma nova function:

 

onSay

 

Ela é usada na talkaction.

Talkaction é o seguinte.. O script só será executado quando o jogador falar uma coisa. Se ele falar exura o script do Lighting Heal irá ser executado, porquê ? Por que o jogador cid fez uma ação via sua fala, daí talkaction. Deram pra entender ?

 

:no:

 

Simplificando, o jogador fala uma coisa e o script é executado.

 

Vamos a sintaxe do onSay.

 

function onSay (cid,words,param)

 

Todo mundo conhece o cid e o function e acabaram de conhecer o onSay né ? Então vamos a essas partes: words e param.



words é uma palavra do inglês que significa palavras. Ou seja, aqui é o que o jogador irá dizer. A "variavel" que irá receber o que o jogador disse e fazer com que o script reconheça aquela palavra e execute o script.



params é tudo que vier depois das "" aspas.

 

Vamos a um exemplo pra vocês poderem compreender melhor o que significa words e param para vocês nunca esquecerem!

 

Se o jogador falar

 

utevo res " Crocodile
No caso, quem é words e quem é param?

 

Simples, a magia será words, certo ?

 

words = utevo res

 

E depois da "aspa" é o params. Entenderam o "tudo que vier depois das aspas?"

 

params = Crocodile

 

Bem, é isso ae!

Agora é só aplicar essa função em seus scripts!

 

Já tio ? :cry:

 

É ... Na verdade eu quis mostrar talkactions como introdução e tals, já que vocês viram actions e as sintaxes etc. Vou mostrar um exemplo aqui pra vocês compreenderem melhor (Y)

 

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

 

Script de Promotion

 

function onSay(cid, words, param) -- Olha aqui! Começando o script, significa que é ...... uma talkaction! :w00t:

 

if getPlayerVocation(cid) <= 4 then -- Como é de promotion, o jogador tem que ser sorcerer 1, druid 2, paladin 3, knight 4.. ou seja, PlayerVocation menor ou igual à 4.

 

if doPlayerRemoveMoney(cid,20000) == TRUE then -- O preço da promotion aqui né? Aqui tá como 20000 (20k) alterar ao seu gosto. No caso esse comando vai fazer o que aqui? Quem se lembra da aula #2 ? Isso ae quem disse Remover 20k do jogador Cid!

 

doPlayerSetVocation(cid,getPlayerVocation(cid)+4) -- De sorcerer para master sorcerer é quanto ? 1+4.. certo?! Então aqui ele vai fazer o seguinte, Set significa que ele irá colocar um novo valor, ou seja, adicionar mais "4" fazendo com que a vocação seja promovida.

 

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have been promoted!") -- Enviar a mensagem para o jogador dizendo, You hav been promoted! Se lembrem do doPlayerSenTextMessage!!

 

doSendMagicEffect(getPlayerPosition(cid), 30) -- E por último vai dar aqueles efeitinhos que você escolhe ao seu gosto. :)

 

else -- Senão, se o jogador não tiver dinheiro $$...

 

doPlayerSendCancel(cid, "Sorry, you don't have enought money") -- Irá aparecer a mensagem Sorry, you don't have enought money.

 

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) -- E efeito denovo. [Titiioooooo Lakaaa e esse getPlayerPosition?] O get como eu já falei vai ler a informações do jogador e retornar, no caso ele vai ler a POSIÇÃO do jogador cid e tacar efeito!

 

end -- End do Else.

else -- Senão for por causa de dinheiro então vai ser por causa de ...

 

doPlayerSendCancel(cid, "Sorry, you are already promoted") ... que você já está promovido. Se você já estiver promovido e fazer aquela condição if getPlayerVocation(cid) <= 4 then

 

end

end



 

E tamrám! Nosso script de promotion foi vista parte por parte e espero que você tenha entendido como é que é o racíocinio e funcionamento de um script simples. Você que viu em todas essas aulas as functions e sintaxes de cada uma não se assustou com isso aqui.

Bem.. aqui termina mais um tutorial de ..

 

Senhor Lakinha Tariel

Oferecimento: Laka Tariel Ot serv!:)

Até a próxima pessoal!

Bons estudos, hoje não vai ter Atividade pra casa :cry:

Aconselho a vocês irem na pasta do seu Ot e ir em Datas.. Talkaction .. Script e abrir eles lá e ver como é que eles são feitos e comecem a fazer alguns também! :)

 

Adíos, Comentem!

 

Qualquer erro me avisa que eu corrijo.

 

davialvesD
23 de junho de 2010 às 08:25

Uau, ótimo tutorial.. Parabéns. Vai ajudar Muita gente..

REP+

ka9K
23 de junho de 2010 às 11:02

Tutorial Show de bola, gostei :D

 

Continue assim...

1 mês depois...
satan666S
24 de julho de 2010 às 11:03

Ela é usada na talkaction.

Talkaction é o seguinte.. O script só será executado quando o jogador falar uma coisa. Se ele falar exura o script do Lighting Heal irá ser executado, porquê ? Por que o jogador cid fez uma ação via sua fala, daí talkaction. Deram pra entender ?

 

Magias utilizam a mesma função onSay e nem por isso ela está nas talkactions.

 

Vamos a sintaxe do onSay.

 

function onSay (cid,words,param)

 

você não mostrou a sintaxe da função e se quiz demonstrar os parâmetros da função adicione o parâmetro canal.

 

params é tudo que vier depois das "" aspas.

 

totalmente errado , "param" na função onSay() é uma string contendo tudo o que vier após o words.

1 mês depois...
EskyloE
11 de agosto de 2010 às 22:36

:button_ok: Como sempre muito bom!

 

___

 

Só me ficou uma dúvida:

Como eu tenho certeza do que vai retornar para o jogador? Tipo, O jogador ainda não se promoveu, mas não tem o dinheiro, como tenho certeza que o que vai acontecer vai ser isso...

else

 

doPlayerSendCancel(cid, "Sorry, you don't have enought money")

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)

?

Porque no caso, tinham 2 else.

 

Desculpa se a pergunta for meio noob.

 

Vlws!

Editado Agosto 11 por Eskylo

4 meses depois...
eduardo98E
11 de dezembro de 2010 às 11:33

ow cara desculpa fala mais, eu so iniciante, mais eu lembrei de uma coisa, no funçoes dos scripts de lua 4#

 

se falo q n pode colocar true

ta vendo ? se falo q n podia colocar true, era so then, mais ai eu lembrei, eh so no IS essa regra , ou em todas?

 

 

if doPlayerRemoveMoney(cid,20000) == TRUE then

 

 

 

 

 

 

Editado Dezembro 11 por NeverCool

2 semanas depois...
EskyloE
22 de dezembro de 2010 às 09:57

n tem necessidade do

== TRUE

pode por só

 

if doPlayerRemoveMoney(cid,20000) then

 

1 ano depois...
exorcistE
17 de julho de 2012 às 17:06

cara adorei denovo seus tutoriais sao muito bons

Titiioooooo Lakaaa

auhuhehuauhae eu ri nessa parte
1 ano depois...
snowksS
24 de julho de 2013 às 13:11

acho q vc poderia fazer um rezumão de tudo ensinando a como criar um script do zero.

4 anos depois...
StigalS
25 de abril de 2018 às 16:42
Esta noticia foi arquivada.
Este tópico está fechado e foi movido para Noticia - Arquivo.

+ Caso tenha atualizações você poderá criar outro tópico.