Ir para conteúdo

Featured Replies

Postado

Bem, não sei se vai funcionar, mas tenta ai : 

local config = {
	fromPos = {x=556,y=451,z=6}, -- posição superior esquerda do mapa, da area em que esta mapeado a area.
	toPos = {x=566,y=456,z=6}, -- posição inferior direita do mapa, da area em que esta mapeado a area.
}

local removeMobs = {"Fire Destroyer","Demon","Rat","Cave Rat"} -- monstros que serão removidos

function onTime()
	removeMonsterInArea(fromPos, toPos)
	return true
end

function removeMonsterInArea() -- by Jamison
	local positionsCheck = {}
	for i = config.fromPos.x, config.toPos.x do
		positionsCheck[#positionsCheck+1] = {x=i, y = config.fromPos.y, z = config.fromPos.z, stackpos = 0}
		for j = config.fromPos.y+1, config.toPos.y do
			positionsCheck[#positionsCheck+1] = {x=i, y = j, z = config.fromPos.z, stackpos = 0}
		end
	end
	for j=1, #positionsCheck do
		for i = 0, 255 do
			positionsCheck[j].stackpos = i
			local tile = getTileThingByPos(positionsCheck[j])
			if isMonster(tile.uid) then
				if isInArray(removeMobs, getCreatureName(tile.uid)) then
					doRemoveCreature(tile.uid)
				end
			end
		end
	end
end 

 

Você precisa de configurar o "removeMobs" com o nome dos monstros que você quer que remova.

"A alma permanece em suas criações" V89E5aN.png


142c9d3439.jpg
(Não dou suporte por mensagem privada.)

  • Respostas 21
  • Visualizações 2.5k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Jamison Collins
    Jamison Collins

    Minha ultima tentativa : local config = { day = "Saturday", fromPos = {x=556,y=451,z=6}, -- posição superior esquerda do mapa, da area em que esta mapeado a area. toPos = {x=566,y=456,z=6}, -- posiç

  • Jamison Collins
    Jamison Collins

    Para remover todos os tipos de monstro é mais fácil :  local config = { day = "Saturday", fromPos = {x=556,y=451,z=6}, -- posição superior esquerda do mapa, da area em que esta mapeado a area. toPos

Postado
  • Autor

Funcionou não Jamison, olha o script que eu editei deixei dessa forma para que funcionasse apenas em um determinado dia..

 

Segue o script

local config = {
day = "Saturday",
fromPos = {x=556,y=451,z=6}, -- posição superior esquerda do mapa, da area em que esta mapeado a area.
toPos = {x=566,y=456,z=6}, -- posição inferior direita do mapa, da area em que esta mapeado a area.
}
local removeMobs = {"Torre Defesa","Torre Ataque"} -- monstros que serão removidos
function onTime()
 if (os.date("%A") == config.day) then
removeMonsterInArea(fromPos, toPos)
return true
end
end

function removeMonsterInArea() -- by Jamison
local positionsCheck = {}
for i = config.fromPos.x, config.toPos.x do
positionsCheck[#positionsCheck+1] = {x=i, y = config.fromPos.y, z = config.fromPos.z, stackpos = 0}
for j = config.fromPos.y+1, config.toPos.y do
positionsCheck[#positionsCheck+1] = {x=i, y = j, z = config.fromPos.z, stackpos = 0}
end
end
for j=1, #positionsCheck do
for i = 0, 255 do
positionsCheck[j].stackpos = i
local tile = getTileThingByPos(positionsCheck[j])
if isMonster(tile.uid) then
if isInArray(removeMobs, getCreatureName(tile.uid)) then
doRemoveCreature(tile.uid)
end
end
end
end
return true
end

Ver ai o problema, porque no distro não aparece nada, está tudo ok, mais não funciona!

Postado

Minha ultima tentativa :

local config = {
day = "Saturday",
fromPos = {x=556,y=451,z=6}, -- posição superior esquerda do mapa, da area em que esta mapeado a area.
toPos = {x=566,y=456,z=6}, -- posição inferior direita do mapa, da area em que esta mapeado a area.
}

function onTime()
 if (os.date("%A") == config.day) then
removeMonsterInArea(fromPos, toPos)
return true
end
end

function removeMonsterInArea() -- by Jamison
local positionsCheck = {}
for i = config.fromPos.x, config.toPos.x do
positionsCheck[#positionsCheck+1] = {x=i, y = config.fromPos.y, z = config.fromPos.z, stackpos = 0}
for j = config.fromPos.y+1, config.toPos.y do
positionsCheck[#positionsCheck+1] = {x=i, y = j, z = config.fromPos.z, stackpos = 0}
end
end
for j=1, #positionsCheck do
for i = 0, 255 do
positionsCheck[j].stackpos = i
local tile = getTileThingByPos(positionsCheck[j])
if isMonster(tile.uid) then
if getCreatureName(tile.uid) == "Torre Defesa" then
doRemoveCreature(tile.uid)
end
if getCreatureName(tile.uid) == "Torre Ataque" then
doRemoveCreature(tile.uid)
end
end
end
end
return true
end

Bem, eu fiz uma nubada de script, mas talvez funcione... para cada monstro que você quiser tirar, depois de if isMonster... você adicionará isso :

if getCreatureName(tile.uid) == "Torre Defesa" then
doRemoveCreature(tile.uid)
end

Com o nome do monstro desejado.

"A alma permanece em suas criações" V89E5aN.png


142c9d3439.jpg
(Não dou suporte por mensagem privada.)

Postado
  • Autor

Jamison, o que tá acontecendo aqui é muito estranho, só remove 1 e o que acontece é que só está removendo a Torre Ataque, mais o interessante de tudo é que mesmo que eu não configure para remover o Torre Ataque ele some e os outros não.

 

Exp:

 

Configurei assim:

if getCreatureName(tile.uid) == "Torre Defesa" then
doRemoveCreature(tile.uid)
end

Mais a Torre Defesa não desaparece, quem desaparece é a Torre Ataque, mesmo sem ta configurado.

 

Pensando nisso eu fiz um teste mudei a configuração para remover um demon mais não retirou o demon, retirou a Torre Ataque novamente, não intendi isso sinceramente e teste o outro script ali em cima novamente prestei atenção que acontece o mesmo.

 

Sei que você tentou pela última vez ai mais se puder fazer esse script remover qualquer tipo de monstro não importa o nome qualquer um que esteja na coordenada configurada já serve também. Todo jeito vou lhe da rep pelas tentativas. 

Postado

Para remover todos os tipos de monstro é mais fácil : 

local config = {
day = "Saturday",
fromPos = {x=556,y=451,z=6}, -- posição superior esquerda do mapa, da area em que esta mapeado a area.
toPos = {x=566,y=456,z=6}, -- posição inferior direita do mapa, da area em que esta mapeado a area.
}

function onTime()
 if (os.date("%A") == config.day) then
removeMonsterInArea(fromPos, toPos)
return true
end
end

function removeMonsterInArea() -- by Jamison
local positionsCheck = {}
for i = config.fromPos.x, config.toPos.x do
positionsCheck[#positionsCheck+1] = {x=i, y = config.fromPos.y, z = config.fromPos.z, stackpos = 0}
for j = config.fromPos.y+1, config.toPos.y do
positionsCheck[#positionsCheck+1] = {x=i, y = j, z = config.fromPos.z, stackpos = 0}
end
end
for j=1, #positionsCheck do
for i = 0, 255 do
positionsCheck[j].stackpos = i
local tile = getTileThingByPos(positionsCheck[j])
if isMonster(tile.uid) then
doRemoveCreature(tile.uid)
end
end
end
return true
end

Bem, tente isso.

"A alma permanece em suas criações" V89E5aN.png


142c9d3439.jpg
(Não dou suporte por mensagem privada.)

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo