KE
pedido

Matar Boos e aparecer um buero na position X

Por KennyConrad, 21 de set. de 2013 em Scripts

resolvido
script
16
1.3k
KennyConradK
21 de setembro de 2013 às 17:56

Pedido pra quando matarem o Boos Deathstrike ser criado um buero na Position: [X: 202] [Y: 1224] [Z: 12].

 

@Edit

 

achei esse script aki feito pelo Vodkart e estou tentando editar ele alguem pode me ajudar porque não estou entendo ele direito =(

 

 

function onDeath(cid, corpse, killer)
 
local M ={
["deathstrike"] = {Pos = {x=202,y=1224,z=12},id= 430 ,time = 1800},
}
 
local x = M[getCreatureName(cid)]
function criar()
local parede = getTileItemById(x.Pos, x.id)
doRemoveItem(x.id, 1, x.Pos)
end
if x then
local parede = getTileItemById(x.Pos, x.id)
if parede then
doCreateItem(parede.uid, 1)
addEvent(criar, x.time*1000)
end
end
return TRUE
end

Editado Setembro 21 por KennyxD

ikaroangeloI
21 de setembro de 2013 às 17:58

vá em creaturescripts --> scripter e crie um arquivo chamado tp.lua
local tpId = 1387
local tps = {
["Orshabaal"] = {pos = {x=761, y=57, z=7}, toPos = {x=767, y=52, z=7}, time = 30},
}

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

function onDeath(cid)
local tp = tps[getCreatureName(cid)]
if tp then
doCreateTeleport(tpId, tp.toPos, tp.pos)
doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1)
addEvent(removeTp, tp.time*1000, tp)
end
return TRUE
end
explicação:

["Orshabaal"] --------- Nome do monstro
pos = {x=761, y=57, z=7} ----------- onde o Teleport irá abrir
toPos = {x=767, y=52, z=7} ------- onde o teleport vai leva eles
time = 30 ------------ tempo em segundos que o teleport ficará aberto

em creaturescript adicione:

<event type="death" name="tp" event="script" value="tp.lua"/>
no arquivo.xml do seu monstro adicione:

<script>
<event name="tp"/>
</script>
Nome do monstro deve ser colocado com Letra Maiuscula. exemplo: Demon,Hydra!
se ajudei REP+

Editado Setembro 21 por ikaroangelo

KennyConradK
21 de setembro de 2013 às 18:03

ta errado =( não quero que abra um teleport quero que crie o item 430 que no caso é o buero na Position: [X: 202] [Y: 1224] [Z: 12].

Editado Setembro 21 por KennyxD

ikaroangeloI
21 de setembro de 2013 às 18:09

so e trocar o 1387 por 430!

KennyConradK
21 de setembro de 2013 às 18:17

so e trocar o 1387 por 430!

acho que não =( acho que assim iria dar erro e também quero que o boos dê loot normal e não o corpo dele vira o buero.

 

Galera peguei esse script aki do vodkart e to tentando editar ele alguem pode me ajudar ?

 

 

function onDeath(cid, corpse, killer)
 
local M ={
["deathstrike"] = {Pos = {x=202,y=1224,z=12},id= 430 ,time = 1800},
}
 
local x = M[getCreatureName(cid)]
function criar()
local parede = getTileItemById(x.Pos, x.id)
doRemoveItem(x.id, 1, x.Pos)
end
if x then
local parede = getTileItemById(x.Pos, x.id)
if parede then
doCreateItem(parede.uid, 1)
addEvent(criar, x.time*1000)
end
end
return TRUE
end
lovenina12L
21 de setembro de 2013 às 20:49

tenta esse aki mais simplificado =p

 

 

function onDeath(cid, corpse, killer)

local nome = "deathstrike" -- nome do monstro
local pos = {x=202,y=1224,z=12} -- posicao de onde sera criado o bueiro
local id = 430 -- id do bueiro

if getCreatureName(cid) == nome then
doCreateItem(id, pos)
end

end

KennyConradK
21 de setembro de 2013 às 22:09

 

tenta esse aki mais simplificado =p

 

 

function onDeath(cid, corpse, killer)

 

local nome = "deathstrike" -- nome do monstro

local pos = {x=202,y=1224,z=12} -- posicao de onde sera criado o bueiro

local id = 430 -- id do bueiro

 

if getCreatureName(cid) == nome then

doCreateItem(id, pos)

end

 

end

 

Não deu certo =( testei e não deu erro no console + quando o boos foi morto simplesmente ele desapareceu nen apareceu mensagem do lot dele nen o corpo dele e nada do buero aparecer também.

lovenina12L
21 de setembro de 2013 às 22:32

bug resolvido, leia meu ultimo comentario!

 

outra coisa: o nome tem que ser sertinho, com maiusculas e minusculas la no name = deathstrike tem que ser Deathstrike com D maiusculo pq e assim o nome dele

Editado Setembro 21 por ProfissaoPK

KennyConradK
21 de setembro de 2013 às 22:36

na verdade eu coloquei as 2 tags ah no creaturescripts e a no monstro também

 

 

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

 

 

<script>
<event name="deathstrike"/>
</script>
@edit fiz oque você falo modifikei as minhas tags elas suas e renomeie o arquivo e deu a mesma coisa que falei antes na hora que o boos vai morrer nen aparece a mensagem do lot dele, não aparece o corpo dele e nada de buero também. e não deu nenhum erro no console.

Editado Setembro 21 por KennyxD

lovenina12L
21 de setembro de 2013 às 22:40

voce tem teamviewer? ou skype =p

Editado Setembro 21 por ProfissaoPK

KennyConradK
21 de setembro de 2013 às 22:44

tenhu skype

 

Kenny Conrad

 

qual o seu skype ?

 

creio que não sou eu que estou fazendo errado e sim o erro é realmente no script devido que se não o boos iria morrer normalmente e aparecer o corpo dele mais nen isso ta aparecendo

 

OBS: quando matar o Boos é pro boos dropar lot normalmente não quero que o corpo dele some.

lovenina12L
21 de setembro de 2013 às 22:45

mano, foi mal por fazer posts inultil no topico, ainda mais esse, mais entra aki: falecomangel.servegame.com,

o meu skype e hax.or

Editado Setembro 21 por ProfissaoPK

MaenilseM
21 de setembro de 2013 às 23:00

trocou

<event name="deathstrike"/>

por?

<event name="Bueiro"/>

@PS: outro detalhe, check se adcionou a tag no login.lua tbm.

 

registerCreatureEvent(cid, "Bueiro")

Editado Setembro 21 por Maenilse

lovenina12L
21 de setembro de 2013 às 23:47

@EDIT

 

agora sim! so que ta um cu pra add loot, add a linha do script la no monster e o script fica assim

 

 

function onDeath(cid, corpse, killer)

local nome = "Deathstrike" -- nome do monstro
local pos = {x=194,y=58,z=7} -- posicao de onde sera criado o bueiro
local id = 430 -- id do bueiro

local pcrandom = math.random(1, 3)
local gprandom = math.random(1, 70)

if getCreatureName(cid) == nome then
doCreateItem(id, pos)
local corpo = doCreateItem(3058, getCreaturePosition(cid))
local pc = doAddContainerItem(corpo, 2152, pcrandom)
local gc = doAddContainerItem(corpo, 2148, gprandom)
if math.random(1, 100) <= 50 then
doAddContainerItem(corpo, 2455, 1)
end
if math.random(1, 100) <= 25 then
doAddContainerItem(corpo, 8851, 1)
end
end

-- pra add um novo loot :

-- if math.random(1, 100) <= CHANCE EM PORCENTAGEM then

-- doAddContainerItem(corpo, ID DO LOOT, 1)

-- end

end

Editado Setembro 22 por ProfissaoPK

KennyConradK
22 de setembro de 2013 às 00:15

eu nao add nenhuma linha no login.lua e ta funfando perfeitamente aki no meu ot!

tai como eu dise la no server

 

function onDeath(cid, corpse, killer)

 

local nome = "Deathstrike" -- nome do monstro

local pos = {x=194,y=50,z=7} -- posicao de onde sera criado o bueiro

local id = 430 -- id do bueiro

 

if getCreatureName(cid) == nome then

doCreateItem(id, pos)

end

 

end

nao precisou mudar nada pelo que eu saiba alem do D la do deathstrike =)

 

Funciono vlw + falta arrumar pro boos dar Lot e não sumir o corpo =(

resolvido, podem mover o topico.