Jump to content

[SIMPLE] Battle Dungeon - Player X Monster


Recommended Posts

 

Sistema SIMPLES de Dungeon, o player entra no teleport e é criado alguns monstros para o jogador matar dentro de um  tempo de 30 segundos, se ele matar todos os monstro no tempo  ele recebe a recompensa em Exp e Gold, se ele não matar todos ele volta para o templo e da a chance de outro jogador entrar na Dungeon.

 

Testado: Snowz Thyranic 3.1 [Especial Edition] (8.6)

 

Em movements crie um arquivo do teleport da dungeon e adicione:

function onStepIn(cid, item, position, fromPosition)
local config = {
 posdung = {x=317, y=120, z=7}, -- poss da arena
 str = 15281, -- não mexer
 storage = 98551, -- não mexer
 tempo = 30, 
 tempoarena = 30000, -- tempo que ele tem para terminar a arena 30000 = 30s 
 monsterum = "Dragon" -- primeiro monstro que vai ser criado quando o player entrar na arena
 }

local posstemplo = {x=63, y=42, z=7}           
          
		function Tp()
			if isCreature(cid) then
			doTeleportThing(cid, posstemplo)
		end
			return true
		end

	function Str()
		if isCreature(cid) then
		setPlayerStorageValue(cid,config.storage, 0)
	end
		return true
end

	function deletamonstro()
	local spec = getSpectators(config.posdung, 10, 10)  
		if spec ~= nil then
		for _, s in pairs(spec) do
        if isMonster(s) then
        doRemoveCreature(s)
    end
     end
end
end

			   
	for _, player in pairs(getPlayersOnline()) do
	
						   
		if getPlayerStorageValue(player, config.str) >= os.time() then
		doTeleportThing(player, fromPosition)
		doPlayerSendTextMessage(cid, 22, "Já existe player em batalha!")
					
		elseif getPlayerStorageValue(player, config.str) < os.time() then
		setPlayerStorageValue(cid, config.str, os.time() + config.tempo)
		doTeleportThing(cid, config.posdung)
		doSendMagicEffect(getThingPos(cid), 10)
		doCreateMonster(config.monsterum, getThingPos(cid))
		addEvent(Tp, config.tempoarena)
		addEvent(Str, config.tempoarena)
		addEvent(deletamonstro, config.tempoarena)
break
end
	end
			
end
<movevent type="StepIn" actionid="2569" event="script" value="arquivo.lua"/>

CreatureScripts crie um arquivo lua e adicione :

local monster = {  --- tabela de monstro, se quiser adicionar mais e so adicionar na tabela
[1] = "Dragon",
[2] = "Dragon Lord",
[3] = "Hydra",
[4] = "Demon",
}
local config = { 
posstemplo = {x=63, y=42, z=7}, -- poss aonde o player vai ser enviado quando terminar ou se falhar
storage = 98551, -- não mexa
premioexp = 800000, -- tanto de exp que o player vai ganhar
quant = 1000000, --- quantidade de dinheiro que vai ganhar
}

 
function onDeath(cid, corpse, deathList, target)
 
	local storage_value = getPlayerStorageValue(deathList[1], config.storage) < 1 and 1 or getPlayerStorageValue(deathList[1], config.storage)
	local new_value = storage_value + 1
 
		if getCreatureName(cid) == monster[storage_value] then
		setPlayerStorageValue(deathList[1], config.storage, new_value)
		doSendMagicEffect(getPlayerPosition(deathList[1]), 12)
		doCreatureSay(cid, 'Fight', TALKTYPE_MONSTER)
		
		if new_value > #monster then
        doPlayerSendTextMessage(deathList[1], 22, "Completa!")
		doPlayerAddMoney(deathList[1], config.quant)
		doPlayerAddExp(deathList[1], config.premioexp)
		doTeleportThing(deathList[1], config.posstemplo)
		doSendMagicEffect(getThingPos(cid), 10)
    else
        doCreateMonster(monster[new_value], getThingPos(cid))
    end
end
 
 
end
<event type="death" name="dungeon" event="script" value="arquivo.lua"/> 

Adicione dentro do arquivo de cada monstro que vai ter na dungeon :

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


Configurando :

Em movements você adiciona a poss da dungeon

posdung = {x=317, y=120, z=7}, -- poss da arena

Aqui você adiciona o primeiro monstro da dungeon 

 monsterum = "Dragon" -- primeiro monstro que vai ser criado quando o player entrar na arena

Em creaturescript você adiciona a poss do templo aonde o player vai aparecer quando finalizar a dungeon

posstemplo = {x=63, y=42, z=7}, -- poss aonde o player vai ser enviado quando terminar

E aqui os monstros que vai ter na dungeon

local monster = {  --- tabela de monstro, se quiser adicionar mais e so adicionar na tabela
[1] = "Dragon",
[2] = "Dragon Lord",
[3] = "Hydra",
[4] = "Demon",
}

Dentro da sala da dungeon coloque ANT-LOGOUT pelo mapa editor, para evitar de jogadores fazer logout dentro da dungeon.

Edited by Kuro o Shiniga
Link to comment
Share on other sites

7 horas atrás, Kuro o Shiniga disse:

 

Sistema SIMPLES de Dungeon, o player entra no teleport e é criado alguns monstros para o jogador matar dentro de um  tempo de 30 segundos, se ele matar todos os monstro no tempo  ele recebe a recompensa em Exp e Gold, se ele não matar todos ele volta para o templo e da a chance de outro jogador entrar na Dungeon.

 

Testado: Snowz Thyranic 3.1 [Especial Edition] (8.6)

 

Em movements crie um arquivo do teleport da dungeon e adicione:


function onStepIn(cid, item, position, fromPosition)
local config = {
 posdung = {x=317, y=120, z=7}, -- poss da arena
 str = 15281, -- não mexer
 storage = 98551, -- não mexer
 tempo = 30, 
 tempoarena = 30000, -- tempo que ele tem para terminar a arena 30000 = 30s 
 monsterum = "Dragon" -- primeiro monstro que vai ser criado quando o player entrar na arena
 }

local posstemplo = {x=63, y=42, z=7} 
local hora = tonumber(os.date("%H"))           
          
		function Tp()
			if isCreature(cid) then
			doTeleportThing(cid, posstemplo)
		end
			return true
		end

	function Str()
		if isCreature(cid) then
		setPlayerStorageValue(cid,config.storage, 0)
	end
		return true
end

	function deletamonstro()
	local spec = getSpectators(config.posdung, 10, 10)  
		if spec ~= nil then
		for _, s in pairs(spec) do
        if isMonster(s) then
        doRemoveCreature(s)
    end
     end
end
end

			   
	for _, player in pairs(getPlayersOnline()) do
	
						   
		if getPlayerStorageValue(player, config.str) >= os.time() then
		doTeleportThing(player, fromPosition)
		doPlayerSendTextMessage(cid, 22, "Já existe player em batalha!")
					
		elseif getPlayerStorageValue(player, config.str) < os.time() then
		setPlayerStorageValue(cid, config.str, os.time() + config.tempo)
		doTeleportThing(cid, config.posdung)
		doSendMagicEffect(getThingPos(cid), 10)
		doCreateMonster(config.monsterum, getThingPos(cid))
		addEvent(Tp, config.tempoarena)
		addEvent(Str, config.tempoarena)
		addEvent(deletamonstro, config.tempoarena)
break
end
	end
			
end

<movevent type="StepIn" actionid="2569" event="script" value="arquivo.lua"/>

CreatureScripts crie um arquivo lua e adicione :


local monster = {  --- tabela de monstro, se quiser adicionar mais e so adicionar na tabela
[1] = "Dragon",
[2] = "Dragon Lord",
[3] = "Hydra",
[4] = "Demon",
}
local config = { 
posstemplo = {x=63, y=42, z=7}, -- poss aonde o player vai ser enviado quando terminar ou se falhar
storage = 98551, -- não mexa
premioexp = 800000, -- tanto de exp que o player vai ganhar
quant = 1000000, --- quantidade de dinheiro que vai ganhar
}

 
function onDeath(cid, corpse, deathList, target)
 
	local storage_value = getPlayerStorageValue(deathList[1], config.storage) < 1 and 1 or getPlayerStorageValue(deathList[1], config.storage)
	local new_value = storage_value + 1
 
		if getCreatureName(cid) == monster[storage_value] then
		setPlayerStorageValue(deathList[1], config.storage, new_value)
		doSendMagicEffect(getPlayerPosition(deathList[1]), 12)
		doCreatureSay(cid, 'Fight', TALKTYPE_MONSTER)
		
		if new_value > #monster then
        doPlayerSendTextMessage(deathList[1], 22, "Completa!")
		doPlayerAddMoney(deathList[1], config.quant)
		doPlayerAddExp(deathList[1], config.premioexp)
		doTeleportThing(deathList[1], config.posstemplo)
		doSendMagicEffect(getThingPos(cid), 10)
    else
        doCreateMonster(monster[new_value], getThingPos(cid))
    end
end
 
 
end

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

Adicione dentro do arquivo de cada monstro que vai ter na dungeon :


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


Configurando :

Em movements você adiciona a poss da dungeon


posdung = {x=317, y=120, z=7}, -- poss da arena

Aqui você adiciona o primeiro monstro da dungeon 


 monsterum = "Dragon" -- primeiro monstro que vai ser criado quando o player entrar na arena

Em creaturescript você adiciona a poss do templo aonde o player vai aparecer quando finalizar a dungeon


posstemplo = {x=63, y=42, z=7}, -- poss aonde o player vai ser enviado quando terminar

E aqui os monstros que vai ter na dungeon


local monster = {  --- tabela de monstro, se quiser adicionar mais e so adicionar na tabela
[1] = "Dragon",
[2] = "Dragon Lord",
[3] = "Hydra",
[4] = "Demon",
}

Dentro da sala da dungeon coloque ANT-LOGOUT pelo mapa editor, para evitar de jogadores fazer logout dentro da dungeon.

muito bom, mas tenho uma duvida teria como colocar os monster por cordenada tipo x y z e teriacomo adaptar para quando o player entrar em15 minutos teleporta dp?

Link to comment
Share on other sites

1 hora atrás, mister17 disse:

muito bom, mas tenho uma duvida teria como colocar os monster por cordenada tipo x y z e teriacomo adaptar para quando o player entrar em15 minutos teleporta dp?

Para deixar 15 minutos coloca essas linha no lugar da que estão :

tempo = 900, 
 tempoarena = 900000, -- tempo que ele tem para terminar a arena 30000 = 30s 

para adicionar coordenadas para cada monstro vai ter que modificiar algumas umas coisas

Link to comment
Share on other sites

39 minutos atrás, Kuro o Shiniga disse:

Para deixar 15 minutos coloca essas linha no lugar da que estão :


tempo = 900, 
 tempoarena = 900000, -- tempo que ele tem para terminar a arena 30000 = 30s 

para adicionar coordenadas para cada monstro vai ter que modificar algumas umas coisas

se eu inserir o comando abaixo deve dar certo muito obrigado

Spoiler

local monster_pos = {
        [1] = {pos = {800, 1028, 10}, monster = "Dragon"},
        [2] = {pos = {804, 1027, 10}, monster = "Dragon"},
        [3] = {pos = {808, 1027, 10}, monster = "Dragon"},
        [4] = {pos = {812, 1028, 10}, monster = "Dragon"},
        [5] = {pos = {800, 1036, 10}, monster = "Dragon Lord"},
        [6] = {pos = {804, 1037, 10}, monster = "Dragon Lord"},
        [7] = {pos = {808, 1037, 10}, monster = "Dragon Lord"},
        [8] = {pos = {812, 1036, 10}, monster = "Demodras"},

muito obrigado ja tirei uma duvida grande

Link to comment
Share on other sites

  • 1 month later...
  • 5 months later...
  • 1 month later...
Em 07/05/2019 em 14:52, Kuro o Shiniga disse:

Acredito que sim bro

local monster_pos = {
        [1] = {pos = {800, 1028, 10}, monster = "Rattata"},
        [2] = {pos = {804, 1027, 10}, monster = "Rattata"},
        [3] = {pos = {808, 1027, 10}, monster = "Rattata"},
        [4] = {pos = {812, 1028, 10}, monster = "Rattata"},,
        [5] = {pos = {800, 1036, 10}, monster = "Shiny Rattata"},
        [6] = {pos = {804, 1037, 10}, monster = "Shiny Rattata"},
        [7] = {pos = {808, 1037, 10}, monster = "Shiny Rattata"},
        [8] = {pos = {812, 1036, 10}, monster = "Raticate"},

 

 

tira error n lua..

 

function onStepIn(cid, item, position, fromPosition)
local config = {
 posdung = {x=125, y=623, z=7}, -- poss da arena
 str = 15281, -- não mexer
 storage = 98551, -- não mexer
 tempo = 30, 
 tempoarena = 30000, -- tempo que ele tem para terminar a arena 30000 = 30s 
local monster_pos = {
        [1] = {pos = {800, 1028, 10}, monster = "Rattata"},
        [2] = {pos = {804, 1027, 10}, monster = "Rattata"},
        [3] = {pos = {808, 1027, 10}, monster = "Rattata"},
        [4] = {pos = {812, 1028, 10}, monster = "Rattata"},,
        [5] = {pos = {800, 1036, 10}, monster = "Shiny Rattata"},
        [6] = {pos = {804, 1037, 10}, monster = "Shiny Rattata"},
        [7] = {pos = {808, 1037, 10}, monster = "Shiny Rattata"},
        [8] = {pos = {812, 1036, 10}, monster = "Raticate"},
 }

local posstemplo = {x=1033, y=1020, z=7}           
          
		function Tp()
			if isCreature(cid) then
			doTeleportThing(cid, posstemplo)
		end
			return true
		end

	function Str()
		if isCreature(cid) then
		setPlayerStorageValue(cid,config.storage, 0)
	end
		return true
end

	function deletamonstro()
	local spec = getSpectators(config.posdung, 10, 10)  
		if spec ~= nil then
		for _, s in pairs(spec) do
        if isMonster(s) then
        doRemoveCreature(s)
    end
     end
end
end

			   
	for _, player in pairs(getPlayersOnline()) do
	
						   
		if getPlayerStorageValue(player, config.str) >= os.time() then
		doTeleportThing(player, fromPosition)
		doPlayerSendTextMessage(cid, 22, "Já existe player em batalha!")
					
		elseif getPlayerStorageValue(player, config.str) < os.time() then
		setPlayerStorageValue(cid, config.str, os.time() + config.tempo)
		doTeleportThing(cid, config.posdung)
		doSendMagicEffect(getThingPos(cid), 10)
		doCreateMonster(config.monsterum, getThingPos(cid))
		addEvent(Tp, config.tempoarena)
		addEvent(Str, config.tempoarena)
		addEvent(deletamonstro, config.tempoarena)
break
end
	end
			
end

 

Link to comment
Share on other sites

  • 1 month later...
  • 2 months later...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...