Ir para conteúdo
Entre para seguir isso  
Miltonhit

Surprise bag, dropando por exp.

Recommended Posts

Miltonhit    4
Miltonhit

Olá, venho aqui trazer mais um script, dessa ver um script muito útil para "eventos e etc" em seu servidor. A função do script é basicamente adicionar um present bag no corpo do monstro morto, SE o monstro dar expêriencia igual ou maior do que você setou.

 

OBS: Eu sei que tem um sistema parecido no forúm porém ele não tem expêriencia minima e não adiciona a surprise bag no corpo do monstro e sim no player.

 

[spoiler=Padrão]

Autor: MiltonHit, Mirto
Testado: sim, tfs 0.3.6 (8.54)
Versão 1.0

 

 

Bem, para instalar o script vá até á pasta creaturescripts/scripts crie um arquivo .lua qualquer e renomeie para surprise_bag.lua, apague tudo e adicione isso nele:

local function event(pos, efeito, id)
local corpse = getTileItemByType(pos, ITEM_TYPE_CONTAINER).uid
doSendAnimatedText(pos, "Surprise!", TALKTYPE_CHANNEL_O)
doSendMagicEffect(pos, efeito)
doAddContainerItem(corpse, id, 1)
end                                                               


function onKill(cid, target)
        local infos = {
        exp_min = 5000, -- aqui você seta a exp min que o monstro tem que dar
        chance = 5, --aqui voce seta a chance em % de dropar a bag
        efeito = 34, --efeito que dara no corpo do monstro
        present_id = 6571 --id do present
        } 
        if not(isPlayer(target)) then
           if math.random(100) <= infos.chance then
              local exp = (getMonsterInfo(getCreatureName(target)).experience*getExperienceStage(getPlayerLevel(cid)))
              if exp >= infos.exp_min then
                 addEvent(event, 0, getThingPos(target), infos.efeito, infos.present_id)
                 return true
              end
           end
        end
  return true
end

 

Agora basta registrar o script no creaturescripts/creaturescripts.xml adicionando a seguinte linha:

<event type="kill" name="surprise" event="script" value="surprise bag.lua"/>

Depois registre o mesmo no creaturescripts/scripts/login.lua, antes do ultimo return true:

registerCreatureEvent(cid, 'surprise')

 

Agora você vem me perguntar: Porque não faz por onDeath, tem o paremetro corpse, etcetéra.

Sim tem o parametro, porém não é nada agradável ter que registrar o event em todos os monstros do servidor, monstro por monstro, né? Então essa é a forma mais pratica para se fazer isso.

 

Obrigado á todos, qualquer coisa estou aqui á disposição, abraços.

Editado por Miltonhit

Compartilhar este post


Link para o post
bisosonho    0
bisosonho

me ajudou muito! mas vc precisa ajeitar pra n dar erro com summon

 

substui o:

if not(isPlayer(target)) then

 

por:

if (isMonster(target) and not isSummon(target)) then

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×