SE
erro

[Ajuda] Como concertar?

Por Seagull, 25 de set. de 2013 em Scripts

resolvido
17
2k
SeagullS
26 de setembro de 2013 às 01:22

Boa Noite/madrugada, estava aqui tentando fazer um moveevent, mas ta difícil, hehe.

Me ajudem

 

Queria que funcionasse da seguinte maneira:
Ao tocar, por exemplo: 100 ferros no tile que eu já defini, queria que criasse um outro item. Porem que fosse a metade do ferro.

Ou seja:

Toco 10 ferro = 5 ferro reforçado.

seria basicamente isso.

function onAddItem(moveitem, tileitem, position, cid)

local ferro = getTileItemById(position, 5880)
local divisao = ferro.type / 2

if(moveitem.itemid == ferro) then
    doCreateItem(2667, divisao, position)
    doRemoveItem(ferro.uid, divisao)
 end   
    
 
    return 
        doSendMagicEffect(position, CONST_ME_HITBYFIRE)
end

@UP me ajudem

Editado Setembro 25 por Seagull

warotservW
26 de setembro de 2013 às 12:17

Explique melhor a sua dúvida,

 

Obrigado.

SeagullS
26 de setembro de 2013 às 13:37

Cara não é bem uma dúvida, mas tudo bem vou tentar explicar de novo. Só quero que me ajudem a fazer ou que façam pra mim.

 

É o seguinte. Digamos que você tenha 100 gold coins, você larga em cima de um SQM que já ta definido. E ele vira 50 platinum coins.

 

Ou seja, você toca em um SQM "100 items X" e vira a metade em "items Y".

warotservW
26 de setembro de 2013 às 14:08

Ah... isso eu não sei, mas se fosse o player passando em cima do SQM eu saberia =/

SeagullS
26 de setembro de 2013 às 14:18

Obrigado mesmo assim, eu postei ali uma tentativa mas não deu muito certo.


Obrigado por tentar ajudar!


WillOliveiraW
26 de setembro de 2013 às 14:33

Eu sei fazer transformar x quantidade de um item em x quantidade de outro item, não sei fazer transformar x quantidade de um item em y quantidade de outro item

warotservW
26 de setembro de 2013 às 14:48

Veja se lhe ajuda:

 

http://www.xtibia.com/forum/topic/109036-pasta-data-movements/

WillOliveiraW
26 de setembro de 2013 às 17:05

Esse tutorial não ensina como transformar x quantidade de um item em y quantidade de outro item

warotservW
26 de setembro de 2013 às 17:49

Realmente, não ensina, mas os fundamentos estão lá.

SeagullS
27 de setembro de 2013 às 03:31

Que merda cara, precisava disto...

VincV
27 de setembro de 2013 às 10:47

to sem tempo pra faze agora. depois volto e faso caso estaja em aberto ainda

acho que vc pode faser um evento ciclico pra chega posições predeterminadas, então remover .

 

e a parte de troca os items tem ums errinhos

 

local divisao = math.floor(ferro.type / 2) --- arrendondar, para n ter numeros com 0,5, floor porque se n vai compensa mais o cara joga um de cada ves

e troca essa parte, porque se n tira so meteda dos items

 

doRemoveItem(ferro.uid, divisao*2)

fica os exedentes

tipo 51 daria 25 ferro reforcados e sobraria 1(precisa de 2 pra fase 1, como so ha um n fais)

 

 

e no script é bom colocar if pra checa se tem 2 ou mais, pra n gasta memoria caso seja so 1.

SeagullS
27 de setembro de 2013 às 13:12

Obrigado, não testei ainda pra ver se ta funcionando. Mas assim que der testo, porque to formatando a maquina.


OneshotO
28 de setembro de 2013 às 08:39
function onAddItem(moveItem, tileItem, position, cid)
	local tmp = moveItem.type
	if moveItem.itemid == 5880 then
		if moveItem.type < 2 then
			doPlayerSendCancel(cid, "Sorry, you need at least 2 pieces of iron.")
			doSendMagicEffect(position, CONST_ME_POFF)
			return false
		end
		
		doTransformItem(moveItem.uid, 5889, math.floor(tmp/2))
		if tmp % 2 ~= 0 then
			doCreateItem(5880, (tmp % 2), position)
		end
		doSendMagicEffect(position, CONST_ME_MAGIC_GREEN)
	end
	return true
end
<movevent type="AddItem" tileitem="1" uniqueid="12333" event="script" value="script.lua"/>

Coloque a uniqueid 12333 no chão que transforma os itens.

 

Abraços.

Editado Setembro 28 por Oneshot

VincV
28 de setembro de 2013 às 12:29

^

acho que vc esqueceu de decalrar a varivel tmp

OneshotO
28 de setembro de 2013 às 21:57

^

acho que vc esqueceu de decalrar a varivel tmp

É mesmo. Obrigado, magnânimo lordbug99, consertei esse erro apontado por vossa ilustríssima pessoa.

 

Parabéns, irei falar do seu grande feito para toda minha família, vizinhos e colegas de trabalho, aposto que eles irão ficar muito estupefatos por causa desse seu grande feito. Acredito que dentro de alguns dias, teremos faixas aqui na rua, homenageando esse seu grande feito. Haddad já confirmou um evento especial para celebrar esse grande feito de vossa pessoa. Chris Hadfield, da Estação Espacial Internacional, notou que sua descoberta é essencial para novos patamares da ciência, e já disponibilizou um vídeo no Youtube, comentando seu grande feito. A NSA tem medo de você, te espiona todos os dias, porque você é uma ameaça aos EUA. E por fim, a presidente Dilma já confirmou que pedirá impeachment, se, apenas se, você liderar a nação a uma nova era.

 

Obrigado por existir.

Editado Setembro 28 por Oneshot