Ir para conteúdo
  • 0

Steal System


Fjinst

Pergunta

Bom, básicamente eu gostaria de pedir a ajuda de vocês para criação de um script/magia de roubo de items de um monstro.

 

Explicando mais detalhadamente:

O Script funcionaria dessa maneira, teria uma tabela com o nome das criaturas que poderiam ser roubadas e do lado do nome das criaturas teria os ids de possiveis items que poderia ser roubado.

 

A magia se chamaria "roubo" como se fosse um exori frigo, exori mort, etc. teria uma chance de sucesso ou não, caso o monstro não esteja na lista, simplesmente não aconteceria nada com o monstro, só falaria que esse monstro não pode ser roubado

 

 

A tabela seria tipo assim

 

local config = {
chance = math.random(1,5),
monstro = {
--["monster_name"] = "loot",
["Rat"] = "2148", "2149",
},
}

 

 

 

Para quem tiver alguma dúvida, seria basicamente o sistema do ragnarok no qual uma subclasse do thief tem uma magia de furtar o monstro, não sei se é possivel fazer ou não, mas ta ai meu pedido para vocês.

Vale lembrar que só funcionaria para monstros que estão na tabela

Agradeço pela atenção.

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

7 respostass a esta questão

Posts Recomendados

  • 0

Tenta aí, se der erro manda que eu vou de novo.

 

EDIT:

Não entendi se você queria uma chance diferente pra cada monstro ou não, nesse caso a chance é de 20% de dar certo pra todos os roubos.

EDIT2:

O player precisa de um target pra funcionar a magia, então se liga pra fazer a tag direitinho.

 

local MONSTROS = {
 --name 		 	  id1         	id2
["Rat"] = 		{item1 = 2149, item2 = 0000},
["Cave Rat"] = 	        {item1 = 2149, item2 = 0000},
["Bat"] = 		{item1 = 2149, item2 = 0000},
["Wolf"] = 		{item1 = 2149, item2 = 0000}
    }

function onCastSpell(cid, var)
	local chance = math.random(1,5)
	local monstro = MONSTROS[getCreatureName(getCreatureTarget(cid))]

	if chance ~= 1 then
		doPlayerSendCancel(cid, "voce nao conseguiu roubar.")
	return false
	end

	if monstro.item1 > 0 then
		doPlayerAddItem(cid, monstro.item1)
	end
	if monstro.item2 > 0 then
		doPlayerAddItem(cid, monstro.item2)
	end
	
return true
end

 

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

  • 0

O script funcionou quase perfeito, o único problema foi quando o monstro não esta na lista, de monstros roubaveis

acontece o seguinte erro caso eu tente furtar um monstro que não esteja na lista

 

Também outro problema seria ao roubar o item, não roubar varios items e sim ou um item ou outro, no caso ta pegando os 2 items ao invez de ser 1

 

[07/02/2016 21:40:59] [Error - Spell Interface]
[07/02/2016 21:40:59] data/spells/scripts/test.lua:onCastSpell
[07/02/2016 21:40:59] Description:
[07/02/2016 21:41:00] data/spells/scripts/test.lua:20: attempt to index local 'monstro' (a nil value)
[07/02/2016 21:41:00] stack traceback:
[07/02/2016 21:41:00] data/spells/scripts/test.lua:20: in function <data/spells/scripts/test.lua:11>

Link para o comentário
Compartilhar em outros sites

  • 0

Tenta agora:

local MONSTROS = {
 --name 		 	  id1         	id2
["Rat"] = 		{item1 = 2149, item2 = 0000},
["Cave Rat"] = 	{item1 = 2149, item2 = 0000},
["Bat"] = 		{item1 = 2149, item2 = 0000},
["Wolf"] = 		{item1 = 2149, item2 = 0000}
    }
 
function onCastSpell(cid, var)
	local chance = math.random(1,5)
	local monstro = MONSTROS[getCreatureName(getCreatureTarget(cid))]
	
	if monstro == nil then
		doPlayerSendCancel(cid, "esse monstro nao e roubavel.")
	return false
	end
 
	if chance ~= 1 then
		doPlayerSendCancel(cid, "voce nao conseguiu roubar.")
	return false
	end
	
	if math.random(1, 2) == 1 then
		doPlayerAddItem(cid, monstro.item1)
	else
		if monstro.item2 > 0 then
			doPlayerAddItem(cid, monstro.item2)
		else
			doPlayerAddItem(cid, monstro.item1)
		end
	end
	
return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

Bom, não sei se é possivel, mas tem como colocar para só conseguir roubar uma vez o mesmo monstro caso tenha roubado com sucesso?, se não já ficou perfeito o script, agradeço pela ajuda!

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

×
×
  • Criar Novo...