Postado Setembro 18, 2015 9 anos Autor Você testou os comandos q te flei no primeiro script? Então estou com o seu comando aqui, o comando deu certo ele loga assim que eu falo !comprar "magiclevel e o item 9971 some, mas da erro no distro. Comprei Magiclevel e não deu nenhum magic level Editado Setembro 18, 2015 9 anos por cleitonhip (veja o histórico de edições)
Postado Setembro 18, 2015 9 anos pronto coloca esse no lugar local config = { protectZone = "sim", -- Precisa estar em PZ para usar o comando? skill = { item = 9971, -- Item removido quantidade = 10, -- Quantidade quantidadeskill = 10, -- Skill adicionada limiteskill = 350 -- Limite }, magicLevel = { item = 9971, -- Item removido quantidade = 15, -- Quantidade quantidademl = 5, -- Magic level adicionado limitedeml = 200 -- Limite }, skillID = { -- ID das skills ["club"] = SKILL_CLUB, ["sword"]= SKILL_SWORD, ["axe"] = SKILL_AXE, ["distance"] = SKILL_DISTANCE, ["shielding"] = SKILL_SHIELD }, vocationSkill = { -- Vocações que pode comprar x skill ["club"] = {4, 8}, ["sword"] = {4, 8}, ["axe"] = {4, 8}, ["distance"] = {3, 7}, ["shielding"] = {4, 8} }, vocationMagicLevel = {1, 2, 5, 6}, -- Vocações que pode comprar magic level delay = { skill = { storage = 45, duration = 5 -- Tempo para comprar skill novamente }, magicLevel = { storage = 97, duration = 5 -- Tempo para comprar magic level novamente } } } function onSay(cid, words, param, channel) local playerId = getPlayerGUID(cid) if config.protectZone == "sim" and not getTilePzInfo(getCreaturePosition(cid)) then return doPlayerSendCancel(cid, "Você precisa estar em protection zone para comprar.") end if param == "magiclevel" then if getPlayerMagLevel(cid) < config.magicLevel.limitedeml then if isInArray(config.vocationMagicLevel, getPlayerVocation(cid)) then if doPlayerRemoveItem(cid, config.magicLevel.item, config.magicLevel.quantidade) then if (os.time() - getPlayerStorageValue(cid, config.delay.magicLevel.storage)) >= config.delay.magicLevel.duration then setPlayerStorageValue(cid, config.delay.magicLevel.storage, os.time()) doRemoveCreature(cid, true) db.query("UPDATE `players` SET `maglevel` = `maglevel` + " .. config.magicLevel.quantidademl .. " WHERE `id` = " .. playerId) else doPlayerSendCancel(cid, "Espere " .. config.delay.magicLevel.duration .. " segundos para comprar novamente.") end else doPlayerSendCancel(cid, "Você não tem o item requerido.") end else doPlayerSendCancel(cid, "Voce não pode comprar magic level.") end else doPlayerSendCancel(cid, "Você chegou no limite de magic level.") end elseif config.skillID[string.lower(param)] then if getPlayerSkill(cid, config.skillID[string.lower(param)]) < config.skill.limiteskill then if isInArray(config.vocationSkill[string.lower(param)], getPlayerVocation(cid)) then if doPlayerRemoveItem(cid, config.skill.item, config.skill.quantidade) then if (os.time() - getPlayerStorageValue(cid, config.delay.skill.storage)) >= config.delay.skill.duration then setPlayerStorageValue(cid, config.delay.skill.storage, os.time()) doRemoveCreature(cid, true) db.query("UPDATE `player_skills` SET `value` = `value` + " .. config.skill.quantidadeskill .. " WHERE `player_id` = " .. playerId .. " and `skillid` = " .. config.skillID[string.lower(param)]) else doPlayerSendCancel(cid, "Espere " .. config.delay.skill.duration .. " segundos para comprar novamente.") end else doPlayerSendCancel(cid, "Você não tem o item requerido.") end else doPlayerSendCancel(cid, "Voce não pode comprar este skill.") end else doPlayerSendCancel(cid, "Você chegou no limite de skill.") end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Possíveis parâmetros: club, sword, axe, distance, shielding, magiclevel.") end return true end
Postado Setembro 18, 2015 9 anos Autor pronto coloca esse no lugar local config = { protectZone = "sim", -- Precisa estar em PZ para usar o comando? skill = { item = 9971, -- Item removido quantidade = 10, -- Quantidade quantidadeskill = 10, -- Skill adicionada limiteskill = 350 -- Limite }, magicLevel = { item = 9971, -- Item removido quantidade = 15, -- Quantidade quantidademl = 5, -- Magic level adicionado limitedeml = 200 -- Limite }, skillID = { -- ID das skills ["club"] = SKILL_CLUB, ["sword"]= SKILL_SWORD, ["axe"] = SKILL_AXE, ["distance"] = SKILL_DISTANCE, ["shielding"] = SKILL_SHIELD }, vocationSkill = { -- Vocações que pode comprar x skill ["club"] = {4, 8}, ["sword"] = {4, 8}, ["axe"] = {4, 8}, ["distance"] = {3, 7}, ["shielding"] = {4, 8} }, vocationMagicLevel = {1, 2, 5, 6}, -- Vocações que pode comprar magic level delay = { skill = { storage = 45, duration = 5 -- Tempo para comprar skill novamente }, magicLevel = { storage = 97, duration = 5 -- Tempo para comprar magic level novamente } } } function onSay(cid, words, param, channel) local playerId = getPlayerGUID(cid) if config.protectZone == "sim" and not getTilePzInfo(getCreaturePosition(cid)) then return doPlayerSendCancel(cid, "Você precisa estar em protection zone para comprar.") end if param == "magiclevel" then if getPlayerMagLevel(cid) < config.magicLevel.limitedeml then if isInArray(config.vocationMagicLevel, getPlayerVocation(cid)) then if doPlayerRemoveItem(cid, config.magicLevel.item, config.magicLevel.quantidade) then if (os.time() - getPlayerStorageValue(cid, config.delay.magicLevel.storage)) >= config.delay.magicLevel.duration then setPlayerStorageValue(cid, config.delay.magicLevel.storage, os.time()) doRemoveCreature(cid, true) db.query("UPDATE `players` SET `maglevel` = `maglevel` + " .. config.magicLevel.quantidademl .. " WHERE `id` = " .. playerId) else doPlayerSendCancel(cid, "Espere " .. config.delay.magicLevel.duration .. " segundos para comprar novamente.") end else doPlayerSendCancel(cid, "Você não tem o item requerido.") end else doPlayerSendCancel(cid, "Voce não pode comprar magic level.") end else doPlayerSendCancel(cid, "Você chegou no limite de magic level.") end elseif config.skillID[string.lower(param)] then if getPlayerSkill(cid, config.skillID[string.lower(param)]) < config.skill.limiteskill then if isInArray(config.vocationSkill[string.lower(param)], getPlayerVocation(cid)) then if doPlayerRemoveItem(cid, config.skill.item, config.skill.quantidade) then if (os.time() - getPlayerStorageValue(cid, config.delay.skill.storage)) >= config.delay.skill.duration then setPlayerStorageValue(cid, config.delay.skill.storage, os.time()) doRemoveCreature(cid, true) db.query("UPDATE `player_skills` SET `value` = `value` + " .. config.skill.quantidadeskill .. " WHERE `player_id` = " .. playerId .. " and `skillid` = " .. config.skillID[string.lower(param)]) else doPlayerSendCancel(cid, "Espere " .. config.delay.skill.duration .. " segundos para comprar novamente.") end else doPlayerSendCancel(cid, "Você não tem o item requerido.") end else doPlayerSendCancel(cid, "Voce não pode comprar este skill.") end else doPlayerSendCancel(cid, "Você chegou no limite de skill.") end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Possíveis parâmetros: club, sword, axe, distance, shielding, magiclevel.") end return true end Então, deu certo o magic level, mas acho que tem que adicionar uma tabela você sabe o comando dessa tabela, quando vou comprar skill axe sword club distance e shield da esse erro. Editado Setembro 18, 2015 9 anos por cleitonhip (veja o histórico de edições)
Postado Setembro 18, 2015 9 anos DROP TABLE IF EXISTS `player_skills`;CREATE TABLE `player_skills`( `player_id` INT NOT NULL, `skillid` TINYINT(2) NOT NULL DEFAULT 0, `value` INT UNSIGNED NOT NULL DEFAULT 0, `count` INT UNSIGNED NOT NULL DEFAULT 0, KEY (`player_id`), UNIQUE (`player_id`, `skillid`), FOREIGN KEY (`player_id`) REFERENCES `players`(`id`) ON DELETE CASCADE) ENGINE = InnoDB;
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.