Demonbholder 420 Postado Maio 21, 2011 Share Postado Maio 21, 2011 Faaaaala galera! Tranquilo? Mas uma função feita à pedidos, que eu pude fazer hoje a tarde e vou apresentá-los a ela. Como funciona: O parâmetro usado deve ser as palavras necessárias para ativar a spell. O script vai retornar o nome da spell referente aquelas palavras. Se não existir, simplesmente irá dar erro. Função function getSpellName(spellwords) local info = io.open("data/spells/spells.xml", "r") local spell = info:read("*all") local line = nil local d = nil local finish = nil local start = nil for s, st in pairs(lines(spell)) do if string.find(st, spellwords) and string.sub(st, string.find(st, spellwords) + #spellwords, string.find(st, spellwords) + #spellwords) == '"' and string.find(st, "words", string.find(st, spellwords) + #spellwords) == nil then line = lines(spell)[s] break end end if line == nil then return error("Spell not found") end for i = 1, #line do if string.sub(line, i, i +3) == "name" then d = 1 end if string.sub(line, i, i) == '"' then if d == 1 then start = i + 1 d = 2 elseif d == 2 then finish = i - 1 d = 3 end end end return string.sub(line, start, finish) end function lines(str) local t = {} local j = {} local c = nil for i = 1, #str do if i == 1 then table.insert(t, 1) elseif string.byte(string.sub(str, i, i)) == 10 then table.insert(t, i) end end for i = 1, #t do c = t[i+1] and t[i+1] -1 table.insert(j, string.sub(str, t[i], c)) end return j end Exemplo: getSpellName("exevo mas san") retorna Divine Caldera Então é isso galera, acho que não há nenhum bug. Eu precisei usar uma outra função que eu criei, portanto, não retirem ela. Aproveitem, e até a próxima. Link para o comentário https://xtibia.com/forum/topic/157013-getspellnamewords/ Compartilhar em outros sites More sharing options...
zerefshirou 112 Postado Agosto 6, 2011 Share Postado Agosto 6, 2011 Err, pra que serve essa função Seria bem util se ela checasse a magia e em vez de amostrar o nome, fizer a magia, serei uma revolução em sentido de m1~m12 de poketibia Caso fizer me mande PM OK? Rep++ Link para o comentário https://xtibia.com/forum/topic/157013-getspellnamewords/#findComment-1080909 Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Agosto 7, 2011 Autor Share Postado Agosto 7, 2011 Se você conseguisse pensar grande em lua poderia entender a utilidade da função. Link para o comentário https://xtibia.com/forum/topic/157013-getspellnamewords/#findComment-1080990 Compartilhar em outros sites More sharing options...
DexpironFox 23 Postado Agosto 7, 2011 Share Postado Agosto 7, 2011 Ou ao invés de voltar a Spell, poderia ter uma chance de Ativar um Buff Exemplo: Spell = "Exevo mas San" Chance de voltar buff de almentar skill. Só uma idéia Link para o comentário https://xtibia.com/forum/topic/157013-getspellnamewords/#findComment-1080992 Compartilhar em outros sites More sharing options...
3145288 17 Postado Agosto 10, 2011 Share Postado Agosto 10, 2011 Err, pra que serve essa função Seria bem util se ela checasse a magia e em vez de amostrar o nome, fizer a magia, serei uma revolução em sentido de m1~m12 de poketibia Caso fizer me mande PM OK? Rep++ o sistema de m1 a m10 que fiz por enquanto é tudo baseado nas spells, eu checo a posição do summon e executo a partir dela, so q n fiz em lua. e essa funcao q ele fez é perfeita, nao so codigo, mais o q ela pode fazer em todas as areas se vc souber um pouquinho de programacao Link para o comentário https://xtibia.com/forum/topic/157013-getspellnamewords/#findComment-1082788 Compartilhar em outros sites More sharing options...
Posts Recomendados