Ir para conteúdo

Featured Replies

Postado
  • Autor

@Pokemon Nox Oficial obrigado irmão pela ajuda, estarei aguardando!

@
Vodkart sim, seriam apenas items, como o exemplo que você citou do solar axe. Seriam baús, mas eu iria adcionar uma action em cada um deles e eles teriam uma chance de alguns items em especifico. No caso preciso so que crie items no mapa, menos em dentro de paredes e em area protection zone. Se puder ajudar eu ficaria muito grato! 

 

  • Respostas 14
  • Visualizações 1.3k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • @Vodkart sim, consigo summonar ele com o /m. Está funcionando com as duas funções, o script cria o monstro, mas continua persistindo o erro. Acredito que o monstro não está sendo verificado se pode se

Posted Images

Postado
local create_tab = {
	area = {{x=2795,y=879,z=7}, {x=2799,y=886,z=7}}, -- começo e fim
	items = {
		{chance = 50, itemid = 2173, amount = 1},
		{chance = 10, itemid = 2494, amount = 1},
		{chance = 100, itemid = 2159, amount = 20},
		{chance = 100, itemid = 2160, amount = 100},
		{chance = 100, itemid = 1111, amount = 1, actionID = 26008} -- uma chest por exemplo
	}
}

function isWalkable(pos) -- by Nord / editado por Omega
	if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then
		return false
	elseif isCreature(getTopCreature(pos).uid) then
		return false
	elseif getTileInfo(pos).protection then
		return false
	elseif hasProperty(getThingFromPos(pos).uid, 3) or hasProperty(getThingFromPos(pos).uid, 7) then
		return false
	end
	return true
end
function doAddItenFromMap()
	local pos = {x= math.random(create_tab.area[1].x,create_tab.area[2].x), y=math.random(create_tab.area[1].y,create_tab.area[2].y), z=create_tab.area[1].z}
	local var = create_tab.items[math.random(#create_tab.items)]
	if isWalkable(pos) and var.chance > math.random(1, 100) then
		local ret = doCreateItem(var.itemid, var.amount, pos)
		if var.actionID ~= nil then
			doItemSetAttribute(ret, "aid", var.actionID)
		end
	else
		doAddItenFromMap()
	end
end	
function onThink(cid, interval, lastExecution)
	doAddItenFromMap()
	return true
end

 

quando quiser adicionar actionID você adiciona um novo parametro na tabela, está assim:

 

 

	items = {
	{chance = 50,  itemid = 2173, amount = 1},
	{chance = 10,  itemid = 2494, amount = 1},
	{chance = 100, itemid = 2159, amount = 20},
	{chance = 100, itemid = 2160, amount = 100},
	{chance = 100, itemid = 1111, amount = 1, actionID = 26008} -- uma chest por exemplo
	}

 

e vc quer adicionar outro bau com id '2222' por exemplo com actionID 26010, basta fazer assim:

 

	items = {
	{chance = 50,  itemid = 2173, amount = 1},
	{chance = 10,  itemid = 2494, amount = 1},
	{chance = 100, itemid = 2159, amount = 20},
	{chance = 50, itemid = 2222, amount = 1, actionID = 26010}, -- botei outra actionID
	{chance = 100, itemid = 1111, amount = 1, actionID = 26008} -- uma chest por exemplo
	}

 

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

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Postado
  • Autor

@Vodkart Perfeito Vodkart está funcionando da forma que eu esperava, teria como adcionar para criar 1 monstro nessa tabela também? tenho ideia de colocar para criar "geradores" por exemplo para forçar o pessoal também se juntar e matar eles, digamos que seria um boss por exemplo. Desde ja agradeço infinitamente!

 

@Pokemon Nox Oficial Agradeço a você também por ter tentado ajudar mano, obrigado mesmo!

Postado

@hiquezerah 

 

local create_tab = {
	area = {{x=2795,y=879,z=7}, {x=2799,y=886,z=7}}, -- começo e fim
	items = {
		{chance = 50, itemid = 2173, amount = 1},
		{chance = 10, itemid = 2494, amount = 1},
		{chance = 100, itemid = 2159, amount = 20},
		{chance = 100, itemid = 2160, amount = 100},
		{chance = 100, name = "Gerador"}, -- monster name
		{chance = 100, itemid = 1111, amount = 1, actionID = 26008} -- uma chest por exemplo
	}
}

function isWalkable(pos) -- by Nord / editado por Omega
	if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then
		return false
	elseif isCreature(getTopCreature(pos).uid) then
		return false
	elseif getTileInfo(pos).protection then
		return false
	elseif hasProperty(getThingFromPos(pos).uid, 3) or hasProperty(getThingFromPos(pos).uid, 7) then
		return false
	end
	return true
end
function doAddItenFromMap()
	local pos = {x= math.random(create_tab.area[1].x,create_tab.area[2].x), y=math.random(create_tab.area[1].y,create_tab.area[2].y), z=create_tab.area[1].z}
	local var = create_tab.items[math.random(#create_tab.items)]
	if isWalkable(pos) and var.chance > math.random(1, 100) then
		if var.name ~= nil then
			doCreateMonster(var.name, pos)
			doSendDistanceShoot({x = pos.x - math.random(4, 6), y = pos.y - 5, z = pos.z}, pos, CONST_ANI_FIRE)
			addEvent(doSendMagicEffect, 150, pos, CONST_ME_HITBYFIRE)
			addEvent(doSendMagicEffect, 150, pos, CONST_ME_FIREAREA)
			doSendMagicEffect(pos, CONST_ME_MORTAREA)	
		else
			local ret = doCreateItem(var.itemid, var.amount, pos)
			if var.actionID ~= nil then
				doItemSetAttribute(ret, "aid", var.actionID)
			end
		end
	else
		doAddItenFromMap()
	end
end	
function onThink(cid, interval, lastExecution)
	doAddItenFromMap()
	return true
end

 

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

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

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