Ir para conteúdo

Featured Replies

Postado

.Qual servidor ou website você utiliza como base? 

tfs 0.4, tibia 8.6

 

Qual o motivo deste tópico? 

Ajuda em um script

 

Você tem o código disponível? Se tiver publique-o aqui: 

local function setBagAttribute(cid, item, set)
	if (not item.uid) then return false end
	
	if (not doRemoveItem(item.uid, 1)) then return false end

	local item = doPlayerAddItem(cid, item.itemid)
	doItemSetAttribute(item, "description", (set==1 and "[there is no armor here]" or "[here contains an armor]"))
	return doItemSetAttribute(item, "used", set)
end
function onUse(cid, item, frompos, item2, topos)

local itemids = {
	[1] = 2498, -- cabeça
	[4] = 2492, --- armor
	[5] = 2470, --- legs
	[6] = 2520, -- esquerda
	[7] = 7404, -- direita
	[8] = 2643 --boots
}

local storage = 73182 --- storage que vai ser usada pra salvar se o player já usou ou não
local outfit = 351 -- outfit que vai dar

	if (getItemAttribute(item.uid, "used") == 1) then
		for v,k in pairs(itemids) do
			if (getPlayerItemCount(cid, k) <= 0) then
				return doPlayerSendTextMessage(cid, 27, "Precisa ter todos os itens para voltar a ser um bracelete!")
			end
		end

		for v,k in pairs(itemids) do
			doPlayerRemoveItem(cid, k, 1)
		end
		setPlayerStorageValue(cid, storage, 0)
		doRemoveCondition(cid, CONDITION_OUTFIT)
		return setBagAttribute(cid, item, 0)
	end

	for v,k in pairs(itemids) do
		doPlayerAddItem(cid, k, 1)
	end
	setPlayerStorageValue(cid, storage, 1)
	doSetCreatureOutfit(cid, {lookType = outfit}, -1)
	doPlayerSendTextMessage(cid, 27, "Armadura de ucto foi colocada!")
return setBagAttribute(cid, item, 1)
end 

 

 

Eu tenho esse script (logo a cima) e gostaria de saber como eu faria para que os itens fiquem bloqueados em seus slots até que se use o bracelete de novo. 

Exemplo: Da use no bracelete e o set é equipado, mas caso tente jogar uma parte do set no chão ou trocar, ele não sai, até dar use no bracelete novamente

Postado

Não entendi o seu pedido. Caso esteja querendo bloquear o uso de Equips em Slots diferentes, por exemplo: equipar um Helmet no lugar do shield... Você pode modificar isso pelo Config.lua, na opção: tibiaClassicSlots

Postado
  • Autor
23 minutos atrás, daviscript disse:

Não entendi o seu pedido. Caso esteja querendo bloquear o uso de Equips em Slots diferentes, por exemplo: equipar um Helmet no lugar do shield... Você pode modificar isso pelo Config.lua, na opção: tibiaClassicSlots

Ah, eu esqueci de falar que consegui arrumar. Era só eu pensar um pouco, mas no dia eu tava já com cabeça lotada kkkkkkkk

Bom, o pedido era pra deixar os itens incapazes de serem movidos assim que surgissem nos slots, ai eu só editei os itens com o editor e coloquei a característica de não ser movido, ai resolveu meu problema 

Postado
23 horas atrás, HexusAlphos disse:

Bom, o pedido era pra deixar os itens incapazes de serem movidos assim que surgissem nos slots, ai eu só editei os itens com o editor e coloquei a característica de não ser movido, ai resolveu meu problema 

creio que isso possa debugar o client mano, caso vc use 8.6 provavelmente um item novo debugaria, eu indico vc usar a função onMoveItem
aki o link pra como colocar ela na source

https://tibiaking.com/forums/topic/47698-onmoveitemcid-item-count-tocontainer-fromcontainer/
 

local dontMoveitems = {1111,2222,3333}

function onMoveItem(item, frompos, pos, cid)
  
	if isInArray(dontMoveitems, item.itemid) then
		 doPlayerSendCancel(cid, 'Você não pode mexer esse item.')
		 return false
	end

    return true
end

um exemplo, caso o player esteja tentando mover o item 1111 ou 2222 ou 3333 ele não deixa

creio que seja até mais facil, só colocar o ID ali, doq sempre alterar no items.otb kkkk coisa que eu não indico muito vc mexer caso não tenha um OT totalmente custom que seja obrigatório o uso do client próprio

a e esqueci de dizer, precisa registrar no XML e no login.lua "registerCreatureEvent(cid, "MoveItem")"

Postado
  • Autor
3 horas atrás, FeeTads disse:

creio que isso possa debugar o client mano, caso vc use 8.6 provavelmente um item novo debugaria, eu indico vc usar a função onMoveItem
aki o link pra como colocar ela na source

https://tibiaking.com/forums/topic/47698-onmoveitemcid-item-count-tocontainer-fromcontainer/
 



local dontMoveitems = {1111,2222,3333}

function onMoveItem(item, frompos, pos, cid)
  
	if isInArray(dontMoveitems, item.itemid) then
		 doPlayerSendCancel(cid, 'Você não pode mexer esse item.')
		 return false
	end

    return true
end

um exemplo, caso o player esteja tentando mover o item 1111 ou 2222 ou 3333 ele não deixa

creio que seja até mais facil, só colocar o ID ali, doq sempre alterar no items.otb kkkk coisa que eu não indico muito vc mexer caso não tenha um OT totalmente custom que seja obrigatório o uso do client próprio

a e esqueci de dizer, precisa registrar no XML e no login.lua "registerCreatureEvent(cid, "MoveItem")"

e uma boa solução kkkkkk eu tava usando pelo meio "rude" de ser pelo item editor só como uma imensa gambiarra, mas acho que esse script vai resolver meu problema. 

Já que é pra um sistema de set de armadura que serão "lendárias" no servidor com uma chance baixa de drop dos seus respectivos bosses. O boss dropa um bracelete e ao dar use nesse bracelete, a armadura completa se equipa no personagem (igual existe em ots de cdz com sistema de urna)

 

OBS: Podem colocar como problema solucionado!!!

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

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 520.1k

Informação Importante

Confirmação de Termo