CH
pedido

Sistema De Itens Parcel

Por chateadoagr, 19 de fev. de 2016 em Scripts

860
12
3k
chateadoagrC
19 de fevereiro de 2016 às 11:43

Ola Xtibianos, queria ver algum scripter a me ajudar em um sistema bem legal ele funciona assim:

Eu tenho esses dois itens(tanto faiz usar um dos dois) post-379277-0-67345700-1455889195.png

ao dar use em um desses dois itens encima desses itens post-379277-0-98688600-1455889205_thumb.png esses itens apos serem usados pelos itens post-379277-0-67345700-1455889195.png ficaram assim post-379277-0-57072800-1455889184_thumb.png e ganhara 1 X itens configuraveis post-379277-0-01493100-1455889174.png estilo resident evil, pode aparecer algum bixo dependendo do item post-379277-0-98688600-1455889205_thumb.png

Agradeço desde ja! espero terem entendido como é o funcionamento!

OBS: apos ser usado e virado em itens post-379277-0-57072800-1455889184_thumb.png tera um tempo x para voltar a sua forma inicial post-379277-0-98688600-1455889205_thumb.png.

post-379277-0-76033100-1455889203_thumb.png

Editado Fevereiro 19 por chateadoagr

Night WolfN
19 de fevereiro de 2016 às 12:30

Usa esse script em actions/scripts

 

local itens = {
[5521] = 2419, -- [id da caixa] = id dela quebrada
}

local prize = { -- itens dentro do presente
[2160] = 1, -- [id] = count
}

local container = 5801 -- presente que ganha
local chancemob = 10 -- chance de abrir e vir um monstro
local mob = "Snake"
local tempo = 15 -- tempo em segundos

local function restore(uid, iditem)
	for id, trash in pairs (itens) do
		if iditem == trash then
			return doTransformItem(uid, id)
		end
	end
end

function onUse(cid, item, pos, itemEx, topos)
if itens[itemEx.itemid] then
	local restoreitem = doTransformItem(itemEx.uid, itens[itemEx.itemid])
	addEvent(restore, tempo * 1000, restoreitem, itens[itemEx.itemid])
	if math.random(1,100) <= chancemob then
		doCreateMonster(mob, topos)
	else
		local bp = doPlayerAddItem(cid, container, 1)
		for id, count in pairs (prize) do
			doAddContainerItem(bp, id, count)
		end
	end	
else 
	return false
end
return true
end

 



e em actions.xml vc coloca

<action itemid="id da machete 1;id da machete2" event="script" value="nomequevcbotounoarquivoacima.lua"/>
chateadoagrC
20 de fevereiro de 2016 às 12:39

grato wolf muito bom o script bem formulado e bem apresentado REP+ precisarei de uma pessoa como voçe

 

 

da esse erro na distro :post-379277-0-73151400-1455978715_thumb.png


ele n me da o presente e a caixa usada n volta ao normal


e eu qro q qnd clickar no presente de algum item. sao varios q eu qro q de mas o player ganha so 1 item dos varios, pq qnd add varios itens ele da tds os itens

Editado Fevereiro 20 por chateadoagr

otherealityO
20 de fevereiro de 2016 às 17:55

Acredito que o melhor pra fazer o item voltar ao normal é usar decay pelo itens.xml mesmo.

Já resolveria o erro que deu já que ele foi na função de fazer o item voltar ao que era.

chateadoagrC
22 de fevereiro de 2016 às 09:13

tem como vc arrumar pra mim?


@UP#

CaronteC
22 de fevereiro de 2016 às 12:16

Hehe @Night Wolf, eu disse que ia dar erro.

 

Acredito que o melhor pra fazer o item voltar ao normal é usar decay pelo itens.xml mesmo.

Já resolveria o erro que deu já que ele foi na função de fazer o item voltar ao que era.

Assim seria excluída a possibilidade de criar items iguais aos trash sem que sejam restaurados.

 

 

Vou dar uma mexida no script dps, se o wolf não se manifestar.

chateadoagrC
22 de fevereiro de 2016 às 12:45

Hehe @Night Wolf, eu disse que ia dar erro.

 

 

Assim seria excluída a possibilidade de criar items iguais aos trash sem que sejam restaurados.

 

 

Vou dar uma mexida no script dps, se o wolf não se manifestar.

fico grato se me ajudar tmbm

Night WolfN
22 de fevereiro de 2016 às 13:09

eu vou abrir pra testar esse script e ver se consigo arrumar seguindo essa lógica inicial, eu sei que dá pra fazer criando e deletando os itens mas a idéia era usar menos linhas de código :/


EDIT:

não consegui fazer pelo transform, se fosse tfs 1.x+ ia dar certo.. hahaha
usa assim q fica perfeito, ele recria o baú depois de X segundos só q se o lixo que o baú virou não estiver na posição certinha ele não vai remover.


local itens = {
[2520] = 2523, -- [id da caixa] = id dela quebrada
}

local prize = { -- itens dentro do presente
[2160] = 1, -- [id] = count
}

local container = 1990 -- presente que ganha
local chancemob = 10 -- chance de abrir e vir um monstro
local mob = "Snake"
local tempo = 15 -- tempo em segundos


local function restore(iditem, pos)
	if itens[iditem] then
		local item = getTileItemById(pos, itens[iditem])
		if item.uid > 0 then			
			doRemoveItem(item.uid)
		end
		doCreateItem(iditem, pos)
	end
end

function onUse(cid, item, pos, itemEx, topos)
if itens[itemEx.itemid] then
	local lixo = doCreateItem(itens[itemEx.itemid], topos)
	addEvent(restore, tempo * 1000, itemEx.itemid, topos)
	doRemoveItem(itemEx.uid)
	if math.random(1,100) <= chancemob then
		doCreateMonster(mob, topos)
		doSendMagicEffect(topos, 3)
	else
		local bp = doPlayerAddItem(cid, container, 1)
		for id, count in pairs (prize) do
			doAddContainerItem(bp, id, count)
		end
	end	
else 
	return false
end
return true
end

 

 

Editado Fevereiro 22 por Night Wolf

otherealityO
22 de fevereiro de 2016 às 15:58

Hehe @Night Wolf, eu disse que ia dar erro.

 

 

Assim seria excluída a possibilidade de criar items iguais aos trash sem que sejam restaurados.

 

 

Vou dar uma mexida no script dps, se o wolf não se manifestar.

verdade, não pensei nisso.

chateadoagrC
23 de fevereiro de 2016 às 16:36

funcionou agradeço so tem um porem eu coloquei 10 itens diferentes, eu qro q tenha % de cair 1 item, pq cai todos os itens q eu coloquei no script ao msm tempo e eu nao qro q caia tds os itens é so um como se fosse um dado tem uma probabilidade de cair os itens

otherealityO
23 de fevereiro de 2016 às 17:50

Tenta aí

local itens = {
[2520] = 2523, -- [id da caixa] = id dela quebrada
}

local prize = { -- itens dentro do presente
2160, 1,
0000, 0,
0000, 0,
0000, 0
}

local container = 1990 -- presente que ganha
local chancemob = 10 -- chance de abrir e vir um monstro
local mob = "Snake"
local tempo = 15 -- tempo em segundos


local function restore(iditem, pos)
	if itens[iditem] then
		local item = getTileItemById(pos, itens[iditem])
		if item.uid > 0 then			
			doRemoveItem(item.uid)
		end
		doCreateItem(iditem, pos)
	end
end

function onUse(cid, item, pos, itemEx, topos)
if itens[itemEx.itemid] then
	local lixo = doCreateItem(itens[itemEx.itemid], topos)
	addEvent(restore, tempo * 1000, itemEx.itemid, topos)
	doRemoveItem(itemEx.uid)
	if math.random(1,100) <= chancemob then
		doCreateMonster(mob, topos)
		doSendMagicEffect(topos, 3)
	else
		local bp = doPlayerAddItem(cid, container, 1)
		local tSize = table.getn(prize)
		local drop = math.random(1, tSize)
		d = math.mod(drop,2)
		if d == 0 then 
			drop = drop-1
		end
		for i = 1, tSize, 2 do
			if drop == i then
				doAddContainerItem(bp, prize[i], prize[i+1])
				break
			end
		end
	end	
else 
	return false
end
return true
end
chateadoagrC
23 de fevereiro de 2016 às 23:52

impressionante! vlw ai rep mais funcionou do jeito q eu queria