Ir para conteúdo
  • Cadastre-se

(Resolvido)Ao equipar um item X no meu slot serta vocartion mudara a outfit


Ir para solução Resolvido por Wise,

Posts Recomendados

Eu kero uma scripts que quando equipar serto item no slot certa vocation (no meu caso 1 e 300) mudade de outifit aumentando minha velocidade e Ml em 50 a + e quando eu removesse esse item do slot a outfit saise e não poderia dar logout com akele item equipado (ou seja no slot) pfv tem como fazer pra mim.

 

Rep++

Ajudei Rep+ :D

Link para o post
Compartilhar em outros sites

quando equipar serto item no slot certa vocation (no meu caso 1 e 300) mudade de outifit aumentando minha velocidade e Ml em 50 a + e quando eu removesse esse item do slot a outfit saise e não poderia dar logout com akele item equipado (ou seja no slot)

O aumento de velocidade e magic level, você pode editar em items.xml, aplicando as seguintes linhas no código referente ao item:

<attribute key="speed" value="50" />
<attribute key="magiclevelpoints" value="50" />
<attribute key="showattributes" value="1" />

 

Enquanto aos scripts do item:

itemoutfit.lua (data/movements/scripts):

local tab = {
	[1] = {outfit = 123}, -- [vocID] = {outfit = lookTypeNumber}
	[300] = {outfit = 456}
}

function onEquip(cid, item, slot)
	doSetCreatureOutfit(cid, {lookType = tab[getPlayerVocation(cid)].outfit}, -1)
	return true
end

function onDeEquip(cid, item, slot)
	doRemoveCondition(cid, CONDITION_OUTFIT)
	return true
end

 

Tag - movements.xml (data/movements):

<movevent type="Equip" itemid="ITEMID" slot="VALUE" event="script" value="itemoutfit.lua"/>
<movevent type="DeEquip" itemid="ITEMID" slot="VALUE" event="script" value="itemoutfit.lua"/>

 

Configure a tag com o ID do item e o VALUE do slot, que varia de acordo com o item (onde ele pode ser equipado).

Caso você não saiba como configurar, os valores que você pode utilizar são:

Values:
	head
	necklace
	backpack
	armor
	right-hand, left-hand
	two-handed, hand/shield
	legs
	feet
	ring
	ammo

 

itemlogout.lua (data/creaturescripts/scripts):

local item = {1234, 5} -- {itemID, slotNumber}

function onLogout(cid)
	if getPlayerSlotItem(cid, item[2]).itemid == item[1] then
		doPlayerSendCancel(cid, "You need to remove your "..getItemNameById(item[1]).." from the slot to logout.")
		return false
	end
	
	return true
end

Pra configurar o slotNumber da tabela item no script, basta adicionar o número do slot de acordo com o que seu item é equipado.

Aqui estão eles:

--slotVariableName(slotNumber) = slotValue:
    CONST_SLOT_HEAD (1) = head (helmet)
    CONST_SLOT_NECKLACE (2) = necklace (amulet)
    CONST_SLOT_BACKPACK (3) = backpack
    CONST_SLOT_ARMOR (4) = armor
    CONST_SLOT_LEFT (5) = left hand
    CONST_SLOT_RIGHT (6) = right hand
    CONST_SLOT_LEGS (7) = legs
    CONST_SLOT_FEET (8) = boots
    CONST_SLOT_RING (9) = ring
    CONST_SLOT_AMMO (10) = ammo

Lembrando que o callback usado no script não registra creature event.

Tag - creaturescripts.xml (data/creaturescripts):

<event type="logout" name="ItemLogout" event="script" value="itemlogout.lua"/>
Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

lek ta tudo normal mais tem um problema não esta aumentando a ML nem a velocidade aruma ai pfv, Ah só mais uma coisinha eu queria que não desse pra usar o comando !saga quando estiver o item no slot, para que o player não venha mudar de outfit só ficar naquela que eu coloquei no item tem como ajudar pfv

 

Rep++ :D

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

Ajudei Rep+ :D

Link para o post
Compartilhar em outros sites

não esta aumentando a ML nem a velocidade aruma ai pfv


Você adicionou os atributos ao item em items.xml?
Se sim, poste aqui os códigos desse item e eu verifico se você configurou corretamente.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

toma ai

 

<item id="2479" article="a" name="Hokage Tunic">
<attribute key="weight" value="4600" />
<attribute key="armor" value="6" />
<attribute key="slotType" value="ammo" />
                                <attribute key="speed" value="50" />
                                <attribute key="magiclevelpoints" value="50" />
                                <attribute key="showattributes" value="1" />
</item>
 
 Ah só mais uma coisinha eu queria que não desse pra usar o comando !saga quando estiver o item no slot, para que o player não venha mudar de outfit só ficar naquela que eu coloquei no item tem como ajudar pfv se precisar passar o arquivo saga.lua eu mando suave tenta ai
 
Re++ :D
Editado por avalax (veja o histórico de edições)

Ajudei Rep+ :D

Link para o post
Compartilhar em outros sites

É, está certo. Só o slot que deveria ser body (já que isso é um manto), não?

<item id="2479" article="a" name="Hokage Tunic">
	<attribute key="weight" value="4600" />
	<attribute key="armor" value="6" />
	<attribute key="speed" value="50" />
	<attribute key="magiclevelpoints" value="50" />
	<attribute key="showattributes" value="1" />
	<attribute key="slotType" value="body" />
</item>




Substitua o script do itemoutfit.lua, por este:

local tab = {
	[1] = {outfit = 123}, -- [vocID] = {outfit = lookTypeNumber}
	[300] = {outfit = 456}
}

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, -1)
setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, 50)

function onEquip(cid, item, slot)
	doSetCreatureOutfit(cid, {lookType = tab[getPlayerVocation(cid)].outfit}, -1)
	doChangeSpeed(cid, getCreatureSpeed(cid) + 50)
	doAddCondition(cid, condition)
	return true
end

function onDeEquip(cid, item, slot)
	doChangeSpeed(cid, getCreatureSpeed(cid) - 50)
	doRemoveCondition(cid, CONDITION_ATTRIBUTES)
	return true
end

 

 

eu queria que não desse pra usar o comando !saga quando estiver o item no slot

Poste o script dessa talkaction.

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

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

mano ta dando isso aki ta trocando outfit normal mais ainda não esta aumentando e aparece isso

 

[Warning - MoveEvents::addEvent] Duplicate move event found: 2479


[Warning - MoveEvents::addEvent] Duplicate move event found: 2479

 

toma o comando saga 

 

local saga = {


[641] = {[1] = 651, [2] = 652, [3] = 653, [4] = 654, [5] = 655, [6] = 656, [7] = 8, effect = 244},
[822] = {[1] = 464, [2] = 465, [3] = 466, [4] = 467, [5] = 468, [6] = 469, [7] = 470, [8] = 624, effect = 74},
[1] = {[1] = 66, [2] = 91, [3] = 18, [4] = 163, [5] = 683, [6] = 684, [7] = 692, [8] = 305, [9] = 49, [10] = 693, [11] = 604, [12] = 179, [13] = 605, [14] = 682, [15] = 25, [16] = 30, effect = 10},
[400] = {[1] = 476, [2] = 477, [3] = 478, [4] = 479, [5] = 481, [6] = 482, [7] = 483, [8] = 484, [9] = 486, [10] = 487, [11] = 681, [12] = 620, [13] = 621, effect = 10},
[805] = {[1] = 712, [2] = 713, [3] = 714, [4] = 715, [5] = 716, [6] = 717, [7] = 718, [8] = 719, [9] = 720, [10] = 721, [11] = 722, effect = 10},
[209] = {[1] = 452, [2] = 453, [3] = 454, [4] = 456, [5] = 457, [6] = 290, [7] = 649, [8] = 458, [9] = 555, effect = 202},
[300] = {[1] = 437, [2] = 438, [3] = 439, [4] = 440, [5] = 441, effect = 10},
[520] = {[1] = 490, [2] = 491, [3] = 493, [4] = 494, [5] = 495, effect = 10},
[25] = {[1] = 660, [2] = 661, [3] = 662, [4] = 663, [5] = 664, [6] = 330, [7] = 565, effect = 184},
}


local level = 25 -- Limite para liberar uma saga nova


function onSay(cid, words, param, channel)


if(param == '') then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o número da saga que você deseja.")
return true
end

if getPlayerStorageValue(cid, 89745) ~= -1 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode trocar de saga enquanto for da akatsuki.")
return true
end

if not saga[getPlayerVocation(cid)] then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce nao pode trocar de saga.")
return true
end


local t = string.explode(param, ",")


if(t[2]) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Could not understand.")
return true
end


if not (tonumber(t[1])) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o número da saga que você deseja.")
return true
end


if tonumber(t[1]) > #saga[getPlayerVocation(cid)] or tonumber(t[1]) < 1 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Essa saga não existe.")
return true
end




if getPlayerLevel(cid) >= (tonumber(t[1])*level) then
doSetCreatureOutfit(cid, {lookType = saga[getPlayerVocation(cid)][tonumber(t[1])]}, -1)
doSendMagicEffect(getThingPos(cid), saga[getPlayerVocation(cid)].effect)
doPlayerSendTextMessage(cid, 25, "Voce escolheu uma nova saga!")
doPlayerSay(cid, "Saga!!", TALKTYPE_ORANGE_1)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, você precisa de level "..(tonumber(t[1]) * level).." usar essa saga.")
end


return true
end

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

Ajudei Rep+ :D

Link para o post
Compartilhar em outros sites
ainda não esta aumentando e aparece isso

 

Ops, erro meu. Deixe apenas as duas tags dos scripts do arquivo itemoutfit.lua.

Substitua o movement script por este:

local tab = {
    [1] = {outfit = 123}, -- [vocID] = {outfit = lookTypeNumber}
    [300] = {outfit = 456}
}

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, -1)
setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, 50)

function onEquip(cid, item, slot)
    doSetCreatureOutfit(cid, {lookType = tab[getPlayerVocation(cid)].outfit}, -1)
    doChangeSpeed(cid, getCreatureSpeed(cid) + 50)
    doAddCondition(cid, condition)
    return true
end

function onDeEquip(cid, item, slot)
    doChangeSpeed(cid, getCreatureSpeed(cid) - 50)
    doRemoveCondition(cid, CONDITION_ATTRIBUTES)
    doRemoveCondition(cid, CONDITION_OUTFIT)
    return true
end

O script da sua talkaction:

local saga = {
	[641] = {[1] = 651, [2] = 652, [3] = 653, [4] = 654, [5] = 655, [6] = 656, [7] = 8, effect = 244},
	[822] = {[1] = 464, [2] = 465, [3] = 466, [4] = 467, [5] = 468, [6] = 469, [7] = 470, [8] = 624, effect = 74},
	[1] = {[1] = 66, [2] = 91, [3] = 18, [4] = 163, [5] = 683, [6] = 684, [7] = 692, [8] = 305, [9] = 49, [10] = 693, [11] = 604, [12] = 179, [13] = 605, [14] = 682, [15] = 25, [16] = 30, effect = 10},
	[400] = {[1] = 476, [2] = 477, [3] = 478, [4] = 479, [5] = 481, [6] = 482, [7] = 483, [8] = 484, [9] = 486, [10] = 487, [11] = 681, [12] = 620, [13] = 621, effect = 10},
	[805] = {[1] = 712, [2] = 713, [3] = 714, [4] = 715, [5] = 716, [6] = 717, [7] = 718, [8] = 719, [9] = 720, [10] = 721, [11] = 722, effect = 10},
	[209] = {[1] = 452, [2] = 453, [3] = 454, [4] = 456, [5] = 457, [6] = 290, [7] = 649, [8] = 458, [9] = 555, effect = 202},
	[300] = {[1] = 437, [2] = 438, [3] = 439, [4] = 440, [5] = 441, effect = 10},
	[520] = {[1] = 490, [2] = 491, [3] = 493, [4] = 494, [5] = 495, effect = 10},
	[25] = {[1] = 660, [2] = 661, [3] = 662, [4] = 663, [5] = 664, [6] = 330, [7] = 565, effect = 184}
}

local item = {2479, 4}-- {itemID, slotNumber}
local level = 25 -- Limite para liberar uma saga nova

function onSay(cid, words, param, channel)
	if(param == '') then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o número da saga que você deseja.")
		return true
	end

		if getPlayerSlotItem(cid, item[2]).itemid == item[1] then
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce nao pode trocar de saga enquanto estiver com uma "..getItemNameById(item[1]).." equipada.")
			return true
		end
		
			if getPlayerStorageValue(cid, 89745) ~= -1 then
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode trocar de saga enquanto for da akatsuki.")
				return true
			end

				if not saga[getPlayerVocation(cid)] then
					doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce nao pode trocar de saga.")
					return true
				end
			
			local t = string.explode(param, ",")
				if(t[2]) then
					doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Could not understand.")
					return true
				end

			if not (tonumber(t[1])) then
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o número da saga que você deseja.")
				return true
			end

		if tonumber(t[1]) > #saga[getPlayerVocation(cid)] or tonumber(t[1]) < 1 then
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Essa saga não existe.")
			return true
		end

	if getPlayerLevel(cid) >= (tonumber(t[1])*level) then
		doSetCreatureOutfit(cid, {lookType = saga[getPlayerVocation(cid)][tonumber(t[1])]}, -1)
		doSendMagicEffect(getThingPos(cid), saga[getPlayerVocation(cid)].effect)
		doPlayerSendTextMessage(cid, 25, "Voce escolheu uma nova saga!")
		doPlayerSay(cid, "Saga!!", TALKTYPE_ORANGE_1)
	else
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, você precisa de level "..(tonumber(t[1]) * level).." usar essa saga.")
	end
	
	return true
end
Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

ta

 

lek ta aumentando normal mais quando eu tiro o item do slot a outfit não sai arruma ai pfv

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

Ajudei Rep+ :D

Link para o post
Compartilhar em outros sites
  • Solução

Desatenção minha, estou um tanto quanto ocupado:

local tab = {
	[1] = {outfit = 123}, -- [vocID] = {outfit = lookTypeNumber}
	[300] = {outfit = 456}
}

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, -1)
setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, 50)

function onEquip(cid, item, slot)
	doSetCreatureOutfit(cid, {lookType = tab[getPlayerVocation(cid)].outfit}, -1)
	doChangeSpeed(cid, getCreatureSpeed(cid) + 50)
	doAddCondition(cid, condition)
	return true
end

function onDeEquip(cid, item, slot)
	doChangeSpeed(cid, getCreatureSpeed(cid) - 50)
	doRemoveCondition(cid, CONDITION_ATTRIBUTES)
	doRemoveCondition(cid, CONDITION_OUTFIT)
	return true
end

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

funciono perfeitamente, desculpe só que eu não posso dar mais rep hj amanhan eu do suave ?

Ajudei Rep+ :D

Link para o post
Compartilhar em outros sites
  • 1 month later...

suicide tem como colocar enves de aumentar o magic level ele heala a vida e a mana pfv ? rep +;D 

Link para o post
Compartilhar em outros sites
local tab = {
	[1] = {outfit = 123}, -- [vocID] = {outfit = lookTypeNumber}
	[300] = {outfit = 456}
}

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, -1)
setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 9999999, 9999999, 9999999, 9999999)
function onEquip(cid, item, slot)
	doSetCreatureOutfit(cid, {lookType = tab[getPlayerVocation(cid)].outfit}, -1)
	doChangeSpeed(cid, getCreatureSpeed(cid) + 50)
	doAddCondition(cid, condition)
	return true
end

function onDeEquip(cid, item, slot)
	doChangeSpeed(cid, getCreatureSpeed(cid) - 50)
	doRemoveCondition(cid, CONDITION_ATTRIBUTES)
	doRemoveCondition(cid, CONDITION_OUTFIT)
	return true
end

Tenta assim. Faz temo que não mexo com formula das spells, aí não tenho mt ctz dessa formula que botei aí. huasusahas :s

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

deu esse erro 

 

[04/01/2015 00:50:39] [Error - LuaScriptInterface::loadFile] data/movements/scripts/itemoutfit.lua:12: '=' expected near 'condition'
[04/01/2015 00:50:39] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/itemoutfit.lua)
[04/01/2015 00:50:39] data/movements/scripts/itemoutfit.lua:12: '=' expected near 'condition'
[04/01/2015 00:50:39] [Error - LuaScriptInterface::loadFile] data/movements/scripts/itemoutfit.lua:12: '=' expected near 'condition'
[04/01/2015 00:50:39] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/itemoutfit.lua)
[04/01/2015 00:50:39] data/movements/scripts/itemoutfit.lua:12: '=' expected near 'condition'

up

Link para o post
Compartilhar em outros sites
suicide tem como colocar enves de aumentar o magic level ele heala a vida e a mana pfv ?
local tab = {
    [1] = {outfit = 123}, -- [vocID] = {outfit = lookTypeNumber}
    [300] = {outfit = 456}
}

local h, m = {50, 3}, {25, 3} -- {amount, seconds to regenerate}
local regain = createConditionObject(CONDITION_REGENERATION)
setConditionParam(regain, CONDITION_PARAM_TICKS, -1)
setConditionParam(regain, CONDITION_PARAM_HEALTHGAIN, h[1])
setConditionParam(regain, CONDITION_PARAM_HEALTHTICKS, h[2] * 1000)
setConditionParam(regain, CONDITION_PARAM_MANAGAIN, m[1])
setConditionParam(regain, CONDITION_PARAM_MANATICKS, m[2] * 1000)

function onEquip(cid, item, slot)
    doSetCreatureOutfit(cid, {lookType = tab[getPlayerVocation(cid)].outfit}, -1)
    doChangeSpeed(cid, getCreatureSpeed(cid) + 50)
    doAddCondition(cid, regain)
    return true
end

function onDeEquip(cid, item, slot)
    doChangeSpeed(cid, getCreatureSpeed(cid) - 50)
    doRemoveCondition(cid, CONDITION_REGENERATION)
    doRemoveCondition(cid, CONDITION_OUTFIT)
    return true
end

Nesse caso, vai regenerar 50 de hp e 25 de mana a cada 3 segundos.

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

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

não ainda não heala vc poderia colocar pra quando healar da para ver o quanto ta healando em cima do meu personagem ex: Big regeneration essa scripts aki ó 

 

 

local combat = createCombatObject()


setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)

function onGetFormulaValues(cid, level, maglevel)
local min = ((level*38)+(maglevel*3.10)+1060)
local max = ((level*38)+(maglevel*3.10)+1990)
return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

Editado por Tuka (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 5 months later...

sei q o tópico n é meu + tem como colocar pra aumentar 20% a exp quando o item tiver equipado pfv ?

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo