Jump to content
Close

Lyu

Suporter
  • Content Count

    437
  • Joined

  • Last visited

  • Days Won

    13

Lyu last won the day on April 21

Lyu had the most liked content!

About Lyu

  • Rank
    "Você não é louco; Você tem super poderes."
  • Birthday 10/17/1995

Profile Information

  • Gender
    Masculino
  • Localization
    Boqueirão-pb
  • I am
    Programmer
  • My character
    Lyu

Recent Profile Visitors

3866 profile views
  1. fala cmg no discord nub :'(

  2. Material incrível @Natanael Beckman,obrigado por compartilhar conosco!
  3. Sua distro não conseguiu deserializar alguns tiles. Você simplesmente deve ir nas posições que estão no console e verificar quais itens estão lá, considere a remoção dos mesmos.
  4. Está certo sim, você só esqueceu de fechar o escopo com um end. Sempre que você declarar um if, terá que fechá-lo em algum momento, escopo é o espaço que fica entre o if e o end. o ponto foi necessário para acessar a variável itemid que fica dentro de item, no caso, o argumento item não é um inteiro(número), é tipo uma tabela. Neste caso, não é necessário utilizar elseif a ponto de manter as 3 verificações independentes, digamos que, separadinhas facilitando a leitura. Mas dependendo, dar pra utilizar elseif sim. o ponto é para você acessar variáveis dentro de uma tabela, porque se usar somente variavel = 5, estará declarando uma variável global e não terá relação alguma com a variável que está dentro da tabela.
  5. Muito bem amigo, continue assim, se esforce e pratique bastante que isso é o que dar resultado no aprendizado. O seu script está ficando interessante, porém possui alguns probleminhas, mas é NORMAL, não se assuste. O refiz para você estudá-lo e entender algumas coisas, enchi de descrições rsrs -- variáveis locais (só são acessíveis dentro de escopos ou arquivos caso estejam soltas) local needStorage = 211100 local needLevel = 100 local needItemId = 2545 function onUse(cid, item) -- função/evento com dois argumentos: cid = ID do jogador, item = userdata do Item -- esta verificação abaixo, seria útil para funcionar somente com o itemID informado na variável local ali em cima. if item.itemid == needItemId then -- verifica se o ID do item que está dando USE é igual ao itemId que está na variável local lá em cima. return false -- o script retorna falso e interrompe a execução do restante abaixo, ou seja, para por aqui mesmo. Lembre-se disso. end if getPlayerLevel(cid) < needLevel then -- se o level for menor que o necessário doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você não possui level suficiente.') return false end if getPlayerStorageValue(cid, needStorage) == -1 then -- VERIFICA se o jogador possui a storage informada lá em cima na variável local, no caso, -1 é o valor padrão para storages e significa que não tem caso realmente seja igual a -1. doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você não possui a storage necessária.') return false end -- ACIMA, você ver que há 3 condições, verifica o item se é o correto, o level e a storage. -- Se passar dessas 3 condições, o código abaixo será executado e validado, neste caso, executando abaixo, significa que o jogador possui todos os requisitos acima. doCreatureAddHealth(cid, 1000 * 1000) -- vida adicionda doCreatureAddMana(cid, 1000 * 1000) -- mana adicionada doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Parabéns, você recebeu uma porrada de HP e MANA.') return true end Irei lhe indicar alguns editores de textos legais para lhe ajudar a organizar e entender melhor os seus códigos Notepad++ Sublime Text 3 Atom Utilizo os 3 e são ótimos, não é bom utilizar notepad normal porque ele não é apropriado para programação, somente texto SHAHUSAHUAS
  6. Opa meu querido, que bom que se interessou pela linguagem LUA, tenho certeza que irá gostar bastante daqui pra frente ao decorrer de seu aprendizado. Então, vamos lá! Irei tentar resumir algumas coisas para você.. Bom, tabelas são meio que containers, dentro, você pode agrupar tanto variáveis, funções/métodos, valores e até mesmo outras tabelas, veja bem: local tabela = { aqui é o interior da tabela, que fica entre as chaves } aqui está um script de exemplo: local tabela = { variavel = 0 } tabela.variavel = 5 print(tabela.variavel) como você pode ver, eu declarei uma tabela com uma variável dentro, inicializando com o valor 0. Após a declaração, alterei o valor dessa variável para 5 e depois imprimi este valor no console. Este é o básico de tabelas, você pode fazer um monte de coisa, também pode acessar valores soltos baseado nos índices, por exemplo : local tabela = {5, 3, 10} print(tabela[2]) Neste caso, imprimi o segundo índice da tabela, que é o valor 3, em lua, índices começam por 1 diferente de C++ por exemplo que começa com 0. Como você já sabe, true e false são boleanos que se auto-explica; verdadeiro ou falso. Um exemplo que irá lhe esclarecer com facilidade é uma função de validação, veja só: function isPremium(player) if player:getPremiumDays() > 0 then return true end return false end Simplesmente se a quantidade de dias premium do jogador for maior que zero, retorna verdadeiro, senão retorna falso, assim, você pode pôr verificações em partes de seu código, dando acesso ao conteúdo após o if somente se o jogador for premium, veja: if isPremium(player) then print('você é premium.') else print('você não é premium, sinto muito.') end E return com boleanos se resume a isso. Ah, funções podem retornar outras estruturas também, como valores, strings, tabelas, outras funções, etc.. isso você vai entender mais pra frente. or e and você pode os chamar de operadores lógicos, são eles que lhe darão controle da situação durante a execução de seu código. Além deles, também existe o not, veja um exemplo, não é complicado: if isPremium(player) and getName(player) == "Jorge" then print('você é premium.') else print('você não é premium, sinto muito.') end Neste exemplo, utilizei o operador and. Agora só irá printar "você é premium" se o jogador for premium e se ele se chamar Jorge. Olha que legal, eu praticamente traduzi a condição para português hahah. E se eu utilizar o operador or no lugar do and nessa condição? Neste caso, ele irá printar "você é premium" caso o jogador seja premium ou possua o nome Jorge, ele sendo o Jorge, não é obrigatório ser premium para validar essa informação, já que utilizamos OR. Espero que tenha entendido, não deu pra explicar melhor porque já ta tarde, preciso dormir, mas se quiser ajuda com alguns conceitos, pode me chamar no Discord que eu dou uma força. Abraços amigão! Boas aulas! 😄
  7. Fala Lyu, beleza? nao conseguiu responder minha msg sobre o Emoted_Spells tfs 0.4

  8. Tente isso local storage = 34550 function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, storage) ~= -1 then return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'This is empty.') end if getPlayerVocation(cid) > 5 then return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'You is already promoted.') end setPlayerPromotionLevel(cid, 1) setPlayerStorageValue(cid, storage, 1) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_GREEN) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'Congratulations, you are promoted.') return true end
  9. Tá faltando um end para fechar um elseif no script pokemon moves.lua, poste o código para que possamos lhe ajudar.
  10. Testa aí amigo local config = { tempo = 5, --tempo em segundos mensagem = { texto = "[TOP]", --não use mais de 9 caracteres efeito = TEXTCOLOR_LIGHTBLUE --efeito para a função doSendAnimatedText }, efeito = 30, --efeito da função doSendMagicEffect globalstr = 150202 -- uma global storage qualquer q esteje vazia } function TopEffect(cid) local var = tostring(getGlobalStorageValue(config.globalstr)):gsub(':', ''):explode(',') if not isCreature(cid) or getPlayerName(cid) ~= var[1] then return LUA_ERROR end doSendAnimatedText(getCreaturePosition(cid), config.mensagem.texto, config.mensagem.efeito) doSendMagicEffect(getCreaturePosition(cid), config.efeito) addEvent(TopEffect, config.tempo*1000, cid) end function onLogin(cid) if tonumber(getGlobalStorageValue(config.globalstr)) then -- virgin local query = db.getResult("SELECT `name`, `level` FROM `players` WHERE `group_id` < 2 ORDER BY `level` DESC LIMIT 1") if (query:getID() ~= -1) then local name = query:getDataString("name") setGlobalStorageValue(config.globalstr, ":"..name..",:"..query:getDataInt("level")) if getPlayerName(cid) == name then doCreatureSetGuildEmblem(cid, 1) end TopEffect(cid) end else TopEffect(cid) end registerCreatureEvent(cid, "CheckTop") return true end function onAdvance(cid, skill, oldLevel, newLevel) if skill ~= SKILL__LEVEL then return true end local var = tostring(getGlobalStorageValue(config.globalstr)):gsub(':', ''):explode(',') if newLevel > tonumber(var[2]) then doBroadcastMessage("O jogador " .. getPlayerName(cid) .. " tornou-se o novo Top Level. Parabens!", 22) setGlobalStorageValue(config.globalstr, ":"..getPlayerName(cid)..",:"..newLevel) doCreatureSetGuildEmblem(cid, 1) TopEffect(cid) end return true end
  11. Não encontrou as bibliotecas. Possa ser que as mesmas não estejam instaladas, ou então, o path informado no projeto está errado.
  12. Daora @Nolis, parabéns e obrigado pelo conteúdo!
  13. Boa tarde lyu beleza? vi seu do emotespells,  to precisando muito pro tfs 0.4 voce me ajuda?

  14. Parabéns, seu tópico de conteúdo foi aprovado! Muito obrigado pela sua contribuição, nós do Tibia King agradecemos. Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.
  15. Olá, não trabalho com clientes, apenas Server TFS e LUA.

Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução! A publicação do seu anuncio é instantânea!

×
×
  • Create New...