Ir para conteúdo
Banner com Efeitos

Hankro

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Hankro recebeu reputação de JcA em (Resolvido)Script multiplo teleport   
    Eu coloquei de forma alternada, se ele foi teleportado para a posição 1, próxima vez que ele entrar será teleportado para a 2, sempre alternando entre as duas.
    Espero que eu tenha entendido certo haha
     
    Na pasta movements/scripts crie uma cópia de algum arquivo.lua e renomeie para: tpmulti
    Dentro dele, apague seu conteúdo e substitua por:
     
    em movements.xml adicione a linha:


    Para adicionar este teleport, basta adicionar um magic field no seu mapa com o actionid "10088"




    EDIT: Desculpe, agora que li que você pôs aleatoriamente ali, você poderia ser mais claro?
    Você quer que cada vez que o player passe, seja selecionado aleatoriamente um local entre duas posições diferentes?
    Posições predefinidas ou aleatórias também?
  2. Gostei
    Hankro recebeu reputação de Miragem em (Resolvido)Script multiplo teleport   
    Eu coloquei de forma alternada, se ele foi teleportado para a posição 1, próxima vez que ele entrar será teleportado para a 2, sempre alternando entre as duas.
    Espero que eu tenha entendido certo haha
     
    Na pasta movements/scripts crie uma cópia de algum arquivo.lua e renomeie para: tpmulti
    Dentro dele, apague seu conteúdo e substitua por:
     
    em movements.xml adicione a linha:


    Para adicionar este teleport, basta adicionar um magic field no seu mapa com o actionid "10088"




    EDIT: Desculpe, agora que li que você pôs aleatoriamente ali, você poderia ser mais claro?
    Você quer que cada vez que o player passe, seja selecionado aleatoriamente um local entre duas posições diferentes?
    Posições predefinidas ou aleatórias também?
  3. Gostei
    Hankro recebeu reputação de Rikikajimo em [SPELL] CreateItem   
    E na spells.xml
    <instant name="teleport" words="teleport" lvl="1" mana="1" prem="0" range="1" selftarget="1" needlearn="0" blockwalls="1" event="script" value="teleport.lua"></instant>
  4. Gostei
    Hankro deu reputação a samlecter em O que são Storages?   
    Deixa eu ver se entendi, em :
    if getPlayerStorageValue(cid, 34534) == -1 then está dizendo "caso a storage 34534 do player esteja vazia, faça
    adiciona item
    envia mensagem
    adiciona storage 34534 
     dai dps de ter feito isso, a storage 34534 do player não estará mais "vazia" pois foi adicionado com o:
    doPlayerSetStorageValue(cid, 34534, 1)  caso ele tente fazer a quest denovo, a storage 34534 dele não estará vazia ( -1 ) estará em uso ( 1 ) 
    é assim?
    não sei se os termos vazia e em uso estão corretos, mas a ideia de como funciona é assim?
     
    Outra dúvida:
    Como faço para saber se uma storage já está sendo utilizada? e o numero da storage posso colocar qualquer um que não etá sendo usado? exemplo um numero de 10 digitos 9123456701 dai para a proxima q eu for criar, coloco  9123456702 
     
     
     
     
  5. Gostei
    Hankro deu reputação a MestruGusXD em Como funcionam os Scripts?   
  6. Gostei
    Hankro deu reputação a MaXwEllDeN em [Aula 8] while & repeat   
    << Aula 7 - Estruturas de Controle
    Essa aula foi escrita por um urso gordo Mock, todos os créditos pertencem à ele.
    While & repeat
    Aula 8
    Primeiramente desculpe a demora por essa aula, ficou meio aquela de; ah faz você, não faz você, anem faz você; Mais em fim estamos de volta com uma coisa indispensável em scripting que são os loops. Antes de tudo devo avisa que loops são perigosos, você pode travar seu servidor inteiro usando errado um loop.
    Os loops são usados para inicialmente quando temos varias funções juntas iguais, por exemplo, fazendo um jogador falar oi 10 vezes. Sem os loops você faria assim:
      doPlayerSay(cid,'oi',1) doPlayerSay(cid,'oi',1) doPlayerSay(cid,'oi',1) doPlayerSay(cid,'oi',1) doPlayerSay(cid,'oi',1) doPlayerSay(cid,'oi',1) doPlayerSay(cid,'oi',1) doPlayerSay(cid,'oi',1) Com loops você resume isso a 4 linhas, e ainda pode fazer milhares de coisas com eles!
     
    While
    Sintaxe:
    Traduzindo:
    Então repare, enquanto algo for verdadeiro fazer... Ele vai executar o que estiver dentro do loop infinitas vezes até que o ((sentença)) seja falso ou você mande ele parar.
    Veja um exemplo:
      while getPlayerLevel(cid) < 10 do --- Enquanto o level for menor que 10 doPlayerAddExp(cid,1000) adcionar 1k de exp por vez end Viram? enquanto o nível for menor que 10 ele vai adicionar 1k de exp. Ele ira verificar, se for false (maior que 10) ele pula tudo e vai para o que estiver depois do end, se for true (for menor que 10) ele ira adicionar 1k de exp e depois ira verificar de novo, ele vai executar até que seja 10. Nessa hora que se tem que tomar cuidado, é na verificação. Se você colocar algo como: while 1 < 2 do, ele vai executar eternamente, até que vc encerre o programa forçadamente (ctrl-alt-del) ou reinicie o pc, ou então feche o programa no X
     
    Veja mais alguns exemplos:
      pos = {x=100,y=100,z=100,stackpos=0} local stack = 0 while stack < 255 do pos.stackpos = stack local item = getThingFromPos(pos) if item.itemid ~= 0 and isCreature(item.uid) == false then doRemoveItem(item.uid,item.type) end stack = stack+1 end Nesse exemplo declaramos uma pos e um numero, no loop verifica se o numero é menor que 255, se for a stackpos vai ser igual ao numero e depois ira verificar o que tem no mapa naquela posição, se tiver um item e nao for um player ou monster ele ira remover o item e no final adcionar +1 numero a nossa variavel stack, Nisso repare, ele ira executar 255 veze e ira deletar todos os items daquela posição imagina vc escrevendo isso 255 vezes sem o loop .
     
    Repeat
    Ao contrario do while ele é tudo ao contrario, a verificação é no fim e ele só repete se for false (contrario de while que é se for true)
    Sintaxe:
    Tradução:
    Bem nao seria até seria até que nao, pois se você usar: until true ele vai parar, e se usar: until false ele vai continuar. è ao contrario especificando mais. Diferente do while, o repeat ele executa primeiro o bloco para depois verificar, a verificação é no final. Tambem perigoso pois se usado incorretamente vc vai travar seu server tambem. Mais nao ligue pra isso todos que começam a mexer com loops sempre travam seus servidores no começo é normal.
    Veja o repeat em uso:
      local n = 0 repeat n = n+1 print('ola pessoas este é o loop numero:'..n) until n == 10 Ele ira executar 10 vezes, ele ira parar quando n for 10. Agora veja o exemplo de limpar o char adaptado para o repeat e veja a diferença (repare nos sinais de > e< )
      pos = {x=100,y=100,z=100,stackpos=0} local stack = 0 repeat pos.stackpos = stack local item = getThingFromPos(pos) if item.itemid ~= 0 and isCreature(item.uid) == false then doRemoveItem(item.uid,item.type) end stack = stack+1 until stack > 255 Viram? Ao invez da verificação ser no começo do loop ela é feita no final, entao ao final do lopp antes da verificação eu adciono +1 no valor da variavel stack, e ele so ira parar o loop assim que stack for maior que 255 (ou seja 256), entao assim que o script dentro do loop temrinar com o valor 256 ele ira parar o loop e prosseguir com o resto do script. break Antes de terminarmos irei falar rapidamente sobre o break. Ele é usado APENAS em loops e serve para "quebrar" o loop, acontece quando vc quer parar o loop sem a verificação, ou parar antes de algo.
     
    Veja:
      local parar = 0 while os.date('%S') == '45' do print('Verificando se agora são 45 segundos') if parar > 25 then break end print('Nem é agora são:'..os.date('%S')..' segundos') parar = para+1 end print('oi') Nesse caso criei um script para ver se agora são X horas X minutos e 45 segundos (não importa quantas horas e minutos só os segundos), e se depois de 25 verificações não for 45 segundos ele ira usar o break. Quando usado ele ira finalizar o loop e irar continuar a executar o script depois do loop, no caso o print('oi') ai e o resto do script (caso exista) Nesse caso criei um script para ver se agora são X horas X minutos e 45 segundos (não importa quantas horas e minutos só os segundos), e se depois de 25 verificações não for 45 segundos ele ira usar o break. Quando usado ele ira finalizar o loop e irar continuar a executar o script depois do loop, no caso o print('oi') ai e o resto do script (caso exista)
     
     
    Exercícios Faça seguinte:
     
    Crie um loop que execute enquanto o player estiver online, e enquanto ele estiver online colocar para kickar ele. Use o repeat para criar um script que solte 25 magic effects diferentes. Use qualquer loop para criar um script que mova um player por 5 sqms em direções aleatórios (o script deve parar com o break!) DESAFIO Crie um script que gere um loop infinito que só pare depois de 10 segundos de execução.
     
    Essa aula foi escrita por um urso gordo Mock, todos os créditos pertencem à ele.
    Aula 9 - Tabelas >> Respostas:
     
  7. Gostei
    Hankro deu reputação a MaXwEllDeN em [Aula 7, Parte I] Estruturas de Controle   
    << Aula 6 - Escopo
    Estruturas de controle
    Aula 7
    Bem-vindos à Aula 7 (Da sorte). Hoje iremos aprender mais uma coisa importantíssima na área de scripting e programação em geral: as Estruturas de Controle. Bem, Estruturas de Controle definem o andamento do script. Para entendermos melhor, vamos ver o algoritmo de uma Estrutura de Controle simples:
    Veja, agora um em lua:
    Compare as cores do script em Lua com o escrito em português. Nossa Estrutura de Controle se chama condição, iniciada por if (se). Para entendermos basta traduzir.
    Veja como se usa o if:
    Citado acima, true seria o que vai ser verificado, exemplo:
    Antes de prosseguir, vamos ver o que são essas "coisas" em roxo.
    Essas "coisas" se chamam Operadores Relacionais, e vão verificar se a condição é verdadeira. Se for, então vai ser executado o código. Se não, então o código será pulado e o script continuará rodando a partir do fim do escopo da condição (end). Os operadores relacionais são: Igualdade (==), Diferença (~=), Superioridade Absoluta (>), Inferioridade Absoluta (<), Superioridade (>=) e Inferioridade (<=).
    Os operadores relacionais sempre retornarão um booleano, ou seja, true ou false. Se a condição for verdadeira então retornará true. Se for falsa retornará false. Você pode comprovar isto tentando:
      print(1 == 1) print(1 == 2) Veja como usar os operadores relacionais:
    Bom veja aqui alguns exemplos e em seguida a explicação de o que vai acontecer.
      local nome = 'Mock' if nome == 'Mock' then numero = 7 if numero == 8 then print('Nosssa!') end end Explicação:
      Declaramos a variável nome como = a 'Mock' Se o nome é igual a 'Mock' entao... Declaramos a variável numero igual a 7 Se numero for = a 8 entao Mostrar o texto: 'Nosssa!' Fim da verificação do numero Fim da verificação do nome. O que iria acontecer? a variável nome seria declarada, passaria pela verificação pois nome é igual a Mock o número 7 seria declarado mas não iria mostrar o texto pois numero vale 7 e não 8 Else Agora que ja sabemos abrir um if vamos ver a else (se nao.) Como vocês já sabem como abrir um if a explicação aqui não vai ser longa. Para evitarmos isso:
      if numero == 8 then print('foi') end if numero ~= 8 then print('nem foi') end Usamos a expressao else, Veja a syntax.
    Um exemplo no uso acima.
      if numero == 8 then print('foi') else print('nem foi') end No caso, caso a verificação seja falsa (quando numero não é ? ele pulará o escopo 1 mais parará no else e executara o escopo 1 de baixo. Elseif Essa é uma junção de um else com um if, muito usado em NPCs antigos, seria a mesma coisa acima acontece que quando encontra o elseif ao contrario do else ele não executa o escopo direto ele permite outra verificação. Veja a sintaxe.
    Podendo conter apenas UM else no final também. Veja o exemplo:
      if numero == 8 then print('oia meu numero e um oito!') elseif numero == 5 then print('omg meu numero é um 5') elseif numero == 3 then print('mintira é um 3') else print('affff meu numero nem é 8 5 ou 3 ') end Você pode usar quanto elseif's quiser.
     
     
    and/or
    São parte do (bloco), elas definem as palavras e, ou, veja um exemplo:
     
     
    if sex == 5 and nome == 'pedro' then print('tenso') end  
    Ele so executará o escopo 1 se sex for 5 e o nome for pedro.
      if sex == 5 or nome == 'pedro' then print('tenso') end Nesse caso ele executará o escopo 1 se sex for 5 OU o nome for pedro. Podemos unir os 2 e separar por parênteses
      if (sex == 5 and nome == 'pedro') or (animal == 'urso') then print('tenso³²²³¹³²¹³²¹') end primeiro o script vai verificar o 1º bloco. (sex == 5 and nome == 'pedro') Ele vai ver se sexo é 5 e nome for Pedro. Caso seja verdadeiro ele vai passar para o próximo, caso tenha um or ele simplesmente vai parar a verificação e ir direto para o escopo abaixo. Agora supondo que sex era 4, ele vai retornar negativo e então ao invés de parar tudo e ir para o else ou o elseif ele vai ver que tem um or e então verificar o bloco 2 (animal == 'urso') uma verificação simples, se animal for urso ele vai pro escopo, se não for ele pula o escopo.
     
    Extra!
    Um conteúdo extra dessa aula. Sabia que or não é apenas usado em if's?
     
    Vamos simular um caso de um script com 2 variáveis, nome e player, a variável nome vale um string: 'Ixe nem deu.' e a variável player não vale nada ela é nil, (pense que não existe).
     
    Agora o que aconteceria se colocássemos para mostrar a variável player com o print? Daria um erro! mais existe uma maneira rápida e fácil de se evitar isso. Assim:
      print(player or nome) OmG mock que que tu fez? Eu mandei printar a variável player, porem antes o script verifica, já que tem o or ele vê qual é o valor da variável player, se for nil ele vai printar a variável nome! Segue o code:
      nome = 'pedro' var = nil numero = 774 pk = false numero2 = 89 você tem essas variaveis. Fassa o seguinte:
    Resposta:
    Aula escrita por um urso gordo Mock, todos os créditos são dele.
    Aula 8 - Loops: while e repeat >>
  8. Gostei
    Hankro deu reputação a MaXwEllDeN em [Aula 5] Variáveis e Comentários   
    << Aula 4 - Operadores e Bibliotecas
    Variaveis
    Aula 5
    Olá, bem-vindos a nossa 5ª aula de scripting. Nesta aula iremos tratar de uma coisa indispensável em todos os scripts: Variáveis. As variáveis podem ser entendidas como uma "caixa"que armazena um valor na memória RAM, ou um substituto de um valor, uma igualdade de um valor, como se ela fosse o valor em si.
     
    Toda variável deve ter um nome definido por você, mas existem regras para definí-los: quando for escolher o nome da variável, não use números no começo e nunca use caracteres especiais, como acentos, sifrões ou asteríscos. Use apenas a-z, A-Z e pode-se usar números também, desde que não estejam no começo da variável. Existem também palavras que são reservadas e não podem ser declaradas como variáveis: (if while true nil for repeat until do break return function false in end else elseif or and). Na maioria das vezes, você deve declarar (Dar um valor) a variável, senão ela retornará nil (Vimos isto na Aula 2).
    Vamos ao um exemplo de como declarar uma variável.
      numero = 27 Repare, eu criei uma variável chamada numero, e ao mesmo tempo ela vale 27, então quando eu for usa-lá em algum lugar eu posso escrever 27 ou então escrever numero. Vamos ao um exemplo em si:
      numero = 27 print(numero) print(27) Veja, eu declarei a nossa variável como 27, em seguida a função print irá mostrar o valor dela no caso 27, e em baixo mostra a você o número 27. Ambos irão mostrar a mesma coisa, pois você declarou que numero é 27. As variáveis podem ser modificadas no decorrer do script como o exemplo:
      numero = 10 numero = numero * 3 print(numero) print(10) Nesse caso é diferente, vamos por linhas para ser mais fácil. Em sua primeira linha declaramos que a variável vale 10. Logo na segunda linha redeclaramos a variável como sendonumero igual a numero (seu valor atual) vezes 3. No caso ela vai passar a valer 30, pois 10 * 3 = 30. Na terceira linha o script ira mostrar a você o valor da variável, que nesse caso é 30. Na quarta linha ele irá mostrar 10, sim 10 não é 30, mas nós não declaramos ela como 10? Sim, mas acontece que na segunda linha modificamos seu valor. Apenas para ressaltar vamos falar mais uma vez brevemente o que vimos na aula 2. Os tipos de variáveis. Nossas variáveis podem ser de vários tipos. Como vimos acima se chama number (Número), mas temos tambem:
    (Curiosidade: Funções são armazenadas em variáveis!) Bem, em OTServ, quando se declara uma variável, como por exemplo o nome numero em um script x ela acaba sendo chamada de variável global, isso quer dizer que apos executar uma vez o script x, quando se executar o script y e chamar a variável sem ser declarada ela será usada com o valor que foi declarado no script x. Normalmente isso atrapalha muito e ainda consome memória do seu PC, pois a variável fica guardada ocupando memória a toa. Existe um modo de evitar isso, esse modo é declarar a variável como local, que no caso quando o script terminar de executar a variável, ela vai ser deletada e não ficará consumindo memória do seu PC. E isso se faz assim:
      local texto = "Ola pessoas." --- ou assim local algo Veja que quando declarada local na 3ª linha eu não coloquei = valor, isso se dá porque você declarou ela como local, mas não declarou valor. So se pode fazer isso quando ela é declarada local, depois você pode colocar o valor que quiser, ela apenas está como local mais ainda é nil. Não se preocupem ainda com variáveis locais e globais. Veremos mais afundo na próxima aula. criar um comentário basta iniciá-lo com --. A cada linha do comentário você deve adicionar mais dois - (menos) assim:
      -- Ola gente, eu estou comentando!!!!!! -- que coisa o0 -- uhahuahuahuauhauhahu -- oi? ------- eu posso fazer com mais de um porem o minimo é 2 Quando se inicia um comentário ele fica até o final da linha. Pode se fazer comentários com varias linhas sem ter que ficar adicionando -- toda hora, se faz usando [[, assim:
      --[[ ahuahuahuhua eu sei comentar em comentarios ]] --- aqui vai seu script Usa-se muito isso para inserir créditos ou explicar algo, mesmo.
     
    Exercício.
     
    Crie um pequeno script que tenha 3 variáveis, que e o valor de cada uma deve ser modificado de alguma forma e insira comentários em cada linha e no final um comentários com + de uma linha usando [[ ]].
     
    Resposta:
     
     
    Essa aula foi escrita por um urso gordo Mock, todos os créditos são dele.
    Aula 6 - Escopo >> Comentarios Essa parte é simples, ajuda quando se esta fazendo um script, ou quando quer explicar alguma coisa no script para uma pessoa que vai ver. São os comentários. Eles servem apenas para você "falar" ou comentar alguma coisa no script. Elas não influenciam em nada do script (Em sua execução). Para
  9. Gostei
    Hankro deu reputação a MaXwEllDeN em [Aula 3] Primeiros Passos   
    << Aula 2 - Lógica da programação
     
     
     
     
    Primeiros Passos
     
     
     
     
    Aula 3
     
     
     
    Relembrando o que eu disse na primeira aula, você precisará de um interpretador Lua e é muito recomendado que possua também um bom editor com suporte à sintaxe Lua, então nosso primeiro passo será obter o editor e o interpretador.
     
    As aulas serão voltadas ao scripting para Open Tibia Servers, então nada melhor do que um bom OTServer para testar seus scripts, mas ficar testando os scripts em um OTServer pode ser uma tarefa cansativa e demorada, então vamos usar também scripts fora de OTServers para praticar. Para isso, você pode fazer o download de qualquer um dos seguintes programas:
     
     
    Editores + Interpretadores:
    SciTE Scintilla [Avançado] OTScript Live! [Recomendado]  
    Editores:
     
    Notepad++  
    Interpretadores:
     
    Lua [Oficial]  
    Depois que você tiver seu editor e interpretador Lua (Recomendo o OTScript Live!), instale ele. No caso do OTScript Live!, depois de descompactar, vá em "Help", no menu, e clique em "Register To Lua". Abrirá uma caixa confirmando a alteração, basta apertar "OK" e todos os seus scripts irão abrir com o OTScript Live!.
     
    Testando seus scripts!
    No caso do SciTE, para testar o seu script você deve primeiro salvá-lo com a extensão Lua (*.lua). No caso do SciTE e do OTScript Live! você pode testar seu script apenas apertando F5, sendo que no OTScript Live! não é necessário salvar o script antes de testar.
     
    Após pressionar F5, o SciTE irá abrir uma área de textos abaixo da área de edição com as informações do teste, e o OTScript Live! vai abrir uma janela.
     
    Para testar se o seu SciTE ou OTScript Live! está funcionando, use o seguinte script:
     
     
      print("Hello world!") Nas informações mostradas pelo interpretador deve estar escrito "Hello world!". Se aparecer, parabéns, você testou o seu primeiro script Lua...  (ou não )
     
     
    O que o script fez? o0
     
    Uma das coisas mais importantes nos scripts são as funções. Uma função é "um bloco de código previamente pronto", uma subrotina, que quando chamada executa esse bloco. Imagine as funções como um atalho para executar alguma coisa. Pode ser usada, por exemplo, para encurtar scripts que tenham alguma parte do codigo que se repita muitas vezes. Criando uma função você pode usar esse código que se repete muitas vezes somente uma vez (Dentro da função), então em vez de usar esse bloco várias vezes, você só precisaria chamar a função várias vezes.
     
    Você pode criar suas próprias funções, mas isso veremos mais para frente. Tudo o que importa agora é aprender a chamar funções.
     
      O "Nome da Função", na verdade, é o nome da variável em que está armazenada a função, mas não se preocupem com isto ainda... O "Nome da Função" é o nome que você deve chamar para que a função ocorra, pois há vária funções (Obviamente), então você deve especificar qual função quer chamar. É a mesma coisa do que ter 3 pessoas. Quando quiser chamar uma das pessoas, deve dizer o nome dela.   Os argumentos são as "Respostas" para as "Perguntas" da função chamada. A maioria das funções faz "perguntas". No caso da função "print", ela nos "perguntou" o que queriamos escrever na tela, e "respondemos": "Hello world!".   É importante lembrar que cada pergunta deve ser respondida adequadamente, por exemplo, se alguém te pergunta: "Que horas são?" você não pode responder: "Sim.". A mesma coisa acontece com as funções, você deve responder exatamente o que ela está perguntando. Outra observação importante é que você deve responder as perguntas da função na ordem em que foram perguntadas. Se a pergunta nº 1 for "Que horas são?" e a nº 2 for "Quer um biscoito?", você deve responder respectivamente que horas são e se você quer um biscoito.     OBS: Algumas funções fazem "perguntas" opcionais, ou seja, você pode ou não responder. Se você não "responder", a própria função atribuirá um valor padrão para a resposta.   Os parâmetros são simplesmente o conjunto de todos os argumentos.   OBS: Todos os argumentos (Respostas) do parâmetro devem estar entre parênteses e ser separados por vírgulas!     Tipos de valores!   Bem, como eu disse, cada resposta deve seguir o tipo da pergunta, então vou citar aqui os tipos destes valores.   OBS: Existe uma função para descobrir o tipo de cada valor! Esta função é a função type(valor)...       Numbers   Como o nome diz, numbers são números, não há muito o que falar sobre eles...   Exemplo: print(1) print(2) print(3) OBS: A função print aceita todos os tipos como resposta.
     
    Strings  
    As strings devem iniciar com um símbolo especial e deve terminar com o mesmo caractere que foi usado para iniciar a string. Esses símbolos são:
     
    Apóstrofo: Começa com ' e termina com '.
    Aspas: Começa com " e termina com ".
    Colchete-Colchete: Começa com [[ e termina com ]].
    Colchete-Igual-Igual-Colchete: Começa com [==[ e termina com ]==].
     
    As strings são conjuntos de caracteres, como letras, números (Não são numbers, pois se houver um número entre os símbolos especiais será tomado como string!!!), acentos, espaços, etc... Se você quiser escrever uma frase na tela, por exemplo, não pode deixá-la solta pelo script. Esta frase deve ser uma string, ou o script dará erro.
     
    Exemplo:
    print('Apóstrofos') print("Aspas") print([[Colchete-Colchete]]) print([==[Colchete-Igual-Igual-Colchete]==]) OBS: 1 << Isto é um number.
    "1" << Isto é uma string.
     
    Booleanos  
    Os booleanos podem assumir apenas dois valores: true e false.
    true: Valor verdadeiro.
    false: Valor falso.
     
    OBS: Os booleanos podem ser complicados de entender no começo, mas com o tempo você acostuma. Não se preocupe com eles agora...
     
    Exemplo:
      print(true) print(false) print(nil)  
     
    Functions  
    Exatamente o que o nome diz: é o que estamos vendo agora. Functions são nada mais nada menos do que funções.
     
     
    Exemplo:
      print(function() end) OBS: Não se preocupe com isso ainda!
     
    Tables ou Arrays  
    São tabelas, ou seja, armazenam mais do que um valor dentro de uma "caixa". Tabelas podem armazenar outras tabelas e todos os valores dentro de uma tabela possuem um identificador, chamado "index" (índice).
     
    Tabelas começam com o símbolo { (Chave) e terminam com o símbolo } (Chave).
     
    Exemplo:
    print({})  
    Userdata  
    Lua é uma linguagem de programação criada para dar extensão à linguagem de programação C e C++. Userdatas são ponteiros que indicam valores em C ou C++. Não se preocupe com eles.
     
     
    Nil  
    Nil simboliza um valor nulo. Não deixa de ser um valor, mas é um valor sem conteúdo.
     
    Exemplo:
    print(nil)  
    As funções retornam!
     
    Toda função retorna um ou mais valores, nem que sejam valores nulos (nil), portanto você pode usar uma função dentro do print para escrever os valores que a função retornar! Vamos usar como exemplo a função type(valor), que vai nos retornar uma string com o tipo do valor.
      Exemplo: print(type(1))  
     
    O exemplo acima vai escrever em sua tela a frase: "Number", pois 1 é um number!
     
     
    Exercícios:
    Usando a função print para escrever na tela e type para pegar o tipo de algum valor, obtenha as seguintes frases na tela:
     
     
    Resposta:
     
     
     
     
    Essa aula foi escrita por uma raposa levada Skyen Hasus, todos os créditos são dele.
     
     
     
     
     
     
    Aula 4 - Operadores e Bibliotecas >>
  10. Gostei
    Hankro deu reputação a MaXwEllDeN em [Aula 2] Lógica da Programaçao   
    << Aula 1 - Introdução
     
     
     
     
    Lógica da Programação
    Aula 2
     
     
     
     
    O que é a Lógica da Programação?
    Bem, tudo o que é escrito em alguma linguagem de programação deve seguir uma lógica para poder funcionar. Vamos pegar um exemplo simples e curto: Um script de SD. (Sudden Death Rune)
     
    Quando o script de SD for chamado (Alguém usou a SD), ela segue passos básicos, que é basicamente a execução dela. Primeiro o script vai verificar se quem usou a SD possui nível, magic level, etc... suficiente para poder usar a SD. Se não possuir opa! Ela vai enviar uma mensagem de erro ao jogador, um efeito de fumaça e vai encerrar a execução. Caso contrário: se for um jogador com todos os requerimentos básicos para usar uma SD, então o script vai verificar se o alvo é um Player ou Monstro. Se não for vai enviar uma mensagem de erro, efeito, e vai parar de executar. Se for um monstro ou player, então o script fará um efeito da SD atingindo o alvo, toda aquela piromancia louca, e então vai tirar o devido dano do jogador.
     
    Um pouco cansativo de ler tudo isso, mas observe o exemplo abaixo:
     
     
      Quando uma SD for usada, então faça: Verifique se o jogador que usou a SD possui nível igual ou maior que 45, e se possui nível mágico maior ou igual a 15. Se possuir, faça: Se o alvo da SD for um Monstro ou Jogador, então faça: Calcule o dano que causará ao alvo. Remova uma carga da SD. Execute o efeito de SD. Calcule o dano que causará ao alvo e execute-o no alvo, tirando a vida dele ou mana, no caso de o alvo estiver usando o Magic Shield (Utamo Vita). Mas se o alvo da SD não for um Monstro ou Jogador, então faça: Envie uma mensagem de erro ao jogador. Envie um efeito de fumaça na posição do jogador. Aqui termina a verificação se o alvo da SD é um Monstro ou Jogador, ou nenhum dos dois. Mas se o jogador não possuir estes requerimentos, então faça: Envie uma mensagem de erro ao jogador. Envie um efeito de fumaça na posição do jogador. Aqui termina a verificação se o jogador possui ou não os requerimentos. Aqui termina a execução da SD. Agora, depois deste algoritmo, talvez tenha ficado mais claro como os programas de computador funcionam. Tudo não passa de um processo lógico, onde a linguagem de programação só serve como uma "máscara" para que o programador escreva o código seguindo esta lógica, por isso é ultra importante saber a lógica da programação antes de começar a programar. O que é um Algoritmo? O "código" que eu escrevi acima (Dentro da caixa de texto) representando o uso da SD foi um algoritmo. Os algoritmos são formas de representar a lógica seguida pelo programa. São passos que o programa segue para atingir determinado objetivo ou em outras palavras, completar uma tarefa (No caso da SD, matar ou não o alvo, ou enviar uma mensagem de erro). Um exemplo de algoritmo são as operações matemáticas, como somar, dividir, multiplicar, subtrair... Quando você soma 2 mais 2, você está executando um algoritmo para ele atingir o objetivo (O resultado!!), que é 4. Um programa ou script é basicamente a escrita dos algoritmos em uma linguagem de programação que é executada pelo computador de forma lógica.
     
    Esta aula foi curta pois eu prefiro lhes ensinar as estruturas lógicas conforme ensino as mesmas em Lua, assim trabalhando a lógica e Lua ao mesmo tempo. Primeiro ensino como funciona a estrutura na Lógica e depois ensino como aplicar em Lua.
     
    Exercícios-Tarefa:
     
    1. Monte o algoritmo de um script de "Shovel (Pá)".
    2. Monte o algoritmo de um script de "Pedra que troca sexo".
    3. Monte o algoritmo de "Ir ao cinema".
    4. Monte o algoritmo de "Fazer bolo".
     
     
     
    Respostas: Só abra depois de ter tentado resolver os exercícios!
     
    Exercício 1:
     
     
     
    Exercício 2:
     
     
    Exercício 3:
     
     
    Exercício 4:
     
     
     
    OBS: Nota-se que já fiquei cansado nas respostas do exercício 3 e 4... 
     
    Aqui só serão aceitas dúvidas ou reporte de erros. Qualquer coisa que não se encaixe nesta descrição será apagado sem aviso.
     
    Essa aula foi escrita por uma raposa levada Skyen Hasus, todos os créditos são dele.
     
     
    Aula 3 - Primeiros Passos >>
  11. Gostei
    Hankro deu reputação a leonunesbs em Problema De Conexão OT [RESOLVIDO]   
    Apenas siga os passos que falei, o IP do config.lua deve se o mesmo desse campo, por isso caso tenha o mesmo erro, compare no Config.lua se o IP está igual a esse

     
     
  12. Gostei
    Hankro deu reputação a leonunesbs em Problema De Conexão OT [RESOLVIDO]   
    Acesse 
    http://www.meuip.com.br/
     
    Altere
     ip = "alternatetibia.servegame.com"
     
    Para
    ip ="ip do www.meuip.com.br"
     
    Delete as linhas:
    adminPort
    statusPort

Informação Importante

Confirmação de Termo