Ir para conteúdo

Featured Replies

Postado
  • Autor

@Lurk  opa boa noite amigo! 

 

desculpe a demora para responder, estava de plantão hoje, não pude testar, mas testei agora.

 

Resultado: não acontece nada, nem erro na distro e o item não funciona, será que preciso configurar outra coisa para que funcione?

 

poxa espero que alguém possa ajudar, iria ficar muito legal minha mission assim. :( 

  • Respostas 7
  • Visualizações 1.1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • @Lisbeky Não tive como testar, mas se você configurar certinho creio que funcionará.   1. Adicione o NPC Em data/npc, adicione o arquivo.xml. As falas, o nome do NPC bem como o looktype

Postado

@Lisbeky Não tive como testar, mas se você configurar certinho creio que funcionará.

 

1. Adicione o NPC

Em data/npc, adicione o arquivo.xml. As falas, o nome do NPC bem como o looktype são apenas para exemplo, configure como quiser.

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Ghoster" script="default.lua" walkinterval="2000" floorchange="0">
	<health now="100" max="100"/>
	<look type="48"/>
    <voices>
        <voice text="Annnnnnkkkhhhhhhhhh" interval2="50"/>
        <voice text="Boo!" interval2="50"/>
        <voice text="Why are you scared?" interval2="50"/>
    </voices>
</npc>

2. Em data/actions/scripts crie um arquivo.lua e cole isto dentro:

 

Spoiler

local t = {
    removeItemOnUse = true, -- 'true' para remover a ankh ao usar, 'false' para não remover
    npcName = "Ghoster", -- nome do NPC
    monster = {
        name = "Ghost Boss", -- nome do monstro
        createPos = {x = 1, y = 1, z = 1}, -- posição na qual o monstro será criado
        timeToCreate = {10, "sec"}, -- tempo para criar o monstro após usar a ankh no NPC
        timeToRemove = {5, "min"} -- tempo para remover o monstro e retornar o NPC
    }
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    if not isCreature(itemEx.uid) or isPlayer(itemEx.uid) then return false end
    local npc = itemEx.uid
    if getCreatureName(npc):lower() == t.npcName:lower() then
        doCreatureSay(npc, "Brace yourselves!", TALKTYPE_MONSTER_YELL)
        local npcPos = getCreaturePosition(npc)
        doSendMagicEffect(npcPos, CONST_ME_POFF)
        doRemoveCreature(npc)
        addEvent(function()
            local m = doCreateMonster(t.monster.name, t.monster.createPos)
            doCreatureSay(m, "HA HA HA!", TALKTYPE_MONSTER_YELL)
            doSendMagicEffect(t.monster.createPos, CONST_ME_TELEPORT)
            addEvent(function()
                if isCreature(m) then
                    doCreatureSay(m, "I WON! HA HA HA!", TALKTYPE_MONSTER_YELL)
                    doSendMagicEffect(getCreaturePosition(m), CONST_ME_POFF)
                    doRemoveCreature(m)
                end
                local checkNpc = getCreatureByName(t.npcName)
                if not isCreature(checkNpc) then
                    doCreateNpc(t.npcName, npcPos)
                    doSendMagicEffect(npcPos, CONST_ME_HOLYAREA)
                end
            end, mathtime(t.monster.timeToRemove) * 1000)
        end, mathtime(t.monster.timeToCreate) * 1000)
        if t.removeItemOnUse then
            doRemoveItem(item.uid, 1)
        end
        return true
    end
    return false
end

function mathtime(table) -- by dwarfer
local unit = {"sec", "min", "hour", "day"}
for i, v in pairs(unit) do
if v == table[2] then
return table[1]*(60^(v == unit[4] and 2 or i-1))*(v == unit[4] and 24 or 1)
end
end
end

 

 

No actions.xml adicione a tag e edite o id do item:

<action itemid="1111" script="NOMEDOARQUIVO.lua" />

3. No arquivo do monstro, adicione antes de </monster>, o seguinte:

<script>
    <event name = "GhostBossDeath"/>
</script>

4. Em data/creaturescripts/scripts, crie um arquivo.lua e cole isto dentro:

 

Spoiler

local storage = {key = 11111, value = 1} -- storage key e value
local npcName = "Ghoster" -- nome do NPC

function onDeath(cid, corpse, deathList)
    local killers = deathList
    for _, pid in pairs(killers) do
        if isPlayer(pid) then
            if getPlayerStorageValue(pid, storage.key) < storage.value then
                setPlayerStorageValue(pid, storage.key, storage.value)
                doPlayerSendTextMessage(pid, MESSAGE_INFO_DESCR, "You helped to defeat the "..getCreatureName(cid).."!")
            end
        end 
    end
    local p = getCreaturePosition(cid)
    local npc = doCreateNpc(npcName, p)
    doSendMagicEffect(p, CONST_ME_TELEPORT)
    doCreatureSay(npc, "I am back.", TALKTYPE_MONSTER_YELL)
    return true
end

 

 

Edite o storage para os valores da sua quest. Lembrando que só ganharão o storage aqueles que causarem dano ao boss.

 

No creaturescripts.xml, adicione a tag:

<event type="death" name="GhostBossDeath" event="script" value="NOMEDOARQUIVO.lua"/>

É isso.

 

Contato:

 

Postado
  • Autor

@Dwarfer  show meu amigo, obrigado pelo esforço! mas tive que criar outro tópico, pois houve pouca ajuda em relação a esse, então pensei que tivesse explicado de uma forma em que pareceu ser difícil o meu pedido, logo, no outro tópico já conseguiram o script que eu queria.

 

Editado por Lisbeky (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.

Visitante
Responder

Quem Está Navegando 0

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

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 520k

Informação Importante

Confirmação de Termo