Postado Junho 21, 2015 9 anos Estou com uma duvida estou estou encabulado com isso >....< No meu script de move ataques do meu pokemon em talkactions eu criei um novo pokemon mas em sua habilidade rest que seta uma outifit no pokemon que no caso seria a do snorlax dormindo. local snorlax = {lookType = 258} dewgong = {lookType = 545} bigsnorlax = {lookType = 544} abaixo a parte da spell Rest elseif pokemon.x.spell == "Rest" then doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER) doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY) exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd) if getCreatureName(getCreatureSummons(cid)[1]) == "Snorlax" then doSetCreatureOutfit(getCreatureSummons(cid)[1], snorlax, 5000) doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1])) elseif getCreatureName(getCreatureSummons(cid)[1]) == "Dewgong" then doSetCreatureOutfit(getCreatureSummons(cid)[1], dewgong, 5000) doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1])) elseif getCreatureName(getCreatureSummons(cid)[1]) == "Big Snorlax" then doSetCreatureOutfit(getCreatureSummons(cid)[1], bigsnorlax, 5000) doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1])) end setPlayerStorageValue(getCreatureSummons(cid)[1], 4, 1) local function rest(params) if isCreature(params.cid) then if isCreature(getCreatureSummons(params.cid)[1]) then if getCreatureCondition(getCreatureSummons(params.cid)[1], CONDITION_OUTFIT) == true then doCreatureAddHealth(getCreatureSummons(cid)[1], ((num2)+((getPlayerLevel(cid))*(num3)))) doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "+"..((num2)+((getPlayerLevel(cid))*(num3))).."", 32) doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1])) end end end end for r = 1, 4 do addEvent(rest, 1000*r, {cid = cid}) end local function stoprest(params) if isCreature(params.cid) then if isCreature(getCreatureSummons(params.cid)[1]) then doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(cid)[1])) if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 4) >= 1 then setPlayerStorageValue(getCreatureSummons(params.cid)[1], 4, 0) end end end end addEvent(stoprest, 4300, {cid = cid}) return 0 Bem no caso seria quando coloco local snorlax = {lookType = 258} local dewgong = {lookType = 545} local bigsnorlax = {lookType = 544} acontece este erro [Error - LuaScriptInterface::loadFile] data/talkactions/scripts/move8.lua:2712: function at line 1726 has more than 60 upvalues [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/move8.lua) data/talkactions/scripts/move8.lua:2712: function at line 1726 has more than 60 upvalues fiquei tentando entender o porque por longas horas, mas consegui resolver apenas retirando o local e deixando com global mesmo. Mas fiquei na duvida. Move8 completo http://pastebin.com/7N5NTkUE
Postado Junho 21, 2015 9 anos bom, algumas coisas à respeito do local: - é uma variável que tem seu escopo delimitado pelo bloco, ou seja, se vc fizer: local a = 1 print(a) vai retornar 1 e local a = 5 if true then local a = 1 end print(a) vai retornar 5. "Mas lobo, eu setei o a como 1, porque ele printa 5?" bem, o a só vai ser 1 dentro do bloco que você definiu ele, ou seja, apenas dentro do if." - Ela (a váriavel local) é armazenada de outra forma, consumindo bem menos memória e fazendo o programa à acessar de forma mais rápida doque uma global - Tem um número máximo de variáveis locais por função, se não me engano é 200, se vc atingir esse numero, vai dar merda.Aqui tem um link explicando sobre o upvalues, acho que vai tirar sua dúvida (tá em ingles) Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Postado Junho 22, 2015 9 anos Autor Poxa irei ler quando chegar em casa e consertar meu hd que deu problema. Irei deixar ao menos um rep como agradecimento. Estou tentando aprender a linguagem lua é aprendi mais im pouco co que vc disse. Obrigado.
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.