Ir para conteúdo

Featured Replies

Postado

Fiz um script que funciona da seguinte maneira, o player posiciona uma arma em uma mesa e um item que funcionaria com uma gema encantadora em outra mesa então puxa a alavanca os dois items somem e surge uma arma encantada, porém existem quatro locais diferentes para se fazer isso o local onde será encantada uma arma de fogo, um local para arma de gelo, para arma de tera e a de energy cada elemento terá uma chance diferente para ter sucesso no aprimoramento da arma, okay fiz tudo certinho ao meu ver porém na hora que fui testar fiz as devidas ações (posicionei os items e puxei alavanca) e aparece o erro da função getitem se alguém poder me ajudar agradeço.

function onUse(cid, item, fromPos, itemEx, toPos)

-- [[INICIO CONFIG - Beyond Sky]]
armasfire =
{
    [1] = {id = 2383, idfire = 7744, item = "spike sword"},
    [2] = {id = 7383, idfire = 7748, item = "relic sword"},
	[3] = {id = 7384, idfire = 7746, item = "mystic blade"},
	[4] = {id = 7406, idfire = 7747, item = "blacksteel sword"},
	[5] = {id = 7402, idfire = 7748, item = "dragon slayer"},
	[6] = {id = 2423, idfire = 7754, item = "clerical mace"},
	[7] = {id = 2445, idfire = 7755, item = "crystal mace"},
	[8] = {id = 7415, idfire = 7756, item = "cranial basher"},
	[9] = {id = 7392, idfire = 7757, item = "orcish maul"},
	[10] = {id = 2391, idfire = 7758, item = "war hammer"},
	[11] = {id = 2429, idfire = 7749, item = "barbarian axe"},
	[12] = {id = 7402, idfire = 7750, item = "knight axe"},
	[13] = {id = 7402, idfire = 7751, item = "heroic axe"},
	[14] = {id = 7402, idfire = 7752, item = "headchopper"},
	[15] = {id = 7402, idfire = 7753, item = "war axe"}
}

armasice =
{
    [1] = {id = 2383, idice = 7763,item = "spike sword"},
    [2] = {id = 7383, idice = 7764, item = "relic sword"},
	[3] = {id = 7384, idice = 7765, item = "mystic blade"},
	[4] = {id = 7406, idice = 7766, item = "blacksteel sword"},
	[5] = {id = 7402, idice = 7767, item = "dragon slayer"},
	[6] = {id = 2423, idice = 7773, item = "clerical mace"},
	[7] = {id = 2445, idice = 7774, item = "crystal mace"},
	[8] = {id = 7415, idice = 7775, item = "cranial basher"},
	[9] = {id = 7392, idice = 7776, item = "orcish maul"},
	[10] = {id = 2391, idice = 7777, item = "war hammer"},
	[11] = {id = 2429, idice = 7768, item = "barbarian axe"},
	[12] = {id = 7402, idice = 7769, item = "knight axe"},
	[13] = {id = 7402, idice = 7770, item = "heroic axe"},
	[14] = {id = 7402, idice = 7771, item = "headchopper"},
	[15] = {id = 7402, idice = 7772, item = "war axe"}
}

armastera =
{
    [1] = {id = 2383, idtera = 7854, item = "spike sword"},
    [2] = {id = 7383, idtera = 7855, item = "relic sword"},
	[3] = {id = 7384, idtera = 7856, item = "mystic blade"},
	[4] = {id = 7406, idtera = 7857, item = "blacksteel sword"},
	[5] = {id = 7402, idtera = 7858, item = "dragon slayer"},
	[6] = {id = 2423, idtera = 7864, item = "clerical mace"},
	[7] = {id = 2445, idtera = 7865, item = "crystal mace"},
	[8] = {id = 7415, idtera = 7866, item = "cranial basher"},
	[9] = {id = 7392, idtera = 7867, item = "orcish maul"},
	[10] = {id = 2391, idtera = 7868, item = "war hammer"},
	[11] = {id = 2429, idtera = 7859, item = "barbarian axe"},
	[12] = {id = 7402, idtera = 7860, item = "knight axe"},
	[13] = {id = 7402, idtera = 7861, item = "heroic axe"},
	[14] = {id = 7402, idtera = 7862, item = "headchopper"},
	[15] = {id = 7402, idtera = 7863, item = "war axe"}
}

armasenergy =
{
    [1] = {id = 2383, idenergy = 7869, item = "spike sword"},
    [2] = {id = 7383, idenergy = 7870, item = "relic sword"},
	[3] = {id = 7384, idenergy = 7871, item = "mystic blade"},
	[4] = {id = 7406, idenergy = 7872, item = "blacksteel sword"},
	[5] = {id = 7402, idenergy = 7873, item = "dragon slayer"},
	[6] = {id = 2423, idenergy = 7879, item = "clerical mace"},
	[7] = {id = 2445, idenergy = 7880, item = "crystal mace"},
	[8] = {id = 7415, idenergy = 7881, item = "cranial basher"},
	[9] = {id = 7392, idenergy = 7882, item = "orcish maul"},
	[10] = {id = 2391, idenergy = 7883, item = "war hammer"},
	[11] = {id = 2429, idenergy = 7874, item = "barbarian axe"},
	[12] = {id = 7402, idenergy = 7875, item = "knight axe"},
	[13] = {id = 7402, idenergy = 7876, item = "heroic axe"},
	[14] = {id = 7402, idenergy = 7877, item = "headchopper"},
	[15] = {id = 7402, idenergy = 7878, item = "war axe"}
}

chancepos =
{
    [1] = {idignitum = 6550, chance = 75, posignitum = {x=2229, y=2081, z=8, stackpos = 255}, posarma = {x=2229, y=2081, z=8, stackpos = 255}, spot = "fire"},
    [2] = {idignitum = 6551, chance = 50, posignitum = {x=2229, y=2081, z=8, stackpos = 255}, posarma = {x=2229, y=2081, z=8, stackpos = 255}, spot = "ice"},
	[3] = {idignitum = 6549, chance = 25, posignitum = {x=2229, y=2081, z=8, stackpos = 255}, posarma = {x=2229, y=2081, z=8, stackpos = 255}, spot = "tera"},
	[4] = {idignitum = 6548, chance = 15, posignitum = {x=2229, y=2081, z=8, stackpos = 255}, posarma = {x=2229, y=2081, z=8, stackpos = 255}, spot = "energy"},
}

local uniqid = 9999
-- [[FIM CONFIG - Beyond Sky]]

    for i = 1, 15 do
	getitemfire = getThingfromPos(chancepos[1].posignitum)
    getitemice = getThingfromPos(chancepos[2].posignitum)
    getitemtera = getThingfromPos(chancepos[3].posignitum)
    getitemenergy = getThingfromPos(chancepos[4].posignitum)
	getitemfire2 = getThingfromPos(chancepos[1].posarma)
    getitemice2 = getThingfromPos(chancepos[2].posarma)
    getitemtera2 = getThingfromPos(chancepos[3].posarma)
    getitemenergy2 = getThingfromPos(chancepos[4].posarma)
	
	    if item.uid == uniqid and item.itemid == 9825 then
		    if (chancepos[i].chance >= math.random(1, 100)) then
		        if (getitemfire.itemid == (chancepos[1].idignitum)) and (getitemfire2.itemid == (armasfire[i].id)) then
		            doRemoveItem(getitemfire.uid,1)
			        doRemoveItem(getitemfire2.uid,1)
			        doSendMagicEffect(getitemfire, CONST_ME_MAGIC_RED)
			        doCreateItem(armasfire[i].idfire, 1, getitemfire2)
				    doSendMagicEffect(getitemfire2, CONST_ME_FIREAREA)
			        doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "His weapon was successfully improved.")
			
			    elseif (getitemice.itemid == (chancepos[2].idignitum)) and (getitemice2.itemid == (armasice[i].id)) then
		            doRemoveItem(getitemice.uid,1)
			        doRemoveItem(getitemice2.uid,1)
			        doSendMagicEffect(getitemice, CONST_ME_MAGIC_BLUE)
			        doCreateItem(armasice[i].idice, 1, getitemice2)
				    doSendMagicEffect(getitemice2, CONST_ME_ICEAREA)
			        doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "His weapon was successfully improved.")
			
			    elseif (getitemtera.itemid == (chancepos[1].idignitum)) and (getitemtera2.itemid == (armastera[i].id)) then
		            doRemoveItem(getitemtera.uid,1)
			        doRemoveItem(getitemtera2.uid,1)
			        doSendMagicEffect(getitemtera, CONST_ME_MAGIC_GREEN)
			        doCreateItem(armastera[i].idtera, 1, getitemtera2)
				    doSendMagicEffect(getitemtera2, CONST_ANI_EARTH)
			        doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "His weapon was successfully improved.")
			
			    elseif (getitemenergy.itemid == (chancepos[1].idignitum)) and (getitemenergy22.itemid == (armasenergy[i].id)) then
		            doRemoveItem(getitemenergy.uid,1)
			        doRemoveItem(getitemenergy2.uid,1)
			        doSendMagicEffect(getitemenergy, CONST_ME_ENERGYHIT)
			        doCreateItem(armasfire[i].idenergy, 1, getitemenergy2)
				    doSendMagicEffect(getitemenergy2, CONST_ME_ENERGYAREA)
			        doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "His weapon was successfully improved.")
			    else
			        doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You are not using the necessary items or the items are not positioned correctly.")
			    return TRUE
                end
			else
			    doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Failed, not succeeded in improve its weapon. You lost both items.")
   			end
		elseif item.uid == uniqid and item.itemid == 9826 then
            doTransformItem(item.uid, item.itemid - 1)  
		end
	end
end	


Medalhas:
1, 2

Qo5DnNn.png

stonedshowoff2_zpsf5409854.png

Postado

o for 1,15 tá executando tudo que tá dentro dele 15 vezes..
na primeira ele faz isso:
getitemfire = getThingfromPos(chancepos[1].posignitum)

ou seja, ele pega a coisa que tá nessa posição.
Porém, na segunda vez já não tem nada nessa posição então o getitemfire vai resultador nil (valor nulo). e todas as vezes seguintes tb vão resultar nulo.
Você tem que fazer uma condicional if getitemfire ~= 0 então vale tudo a seguir

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Postado

eu não sei porque não to acostumado com tanta tabela, acho melhor vc pedir ajuda pro Max porque eu to ficando confuso só de olhar kkk eu faria de outra forma:

[iD do item] = id dele com a transformação.

pegar o item na posição, se for [iD do item] e pegar a gema na outra posição e for capaz de remover ela, então transform o [id do Item] pra id com transformação.

Faria isso dividindo por posições já que vc mesmo falou q seriam 4 locais

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

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.6k

Informação Importante

Confirmação de Termo