Ir para conteúdo

Sobre Portas ¬¬


ka9

Posts Recomendados

aque está um script que quando mata uma criatura a pedra some...

ae eu colokei assim na criatura no xml

 

<monster name="Demon" level="20" maglevel="20" experience="6000" pushable="0" armor="49" defense="51" canpushitems="1" staticattack="40" changetarget="200" speed="210" script="demonquest.lua">

 

function onMonsterDeath(killer, monster, corpse, damage, totaldamage)

 

wallpos = {x=196, y=150, z=8, stackpos=1}

wall = getThingfromPos(wallpos)

 

if wall.itemid == 1497 then

 

doRemoveItem(wall.uid,1)

doSendMagicEffect(wallpos,2)

 

 

end

return 1

end

 

function onUse(cid, item, frompos, item2, topos)

telpos = {x=196, y=151, z=8, stackpos=253}

wallpos = {x=196, y=150, z=8, stackpos=1}

wall = getThingfromPos(wallpos)

 

if item.uid == 2000 then

queststatus = getPlayerStorageValue(cid,2000)

 

if queststatus == -1 then

doPlayerSendTextMessage(cid,22,'Você achou um Demon Shield.')

doPlayerAddItem(cid,2520,1)

setPlayerStorageValue(cid,2000,1)

doTeleportThing(cid,telpos)

doCreateItem(1497,1,wallpos)

doSendMagicEffect(telpos,13)

else

doPlayerSendTextMessage(cid,22,"Você ja recebeu seu prêmio.")

doTeleportThing(cid,telpos)

doCreateItem(1497,1,wallpos)

doSendMagicEffect(telpos,13)

end

 

return 1

else

return 0

end

end

 

 

agora eu queri quer so passa-se na porta se mata uma criatura tbm thankz

Editado por ka9
Link para o comentário
Compartilhar em outros sites

É o seguinte: vc vai precisar de 2 scripts.O 1º é esse aki ó :

isso vai em data/creaturescripts/scripts

 

function onDeath(cid, corpse, killer)
registerCreatureEvent(cid, "NOME DO EVENTO")   --Dica: coloque por exemplo demon_death
local creaturename = getCreatureName(cid)
local storage = 12345

if creaturename == 'NOME DO BIXO' then
setPlayerStorageValue(cid, storage, 1)
doCreatureSay(cid, "You have killed the guardian. Now you can pass the door.", TALKTYPE_ORANGE_1)
end

return TRUE
end

 

 

no creaturescripts.xml coloca isso:

<event type="death" name="NOME DO BIXO" script="NOME DO EVENTO.lua"/>

 

obs: é recomendado que o nome do arquivo.lua seja igual ao nome do evento

 

 

 

agora o script do chão vai em data/movements/scripts

 

function onStepIn(cid, item, position, fromPosition)

if getPlayerStorageValue(cid,12345) == 1 then
else
dir = getPlayerLookDir(cid)
pos = getCreaturePosition(cid)


if dir == 0 then
newpos = {x=pos.x, y=pos.y+1, z=pos.z}
elseif dir == 2 then
newpos = {x=pos.x, y=pos.y-1, z=pos.z}
elseif dir == 1 then
newpos = {x=pos.x-1, y=pos.y, z=pos.z}
elseif dir == 3 then
newpos = {x=pos.x+1, y=pos.y, z=pos.z}
end

doTeleportThing(cid, newpos, dir)
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Somente jogadores que matarem o guardião podem passar.")
end
end

 

eu preferi colocar como um tile q só passa quem matar o monstro. então coloque o Action ID do tile igual ao storage q vc colocou nos scripts.

 

no movements.xml coloca isso:

<movevent event="StepIn" actionid="12345" script="NOME DO ARQUIVO.lua"/>

 

 

 

onde tem NOME DO EVENTO coloca tipo demon_death. No lugar do 12345 coloca a storage que vc quer. no lugar do NOME DO BIXO coloca o nome certo do bixo que vc quer.

 

 

OBS²: Não testei nada disso. mas provavelmente funciona. e eu sei q ta meio omplicado mas da pra entender...

espero ter ajudado.

flws

Editado por apocarai
Link para o comentário
Compartilhar em outros sites

apocarai

pegou!!!

mais eu quero pela porta certo n pelo tile

pos pela porta eu acho melhor

entao e isso mim ajuda ae

coloke que so passa na porta que mata um determinado monster

flws

Link para o comentário
Compartilhar em outros sites

Olha Pegou quando o player passa pelo tile aparece a mansagem e n passa

 

mais quando vai o monster n passa a inda entao....

 

tem alguma coisa errada

 

mais quando eu abro o serv n aparece nenhum erro

 

ajuda plix ¬¬

Link para o comentário
Compartilhar em outros sites

apocarai esse script da storangevalue ao player que matar o monstro ou o player que atackar o monstro pq se não o player que não matar fica preso =)....

 

Obrigado!

Editado por Khost
Link para o comentário
Compartilhar em outros sites

Olha o PlayerStorageValue é um tipow de amazenamento de dados do player pra ver se Ele fez q quest pra n pega o item de novo e toda hra...

 

entao tem aver com seguintes script

 

actions+creaturescript+quest.xml

 

isso que eu sei e o que deve fazeer

 

aki esta um SS 1 do ot que eu jogo e tem isso na quest log olha

http://img44.imageshack.us/i/imagem3123.png/

 

SS 2

http://img294.imageshack.us/i/imagemays.png/

 

 

fiz esse script ta pegando e aparecendo o msg quando eu cliko na porta

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

 

if item.itemid == 5123 then

queststatus = getPlayerStorageValue(cid,41610)

if queststatus == -1 then

doPlayerSendTextMessage(cid,22,"Você não completou essa missão da Inquisition Quest.")

 

else

doTransformItem(item.uid, item.itemid + 1)

doTeleportThing(cid, toPosition, TRUE)

end

return TRUE

end

return FALSE

end

Editado por ka9
Link para o comentário
Compartilhar em outros sites

os storage values tão certos? tem q estar igual o dos dois scripts

 

edited

 

ve se agora vai. eu tirei o "isPlayer(cid)". n sei se muda algo mas tenta ae.

Editado por apocarai
Link para o comentário
Compartilhar em outros sites

Bom a unica coisa q ta errada eh o script de morte.Ao inves do script q ele te deu, use este:

 

function onDeath(cid, corpse, lastHitKiller, mostDamageKiller)

queststatus = getPlayerStorageValue(mostDamageKiller, STORAGEDAQUEST)

local creaturename = getCreatureName(cid)

if queststatus == 1 then

doPlayerSendTextMessage(cid, 22, "Voce ja fez essa quest")

elseif queststatus == -1 then

 

if creaturename == 'NOMEDOMONSTRO' then

if(isPlayer(mostDamageKiller) == TRUE) then

setPlayerStorageValue(mostDamageKiller,STORAGEDAQUEST, 1)

doPlayerSendTextMessage(mostDamageKiller, 22, "Voce ja pode passar pela porta")

else

end

end

end

end

 

Ai vai no monstro e cole isto:

 

<script> <event name="NOMEDOEVENTOPOSTONOCREATURES.XML"/> </script>

 

Entao é isso, espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...