Ir para conteúdo

Featured Replies

Postado

8.6 forgotten  0.4 Bom, eu tenho esse script da anihilator abaixo, ele é ótimo, cria os monstros, não deixa outro time entrar enquanto tem time na área dele etc... Mas eu queria fazer uma modificação nele: alem de criar as criaturas no local pré determinada queria que criasse algumas criaturas aleatórias em uma área. Exemplo:

 

Alem de ter isso:

      local monster_pos = {
        [1] = {pos = {33224, 31695, 14}, monster = "Demon"},
        [2] = {pos = {33226, 31695, 14}, monster = "Demon"},
        [3] = {pos = {33228, 31697, 14}, monster = "Demon"},
        [4] = {pos = {33229, 31697, 14}, monster = "Demon"},
        [5] = {pos = {33227, 31699, 14}, monster = "Demon"},
        [6] = {pos = {33225, 31699, 14}, monster = "Demon"}
        }

Ter também:

      local monsterale_pos = {
        [1] = {fromX = 33224 fromY= 31695 fromZ= 14 toX = 33250 toY = 31750 toZ = 12}, count = 40 monster = "Fire elemental"},
        [2] = {fromX = 33224 fromY= 31695 fromZ= 14 toX = 33250 toY = 31750 toZ = 12}, count = 10 monster = "Hellfire Fighter"},
        }

 

Bom é isso galera... quem puder me ajudar... eu agradeceria muito!!!

 

Mostrar conteúdo oculto

 

Editado por Zabim (veja o histórico de edições)

Postado
local room = {     -- room with demons
	fromX = 33229,
	fromY = 31697,
	fromZ = 14,

	toX = 33224,
	toY = 31697,
	toZ = 14
}

local monster_pos = {
	[1] = {pos = {33224, 31695, 14}, monster = "Demon"},
	[2] = {pos = {33226, 31695, 14}, monster = "Demon"},
	[3] = {pos = {33228, 31697, 14}, monster = "Demon"},
	[4] = {pos = {33229, 31697, 14}, monster = "Demon"},
	[5] = {pos = {33227, 31699, 14}, monster = "Demon"},
	[6] = {pos = {33225, 31699, 14}, monster = "Demon"}
}

local monster_area = {
	area = {
		topLeftPos = {x = 33224, y = 31695, z = 14},
		bottomRightPos = {x = 33250, y = 31750, z = 12},
	},
	monsters = {
		{name = "Fire Elemental", count = 5},
		{name = "Hellfire Fighter", count = 2},
	}
}

local players_pos = {
	{x = 33224, y =31671, z = 13, stackpos = 253},
	{x = 33223, y =31671, z = 13, stackpos = 253},
	{x = 33222, y =31671, z = 13, stackpos = 253},
	{x = 33221, y =31671, z = 13, stackpos = 253}
}

local new_player_pos = {
	{x = 33227, y = 31697, z = 14},
	{x = 33226, y = 31697, z = 14},
	{x = 33225, y = 31697, z = 14},
	{x = 33224, y = 31697, z = 14}
}

local playersOnly = "no"
local questLevel = 101

function onUse(cid, item, fromPosition, itemEx, toPosition)
        local all_ready, monsters, player, level = 0, 0, {}, 0
        if item.itemid == 1945 then
			for i = 1, #players_pos do
				table.insert(player, 0)
			end
                for i = 1, #players_pos do
                        player = getThingfromPos(players_pos)
                        if player.itemid > 0 then
                                if string.lower(playersOnly) == "yes" then
                                        if isPlayer(player.uid) == TRUE then
                                                all_ready = all_ready+1
                                        else
                                                monsters = monsters+1
                                        end
                                else
                                        all_ready = all_ready+1
                                end
                        end
                end
                if all_ready == #players_pos then
                        for i = 1, #players_pos do
							player = getThingfromPos(players_pos)
							if isPlayer(player.uid) == TRUE then
								if getPlayerLevel(player.uid) >= questLevel then
									level = level+1
								end
							else
								level = level+1
							end
                        end
                        if level == #players_pos then
                                if string.lower(playersOnly) == "yes" and monsters == 0 or string.lower(playersOnly) == "no" then
                                        for _, area in pairs(monster_pos) do
											doSummonCreature(area.monster,{x=area.pos[1],y=area.pos[2],z=area.pos[3]})
                                        end
										for i = 1, #monster_area.monsters do 
											local PosX = math.random(monster_area.area.topLeftPos.x, monster_area.area.bottomRightPos.x)
											local PosY = math.random(monster_area.area.topLeftPos.y, monster_area.area.bottomRightPos.y)
											local PosZ = monster_area.area.topLeftPos.z
											local position = {x = PosX, y = PosY, z = PosZ}
											for k = 1, monster_area.monsters[i].count do
												doSummonCreature(monster_area.monsters[i].name, position, false, true)
											end
										end
                                        for i = 1, #players_pos do
											doSendMagicEffect(players_pos, CONST_ME_POFF)
											doTeleportThing(player.uid, new_player_pos, FALSE)
											doSendMagicEffect(new_player_pos, CONST_ME_ENERGYAREA)
											doTransformItem(item.uid,1946)
                                        end
                                else
									doPlayerSendTextMessage(cid,19,"Only players can do this quest.")
                                end
                        else
							doPlayerSendTextMessage(cid,19,"All Players have to be level "..questLevel.." to do this quest.")
                        end
                else
					doPlayerSendTextMessage(cid,19,"You need "..table.getn(players_pos).." players to do this quest.")
                end
        elseif item.itemid == 1946 then
                local player_room = 0
                for x = room.fromX, room.toX do
                        for y = room.fromY, room.toY do
                                for z = room.fromZ, room.toZ do
                                        local pos = {x=x, y=y, z=z,stackpos = 253}
                                        local thing = getThingfromPos(pos)
                                        if thing.itemid > 0 then
                                                if isPlayer(thing.uid) == TRUE then
                                                        player_room = player_room+1
                                                end
                                        end
                                end
                        end
                end
                if player_room >= 1 then
                        doPlayerSendTextMessage(cid,19,"There is already a team in the quest room.")          
                elseif player_room == 0 then
                        for x = room.fromX, room.toX do
                                for y = room.fromY, room.toY do
                                        for z = room.fromZ, room.toZ do
                                                local pos = {x=x, y=y, z=z,stackpos = 253}
                                                local thing = getThingfromPos(pos)
                                                if thing.itemid > 0 then
                                                        doRemoveCreature(thing.uid)
                                                end
                                        end
                                end
                        end
                        doTransformItem(item.uid,1945)
                end
        end
        return TRUE
end

 

Postado
  • Autor

Bom dia jogador, valeu por me ajudar, mas estava dando um erro esquisito:

[10:41:47.881] [Error - Action Interface]
[10:41:47.882] data/actions/scripts/dungeons/alavancainicio base.lua:onUse
[10:41:47.883] Description:
[10:41:47.884] (luaGetThingFromPos) Tile not found

 

Consegui acertar o script! Segue abaixo funcionando. Créditos ao @Danyel Varejao!!

Mostrar conteúdo oculto

 

Podem encerrar tópico! Script funcionando 100%

Editado por Zabim (veja o histórico de edições)

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo