OcruxBiel 4 Postado Abril 17, 2015 Share Postado Abril 17, 2015 Tipo do script: Creature ScriptsProtocolo (versão do Tibia): 8.60Servidor utilizado: TheForgottenServerV8.2 32bitNível de experiência: FácilAdicionais/Informações: É exatamente igual o LowLevelLock, que não deixa você baixar do level 130; quero isso só que pra cada skills e configuravél por vocações; exemplo - Druid X de ML, kina X de Axe/Shield e por ai vai... Não acho que seja dificil, mas pra mim é. Link para o comentário Compartilhar em outros sites More sharing options...
Krono 128 Postado Abril 17, 2015 Share Postado Abril 17, 2015 Caso ninguem crie, irei utilizar o seu topico para minha contribuição do dia mais tarde. Link para o comentário Compartilhar em outros sites More sharing options...
OcruxBiel 4 Postado Abril 17, 2015 Autor Share Postado Abril 17, 2015 Agradeço @Krono, mas defina "mais tarde"?EUTOIMPLORANDO!!!(: Link para o comentário Compartilhar em outros sites More sharing options...
Krono 128 Postado Abril 17, 2015 Share Postado Abril 17, 2015 (editado) Meu caro, fique ciente que estou aprendendo script, então o meu code pode não dar certo, nesse caso eu tentarei corrigir ou mandar outro script para solucionar o seu problema.Segue o script: local skillplayer = {getPlayerSkillLevel(cid, skill_axe), getPlayerSkillLevel(cid, skill_club), getPlayerSkillLevel(cid, skill_sword), getPlayerSkillLevel(cid, skill_fist), getPlayerSkillLevel(cid, skill_distance), getPlayerSkillLevel(cid, skill_maglevel, getPlayerSkillLevel(cid, skill_shield)} --ordem é axe club sword fist distance magic shield function onLogin(cid) if skillplayer.vocation[1] < skillminimo.vocation[1] then doPlayerAddSkill(cid, skill_axe, skillminimo.vocation.[1] - skillplayer[1]) end if skillplayer.vocation[2] < skillminimo.vocation[2] then doPlayerAddSkill(cid, skill_axe, skillminimo.vocation.[2] - skillplayer[2]) end if skillplayer.vocation[3] < skillminimo.vocation[3] then doPlayerAddSkill(cid, skill_axe, skillminimo.vocation.[13] - skillplayer[3]) end if skillplayer.vocation[4] < skillminimo.vocation[4] then doPlayerAddSkill(cid, skill_axe, skillminimo.vocation.[4] - skillplayer[4]) end if skillplayer.vocation[5] < skillminimo.vocation[5] then doPlayerAddSkill(cid, skill_axe, skillminimo.vocation.[5] - skillplayer[5]) end if skillplayer.vocation[6] < skillminimo.vocation[6] then doPlayerAddSkill(cid, skill_axe, skillminimo.vocation.[6] - skillplayer[6]) end if skillplayer.vocation[7] < skillminimo.vocation[7] then doPlayerAddSkill(cid, skill_axe, skillminimo.vocation[7] - skillplayer[7]) end Espero que de certo, aguardo seu comentario~~ att krono Corrigido por fireelement. Editado Abril 17, 2015 por Krono Link para o comentário Compartilhar em outros sites More sharing options...
Fir3element 185 Postado Abril 17, 2015 Share Postado Abril 17, 2015 (editado) Meu caro, fique ciente que estou aprendendo script, então o meu code pode não dar certo, nesse caso eu tentarei corrigir ou mandar outro script para solucionar o seu problema. Segue o script: local vocation = getPlayerVocation(cid)-- vocation local skillminimo = { [1, 5] = {axe = 10, club = 10, sword = 10, fist = 10, distance = 10, magic = 10, shield = 10}, --sorcerer [2, 6] = {axe = 10, club = 10, sword = 10, fist = 10, distance = 10, magic = 10, shield = 10}, --druid [3, 7] = {axe = 10, club = 10, sword = 10, fist = 10, distance = 10, magic = 10, shield = 10}, -- paladin [4, 8] = {axe = 10, club = 10, sword = 10, fist = 10, distance = 10, magic = 10, shield = 10}} -- sorcerer local skillplayer = {getplayerskilllevel(cid, skill_axe), getplayerskilllevel(cid, skill_club), getplayerskilllevel(cid, skill_sword), getplayerskilllevel(cid, skill_fist), getplayerskilllevel(cid, skill_distance), getplayerskilllevel(cid, skill_maglevel, getplayerskilllevel(cid, skill_shield)} --ordem é axe club sword fist distance magic shield function onLogin(cid) if skillplayer.vocation[1] < skillminimo.vocation[1] doPlayerAddSkill(cid, skill_axe, skillminimo.vocation.[1] - skillplayer[1]) end if skillplayer.vocation[2] < skillminimo.vocation[2] doPlayerAddSkill(cid, skill_axe, skillminimo.vocation.[2] - skillplayer[2]) end if skillplayer.vocation[3] < skillminimo.vocation[3] doPlayerAddSkill(cid, skill_axe, skillminimo.vocation.[13] - skillplayer[3]) end if skillplayer.vocation[4] < skillminimo.vocation[4] doPlayerAddSkill(cid, skill_axe, skillminimo.vocation.[4] - skillplayer[4]) end if skillplayer.vocation[5] < skillminimo.vocation[5] doPlayerAddSkill(cid, skill_axe, skillminimo.vocation.[5] - skillplayer[5]) end if skillplayer.vocation[6] < skillminimo.vocation[6] doPlayerAddSkill(cid, skill_axe, skillminimo.vocation.[6] - skillplayer[6]) end if skillplayer.vocation[7] < skillminimo.vocation[7] doPlayerAddSkill(cid, skill_axe, skillminimo.vocation[7] - skillplayer[7]) end Espero que de certo, aguardo seu comentario ~~ att krono Tu pode fazer assim pra diminuir: for i = 1, 7 do if skillplayer.vocation[i] < skillminimo.vocation[i] then doPlayerAddSkill(cid, skill_axe, skillminimo.vocation.[i] - skillplayer[i]) end end E "getplayerskilllevel" tem que ser "getPlayerSkillLevel". Faltou um "then" nos "if" também. Acho que "[1, 5]" não vai funcionar, tem que ser só um valor ([1]). Editado Abril 17, 2015 por fireelement Link para o comentário Compartilhar em outros sites More sharing options...
Krono 128 Postado Abril 17, 2015 Share Postado Abril 17, 2015 Erros de principiante. Um script diminuido segundo a explicação que intendi do fireelement. local skillplayer = {getPlayerSkillLevel(cid, skill_axe), getPlayerSkillLevel(cid, skill_club), getPlayerSkillLevel(cid, skill_sword), getPlayerSkillLevel(cid, skill_fist), getPlayerSkillLevel(cid, skill_distance), getPlayerSkillLevel(cid, skill_maglevel, getPlayerSkillLevel(cid, skill_shield)} --ordem é axe club sword fist distance magic shield function onLogin(cid) for i = 1, 7 do if skillplayer.vocation[i] < skillminimo.vocation[i] then doPlayerAddSkill(cid, skill_axe, skillminimo.vocation.[i] - skillplayer[i]) end end Obrigado pela ajuda ficou muito melhor. : Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Abril 18, 2015 Share Postado Abril 18, 2015 (editado) Recomendaria colocar a tabela skillplayer dentro do callback. Como cid está sendo declarado no onUse, seu valor fora dele será nulo. Ah, também faltou no final um return true end. Editado Abril 18, 2015 por zipter98 Link para o comentário Compartilhar em outros sites More sharing options...
OcruxBiel 4 Postado Abril 18, 2015 Autor Share Postado Abril 18, 2015 Seguinte erro:[17/04/2015 21:19:58] [Error - LuaScriptInterface::loadFile] data/creaturescripts/scripts/skillslock.lua:3: ']' expected near ',' [17/04/2015 21:19:58] [Warning - Event::loadScript] Cannot load script (data/creaturescripts/scripts/skillslock.lua) [17/04/2015 21:19:58] data/creaturescripts/scripts/skillslock.lua:3: ']' expected near ',' Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Abril 18, 2015 Share Postado Abril 18, 2015 Tenta assim: local config = { skills = {SKILL_FIST, SKILL_CLUB, SKILL_SWORD, SKILL_AXE, SKILL_DISTANCE, SKILL_SHIELD, SKILL__MAGLEVEL}, minSkill = { --[vocation_ID] = {fist, club, sword, axe, distance, shield, magic}, --NÃO altere a ordem. [1] = {20, 1, 10, 5, 10, 15, 10}, [2] = {10, 15, 10, 20, 10, 5, 20}, }, } function onLogin(cid) local voc = getPlayerVocation(cid) if config.minSkill[voc] then for _, skillId in pairs(config.skills) do if getPlayerSkillLevel(cid, skillId) < config.minSkill[voc][_] then doPlayerAddSkill(cid, skillId, config.minSkill[voc][_] - getPlayerSkillLevel(cid, skillId)) end end end return true end Link para o comentário Compartilhar em outros sites More sharing options...
OcruxBiel 4 Postado Abril 18, 2015 Autor Share Postado Abril 18, 2015 Quando o char loga, e tiver o skill com menos dá exatamente esse erro...[17/04/2015 22:00:20] Druidzeraah has logged in. [17/04/2015 22:00:20] [Error - CreatureScript Interface] [17/04/2015 22:00:20] data/creaturescripts/scripts/skillslock.lua:onLogin [17/04/2015 22:00:20] Description: [17/04/2015 22:00:20] data/creaturescripts/scripts/skillslock.lua:13: attempt to compare boolean with number [17/04/2015 22:00:20] stack traceback: [17/04/2015 22:00:20] data/creaturescripts/scripts/skillslock.lua:13: in function <data/creaturescripts/scripts/skillslock.lua:9> [17/04/2015 22:00:20] Druidzeraah has logged out. Link para o comentário Compartilhar em outros sites More sharing options...
notle2012 232 Postado Maio 14, 2015 Share Postado Maio 14, 2015 (editado) testa assim acho que faltou só as "aspas" local config = { skills = {"SKILL_FIST", "SKILL_CLUB", "SKILL_SWORD", "SKILL_AXE", "SKILL_DISTANCE", "SKILL_SHIELD", "SKILL__MAGLEVEL"}, minSkill = { --[vocation_ID] = {fist, club, sword, axe, distance, shield, magic}, --NÃO altere a ordem. [1] = {20, 1, 10, 5, 10, 15, 10}, [2] = {10, 15, 10, 20, 10, 5, 20}, }, } function onLogin(cid) local voc = getPlayerVocation(cid) if config.minSkill[voc] then for _, skillId in pairs(config.skills) do if getPlayerSkillLevel(cid, skillId) < config.minSkill[voc][_] then doPlayerAddSkill(cid, skillId, config.minSkill[voc][_] - getPlayerSkillLevel(cid, skillId)) end end end return true end Editado Maio 14, 2015 por notle2012 Link para o comentário Compartilhar em outros sites More sharing options...
Bruno 535 Postado Julho 14, 2015 Share Postado Julho 14, 2015 O tópico foi fechado e movido para lixeira por estar inativo a mais de 10 dias. Caso seja preciso reabrir o mesmo, favor entrar em contato com a equipe. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados