Nossa, eu achei que a outra aula estava boa, mas essa superou com certeza.
Pelo visto você irá criar uma série destes tutoriais, certo?
No aguardo, parabéns. Até.
Por Oneshot, 30 de out. de 2011 em Tutoriais de Programação
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

Nossa, eu achei que a outra aula estava boa, mas essa superou com certeza.
Pelo visto você irá criar uma série destes tutoriais, certo?
No aguardo, parabéns. Até.
info
Grupo: Lorde
Registrado: 17/01/09
Posts: 2.1k
Reputação: +395
Char no Tibia: Adra Sata

Aee.
Já estou lendo e treinando ![]()
Vlw ![]()
Você vai salvar vidas :>
Sim, irei criar uma série de tutoriais.
info
Grupo: Conde
Registrado: 16/06/08
Posts: 998
Reputação: +185
Gênero: Masculino

bacana o tutorial
function onUse(cid)
return doPlayerSetSex(cid, {[0]=1, [1]=0}[getPlayerSex(cid)])
end
n sei se isso funciona kk
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

Cara, você poderia fazer um tópico linkando todos os tutoriais já prontos, ai fixam ele e fica mais fácil.
Espero que continue com os tutoriais ![]()
info
Grupo: Herói
Registrado: 22/04/11
Posts: 2.5k
Reputação: +293
Gênero: Masculino
Char no Tibia: Thyn Zare

Aprovado, Parabéns, Continue Assim!
Movido para a Seção Correta!
info
Grupo: Barão
Registrado: 05/08/10
Posts: 218
Reputação: +86
Gênero: Masculino

que legal veii!
aki o meu!
function onUse(cid,item,position,itemEx,fromPosition) local remove = true if getPlayerSex(cid) == 0 then doPlayerSetSex(cid,1) else doPlayerSetSex(cid,0) return TRUE end if remove == true then doPlayerRemoveItem(cid.item.uid,1) end end
Editado Abril 10 por mulizeu
info
Grupo: Visconde
Registrado: 11/08/10
Posts: 477
Reputação: +175
Gênero: Masculino

que legal veii!
aki o meu!
function onUse(cid, item, position, ItemEx, toposition) if getPlayerSex(cid) == 0 then doPlayerSetSex(cid,1) doRemoveItem(item.uid) else doPlayerSetSex(cid,0) doRemoveItem(item.uid) end end
o seu está certo, vai funcionar, mas só uma dica, como todos os casos vai remover o item entao fica melhor se vc colocar p remover depois do end do if, ai vai precisar colocar uma vez só
Muito boa a sua observação, Eskylo. ![]()
info
Grupo: Barão
Registrado: 05/08/10
Posts: 218
Reputação: +86
Gênero: Masculino

Eu sempre fasso alguns equivocos em meus scripts...oakasao
mais e bom sempre ter alguem para observar e nos ajudar a concertar nossas falhas, obg pela DICA..na proxima vou prestar mais atenção!
Editado Novembro 5 por mulizeu
info
Grupo: Conde
Registrado: 10/12/11
Posts: 962
Reputação: +99
Gênero: Masculino

Eu n consigui fazer.
info
Grupo: Herói
Registrado: 08/12/11
Posts: 809
Reputação: +253
Gênero: Masculino

tbm naum consegui fazer =(!
info
Grupo: Conde
Registrado: 12/11/08
Posts: 520
Reputação: +73
Gênero: Masculino

Poww eu continuo aprendendo algumas coisas na aula do Oneshot..
parabens pelo trabalho
eu Consegui fazer xD
Vlw por compartilhar a sabedoriiaa ..
levando Rep + meu
info
Grupo: Marquês
Registrado: 05/07/09
Posts: 1.3k
Reputação: +732
AULA II
LÓGICA, ALGORITMO E OPERADORES.
Na aula passada, você aprendeu qual a linguagem usada nos servidores, onde surgiu a programação Lua, o que é scripting e como se tornar um scripter.
Nessa segunda aula, você irá aprenderá a pensar como um programador, irá aprender a transformar seu raciocínio lógico em uma sequência de instruções e finalmente, com a apresentação do que são operadores, você irá montar um script básico, mas eficaz.
Lógica e Algoritmo
Toda linguagem de programação, inclusive a Lua, segue uma certa lógica para funcionar corretamente. A isso, damos o nome de lógica de programação.
Para fazer um script em Open Tibia não é diferente, você precisa criar uma lógica que relacione sua ideia e o script, uma sequência de instruções que, depois, se torne o script em si. Isso é um algoritmo.
Pegaremos agora um exemplo bem simples de funcionamento em um servidor - Uma pedra mágica que usada, verifique o sexo do jogador e troque para o sexo oposto.
Um algoritmo como esse acima, também pode ser montado na forma de um gráfico, veja abaixo:
Algoritmos são uma grande ajuda para os scripters. Eu, por exemplo, sempre monto uma imagem parecida com essa quando o script que vou fazer é um tanto mais elaborado.
Agora, com a apresentação dos conceitos abaixo, você irá transformar esse algoritmo em um script funcional.
Operadores aritméticos e relacionais.
Nessa parte da aula, você irá aprender um pouco mais sobre os operadores aritméticos, aqueles bem conhecidos das suas aulas de Matemática. Os operadores relacionais que comparam coisas (hm...).
Os operadores aritméticos, como você deve bem conhecer, fazem operações de cálculo simples. Creio que você os conhece.
Você pode testar o funcionamento dos operadores com um comando print() e alguns números, veja abaixo:
Os operadores relacionais são muito usados também no âmbito da matemática. Na programação, eles comparam dois tipos de objetos e retornam apenas valores true e false. Os operadores relacionais são listados abaixo:
== ~= > < >= <=
O operador de igualdade (==) compara o tipo dos argumentos envolvidos, caso o tipo seja diferente, será retornado false. Caso o tipo seja igual, ele compara o valor dos argumentos e novamente, se o valor é diferente, é retornado false, caso os dois valores sejam iguais, será retornado true.
O operador de diferença (~=) é simplesmente a negação do operador de igualdade (==). Ou seja, ele retornará true para tipos ou valores diferentes e false para tipos/valores iguais.
Os operadores de ordem (>, <, >=, <=) funcionam simples como na matemática. Se os dois operadores são números, então eles são comparados como tais.
Eles só irão retornar true, caso a comparação seja realmente verdadeira e false caso não seja. Veja abaixo:
Abaixo você irá aprender sobre os operadores de controle, eles criam condições e só executam algo associado a eles caso a condição seja verdadeira. Estou falando de: if, elseif e else.
Operadores de Controle
A estrutura de um operador de controle pode retornar qualquer valor. Tanto os valores false e nil são considerados como falsos e todos os outros valores diferentes são considerados como verdadeiros.
A estrutura de controle criada a partir de um operador, só executa o bloco de código associado se o valor retornado pela condição seja verdadeiro.
Existem cinco operadores de controle: if, elseif, else, repeat e until. Os dois últimos não serão explicados nessa aula.
O operador if significa 'se', remete a uma estrutura sintática e condicional, você já deve ter visto uma sintaxe do tipo:
Vou grifar em vermelho uma parte muito importante dessa frase e em azul seu bloco:
Veja que para a parte em azul ocorrer, então a condição tem que "retornar" verdadeiro, ou seja você tem que estudar muito.
Na programação Lua não é diferente, não. O bloco azul é simplesmente todo o código que será executado se a condição relacionada ao if retornar verdadeiro:
Pois é, para algo retornar verdadeiro, você deve fazer uma comparação, usando nada mais que os operadores relacionais.
Note que: O if precisa de um then, significa então. Ele fecha a estrutura sintática do if, nunca esqueça dele. E também o end que fecha a verificação do if.
Mas para toda condição, existe uma chance de ocorrer algo contrário, certo? Por exemplo, se o camarada não tivesse estudado, nada ocorreria? Na programação, nós tratamos dessa sintaxe com o else.
O else é simplesmente a negação do if, se a construção do operador if retorna falso, então o que estiver atribuído ao else será executado. Vamos completar a frase:
E no nosso código ele pode ficar assim:
Note que: O else não precisa de then. Como ele é a negação do if, ele "meio que" se aproveita do then e end do if.
E por último, temos o controlador Elseif, ele é bem simples, é usado quando você tem muitos outros blocos para outras várias condições. Mas os blocos ligados ao elseif só irão ser executados quando o bloco do if retornar falso, parecido com o funcionamento do else.
Juntando tudo em um código de simples entendimento:
Note que: O elseif precisa de then igual ao if, mesmo que seja auxiliar ao if, ele é uma condição totalmente diferente. Ele só não precisa do end.
Para finalizar a aula, quero apresentar dois operadores lógicos muito usados com operadores de controle, são eles: and e or.
Os dois são usados quando você precisa fazer múltiplas verificações em uma estrutura condicional. A diferença é básica: O operador and exige que todas essas condições retornem verdade para executar o bloco, já o operador or exige que uma apenas seja verdade.
Eu costumo usar muito o and quando vejo essa situação abaixo:
if true then if true then bloco end endE uso o operador or, quando vejo que um elseif foi empregado para executar um mesmo bloco que um if.
Finalizamos por aqui
Será que vocês conseguem fazer a "pedra do sexo" com os conhecimentos aprendidos aqui? Vou deixar algumas instruções, boa sorte!
Só clique na resposta, se você conseguiu fazer.
function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerSex(cid) == 0 then doPlayerSetSex(cid, 1) else doPlayerSetSex(cid, 0) end doRemoveItem(item.uid, 1) return true endUm abraço, até a próxima aula.
Editado Novembro 4 por Oneshot