Ir para conteúdo

Martim Tiburcio

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Martim Tiburcio recebeu reputação de Sexyboyy em [Pedido] Sprite de wolf   
  2. Gostei
    Martim Tiburcio deu reputação a 3visan em [Aula 10] O Comando for   
    O Comando for
    Aula 10

    Você nunca viu o comando for? Ou já abriu um Script e não entendeu nada por causa dele? Eis aqui uma explicação de como funciona o comando e alguns exemplos de utilização, assim como alguns exercícios.

    Antes de mais nada, o que faz o for?
    R: O for causa um "loop", mas não é como o while e o repeat. Por que? Porque ele atribui à uma variavel todos os valores entre o valor inicial e o valor final.
    Editado: O For não é um comando Condicional!


    Estrutura do For:



    for variavel = valor inicial, valor final[, incremento] do bloco end não entendeu? Então vamos à breves explicações, começando com um exemplo abstrato: local i = 1 local j = 10 local inc = 1 for var = i, j, inc do print(var) end "Oh! Que bicho é este?" R: Isto é um exemplo ridículo do uso do for. Se você nunca viu isso antes, obviamente não entendeu, mas não é nenhum monstro de três cabeças. Quando eu explicar o que foi feito, você vai ver que é muito simples. Nas três primeiras linhas eu defini três variaveis locais, para "limpar" o script e facilitar o entendimento de quem ainda não conhece o for: local i = 1: Aqui eu usei "i" como inicial e ela é usada na linha 5. Seu valor é 1. local j = 10: Aqui eu usei "j" como final e ela é usada na linha 5. Seu valor é 10. local inc = 1: Esté é o incremento do for e seu valor é 1. Vai ser explicada mais pra frente, então não se preocupe com ela agora. var: É a variável à qual será atribuida os valores. "Perai, agora estou com dúvida. Você não declarou a variavel var!" R: Isto é porque ela não precisa ser declarada! Ela só vai servir como variavel dentro do laço(for). Se eu tentasse usar ela em um bloco fora do for bloco do sem ter declarado ela antes, vai resultar num simples nil(Nulo)! print(): Só vai escrever no console. Explicada as variáveis, vamos entender o funcionamento do código: O for vai atribuir à var todos os valores entre o "i"(valor inicial) e o "j"(valor final), incluindo os dois! Não vamos nos preocupar com o incremento agora, pois você pode escrever o código sem ele. No caso, o valor padrão do incremento é 1. Vamos à mais um exemplo: print("-- Início --") for var = 1, 5 do print("Valor de var: "..var) end print("-- Fim --") As saídas geradas por esse Script serão: -- Início -- Valor de var: 1 Valor de var: 2 Valor de var: 3 Valor de var: 4 Valor de var: 5 -- Fim -- Entendeu agora? Na primeira vez o for atribuiu à var o valor 1, executou o bloco, depois ele fez um loop, voltando para o começo e re-atribuiu à var o valor inicial + 1 que é 2, executando o bloco de novo usando o novo valor de var. Depois valor inicial + 1 + 1 e assim vai até chegar no valor final que é 5, e é aonde ele para. "Tá, mas não vejo a utilidade do for." Então você, com todo o respeito, é cego! O que eu fiz em três linhas poderia ser feito assim: i = 1 j = 5 switch = TRUE while switch == TRUE do if i == j then print("Valor de i: "..i) switch = FALSE else print("Valor de i: "..i) i = i + 1 end end Ou, dando um desconto, para encurtar, no máximo poderia ser feito assim: i = 1 j = 5 while i <= j do print("Valor de i: "..i) i = i + 1 end Além de que você não pode usar variaveis locais dentro de whiles. Você entendeu tudo o que foi feito até aqui? R: Não! Então volte até a parte onde você "se perdeu" e não leia, estude, até entender. R: Sim! Então vamos complicar um pouco mais e aplicar o for em tabelas! (Atenção, você não precisa conhecer tabelas para continuar!) Aplicando o For em Tabelas! "Qual a utilidade de aplicar o For em tabelas?" R: Não sei se você percebeu, mas não podemos aplicar, do jeito que eu exemplifiquei acima, strings no for, mas há como fazer isso, sim! Usando tabelas(tables, arrays) "Como fazemos então?" Você precisa, antes de mais nada, declarar a tabela! Para quem não conhece, as tabelas são declaradas igual a variáveis, e podem ser locais ou globais. Você pode dar-lhes o nome que quiser, desde que não contenha caracteres especiais: !@#$%¨&*()-+=-*/,.ESPAÇO<>:;?|\"'`´[]{}°ºª¹²³£¢¬&sect;. Underlines (_) são permitidos. Você pode utilizá-los como espaços. O valor das Tabelas ficam sempre entre chaves({}) e são separados por vírgulas! As strings seguem o padrão de estarem sempre entre aspas("")! local Tabela = {} "Pronto! E agora?" R: Está esperando o que? Adicione os valores! Vou inserir na minha tabela o meu nick e o nick de mais 3 amigos: <Falta de Imaginação > local Tabela = {"Skyen Hasus", "Hwoarang", "MotoBoy", "Luketez"} Agora entra o for, mas omo fazemos para pegar os valores da tabela? Simples! Qual é a posição do primeiro valor da tabela? É 1, então como valor inicial do for nós colocamos 1! E como valor final? Este valor varia, já que uma tabela pode conter vários e vários valores. Resposta: Nós usamos o #nome_da_tabela! O # retorna o número de valores que a tabela tem! Um outro jeito de fazer isso seria usando o table.getn(tabela), mas é mais fácil e curto com o #! "Ah! Então é só construir a estrutura do for e no bloco colocar print(var)!" Errado, meu amigo, embora a culpa seja minha. O for atribui à variável somente o valor NUMÉRICO, ou seja, ele vai atribuir a posição do valor na tabela. "Então como eu tenho que fazer?" Se você já conhece tabelas, pense um pouco, não é tão difícil! Pensou? Não conseguiu? Fácil! Como eu disse, a variável vai ter o valor da posição na tabela, então só temos que "achar" este valor, seguindo sua posição! Este não conhece tabelas-> "Mas como fazemos isso?" Usando o nome_da_tabela[posição] sendo a [posição] o valor da variável, já que ela tem o valor da posição! Veja como vai ficar: local Tabela = {"Skyen Hasus", "Hwoarang", "MotoBoy", "Luketez"} for var = 1, #Tabela do print("Valor "..var..": "..Tabela[var]) end E este script vai retornar: Valor 1: Skyen Hasus Valor 2: Hwoarang Valor 3: MotoBoy Valor 4: Luketez Acho que aqui vocês já entenderam guande parte e já podem sair fazendo suas "experiências". Caso queiram continuar, tem só mais um conteúdo: incrementos, e para outros, no final tem uns exercícios. Uso de Incrementos no For! Agora que você já aprendeu a usar o for, vai ser moleza aprender os Incrementos. "Mas o que eles fazem?" Eles continuam atribuindo os valores às variáveis, mas o incremento faz eles pularem alguns valores! Exemplo: for var = 1, 16, 3 do print(var) end Saídas geradas por este Script: 1 4 7 10 13 16 Ou seja: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Os números 2, 3, 5, 6, 8, 9, 11, 12, 14 e 15 são pulados pelo for! "Mas como eu uso?" Simples! Verifique no começo do tutorial a estrutura do for. Aonde está escrito incremento você "substitói" pelo número de valores que vai pular! À pedido do Mock! - Os comandos: in pairs() e in ipairs()! Antes de mais nada, saiba que ambos funcionam somente em tabelas! A diferença entre pairs() e ipairs() é que o pairs() vai incluir os índices no for, e o ipairs() não. Mas os dois fazer quase a mesma coisa: Além de definir um valor para uma variável "x", ele vai definir para a variável "y" a posição ou, no caso do pairs(), o índice. Exemplo do ipairs: local tabela = {2, 3, 4, 5, seis=6} for i, v in ipairs(tabela) do print(i, v) end Que retornará Posição(i), Valor(v): [color=#0000ff]1[/color], 2 [color=#0000ff]2[/color], 3 [color=#0000ff]3[/color], 4 4, 5 Observe que o ipairs() não retornou o "seis=6" Exemplo do pairs: local tabela = {2, 3, 4, 5, seis=6}[/b][/size] [size="3"][b]for i, v in pairs(tabela) do print(i, v) end Que retornará Posição(i), Valor(v): 1, 2 2 , 3 3, 4 4, 5 seis, 6 E agora sim, o pairs() retornou o índice "seis=6" Acho que isso é tudo o que precisam saber sobre o ipairs() e pairs(). O resto depende da criatividade e necessidade de cada um. Exemplos de Uso do For! function onSay(cid, words, param) local Online = getPlayersOnline() -- Retorna uma Tabela for pid = 1, #Online do doPlayerSendTextMessage(Online[pid], MESSAGE_INFO_DESCR, "Server will be Restarted in "..param.." Minute(s)!") -- Arrumado por MotoBoy! end end local creatures = {"deer", "rabbit", "minotaur", "ghoul", "orc"} for crat = 1, #creatures do table.remove(creatures, crat) end function pularDois(i, j) local naoPulados = {} for index = i, j, 2 do table.insert(naoPulados, index) end return table.concat(naoPulados, ", ") end for a = 664, 668 do if a == 666 then print("O número da vez é "..a.."! O número amaldiçoado!") else print("O número da vez é "..a.."!") end end Exercícios! Atenção! Faça os exercícios com sinceridade! Não os copie no Debugger do LUA nem olhe as respostas antes de ter certeza de que sua resposta está correta, mesmo que esteja errada, pois a resposta é só para conferir. Exercício 1 - O que há de errado na seguinte função? function exemplo(i, j, inc) for valor = i, j, inc then print(valor) end end Exercício 2 - O que há de errado na seguinte função? function exemplo(i, j, inc) for a = i, j, inc do print(b) end end Exercício 3 - O Script: local tabela = {"Teste 1", "Teste 2", "Teste 3", "Teste 4", "Teste 5", "Teste 6"} for valor = 1, 3 do print(tabela[valor*2]) end

    Vai retornar?
    A) 1, 2, 3
    B) "Teste 1", "Teste 2", "Teste 3"
    C) nil, nil, nil
    D) 2, 4, 6
    E) "Teste 2", "Teste 4", "Teste 6"

    Resposta o Script abaixo, ache se puder
    "Teste 2", "Teste 4", "Teste 6"
    -----




    Creditos:



    99% Skyen Hasus



    1% Vittu


    Aula 11 Funções

  3. Gostei
    Martim Tiburcio deu reputação a azzouks em [Pedido] Potions Novas para Curar Mana   
    vc quer fazer tipo uma Health Potion ?
    se for ta ai o script:



    ta ai, essa potion heala entre 5%HP TOTAL+300 e 9%HP total+500 (voce pode configurar como quiser)
    agora em actions.xml coloque:
     
    <action itemid="11514" script="liquids/large health potion.lua"/>
     
    coloque o ID da beserk potion, mas antes procure pra ver se nao tem nenhuma tag com o id dela.. 
     
    Ajudei? REP+
  4. Gostei
    Martim Tiburcio deu reputação a Avuenja em Pronto para usar | OTC   
    Hoje vim trazer um tutorial de como remover o terminal, modules manager, e deixar o ip automático.
     
    Vamos ao tutorial :
     
    Parte Um
     
    Removendo módulos indesejados
     
    Dentro do diretório
    \otclient-master\modules\client Você irá abrir o arquivo "client.otmod"
     
    Dentro dele vai ter as seguintes linhas :
    load-later:     - client_styles     - client_locales     - client_topmenu     - client_background     - client_options     - client_entergame     - client_terminal     - client_modulemanager     - client_serverlist     //- client_stats Essas linhas são os módulos que vão carregar quando o client for aberto, então é só tirar os que você não quer que abra.
     

     
    Parte Dois
     
    Como deixar o ip automático
     
    Dentro do diretório
    \otclient-master modules\client_entergame Você irá abrir o arquivo "entergame.lua"
     
    Dentro da função "Init", você vai procurar por:
    if g_app.isRunning() and not g_game.isOnline() then     enterGame:show() end E embaixo dessa função você adiciona essa linha :
    EnterGame.setUniqueServer('127.0.0.1', 7171, 854, 270, 210) Como configurar essa função:
    EnterGame.setUniqueServer(Ip do server, Porta (7171), Versão do server, Largura da janela, Altura da Janela)
     

     
    Créditos
    BananaFight
  5. Gostei
    Martim Tiburcio deu reputação a Soleister em Removendo o Client Version do OT Client   
    Olá jovens, vi que muitos estavam se sentindo incomodados por esse pequeno detalhe do OTC, então hoje lhes trago um pequeno tutorial no qual estarei ensinado como remover aquele pequeno quadradinho que costuma ficar no canto inferior direito do OT Client, segue abaixo uma imagem mostrando de qual quadradinho estou falando.

    Para remover é até que uma coisa que considerei simples depois que descobri, sem mais enrolação vamos começar o tutorial.
     
    Vá na pasta do seu OT Client, em seguida vá em modules>client_background, e abra o background.lua
     
    e remova as seguintes linhas
     
    clientVersionLabel = background:getChildById('clientVersionLabel') clientVersionLabel:setText(g_app.getName() .. ' ' .. g_app.getVersion() .. '\n' .. 'Rev ' .. g_app.getBuildRevision() .. ' ('.. g_app.getBuildCommit() .. ')\n' .. 'Built on ' .. g_app.getBuildDate()) if not g_game.isOnline() then addEvent(function() g_effects.fadeIn(clientVersionLabel, 1500) end) end Antes
     
    Depois
     
    Espero ter ajudado   Abraços.
  6. Gostei
    Martim Tiburcio deu reputação a Cat em Nolis Show Off   
  7. Curtir
    Martim Tiburcio deu reputação a Heyron em Galeria de mapas - Heyron   
    Olá pessoal, estou retomando aos projetos de OT, e dessa vez eu apresento a vocês um mapa do Styller Yurots no qual estou reconstruindo ao meu gosto.
     
    O mapa é para o meu futuro projeto que será na versão 8.60, mas pretendo fazer o uso de sprites de versões atuais do Tibia. Haverá também sprites com modificações nas cores, para assim deixar o servidor mais diversificado na questão de opções de itens.
     
    Fiquei muito tempo sem mapear, estou voltando agora. Portando dicas, sugestões e críticas construtivas são bem vindas.
     

     

     

     

     

     

  8. Curtir
    Martim Tiburcio deu reputação a Nto Wise em Seu Último Trabalho   
    Dicas Para Melhorar?
    Sprite Megumim (KonoSuba)

    obs: ela ta com aparencia mais velha ai.
  9. Curtir
    Martim Tiburcio recebeu reputação de Ryukiimaru em Seu Último Trabalho   
    Praticando,
     

  10. Curtir
    Martim Tiburcio recebeu reputação de edumasterrrr em Iniciando na área de sprit   
    Olá, estou começando nessa área de sprits e gostaria de mostrar alguns trabalhos em que eu venho treinando, gostaria de saber a opinião de vocês em pontos que eu deva melhorar, obrigado.
     


  11. Curtir
    Martim Tiburcio recebeu reputação de gustavof em Seu Último Trabalho   
    Praticando,
     

  12. Curtir
    Martim Tiburcio recebeu reputação de Cain Jorge em Iniciando na área de sprit   
    Olá, estou começando nessa área de sprits e gostaria de mostrar alguns trabalhos em que eu venho treinando, gostaria de saber a opinião de vocês em pontos que eu deva melhorar, obrigado.
     


  13. Gostei
    Martim Tiburcio recebeu reputação de mdoera em [Pedido] Sprite de wolf   
    @mdoera, mano eu fique sem net, mas está aqui. Espero que goste.
     
    a versão do arquivo é 8.54.

    lobo-sword of art online.zip
  14. Curtir
    Martim Tiburcio recebeu reputação de martimtiburcio em [Pedido] Sprite de wolf   
    @mdoera, mano eu fique sem net, mas está aqui. Espero que goste.
     
    a versão do arquivo é 8.54.

    lobo-sword of art online.zip
  15. Curtir
    Martim Tiburcio recebeu reputação de Mateus Santosss em [Pedido] Sprite de wolf   
    @mdoera, mano eu fique sem net, mas está aqui. Espero que goste.
     
    a versão do arquivo é 8.54.

    lobo-sword of art online.zip
  16. Gostei
    Martim Tiburcio recebeu reputação de mdoera em [Pedido] Sprite de wolf   
  17. Gostei
    Martim Tiburcio recebeu reputação de KotZletY em Iniciando na área de sprit   
    Animação

  18. Curtir
    Martim Tiburcio deu reputação a KotZletY em Iniciando na área de sprit   
    @Martim Tiburcio foda botando pra fuder. Tóp cara, bom, desenhar você já sabia, colocar em prática em uma sprite era só questão de tempo. kkkkkkkkkkkkkk
     
    Parabéns cara, e me desculpe o termo. 
    Segura meu like ae!! xD
  19. Curtir
    Martim Tiburcio recebeu reputação de KotZletY em Iniciando na área de sprit   
    Olá, estou começando nessa área de sprits e gostaria de mostrar alguns trabalhos em que eu venho treinando, gostaria de saber a opinião de vocês em pontos que eu deva melhorar, obrigado.
     


Informação Importante

Confirmação de Termo