Postado Fevereiro 9, 2015 10 anos E aí galera, tudo bem? Dessa vez venho pedir um script que faz a arma evoluir (se transformar em outra arma). Exemplo: eu ganhei uma Espada de Treino na quest inicial (no meu servidor é a arma inicial da classe Guardião). Se eu matar 25 Troll's com ela, ela se transforma num Florete(Tem um ataque um pouco menor que a Katana, porém é mais leve e ataca mais rápido), mas se eu matar 25 Rotworm's com ela, ela irá se transformar numa Katana (Ataque um pouco maior que o Florete, mas é pesada e ataca um pouco mais devagar)... dps se matar tal bixo x vezes com o Florete eu consigo a arma Z e se eu conseguir matar tal bixo x vezes com a Katana eu consigo a arma Y Editado Fevereiro 9, 2015 10 anos por Gabuuh (veja o histórico de edições)
Postado Fevereiro 9, 2015 10 anos voce pode usar onKill ou onDeath para quando matar os monstros, usar uma storage para uma quantidade de monstros, isso em uma tabela... exemplo demon5 = 12531 assim quando alcançar a storage 12531 remove a weapon que ele tem na mão, e adiciona a nova weapon... lembrando: use um if para verificar se o player está com a arma equipada, pq senão ele pode estar usando outra arma e a arma se "upar"
Postado Fevereiro 9, 2015 10 anos Autor O problema é que o Script fica meio grandinho :x Vou tentar fazer e postar aqui. Espero que um dos mestres dos scripts me ajude a diminuir.
Postado Fevereiro 9, 2015 10 anos Solução Crie um arquivo lua em creaturescripts/scripts , coloque o nome de weaponLevelup.lua e adicione o script dentro. depois vai em creaturescripts.xml adicione a tag, depois va no script login e adicione o registro tag: <event type="kill" name="weaponLevelUp" event="script" value="weaponLevelUp.lua"/> script: function onKill(cid, target, lastHit) local monster = { --["nome do monstro minuscuolo"] = {storage = storage de contagem, reward = arma que vai ser transformar, weapon = arma necessaria, kill = quantidade de monstro que tem que matar} ["bat"] = {storage = 10376, reward = 2392, weapon = 2376, kill = 5}, ["rat"] = {storage = 10377, reward = 1255, weapon = 2376, kill = 20}, } if isPlayer(cid) then if isMonster(target) then local name = getCreatureName(target) local name_monster = monster[string.lower(name)] if name_monster then local weapon = monster[name:lower()].weapon if getPlayerSlotItem(cid, 6).itemid == weapon then local reward = monster[name:lower()].reward local storage = monster[name:lower()].storage local count = getPlayerStorageValue(cid, storage) local kill = monster[name:lower()].kill if count == -1 then count = 0 end count = count+1 setPlayerStorageValue(cid, storage, count) doSendAnimatedText(getPlayerPosition(target), " #"..count.." / #"..kill.." ", 65) if count == kill then doPlayerSendTextMessage(cid, 27, "Success! You have upgraded your weapon.") setPlayerStorageValue(cid, storage, -1) doTransformItem(getPlayerSlotItem(cid, 6).uid, reward) doSendMagicEffect(getPlayerPosition(cid), 7) doSendAnimatedText(getPlayerPosition(cid), " Done ", 32) end end end end end return true end registro: registerCreatureEvent(cid, "weaponLevelUp") lembrando que a arma tem que estar no slot 6 que é o esquerdo, qualquer duvida só perguntar que eu respondo se ajudei REP+ EDIT - faltava uma verificação e estava causando bug, já foi concertado Editado Fevereiro 10, 2015 10 anos por xBen (veja o histórico de edições)
Postado Fevereiro 9, 2015 10 anos Autor Cred genten, o seu code ficou bem melhor que o meu ;-; O que seria esse doSendAnimatedText(getPlayerPosition(cid), " Done ", 32)? Tipo, Done é pronto '-'. Meio desnecessário, creio eu. Já que a evolução não é igual a de um Pokémon no GBA (o Pokémon, no caso, o Player ficar piscando). Editado Fevereiro 9, 2015 10 anos por Gabuuh (veja o histórico de edições)
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.