Ir para conteúdo

Matar Monstro Abrir Tp, Remover Parede, Ganhar Storage


Vodkart

Posts Recomendados

Creditos:

Vodkart

Kydrai

 

fala galerinha resolvi posta alguns script que acontece quando o player mata algum monstro ...

 

o primeiro é o script que acontece quando voce mata um Monstro abre o teleport.

o segundo é matar o monstro e sumir a parede por algum tempo.

 

Obs: o Nome do monstro deve ser colocado com Letra Maiuscula.

 

certo:

Demon

errado:

demon

 

[ Matar monstro e abrir Teleport ]

creaturescript\script

 

 

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>

 

 

 

 

 

[ Matar Monstro e parede sumir por determinado tempo ]

 

creaturescript\script

 

 

removewall.lua

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

 

em creaturescript.xml adicione a tag:

 

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

 

No arquivo Xml do seu monstro adicione

 

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

 

 

[ Matar Monstro e ser teleportado ]

 

 

 

teleportmon.lua

 

[/b][b]function onDeath(cid, corpse, killer)[/b]
[b]local Ppos = {x = 160, y = 54, z = 7} -- posicao para onde ele vai ir
local monstName = "Rat"  -- nome do monstro				
if isMonster(cid) and string.lower(getCreatureName(cid)) == string.lower(monstName) then
if isInParty(killer[1]) == TRUE then
local players = getPartyMembers(getPartyLeader(killer[1]))
for i, k in ipairs(players) do
doTeleportThing(k, Ppos)
end
else
doTeleportThing(killer[1], Ppos)
end  
end
	return TRUE
end

 

 

em creaturescript.xml adicione a tag:

 

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

 

 

No arquivo Xml do seu monstro adicione

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

 

 

 

 

 

[ Matar Monstro e Ganhar Storage ]

 

 

 

StorageMonster.lua

function onDeath(cid, corpse, killer)
local monstName = "Demon" -- nome do monstro
local Storage = 11543 -- storage que o jogador ira ganhar	  
if isMonster(cid) and string.lower(getCreatureName(cid)) == string.lower(monstName) then
doCreatureSay(cid, "Você ganhou acesso para uma Secret Quest.", TALKTYPE_ORANGE_1)
if isInParty(killer[1]) == TRUE then
local players = getPartyMembers(getPartyLeader(killer[1]))
for i, k in ipairs(players) do
		   setPlayerStorageValue(k, Storage, 1)
end
else
setPlayerStorageValue(killer[1], Storage, 1)
end  
end
return TRUE
end

 

 

em creaturescript.xml adicione a tag:

 

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

 

 

No arquivo Xml do seu monstro adicione

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

 

 

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

  • 1 month later...

@UP

 

8.7 é?

eu Testei em servidores 8.54 + incluindo o mais novo (8.60)

e funcionou perfeitamente

é porque você está fazendo alguma coisa errada

 

a tag do monstro deve ficar embaixo do </loot>

 

e o loot do monstro aparece normalmente...

 

aqui darei um exemplo no demon:

 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
 <health now="8200" max="8200"/>
 <look type="35" corpse="5995"/>
 <targetchange interval="5000" chance="8"/>
 <strategy attack="90" defense="10"/>
 <flags>
   <flag summonable="0"/>
   <flag attackable="1"/>
   <flag hostile="1"/>
   <flag illusionable="0"/>
   <flag convinceable="0"/>
   <flag pushable="0"/>
   <flag canpushitems="1"/>
   <flag canpushcreatures="1"/>
   <flag targetdistance="1"/>
   <flag staticattack="90"/>
   <flag runonhealth="0"/>
 </flags>
 <attacks>
   <attack name="melee" interval="2000" skill="100" attack="110"/>
   <attack name="manadrain" interval="2000" chance="13" range="7" min="0" max="-120"/>
   <attack name="fire" interval="2000" chance="30" range="7" radius="7" target="1" min="-150" max="-250">
	<attribute key="shootEffect" value="fire"/>
	<attribute key="areaEffect" value="firearea"/>
</attack>
   <attack name="firefield" interval="2000" chance="12" range="7" radius="1" target="1">
	<attribute key="shootEffect" value="fire"/>
</attack>
   <attack name="lifedrain" interval="1000" chance="12" length="8" spread="0" min="-300" max="-467">
	<attribute key="areaEffect" value="purpleenergy"/>
</attack>
<attack name="speed" interval="2000" chance="15" target="1" speedchange="-750" duration="30000">
	<attribute key="shootEffect" value="suddendeath"/>
</attack>
<attack name="energy" interval="3000" chance="10" range="1" target="1" min="-210" max="-300">
	<attribute key="areaEffect" value="purpleenergy"/>
</attack>
 </attacks>
 <defenses armor="55" defense="55">
   <defense name="healing" interval="2000" chance="15" min="130" max="240">
     <attribute key="areaEffect" value="blueshimmer"/>
   </defense>
<defense name="speed" interval="1000" chance="8" speedchange="290" duration="5000">
     <attribute key="areaEffect" value="redshimmer"/>
   </defense>
 </defenses>
<elements>
	<element physicalPercent="30"/>
	<element energyPercent="50"/>
	<element earthPercent="20"/>
	<element icePercent="-15"/>
	<element holyPercent="-15"/>
	<element deathPercent="20"/>
</elements>
 <immunities>
   <immunity fire="1"/>
   <immunity drown="1"/>
   <immunity paralyze="1"/>
   <immunity invisible="1"/>
 </immunities>
 <summons maxSummons="1">
   <summon name="fire elemental" interval="1000" chance="12"/>
 </summons>
 <voices interval="5000" chance="10">
   <voice sentence="MUHAHAHAHA!" yell="1"/>
   <voice sentence="I SMELL FEEEEEAAAR!" yell="1"/>
   <voice sentence="CHAMEK ATH UTHUL ARAK!" yell="1"/>
   <voice sentence="Your resistance is futile!"/>
   <voice sentence="Your soul will be mine!" yell="0"/>
 </voices>
 <loot>
	<item id="2148" countmax="100" chance1="100000" chancemax="0"/> -- gold coins
	<item id="2148" countmax="100" chance1="100000" chancemax="0"/> -- gold coins
<item id="2152" countmax="3" chance1="33333" chancemax="2000"/> --Plat
	<item id="2514" chance="1900"/> --mastermind shield
	<item id="2472" chance="200"/> --magic plate armor
<item id="2795" countmax="6" chance1="7500"/> --Fire Mushroom
	<item id="5906" countmax="1" chance="2000"/> -- demon dust
<item id="5954" countmax="1" chance="2345"/> -- demon horn
   <item id="2164" chance="2100"/> --might ring
   <item id="2176" chance="3500"/> --orb
<item id="1982" chance="1300"/> --purpel tome
   <item id="2165" chance="2300"/> --stealth ring
<item id="7591" chance="4500"/> -- GHP
	<item id="1987" chance="100000">
	<inside>
	 	<item id="2393" chance="3800"/> --giantsword
	 	<item id="2432" chance="3800"/> --fire axe
	        <item id="2112" chance="4100"/> --addon doll
		<item id="2396" chance="2600"/> --ice rapier
		<item id="2179" chance="1100"/> --golden ring
		<item id="2795" countmax="6" chance1="13000"/> --fire mushroom
		<item id="2678" countmax="3" chance1="10000" chancemax="0"/> --coconut
		<item id="2148" countmax="100" chance1="100000" chancemax="0"/> -- gold coin
		<item id="2151" countmax="4" chance1="5500" chancemax="0"/>
		<item id="2462" chance="3200"/> --devil helmet
		<item id="2149" countmax="3" chance1="11000" chancemax="0"/>
		<item id="2171" chance="2200"/> --platinum amulet
		<item id="2387" chance="32000"/> --double axe
		<item id="2470" chance="1350"/> --golden legs
		<item id="7382" chance="300"/> -- Demonrage Sword
		<item id="7393" chance="1700"/> -- Demon Trophy
		<item id="2520" chance="3100"/> --demon shield
		<item id="2418" chance="1500"/> --golden sickle
		<item id="2377" chance="6666"/> --two-handed sword
	</inside>
	</item>
</loot>
<script>
<event name="tp"/>
</script>
</monster>

 

 

 

 

 

 

@Topic

 

Novo script adicionado

 

"Matar Monstro e ser teleportado"

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

  • 2 weeks later...
  • 7 months later...

function onDeath(cid, corpse, killer)

local monstName = "Onixgym" -- nome do monstro
local Storage = 987877 -- storage que o jogador ira ganhar

        if isMonster(cid) then
           if string.lower(getCreatureName(cid)) == string.lower(monstName) then
              setPlayerStorageValue(killer[1], Storage, 1)
              doCreatureSay(cid, "Você ganhou acesso para uma Secret Quest.", TALKTYPE_ORANGE_1)
           end   
        end 
return TRUE
end

 

Vodkart...

 

To usando um server de pokemon,onde quem mata o monstro é o summon (pokemon)

Tem como fazer com que o player ganhe a storage ao inves do summon?

Link para o comentário
Compartilhar em outros sites

Ou vodkart um pequeno erro(english)

 

tipow, vc esta falando para criar um arquivo lua removewall.lua <<<<<<<

mais na tag vc fala <event type="death" name="removeall" event="script" value="removeall.lua"/>

sem o w e a tag do monstro tbm sem o w

 

acho que é um erro mais se for assim msm ignora a msg ;s

Link para o comentário
Compartilhar em outros sites

uhuahauahuaua

tanto faz mesmo,poderia ser trocado o nome do script pra qualquer um

eu tinha colocado "all" porque eu tava testando com varios itens e não só a parede :p

mais vlw

abraços

Link para o comentário
Compartilhar em outros sites

uhuahauahuaua

tanto faz mesmo,poderia ser trocado o nome do script pra qualquer um

eu tinha colocado "all" porque eu tava testando com varios itens e não só a parede :p

mais vlw

abraços

Vodkart, nao sei se voce sabe ou se existe algum script,que o player só possa abrir a porta (door) se ele matar o monstro!

existe?

se existir por favor me ajude

Link para o comentário
Compartilhar em outros sites

sim,vc usar o script que quando matar o monstro da storage certo?

ai a porta vc poe pra passar soh quem tem essa storage (:

bjs

Valew vou ver se consigo fazer funcionar.

mais uma coisa, eu fiz uma quest e eu precisaria do script que a parede some, botei no primeiro monstro e funciono,so que qnd fui fazer no segundo monstro naum deu, só deu a mensagem e a parede nao sumiu!

Link para o comentário
Compartilhar em outros sites

acho que você teria que criar um outro script,vo ve se atualizo o script

jaja eu edito o topico

bjs

 

--EDITED

 

pronto script editado,só aproveitar xd

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

×
×
  • Criar Novo...