Jump to content
Close
greeneyzer

Normal Como remover uma parede após matar um boss

Recommended Posts

Fala galera, minha duvida é o seguinte, gostaria que após um boss for morto uma parede é removida liberando acesso a um teleport, porém não gostaria que fosse temporário, se qualquer player matar o boss a parece some para todos e enquanto o server estiver onn o teleport fica disponível para todos. alguém sabe me informar se isso é possível? grato desde já.


Share this post


Link to post
Share on other sites

Este tópico foi movido para a área correta. Esta é uma mensagem automática!
Pedimos que leia as regras do fórum!

Spoiler

This topic has been moved to the correct area. This is an automated message!
Please read the forum rules.

 



vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

Dota System 8.6 Com Buffs Automáticos + MAPA (100%) - PVP

Link para Downloadhttps://www.4shared.com/rar/SMta8CQ8fi/Dota_Venda.html?

[+]--------------------------------------[+]-------------------------------------------[+]

 

DISCORDvodkart#6090

 

Share this post


Link to post
Share on other sites

adaptar ou refazer do 0? preciso de um evento que não vá tempo, o boss morreu a parede é aberta, sem restrição de tempo. não irei criar um teleport, cimplesmente uma parede de um lugar do mapa some, só isso.

ja tentei fazer de diversas formas, e em todas nao funciona. essa funçao é uma mas mais necessárias devido a ideia do projeto do ot, sem isso nao tem como prosseguir.

function onKill(cid, target, lastHit)
	piece1pos = {x=4936, y=4952, z=7, stackpos=1}
local tempo = 2*60*1000 -- tempo para parede voltar
getpiece1 = getThingfromPos(piece1pos)
if getpiece1.uid == 12353 and getpiece1.itemid == 1546 then
doRemoveItem(getpiece1.uid,1)
doPlayerSendTextMessage(cid,22,"acho que ouvi um barulho, uma passagem deve ter se aberto.")
addEvent(doCreateItem, tempo, 1546, piece1pos)
else
doPlayerSendTextMessage(cid,22,"Não é possivel realizar esta ação.")
end
return 1
end

 


Share this post


Link to post
Share on other sites

Adaptar. Era só ter pego a função de deletar o teleport e configurar o resto.

Spoiler

local conf = {
	monster_name = "Boss Fulano",
	wall_position = {x = 1000, y = 1000, z = 7},
	wall_id = 9999
}

function onKill(cid, target, lastHit)
	if(isMonster(target) and getCreatureName(target) == conf.monster_name) then
		local wall = getTileItemById(conf.wall_position, conf.wall_id) -- POS, ITEMID
		if(wall.uid ~= 0) then
			doRemoveItem(wall.uid)
		end
	end
	
	return true
end

 

 


Edited by MaTTch (see edit history)

Share this post


Link to post
Share on other sites

Em creaturescript/scripts crie um arquivo chamado removewall.lua e coloque dentro:

function onDeath(cid, corpse, killer)

local M ={
["rat"] = {Pos = {x=177,y=40,z=7},id= 1058 ,time = 20},
["necromancer"] = {Pos = {x=173, y=40, z=7},id= 10196 ,time = 10},
}

local x = M[getCreatureName(cid)]
function criar()
local parede = getTileItemById(x.Pos, x.id)
doCreateItem(x.id, 1, x.Pos)
end
if x then
local parede = getTileItemById(x.Pos, x.id)
if parede then
doRemoveItem(parede.uid, 1)
doCreatureSay(cid, "A parede Será criada Novamente em "..x.time.." segundos.", TALKTYPE_ORANGE_1)
addEvent(criar, x.time*1000)
end
end
return TRUE
end

Agora em creaturescript.xml adicione a tag:

<event type="death" name="removeall" event="script" value="removeall.lua">

Agora no arquivo XML do seu mosntro coloque:
 

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

A script ja estava aqui no forum, bastava procurar direito.



Talvez você queira ver:

BestBaiak

[FAQ]Remere's Map Editor - Dúvidas e soluções de bugs 

 

Contato:

1.png.dadb3fc3ee6ffd08292705b6a71e3d88.png Discord: Werner#2974

Share this post


Link to post
Share on other sites
1 hora atrás, greeneyzer disse:

irei testar e digo se conseguir. mas muito obg pelo auxilio desde já.

faltou colocar um "w" nas partes da script que estão escrito "removeall" (deve deixar escrito "removewall")



Talvez você queira ver:

BestBaiak

[FAQ]Remere's Map Editor - Dúvidas e soluções de bugs 

 

Contato:

1.png.dadb3fc3ee6ffd08292705b6a71e3d88.png Discord: Werner#2974

Share this post


Link to post
Share on other sites
Em 19/01/2018 em 20:24, Werner disse:

Em creaturescript/scripts crie um arquivo chamado removewall.lua e coloque dentro:


function onDeath(cid, corpse, killer)

local M ={
["rat"] = {Pos = {x=177,y=40,z=7},id= 1058 ,time = 20},
["necromancer"] = {Pos = {x=173, y=40, z=7},id= 10196 ,time = 10},
}

local x = M[getCreatureName(cid)]
function criar()
local parede = getTileItemById(x.Pos, x.id)
doCreateItem(x.id, 1, x.Pos)
end
if x then
local parede = getTileItemById(x.Pos, x.id)
if parede then
doRemoveItem(parede.uid, 1)
doCreatureSay(cid, "A parede Será criada Novamente em "..x.time.." segundos.", TALKTYPE_ORANGE_1)
addEvent(criar, x.time*1000)
end
end
return TRUE
end

Agora em creaturescript.xml adicione a tag:


<event type="death" name="removeall" event="script" value="removeall.lua">

Agora no arquivo XML do seu mosntro coloque:
 


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

A script ja estava aqui no forum, bastava procurar direito.

Consegui adaptar esse script para que ficasse funcional no meu ot, muito obg mesmo! Meu code ficou assim:

function onDeath(cid, corpse, killer)

local M ={
["Minork"] = {Pos = {x=4936,y=4951,z=7},id= 1546,Poss = {x=4936,y=4952,z=7} },
}
local tpId = 5023
local tps = {
        ["Minork"] = {pos = {x=4946, y=4919, z=7}, toPos = {x=4935, y=4950, z=7}, time = 50},
}


local x = M[getCreatureName(cid)]
function criar()
local parede = getTileItemById(x.Pos, x.id)
doCreateItem(x.id, 1, x.Pos)
end

function removeTp(tp)
        local t = getTileItemById(tp.pos, tpId)
        if t then
                doRemoveItem(t.uid, 1)
                doSendMagicEffect(tp.pos, CONST_ME_POFF)
        end
end

if x then
local parede = getTileItemById(x.Pos, x.id)
parede2 = getTileItemById(x.Poss, x.id)
tppos = {x=4946, y=4919, z=7}
tptoPos = {x=4935, y=4950, z=7}
tpId = 5023
if parede and parede2 then
doRemoveItem(parede.uid, 1)
doRemoveItem(parede2.uid, 1)
local tp = tps[getCreatureName(cid)]
        if tp then
                doCreateTeleport(tpId, tp.toPos, tp.pos)
                doCreatureSay(cid, "O teleport vai sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1)
				doBroadcastMessage("Minork foi derrotado, as grades que os mantia preso agora foram derrubadas, oferecendo novas oportunidades e novos horizontes.", MESSAGE_INFO_DESCR)
                addEvent(removeTp, tp.time*1000, tp)
        end
end
end


return TRUE
end

E eu procurei bastante no forum, mas nao havia encontrado nada semelhante, sei programar em linguagens como java, C, xml, html e afins, mas nunca tinha visto lua, parece um pouco com XML, mas nao consegui pegar ainda como funciona as funções ja criadas nos OTs, se os dados que retornam delas são booleanos, inteiros enfim eu ainda estou muito confuso quanto as funções LUA utilizadas nos ots, se houver algum tutorial ou algo que auxilie melhor por favor me diga onde encontrar. desde já muito grato! ajudou bastante.


Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

×
×
  • Create New...