Postado Junho 15, 2019 6 anos 5 horas atrás, ZikaLord disse: if isPremium(player) and getName(player) == "Jorge" then -- caso player for vip e tiver o nome de "jorge" então execute abaixo print('você é premium.') -- mensagem para o CONSOLE if isPremium(player) or getName(player) == "Jorge" then -- caso player for premium ira executar abaixo; se ele não for vip e tiver o nome == jorge então vai executar print('você é premium.') -- mensagem para o CONSOLE está certo? coloquei esses "textos" para melhorar meu compreendimento. 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. 5 horas atrás, ZikaLord disse: if item.itemid == needItemId then -- porque item.itemid ? porque foi necessario esse (".") entre os items? return false 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. 5 horas atrás, ZikaLord disse: e percebi que você não últilizou elseif, porque você não ultilizou elseif? 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. 5 horas atrás, ZikaLord disse: igual as tabelas lá encima não entendi o porque do uso desse (".") entre as variaveis. 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.
Postado Junho 15, 2019 6 anos Autor sobre o if eu que não fechei mesmo,era só pra ver se estava certo,mas obrigado por lembrar. eu tentei fazer um script com tabela mas não sei se foi muito certo item = 3124 itemtable = { [1] = { -- index 1 // não mudar health = 50, stamina = 100, forca = 10, }, [2] = { -- index 2 // não mudar health = 100, -- pode ser alterado stamina = 200, -- pode ser alterado forca = 20 -- pode ser alterado } } function OnUse(cid, item) if getPlayerLevel(cid) == 100 then setCreatureMaxHealth(cid, itemtable[1].health) setCreatureMaxMana(cid, itemtable[1].stamina) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, itemtable[1].forca) -- mude SWORD para uma dessas = AXE,CLUB,DISTANCE,FIST,SHIELD else doPlayerSendMessage(cid, 21, "Você não tem level 100 para usar esse item") -- mensagem que ira retornar caso não tenha level end if getPlayerLevel(cid) == 200 then setCreatureMaxHealth(cid, itemtable[2].health) setCreatureMaxMana(cid, itemtable[2].stamina) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, itemtable[2].forca) -- não troque CONDITION_PARAM_SKILL // apenas oque foi dito a cima!!!!! else doPlayerSendMessage(cid, 21, "Você não tem level 200 para usar esse item") -- mensagem que ira retornar caso não tenha level end ---------------- mensagem carinhosa para o retardado que queira usar isso depois do level necessario ---------------------------- if getPlayerLevel(cid) == 101 then doPlayerSendMessage(cid, 21, "TROUXA NÃO VOU DEIXAR VOCÊ QUERER USAR NO LEVEL 101") elseif getPlayerLevel(cid) == 201 then doPlayerSendMessage(cid, 21, "TROUXA NÃO VOU DEIXAR VOCÊ QUERER USAR NO LEVEL 201") end -------------- apenas para checar se não foi outro item que deu essas skills em um possivel bug ---------------------------- if item ~= 3214 then print("checar item 3214") end return true end @Lyu Editado Junho 16, 2019 6 anos por ZikaLord (veja o histórico de edições) O rei de seu proprio destino é aquele que luta pela gloria do amanhã! Discord : ZoR#9373
Postado Julho 12, 2019 6 anos Alguém sabe se existe um tutorial que ensinar a usar funções do LUA do zero?? porque eu não sei muita como como cid, setConditionParam() e outras funções eu só sei que cid referece ao player/jogador mais não entendi o real sentido de usar cid
Postado Julho 12, 2019 6 anos Autor 1 hora atrás, hallanehallex disse: Alguém sabe se existe um tutorial que ensinar a usar funções do LUA do zero?? porque eu não sei muita como como cid, setConditionParam() e outras funções eu só sei que cid referece ao player/jogador mais não entendi o real sentido de usar cid Primeiro aprende a LUA mesmo, depois aplique as funçoes de tibia. O rei de seu proprio destino é aquele que luta pela gloria do amanhã! Discord : ZoR#9373
Postado Julho 13, 2019 6 anos 6 horas atrás, hallanehallex disse: Alguém sabe se existe um tutorial que ensinar a usar funções do LUA do zero?? porque eu não sei muita como como cid, setConditionParam() e outras funções eu só sei que cid referece ao player/jogador mais não entendi o real sentido de usar cid Vou tentar explicar essa parte do CID de uma forma mais prática, demonstrando diferenças entre C e C++ e você pode tirar suas conclusões. Considere o pedaço de código abaixo, escrito na linguagem C (usaremos short em vez de bool, porque é C) struct Player { int id; short isPremmium; }; Nesse caso temos um tipo de dado Player, com um id e uma flag indicando se o jogador possui premmium. Vamos agora declarar uma variável de tipo player: struct Player jogador; jogador.id = 0; jogador.isPremmium = 0; Agora, uma função que verificaria se esse jogador possui premmium ou não, ficaria mais ou menos assim: short isPremmium(struct Player jogador) { return jogador.isPremmium; } Por que o jogador foi passado como parâmetro? Oras, porque a função precisa dele para ter o acesso, variáveis globais não são uma boa prática! Agora, vamos levar para um caso que não precisaria, na linguagem C++ Considere o código abaixo, correspondente ao anterior: class Player { private: int id; bool isPremmium; public: Player(int id, bool isPremmy); bool isPremmium() { return this->isPremmium; } }; Nesse caso, para criar um jogador e verificar se ele tem premmium, teriamos o seguinte pedaço de código: // Criando jogador de id=0 e não tem premmy Player* player = new Player(0, false); if (player->isPremmy()) { // Código } Note que, apesar de isPremmy não ter parâmetro, ainda temos a referência do objeto player criado na linha 2, anterior ao "isPremmy". De uma forma ou outra, você precisa especificar qual é o jogador em questão, isso vem das próprias linguagens de programação! Caso não tenha entendido muito bem algumas expressões utilizadas, recomendo dar uma estudada no básico de algumas linguagens como C/C++/LUA e ver outras partes teóricas como Programação Orientada a Objetos (é um conceito bem fácil de ser compreendido, depois que você entendeu o básico). Editado Julho 13, 2019 6 anos por marcot (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.