(o tuto pode ser curto, mas garanto que é util..)
Útil é mesmo, de vez em quando eu sempre tento diminuir alguns scripts...as vezes consigo, as vezes não huahuah
info
Grupo: Visconde
Registrado: 25/05/08
Posts: 1.4k
Reputação: +26
Char no Tibia: Akhumura

(o tuto pode ser curto, mas garanto que é util..)
Útil é mesmo, de vez em quando eu sempre tento diminuir alguns scripts...as vezes consigo, as vezes não huahuah
info
Grupo: Marquês
Registrado: 01/03/06
Posts: 1k
Reputação: +38
Gênero: Masculino

Bom, só faltou um return TRUE ali depois do if item... pro script ficar melhor né =O
Iniciantes não entenderão este tutorial =o
info
Grupo: Conde
Registrado: 06/11/06
Posts: 850
Reputação: +6
Char no Tibia: Xearius Thor

Estarei colocando entre '[]' como nível mediano, certo?
Tutorial aprovado e movido para Tutoriais - OTServ > Tutoriais de Scripting.
Pena que novatos na area de script's não entedem isso ( tipo eu ) uheuheuheuh mais pelo que deu para entender ta bem dahora o tuto ;O
lembrando que esse sistema de food é apenas um exemplo, o que interessa ali é o iterator em si.. ![]()
(senão já vem nego enchendo falando que o sistema de food não funciona e etc)
@zafor
em breve vou fazer tutorial de for e de arrays.. (for já tá feito, só to aguardando avaliação..
)
info
Grupo: Conde
Registrado: 23/12/07
Posts: 566
Reputação: +5
Char no Tibia: Tprocheira soldier

Não vale a pena lembrar que isso ai não é Iterator :s
Iterator são aqueles que você usa com 2 valores.
for key, value in iterator do
Exemplos bons são ipairs() ou pairs()...
\\
info
Grupo: Artesão
Registrado: 15/08/06
Posts: 110
Reputação: +2
Char no Tibia: Alca Morth

Muito bom! Parábens!
Não vale a pena lembrar que isso ai não é Iterator :sIterator são aqueles que você usa com 2 valores.
Exemplos bons são ipairs() ou pairs()...
\\
a base é a mesma.. u.u
info
Grupo: Conde
Registrado: 23/12/07
Posts: 566
Reputação: +5
Char no Tibia: Tprocheira soldier

Na verdade não.
O comando #table é para você 'loopar' uma tabela, e os iterators são para você retornar valores (na maioria dos casos de uma tabela).
Não é a mesma base pois todos os iterators usam a palavra in na sua sintaxe ![]()
\\
info
Grupo: Cavaleiro
Registrado: 07/10/08
Posts: 189
Reputação: +23
aviso: para entender esse tutorial é preciso um conhecimento de for e de arrays.
Iterator é uma forma de percorrer uma array, elemento por elemento.
Exemplo de sistema de food reduzido :
-- Exemplo de iterator -- food system simplificado por eventide :D -- function onUse(cid, item, fromPosition, itemEx, toPosition) local foodId = {100, 200, 300, 500} -- IDs local foodHun = {1020, 2000, 1348, 3450} -- essas hungrys não são verdadeiras local som = {"hmmm", "chomp", "nhac", "chomp"} -- nem o som..;p for I = 1,#foodId do food = {foodHun[I], som[I]} if food[1] == item.itemid then doPlayerFeed(cid, food[1]) doRemoveItem(item.uid, 1) doCreatureSay(cid, food[2], TALKTYPE_ORANGE_1) end end endNesse exemplo, eu percorro a array foodId que deve ter o mesmo tamanho de som, do seu elemento 1 até o ultimo elemento, tendo sempre I como referencia do elemento. (para quem não sabe, #array pega o numero de elementos da array)
E com isso, eu verifico todos os tipos de comidas, de uma só vez, reduzindo o numero de linhas e tornando o script "melhor" e até mais fácil de se fazer futuras edições.
isso pode se aplicar a muitas³ coisas, principalmente quando se quer reduzir linhas, e se tem tudo feito por tabelas..
(o tuto pode ser curto, mas garanto que é util..)
edit: bugs fixed.. ;p
Editado Abril 2 por VaL
Arrumar um problema mínimo de identação