Ir para conteúdo

Featured Replies

Postado
  • Solução

@FearWar

 

Spoiler

local corpse_ids = {
    [0] = 3065,
    [1] = 3058
}
 
function onPrepareDeath(cid, deathList)
    if getCreatureSkullType(cid) < 6 then
        if getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).itemid == 12668 then
        doCreatureSetDropLoot(cid, false)
        for i = 1, 5 do
            doPlayerAddBlessing(cid, i)
        end
        doItemSetAttribute(doCreateItem(corpse_ids[getPlayerSex(cid)], 1, getThingPos(cid)), "description", "You recognize " .. getCreatureName(cid) .. ". He was killed by " .. (isMonster(deathList[1]) and "a " .. string.lower(getCreatureName(deathList[1])) or isCreature(deathList[1]) and getCreatureName(deathList[1]) or "a field item") .. ".\nHis soul was protected for amulet!")
        end
    end
    return true
    end

 

Editado por Dwarfer (veja o histórico de edições)

Contato:

 

  • Respostas 14
  • Visualizações 2.2k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Em creaturescripts/scripts crie um arquivo:   blessamulet.lua     No login.lua, registre o evento: registerCreatureEvent(cid, "BlessAmulet")   Em creaturescripts.x

  • @FearWar  

  • Respondi o que o cara e você pediu, não precisa analisar nada, o amuleto tem a função de prevenir, mas não adicionava bless que serve para diminuir a perda de exp, além de prevenir os items. Não me in

Postado
33 minutos atrás, Dwarfer disse:

@FearWar

 

  Ocultar conteúdo


local corpse_ids = {
    [0] = 3065,
    [1] = 3058
}
 
function onPrepareDeath(cid, deathList)
    if getCreatureSkullType(cid) < 6 then
        if getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).itemid == 12668 then
        doCreatureSetDropLoot(cid, false)
        for i = 1, 5 do
            doPlayerAddBlessing(cid, i)
        end
        doItemSetAttribute(doCreateItem(corpse_ids[getPlayerSex(cid)], 1, getThingPos(cid)), "description", "You recognize " .. getCreatureName(cid) .. ". He was killed by " .. (isMonster(deathList[1]) and "a " .. string.lower(getCreatureName(deathList[1])) or isCreature(deathList[1]) and getCreatureName(deathList[1]) or "a field item") .. ".\nHis soul was protected for amulet!")
        end
    end
    return true
    end

 

@Dwarfer, acho que não funcionou, porque eu uso o amuleto, retiro ele e morro e perde os items :(

 

Postado
6 minutos atrás, Dwarfer disse:

@FearWar Mas é claro, o amuleto vai prevenir apenas se ele estiver equipado quando o player morrer o.O

Se formos analisar a questão, o amuleto já faz essa função de previnir, o amulet seria no caso, ao invés do player comprar a bless, bastava ele usar o amuleto!

 

Vamos supor que é um player normal, sem skull nada, em um dia na WAR, e ele quiser usar "stone skin amulet" ai se ele morrer, não vai ter Bless porque ele não estaria com o amulet equipado!

 

Não sei se entendeu minha ideia?!

@Dwarfer se eu adicionar este código dentro:

 

local bless = {1, 2, 3, 4, 5}
local cost = 50000 -- Cost in gp.
 
function onSay(cid, words, param)
     local player = Player(cid)
     for i = 1, table.maxn(bless) do
         if player:hasBlessing(bless[i]) then
             return player:sendCancelMessage("You already have all blessings.")
         end
     end
 
     if player:removeMoney(cost) then
         for i = 1, table.maxn(bless) do
             player:addBlessing(bless[i])
         end
         player:sendTextMessage(MESSAGE_INFO_DESCR, "You have bought all blessings.")
         player:getPosition():sendMagicEffect(CONST_ME_FIREWORK_YELLOW)
     else
         player:sendCancelMessage("You don't have enough money.")
     end
     return true
end

Precisaria mudar toda a script?

Postado
46 minutos atrás, FearWar disse:

Se formos analisar a questão, o amuleto já faz essa função de previnir, o amulet seria no caso, ao invés do player comprar a bless, bastava ele usar o amuleto!

 

Vamos supor que é um player normal, sem skull nada, em um dia na WAR, e ele quiser usar "stone skin amulet" ai se ele morrer, não vai ter Bless porque ele não estaria com o amulet equipado!

 

Não sei se entendeu minha ideia?!

@Dwarfer se eu adicionar este código dentro:

 


local bless = {1, 2, 3, 4, 5}
local cost = 50000 -- Cost in gp.
 
function onSay(cid, words, param)
     local player = Player(cid)
     for i = 1, table.maxn(bless) do
         if player:hasBlessing(bless[i]) then
             return player:sendCancelMessage("You already have all blessings.")
         end
     end
 
     if player:removeMoney(cost) then
         for i = 1, table.maxn(bless) do
             player:addBlessing(bless[i])
         end
         player:sendTextMessage(MESSAGE_INFO_DESCR, "You have bought all blessings.")
         player:getPosition():sendMagicEffect(CONST_ME_FIREWORK_YELLOW)
     else
         player:sendCancelMessage("You don't have enough money.")
     end
     return true
end

Precisaria mudar toda a script?

 

 

Respondi o que o cara e você pediu, não precisa analisar nada, o amuleto tem a função de prevenir, mas não adicionava bless que serve para diminuir a perda de exp, além de prevenir os items. Não me interessa se o player vai usar ou não stone skin amulet, ou qualquer outro amuleto, o pedido foi atendido conforme quiseram, aí é outra questão que não tenho nada a ver. Caso queira DAR USE em um amuleto e receber as blessings, adicione uma action:

 

Spoiler

function onUse(cid, item, fromPosition, itemEx, toPosition)
    for i = 1, 5 do
        if getPlayerBlessing(cid, i) then
            return doPlayerSendCancel(cid, "You already have all blessings.")
        end
    end
    for i = 1, 5 do
        doPlayerAddBlessing(cid, i)
    end
    doRemoveItem(item.uid, 1)
    return true
end

 

 

 

 

 

 

Editado por Dwarfer (veja o histórico de edições)

Contato:

 

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo