Postado Setembro 19, 2017 7 anos Solução @FearWar Mostrar conteúdo oculto 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 Setembro 19, 2017 7 anos por Dwarfer (veja o histórico de edições) Contato: Email: dwarfer@sapo.pt Discord: Dwarfer#2715
Postado Setembro 19, 2017 7 anos Em 19/09/2017 em 15:05, Dwarfer disse: @FearWar Mostrar conteúdo oculto Mostrar conteúdo oculto 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 Setembro 19, 2017 7 anos @FearWar Mas é claro, o amuleto vai prevenir apenas se ele estiver equipado quando o player morrer Contato: Email: dwarfer@sapo.pt Discord: Dwarfer#2715
Postado Setembro 19, 2017 7 anos Em 19/09/2017 em 15:42, Dwarfer disse: @FearWar Mas é claro, o amuleto vai prevenir apenas se ele estiver equipado quando o player morrer 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 Setembro 19, 2017 7 anos Em 19/09/2017 em 15:50, 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: Mostrar conteúdo oculto 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 Setembro 19, 2017 7 anos por Dwarfer (veja o histórico de edições) Contato: Email: dwarfer@sapo.pt Discord: Dwarfer#2715
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.