Postado Janeiro 18, 2015 10 anos Este é um post popular. Bem, pessoal. O script foi criado a partir do pedido do membro loreal: Gostaria de saber que alguém conseguira fazer esse script quando player upar mostrar no console quais spells ele já pode usar igual na imagem.. Sem mais delongas, para instalar é simples: Crie o arquivo creaturescripts/scripts/advancespells.lua e adicione o seguinte conteúdo: function onAdvance(cid, skill, oldLevel, newLevel) if skill == SKILL__LEVEL then local spells = {} for index = 0, getPlayerInstantSpellCount(cid) - 1 do local spell = getPlayerInstantSpellInfo(cid, index) if spell.level > oldLevel and spell.level <= newLevel then table.insert(spells, " [".. spell.name .."] \"".. spell.words .. "\" Mana[".. spell.mana .."]") end end if #spells > 0 then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "You have just advanced to level ".. newLevel .." and learned new spells!") for _, v in pairs(spells) do doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, v) end end end return true end No arquivo creaturescripts/creaturescripts.xml adicione a tag: <event type="advance" name="AdvLevelSpells" event="script" value="advancespells.lua" /> No seu arquivo creaturescripts/scritps/login.lua adicione a seguinte linha ANTES DO ÚLTIMO return true: registerCreatureEvent(cid, "AdvLevelSpells") Exemplo: registerCreatureEvent(cid, "AdvLevelSpells") return true end Editado Janeiro 19, 2015 10 anos por MaXwEllDeN (veja o histórico de edições) -"Supra Omnes Lux Lucis" - Acima de todos brilha a Luz -
Postado Janeiro 18, 2015 10 anos Show de bola Max, curti a ideia, seu script com certeza será muito útil para alguém! Tópico aprovado, reputado e movido para a seção correta. Este tópico foi movido: De: "OTServ → Aprovação de Tópicos de Conteúdos" Para: "OTServ → Scripting → CreatureScripts, GlobalEvents e MoveMents"
Postado Janeiro 18, 2015 10 anos Meu servidor é todo baseado em ML, e tem magias no normal q são só de ML teria como você muda pra em vez de qnd upar de level, mostrar a magia pra por ML, qnd upa-se de ML mostrava a magia que liberou com esse ml
Postado Janeiro 18, 2015 10 anos Autor Meu servidor é todo baseado em ML, e tem magias no normal q são só de ML teria como você muda pra em vez de qnd upar de level, mostrar a magia pra por ML, qnd upa-se de ML mostrava a magia que liberou com esse ml Tenta assim: if not SERVER_SPELLS then SERVER_SPELLS = {} local file = io.open("data/spells/spells.xml") local str = file:read("*all") file:close() for line in str:gmatch("<instant name=\"(.-)</instant>") do for voc in line:gmatch("<vocation id=\"(.-)\"") do for _, vocation in pairs(string.explode(voc, ";")) do if SERVER_SPELLS[tonumber(vocation)] then table.insert(SERVER_SPELLS[tonumber(vocation)], line:match("(.-)\"")) else SERVER_SPELLS[tonumber(vocation)] = {line:match("(.-)\"")} end end end end end function onAdvance(cid, skill, oldLevel, newLevel) if skill == SKILL__MAGLEVEL then local str = "" for _, name in pairs(SERVER_SPELLS[getPlayerVocation(cid)]) do local spell = getInstantSpellInfo(false, name) if spell.mlevel > oldLevel and spell.mlevel <= newLevel then str = str .. "\n [".. name .."] \"".. spell.words .. "\" Mana[".. spell.mana .."]" end end if str ~= "" then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "You have just advanced to magic level ".. newLevel .." and learned new spells!" .. str) end end return true end Show de bola Max, curti a ideia, seu script com certeza será muito útil para alguém! Tópico aprovado, reputado e movido para a seção correta. Este tópico foi movido: De: "OTServ → Aprovação de Tópicos de Conteúdos" Para: "OTServ → Scripting → CreatureScripts, GlobalEvents e MoveMents" Obrigado, Matheus Editado Janeiro 19, 2015 10 anos por MaXwEllDeN (veja o histórico de edições) -"Supra Omnes Lux Lucis" - Acima de todos brilha a Luz -
Postado Janeiro 18, 2015 10 anos eu ia perguntar pq vc tava definindo file duas vezes mas vc já editou AUHEHUAUH script muito bom, to até seguindo pra usar de modelo um dia. Só 2 dúvidas: 1) e se for aquelas versões de server que usam <vocation name="Paladin"/> <vocation name="Royal Paladin"/> ?? 2) essa linha aqui tá certa? for _, vocation in pairs(string.explode(voc, ";")) do vc tá usando o explode como ; mas (pelo menos aqui), não tem ; em nenhum lugar do spells.xml ;~ <instant name="KAMUI" words="kamui in" lvl="120" mana="200" prem="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script" value="especiais/kamui.lua"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant> me corrija se eu estiver errado... Edit: esse ; também serviria como verificar pulagem de linha? Editado Janeiro 18, 2015 10 anos por xWhiteWolf (veja o histórico de edições) 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)
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.