Ir para conteúdo
  • Cadastre-se

Pedido Boss para mission, usando item.


Posts Recomendados

.Qual servidor ou website você utiliza como base? 

0.36

 

Então pessoal, boa noite! 

 

estou criando varias Mission para meu ot(ainda em manutenção), já criei os npcs e editei no remeres, mas não estou conseguindo script para o boss. inclusive até tentei pedir um suporte no outro script, sendo que estava dando mais trabalho, então resolvi pedir outro inovando o jeito de como o boss vai aparecer, ficará mais legal em minha misson.

 

bom, no script queria que ele ao usar um Ankh(crucifixo, 2193) em um fantasma(looktype 319) rodando na sala, mas esse fantasma não ataca e nao pode ser atacado, apenas fica rodando pela sala e soltando algumas falas... ao usar o ankh no fantasma, ele vira um boss, como exemplo pode ser o demon e depois disso todos os players que matarem o demon, recebem o storage 47000, value 4.

 

Bom é isso! espero que alguém consiga, pois realmente não é fácil... Obrigada TibiaKing!

Editado por Lisbeky (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

up!

Galera, sei q é complicado o q eu pedi, então eu mesmo pesquisando aqui no meu próprio map, descobri que tem um item que, ao usar ele no monstro, cria um teleport, então resolvi pegar o script e transformar ao invés de criar um tp, criar um outro monstro. Mas como não sei criar o corpo do script , ou seja apenas ctrl+c depois crtl + v, resultado? nada funcionando hahaha , mas irei postar aqui o script , pois pode ajudar a achar uma solução.

 

Obs: não deu erro na distro, apenas do use no monstro e não acontece nada... se alguém puder me ajudar agradeço.

 

function removeCreature(thing)
	pos = getCreaturePos(thing)
	doRemoveCreature(thing)
	doCreateMonster(Demo, pos)
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
		if (item.itemid == 2193 and item.actionid == 100) then
			thing = getThingFromPos(toPosition)
				if isMonster(thing.uid) and getCreatureName(thing.uid) == "Phanta" then
					doCreatureSay(thing.uid, "Prepare! The worst has yet to come!", TALKTYPE_ORANGE_1)
					addEvent(removeCreature, 3000, thing.uid)
					oRemoveItem(item.uid, 1)
				end
		end
end

 

 

Link para o post
Compartilhar em outros sites

Cara, eu nao manjo de 0.3, mas vou tentar te ajudar.. Ve qq da com isso ai

 

function onUse(cid, item, fromPosition, itemEx, toPosition)
targetMonster = Monster(itemEx.uid)
	if getCreatureName(targetMonster) == "Phanta" then
		doCreatureSay(targetMonster, "Prepare! The worst has yet to come!", TALKTYPE_ORANGE_1)
		addEvent(removeCr3ature, 3000, targetMonster)
		doRemoveItem(item.uid, 1)
end
end

function removeCr3ature(targetMonster)
	pos = getCreaturePos(targetMonster)
	doRemoveCreature(targetMonster)
	doCreateMonster(Demo, pos)
end

 

MEUS POSTS:

 

SE AJUDEI, DÁ O REP+, ESQUECE NÃO, VLW BB <3

Link para o post
Compartilhar em outros sites

@Mor3nao  Bom dia meu amigo! 

 

fiz o teste, não deu erro na distro na inicialização, mas ao usar o item no monstro ele deu esse erro e não aconteceu nada.

 

[11/08/2020 07:20:15] [Error - Action Interface] 
[11/08/2020 07:20:15] data/actions/scripts/tools/ankh.lua:onUse
[11/08/2020 07:20:15] Description: 
[11/08/2020 07:20:15] data/actions/scripts/tools/ankh.lua:2: attempt to call global 'Monster' (a nil value)
[11/08/2020 07:20:15] stack traceback:
[11/08/2020 07:20:15]     data/actions/scripts/tools/ankh.lua:2: in function <data/actions/scripts/tools/ankh.lua:1>

Link para o post
Compartilhar em outros sites

@Lisbeky não testei e fiz um combinado do seu script com esse do vodkart https://tibiaking.com/forums/topic/89379-resolvido-monstro-virando-outro-com-de-vida/?do=findComment&comment=490911

 

troca todo seu script por esse e ve o que acontece

 

local monstro = "Demon"  -- Monstro que irá ser invocado

function onUse(cid, item, fromPosition, itemEx, toPosition)

    if (item.itemid == 2193 and item.actionid == 100) then
        thing = getThingFromPos(toPosition)
        if isMonster(thing.uid) and getCreatureName(thing.uid) == "Phanta" then
            doCreatureSay(thing.uid, "Prepare! The worst has yet to come!", TALKTYPE_ORANGE_1)
            addEvent(doCreateMonster, 3000, monstro, getCreaturePosition(thing.uid))
            addEvent(doRemoveCreature, 3000, thing.uid)
            doRemoveItem(item.uid, 1)
        end
    end

end
Link para o post
Compartilhar em outros sites

@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. :( 

Link para o post
Compartilhar em outros sites

@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:

 

Link para o post
Compartilhar em outros sites

@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)
Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por LasseXeterno
      Então, estou tentando adicionar uma nova "race" no meu Ot de base Cyan, tentei seguir 3 tutoriais aqui do tibiaking, um sobre race, porém nos códigos do meu servidor não tem o constant.h e nem o monster.cpp. E o outro tutorial, eu fiz tudo que ele pediu e quando entrei no game para testar, funcionava os golpes e as imunidades, porém não aparecia o número do dano e nem a cor.  Usei esse tutorial como base: 
      Pois ele é derivado. E o outro tutorial que usei foi: 
      Porém nesse, não consegui achar a const.h, e quando fui nos arquivos do creaturescript e adicionei uma cor nova a "COLOR_FAIRY", quando abro o jogo, os pokemons que seriam teoricamente "fada", o que eu usei de teste foi a Clefable. A Clefable tomava IK e dava IK no seu atk do tipo fada. 
      Além de que, o meu erro principal é esse: Warning - Monsters::loadMonster] Unknown race type fairy. (data/monster/pokes/geracao 1/Clefable.xml)
       Pois como eu já disse, não consigo achar onde adicionar uma nova race.

    • Por yuriowns
      Salve rapazes, tranquilo? Preciso de ajuda pra colocar para os npc's que vendem pots verificarem quantos itens possuem no tile em que o player está e se tiver com +80 itens no sqm, o npc avisa e não vende nada até o player ir em um sqm com menos de 80 itens no chão.
       
    • Por A.Mokk
      .Qual servidor ou website você utiliza como base? 
      TFS 0.4
      Qual o motivo deste tópico? 
      Bom pessoal, a algumas semanas atras eu joguei um servidor que havia sistema de imbuimento sendo 8.60, no servidor se utilizava a spellwand para encantar as armas, os comandos eram dado no canal Imbuiment... Gostaria de saber se alguém teria como disponibilizar algum sistema de imbuimento, já procurei pra caramba aqui no fórum mas tudo que encontro é pra versões acima da que eu uso.
       
    • Por Mateus Robeerto
      Não sei se aqui é a área ou algum local para solicitar a alteração do email antigo... Não lembro mais a senha dele, nem a resposta secreta para acessar. Peço a algum administrador ou moderador para, por favor, alterar o email para o novo.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo