Ir para conteúdo

Featured Replies

Postado
  • Autor
1 hora atrás, vankk disse:

My bad, utilize o script abaixo, o outro foi uma falha minha hard :p Não li antes de posta, e te mandei uma bosta com 4 then e tals. E dei uma explicada melhor, e sim para sua primeira pergunta, e não para a segunda.


local item, item2, item3, item4 = 2160, 2161, 2162, 2163
local pos, pos2, pos3, pos4 = {x = 1, y = 2, z = 7}, {x = 1, y = 2, z = 7}, {x = 1, y = 2, z = 7}, {x = 1, y = 2, z = 7}

if getTileItemById(pos, item).uid > 100 and getTileItemById(pos2, item2).uid > 100 and getTileItemById(pos3, item3).uid > 100 and getTileItemById(pos4, item4).uid > 100 then 
	-- se tem o item na posicao X e é 100 stacks então removo
	doRemoveItem(getTileItemById(pos, item).uid, 100)
	doRemoveItem(getTileItemById(pos2, item2).uid, 100)
	doRemoveItem(getTileItemById(pos3, item3).uid, 100)
	doRemoveItem(getTileItemById(pos4, item4).uid, 100)
	-- removi
	-- adiciono outfit
	-- adiciono storage
	-- magic effect de sucesso?
	-- adiciono msg de sucesso
else
	-- nada acontece?
	-- msg de erro?
	-- magic effect poff?
end

 

Vankk cada vez melhor!!!

Rs

No caso do efeito de sucesso seria isso mais ou menos:

 

doSendMagicEffect

 

E tambem nao sei muito bem sobre storage, nem como adicionar a linha de addon sendo possivel uma vez so.

 

Queria pedir um favor pra finalizar essa duvida, se possivel é claro!

 

Voce pode criar um modelo? qlq addon, com sucesso e falha... Ai eu altero de acordo com minha necessidade. Sou muito leigo ainda...

Editado por PLoOc (veja o histórico de edições)

  • Respostas 23
  • Visualizações 903
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Não porque ele está configurado para remover os 4 items: itemId = {2160, 2161, 2162, 2163}, -- item ids Pela lógica, está certo. Agora quero ver se vai dar algum erro

  • Tenta assim:  

  • Coloca 3 no final da linha aonde tem a funcão doPlayerAddOutfit. 1 = addon 1 2 = addon 2 3 = Addon 1 e 2.

Postado

Eu do minha bunda, se esse script funcionar sem da algum erro antes/funcionar.

local config = {
	itemId = {2160, 2161, 2162, 2163}, -- item ids
	itemPlace = {{x = 1, y = 2, z = 7}, {x = 1, y = 2, z = 7}, {x = 1, y = 2, z = 7}, {x = 1, y = 2, z = 7}}, -- posicoes
	addons = {156, 152}, -- addon female/male
	storage = 2306 -- storage
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if getPlayerStorageValue(cid, config.storage) < 1 then
		if(getPlayerLevel(cid) > 50) then
			for i = 1, #config.itemId do
				for i = 1, #config.itemPlace do
					if getTileItemById(config.itemPlace[i], config.itemId[i]).uid > 0 then 
						doRemoveItem(config.itemId[i].uid, 100)
						doRemoveItem(getTileItemById(config.itemPlace[i], config.itemId[i]).uid, 100)
						doSendMagicEffect(config.itemPlace[i], CONST_ME_POFF)
						doCreatureAddHealth(cid, - getCreatureHealth(cid))
						doSendMagicEffect(getThingPos(cid), CONST_ME_ENERGYAREA)
						for i = 1, #addons do
							doPlayerAddOutfit(cid, config.addons[i], 3)
							setPlayerStorageValue(cid, config.storage, 1)
						end
					else
						return doCreatureSay(cid, "You need items to sacrifice to get your addon!", TALKTYPE_MONSTER), doSendMagicEffect(itemPlace[i], CONST_ME_POFF)
					end
				end
			end
		else
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You're to low level to made this sacrifice.")
		end
	else
		doPlayerSendTextMessage(cid,25, "You already made a sacrifice.")
	end
end

 

Editado por vankk (veja o histórico de edições)

Postado
  • Autor
5 horas atrás, vankk disse:

Eu do minha bunda, se esse script funcionar sem da algum erro antes/funcionar.


local config = {
	itemId = {2160, 2161, 2162, 2163}, -- item ids
	itemPlace = {{x = 1, y = 2, z = 7}, {x = 1, y = 2, z = 7}, {x = 1, y = 2, z = 7}, {x = 1, y = 2, z = 7}}, -- posicoes
	addons = {156, 152}, -- addon female/male
	storage = 2306 -- storage
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if getPlayerStorageValue(cid, config.storage) < 1 then
		if(getPlayerLevel(cid) > 50) then
			for i = 1, #config.itemId do
				for i = 1, #config.itemPlace do
					if getTileItemById(config.itemPlace[i], config.itemId[i]).uid > 0 then 
						doRemoveItem(config.itemId[i].uid, 100)
						doRemoveItem(getTileItemById(config.itemPlace[i], config.itemId[i]).uid, 100)
						doSendMagicEffect(config.itemPlace[i], CONST_ME_POFF)
						doCreatureAddHealth(cid, - getCreatureHealth(cid))
						doSendMagicEffect(getThingPos(cid), CONST_ME_ENERGYAREA)
						for i = 1, #addons do
							doPlayerAddOutfit(cid, config.addons[i], 3)
							setPlayerStorageValue(cid, config.storage, 1)
						end
					else
						return doCreatureSay(cid, "You need items to sacrifice to get your addon!", TALKTYPE_MONSTER), doSendMagicEffect(itemPlace[i], CONST_ME_POFF)
					end
				end
			end
		else
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You're to low level to made this sacrifice.")
		end
	else
		doPlayerSendTextMessage(cid,25, "You already made a sacrifice.")
	end
end

 

 

 

 

 

Kkkkkkkk

Não po, vai dar certo!!!

 

O vankk, na linha:

doRemoveItem(config.itemId[i].uid, 100)

Nao seria necessario 4 linhas de configuracao por ser itens diferentes?

Valeeeeu

Postado
  • Autor
1 hora atrás, vankk disse:

Não porque ele está configurado para remover os 4 items:


itemId = {2160, 2161, 2162, 2163}, -- item ids

Pela lógica, está certo. Agora quero ver se vai dar algum erro :p

 

Vou testar logo logo, so terminar a aula e ja vo correndo ver isso!

 

Mas cara, pelo que entendi esta configurado pra remover 100 de cada certo? E se eu quiser por exemplo que seja 10 de um 30 de outro 100 de outro 5 de outro... 

 

Ai daria pra configurar do modo que disse com 4 linhas?

vankk...

E esse aqui cara?
 

local config = {
   ["Wizard Helmet Addon"] = {
      storage = 21000,
 
      outfit = {
         sex = {
            [0] = 149, -- Sex 0
            [1] = 145, -- Sex 1
         },
 
         addons = 1
      },
 
      items = {
         [2536] = {count = 1, pos = {x = 182, y = 262, z = 9}}, -- [Item1] = {posição 1}
         [2492] = {count = 1, pos = {x = 183, y = 262, z = 9}}, -- [Item2] = {posição 2}
         [2488] = {count = 1, pos = {x = 185, y = 262, z = 9}}, -- [Item3] = {posição 3}
         [2123] = {count = 1, pos = {x = 186, y = 262, z = 9}}, -- [Item4] = {posição 4}
      }
      -- Caso tenha a necessidade de usar mais itens é só ir adicionando mais à tabela
   },
}
 
function onUse(cid, item, frompos, item2, topos, pos)
   for i, v in pairs(config) do
      local ok = true
 
      for item_id, c in pairs(v.items) do
         local item = getTileItemById(c.pos, item_id)
 
         if item.uid < 100 or item.type < c.count then
            ok = false
            break
         end
 
      end
 
      if ok then
         if getPlayerStorageValue(cid, v.storage) > 0 then
            return doPlayerSendCancel(cid, "You already have this addon.")
         end
 
         for item_id, c in pairs(v.items) do
            local item = getTileItemById(c.pos, item_id)
            doRemoveItem(item.uid, c.count)
            doSendMagicEffect(c.pos, 6)
         end
 
         setPlayerStorageValue(cid, v.storage, 1)
         doPlayerSendTextMessage(cid, 21, "You just earned the ".. i ..".")
         doSendMagicEffect(getThingPos(cid), 28)
         doPlayerAddOutfit(cid, v.outfit.sex[getPlayerSex(cid)], v.outfit.addons)
         return true
      end
 
   end
 
   return true
end

 

vankk, esse que eu mandei por último deu certinho!
Fez basicamente o que eu precisava cara!!!

 

Só não fez uma coisa... se eu não por item nenhum no recipiente, e não tiver o addon ele não da mensagem nenhuma... nem que precisa de itens nem nada, apenas não faz nada!

 

Gostaria que quando desse USE sem por item nenhum, avisasse por mensagem ("You need this item") ou algo do tipo!

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