Ir para conteúdo
  • 0

Helmet que da % de vida quando é equipado.


roxandre

Pergunta

Boa tarde galerinha ,não sei mecher aqui direito pois acabei que criar a conta ,então se eu estiver postando no lugar errado movam aqui por favor ,então eu gostaria de um helmet em que o player equipasse ele désse 200 de hp + 3% do que o player tem ,alguem poderia me ajudar ? D: obrigado a atenção.

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0
Em Itens.Xml
Adicione:

<item id="IDITEM" article="a" name="Nome do Helmet">
<attribute key="description" value="Special Abilities: Health Recovery +200 and Maximum Health +3% ." />
<attribute key="healthGain" value="200" />
<attribute key="healthTicks" value="2000" />
<attribute key="maxmanapercent" value="103" />
<attribute key="weight" value="2950" />
<attribute key="armor" value="15" />
<attribute key="slotType" value="head" />
</item>



Editando as Configurações:



Em <attribute key="healthGain" value="200" /> " é a quantidade de Vida que o Player vai healar "
Em <attribute key="healthTicks" value="2000" /> " é o tempo que sera o heal ou seja ai esta de 2 em 2 segundos "
Em <attribute key="maxmanapercent" value="103" /> " é a quantidade de Porcentagem a mais de vida que ele vai receber 103 = 3% / vamos Supor que vc quira colocar + 10% de life.... Ai você terá que Editar para 110

 



Em Movements.xml Adicionara tag:

 

<!-- Helmet -->
<movevent type="Equip" itemid="IDITEM" slot="head" event="function" value="onEquipItem">
<vocation id="3"/>
<vocation id="7" showInDescription="0"/>
</movevent>
<movevent type="DeEquip" itemid="IDITEM" slot="head" event="function" value="onDeEquipItem"/>

 

Link para o comentário
Compartilhar em outros sites

  • 0
function onEquip(cid, item, slot)
	local mhp = getCreatureMaxHealth(cid)
	local hp_f = math.floor(mhp * 1.03 + 200)
	setCreatureMaxHealth(cid, hp_f)
	doCreatureAddHealth(cid, hp_f - mhp)
	setPlayerStorageValue(cid, 808081, hp_f - mhp)
	return true
end

function onDeEquip(cid, item, slot)
	local hp = 0
	local cid = isPlayer(cid) and cid or getThingFromPos(getThingPos(item.uid)).uid
	setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) - getPlayerStorageValue(cid, 808081))
	if getCreatureHealth(cid) < getPlayerStorageValue(cid, 808081) then
		hp = -getCreatureHealth(cid) + 1
	else
		hp = -(getPlayerStorageValue(cid, 808081)
	end
	doCreatureAddHealth(cid, hp)
	return true
end

Aí é só criar duas TAGs no movements.xml com o id do item e apontando pra esse script.

 

OBS.: acho que esse tópico deveria ser postado na seção de pedidos e dúvidas - scripting, então reportei pra ver se movem.

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

  • 0

Omega bom mano eu fis o script no movements e talls mas nao sei adicionar no .xml ,da pra ajudar ,desculpe incomodar é que sou novato

D:


function onEquip(cid, item, slot)
	local mhp = getCreatureMaxHealth(cid)
	local hp_f = math.floor(mhp * 1.03 + 200)
	setCreatureMaxHealth(cid, hp_f)
	doCreatureAddHealth(cid, hp_f - mhp)
	setPlayerStorageValue(cid, 808081, hp_f - mhp)
	return true
end

function onDeEquip(cid, item, slot)
	local hp = 0
	local cid = isPlayer(cid) and cid or getThingFromPos(getThingPos(item.uid)).uid
	setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) - getPlayerStorageValue(cid, 808081))
	if getCreatureHealth(cid) < getPlayerStorageValue(cid, 808081) then
		hp = -getCreatureHealth(cid) + 1
	else
		hp = -(getPlayerStorageValue(cid, 808081)
	end
	doCreatureAddHealth(cid, hp)
	return true
end

Aí é só criar duas TAGs no movements.xml com o id do item e apontando pra esse script.

 

OBS.: acho que esse tópico deveria ser postado na seção de pedidos e dúvidas - scripting, então reportei pra ver se movem.

 

 

function onEquip(cid, item, slot)
	local mhp = getCreatureMaxHealth(cid)
	local hp_f = math.floor(mhp * 1.03 + 200)
	setCreatureMaxHealth(cid, hp_f)
	doCreatureAddHealth(cid, hp_f - mhp)
	setPlayerStorageValue(cid, 808081, hp_f - mhp)
	return true
end

function onDeEquip(cid, item, slot)
	local hp = 0
	local cid = isPlayer(cid) and cid or getThingFromPos(getThingPos(item.uid)).uid
	setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) - getPlayerStorageValue(cid, 808081))
	if getCreatureHealth(cid) < getPlayerStorageValue(cid, 808081) then
		hp = -getCreatureHealth(cid) + 1
	else
		hp = -(getPlayerStorageValue(cid, 808081)
	end
	doCreatureAddHealth(cid, hp)
	return true
end

Aí é só criar duas TAGs no movements.xml com o id do item e apontando pra esse script.

 

OBS.: acho que esse tópico deveria ser postado na seção de pedidos e dúvidas - scripting, então reportei pra ver se movem.

 

e eu não olho a tag do amigo ali ensima porque meu navegador nao está abrindo as tags x:

Link para o comentário
Compartilhar em outros sites

  • 0

Lembrando as vocações: 1 - Sorc, 2 - Druid, 3 - Pala, 4 - Kina, 5 - MS, 6 - ED, 7 - RP, 8 - EK

    <movevent type="Equip" itemid="ID DO HELMET" slot="head" level="LEVEL" event="script" value="healthhelm.lua">
        <vocation id="8" showInDescription="0"/>
        <vocation id="4"/>
    </movevent>
    <movevent type="DeEquip" itemid="ID DO HELMET" slot="head" level="LEVEL" event="script" value="healthhelm.lua"/>

Aí salva o código que eu te passei na pasta movements/scripts com o nome de healthhelm.lua

Link para o comentário
Compartilhar em outros sites

  • 0

Lembrando as vocações: 1 - Sorc, 2 - Druid, 3 - Pala, 4 - Kina, 5 - MS, 6 - ED, 7 - RP, 8 - EK

    <movevent type="Equip" itemid="ID DO HELMET" slot="head" level="LEVEL" event="script" value="healthhelm.lua">
        <vocation id="8" showInDescription="0"/>
        <vocation id="4"/>
    </movevent>
    <movevent type="DeEquip" itemid="ID DO HELMET" slot="head" level="LEVEL" event="script" value="healthhelm.lua"/>

Aí salva o código que eu te passei na pasta movements/scripts com o nome de healthhelm.lua

bugo server man =[

Link para o comentário
Compartilhar em outros sites

  • 0

Testei aqui. Tive que fazer uma gambiarrazinha pra ajeitar uma coisa meio doida que tava dando aqui, mas agora tá funcionando direito:

function onEquip(cid, item, slot)
	if getPlayerStorageValue(cid, 1233215) == -1 then
		setPlayerStorageValue(cid, 1233215, 1)
		local mhp = getCreatureMaxHealth(cid)
		local hp_f = math.floor(mhp * 1.03) + 200
		setCreatureMaxHealth(cid, hp_f)
		doCreatureAddHealth(cid, math.floor(0.03 * mhp) + 200)
		setPlayerStorageValue(cid, 808081, math.floor(0.03 * mhp) + 200)	
	end
	return true
end

function onDeEquip(cid, item, slot)
	local hp = 0
	local cid = isPlayer(cid) and cid or getThingFromPos(getThingPos(item.uid)).uid
	setCreatureMaxHealth(cid, (getCreatureMaxHealth(cid) - getPlayerStorageValue(cid, 808081)))
	if getCreatureHealth(cid) < getPlayerStorageValue(cid, 808081) then
		hp = -getCreatureHealth(cid) + 1
	else
		hp = -(getPlayerStorageValue(cid, 808081))
	end
	doCreatureAddHealth(cid, hp)
	setPlayerStorageValue(cid, 1233215, -1)
	return true
end

Não esquece de preencher as TAGs do movements.xml direito...

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

  • 0

Testei aqui. Tive que fazer uma gambiarrazinha pra ajeitar uma coisa meio doida que tava dando aqui, mas agora tá funcionando direito:

function onEquip(cid, item, slot)
	if getPlayerStorageValue(cid, 1233215) == -1 then
		setPlayerStorageValue(cid, 1233215, 1)
		local mhp = getCreatureMaxHealth(cid)
		local hp_f = math.floor(mhp * 1.03) + 200
		setCreatureMaxHealth(cid, hp_f)
		doCreatureAddHealth(cid, math.floor(0.03 * mhp) + 200)
		setPlayerStorageValue(cid, 808081, math.floor(0.03 * mhp) + 200)	
	end
	return true
end

function onDeEquip(cid, item, slot)
	local hp = 0
	local cid = isPlayer(cid) and cid or getThingFromPos(getThingPos(item.uid)).uid
	setCreatureMaxHealth(cid, (getCreatureMaxHealth(cid) - getPlayerStorageValue(cid, 808081)))
	if getCreatureHealth(cid) < getPlayerStorageValue(cid, 808081) then
		hp = -getCreatureHealth(cid) + 1
lue(cid, 80808

então brother ,agora não bugo o sv ,mas tmb n surtiu efeito S:

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

  • 0

Cara, garanto que tá funcionando. Testei aqui em 8.6. Você deve ter errado na TAG no movements.xml?

Omega o sv é 8.4 kkkk mas sim eu estava errando ,mas não tag éra que tipo meu sv tem uma terceira vocaçâo de cada ai eu botava pra so essa terceira poder usar ,e isso que estava bugando o movements.xml não aceitava ,duvida sanada obriado.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...