Ir para conteúdo
  • 0

Mudar de uid para item id


surfnament

Pergunta

Alguem poderia me ajudar a mudar de uniqueid para item id? Queria que fosse usando items (coletavel) e nao no mapa com unique id...

 

Uso TFS 1.0

 

 

local t = {
[12001] = {22001, 'entrepreneur', 471, 472},
[12002] = {22002, 'beastmaster', 636, 637},
[12003] = {22003, 'death herald', 666, 667},
[12004] = {22004, 'ranger', 683, 684},
[12005] = {22005, 'ceremonial garb', 694, 695},
[12006] = {22006, 'puppeteer', 696, 697},
[12007] = {22007, 'spirit caller', 698, 699}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
local player = Player(cid)
local v = t[item.uid]
if v then
if player:getStorageValue(v[1]) == -1 then
if player:getSex() == 0 then
player:addOutfitAddon(v[3], 3)
else
player:addOutfitAddon(v[4], 3)
end
player:sendTextMessage(MESSAGE_INFO_DESCR, "You now have the " .. v[2] .. " outfit!")
player:setStorageValue(v[1], 1)
player:getPosition():sendMagicEffect(math.random(1, 67))
else
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You already have the " .. v[2] .. " outfit.")
end
end
return true
end

 

Link para o comentário
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0

Essa desgraça de tfs 1.0... :v

local t = {
   [12001] = {22001, 'entrepreneur', 471, 472},
   [12002] = {22002, 'beastmaster', 636, 637},
   [12003] = {22003, 'death herald', 666, 667},
   [12004] = {22004, 'ranger', 683, 684},
   [12005] = {22005, 'ceremonial garb', 694, 695},
   [12006] = {22006, 'puppeteer', 696, 697},
   [12007] = {22007, 'spirit caller', 698, 699}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
     local player = Player(cid)
     local v = t[item.itemid]
     if v then
         if player:getStorageValue(v[1]) == -1 then
             if player:getSex() == 0 then
                 player:addOutfitAddon(v[3], 3)
             else
                 player:addOutfitAddon(v[4], 3)
             end
			if player:getItemCount(item.itemid) > 0 then
			player:removeItem(item.itemid, 1)
			else
			item:remove(1)
			end
             player:sendTextMessage(MESSAGE_INFO_DESCR, "You now have the " .. v[2] .. " outfit!")
             player:setStorageValue(v[1], 1)
             player:getPosition():sendMagicEffect(math.random(1, 67))
         else
             player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You already have the " .. v[2] .. " outfit.")
         end
     end
     return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

Não entendi mt bem sua dúvida... Mas pode ser que essa simplérrima alteração sirva:

local t = {
   [12001] = {22001, 'entrepreneur', 471, 472},
   [12002] = {22002, 'beastmaster', 636, 637},
   [12003] = {22003, 'death herald', 666, 667},
   [12004] = {22004, 'ranger', 683, 684},
   [12005] = {22005, 'ceremonial garb', 694, 695},
   [12006] = {22006, 'puppeteer', 696, 697},
   [12007] = {22007, 'spirit caller', 698, 699}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
     local player = Player(cid)
     local v = t[item.id]
     if v then
         if player:getStorageValue(v[1]) == -1 then
             if player:getSex() == 0 then
                 player:addOutfitAddon(v[3], 3)
             else
                 player:addOutfitAddon(v[4], 3)
             end
             player:sendTextMessage(MESSAGE_INFO_DESCR, "You now have the " .. v[2] .. " outfit!")
             player:setStorageValue(v[1], 1)
             player:getPosition():sendMagicEffect(math.random(1, 67))
         else
             player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You already have the " .. v[2] .. " outfit.")
         end
     end
     return true
end

*apenas apaguei o u essa linha:

local v = t[item.uid]

 

Link para o comentário
Compartilhar em outros sites

  • 0

Eu quero que o player de use no item e ganhe o addon...

tentei dessa forma ai e nao funcionou , nem aparece erro algum no console...

Registrei com a tag
<action itemid="2195" script="addons.lua"/>

 

 

e mudei a a linha do addon para:

[2195] = {22001, 'entrepreneur', 471, 472},

Link para o comentário
Compartilhar em outros sites

  • 0

Se o que o Night Wolf falou não der certo, será necessário fazer outro script. E pra isso, precisa-se de mais detalhes... Exemplo: vc quer que qnd o player use o item, o item suma, custe dinheiro, etc.

Link para o comentário
Compartilhar em outros sites

  • 0

t[item.uid] muda pra t[item.itemid], é quase oque o danih falou mas é itemid e não somente id.

 

Funcionou! Sabia q estava errando só esta linha.... kk Obrigadaao!

 

Preciso só colocar a linha pra remover o item , pode me ajudar?

 

seria algo como isto?

 

 

player:removeItem(item.itemid)

Link para o comentário
Compartilhar em outros sites

  • 0

Creio eu que assim funcionará:

local t = {
   [12001] = {22001, 'entrepreneur', 471, 472},
   [12002] = {22002, 'beastmaster', 636, 637},
   [12003] = {22003, 'death herald', 666, 667},
   [12004] = {22004, 'ranger', 683, 684},
   [12005] = {22005, 'ceremonial garb', 694, 695},
   [12006] = {22006, 'puppeteer', 696, 697},
   [12007] = {22007, 'spirit caller', 698, 699}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
     local player = Player(cid)
     local v = t[item.itemid]
     if v then
         if player:getStorageValue(v[1]) == -1 then
             if player:getSex() == 0 then
                 player:addOutfitAddon(v[3], 3)
             else
                 player:addOutfitAddon(v[4], 3)
             end
	     player:doRemoveItem(item.itemid, 1)
             player:sendTextMessage(MESSAGE_INFO_DESCR, "You now have the " .. v[2] .. " outfit!")
             player:setStorageValue(v[1], 1)
             player:getPosition():sendMagicEffect(math.random(1, 67))
         else
             player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You already have the " .. v[2] .. " outfit.")
         end
     end
     return true
end

*acredito que a função seja:

player:doRemoveItem(id, qntd)

 

 

 

#EDIT:

Caso o script acima não funcione, tente assim:

local t = {
   [12001] = {22001, 'entrepreneur', 471, 472},
   [12002] = {22002, 'beastmaster', 636, 637},
   [12003] = {22003, 'death herald', 666, 667},
   [12004] = {22004, 'ranger', 683, 684},
   [12005] = {22005, 'ceremonial garb', 694, 695},
   [12006] = {22006, 'puppeteer', 696, 697},
   [12007] = {22007, 'spirit caller', 698, 699}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
     local player = Player(cid)
     local v = t[item.itemid]
     if v then
         if player:getStorageValue(v[1]) == -1 then
             if player:getSex() == 0 then
                 player:addOutfitAddon(v[3], 3)
             else
                 player:addOutfitAddon(v[4], 3)
             end
			 Item(item.itemid):remove()
             player:sendTextMessage(MESSAGE_INFO_DESCR, "You now have the " .. v[2] .. " outfit!")
             player:setStorageValue(v[1], 1)
             player:getPosition():sendMagicEffect(math.random(1, 67))
         else
             player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You already have the " .. v[2] .. " outfit.")
         end
     end
     return true
end

*nesse aqui eu usei a função:

Item(item.itemid):remove()

Link para o comentário
Compartilhar em outros sites

  • 0

Tenta assim:

local t = {
   [12001] = {22001, 'entrepreneur', 471, 472},
   [12002] = {22002, 'beastmaster', 636, 637},
   [12003] = {22003, 'death herald', 666, 667},
   [12004] = {22004, 'ranger', 683, 684},
   [12005] = {22005, 'ceremonial garb', 694, 695},
   [12006] = {22006, 'puppeteer', 696, 697},
   [12007] = {22007, 'spirit caller', 698, 699}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
     local player = Player(cid)
     local v = t[item.itemid]
     if v then
         if player:getStorageValue(v[1]) == -1 then
             if player:getSex() == 0 then
                 player:addOutfitAddon(v[3], 3)
             else
                 player:addOutfitAddon(v[4], 3)
             end
			if getPlayerItemCount(cid, item.itemid) > 0 then
			doPlayerRemoveItem(cid, item.itemid, 1)
			else
			doRemoveItem(getThingFromPos(fromPosition).itemid, 1)
			end
             player:sendTextMessage(MESSAGE_INFO_DESCR, "You now have the " .. v[2] .. " outfit!")
             player:setStorageValue(v[1], 1)
             player:getPosition():sendMagicEffect(math.random(1, 67))
         else
             player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You already have the " .. v[2] .. " outfit.")
         end
     end
     return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

Ahuahuauha eu tbm to bravo com ele :@ Muito dificil subir a versao dele?

Funcionou!!!! Se quer um beijo agora ou depois? *-----------*
Brigadao cara <3


Voce pode dar uma olhada aqui se nao for abuso demais? '-'

http://www.xtibia.com/forum/topic/239676-tfs-10-npc-que-sumona-boss-em-troca-de-sacrificios/

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

  • 0

@, sahusahua tranquilo. Mais tarde vejo o que posso fazer. ^^

 

 

o beijo pode ser agora msm


Tópico movido para dúvidas / pedidos resolvidos.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...