Ir para conteúdo
  • Cadastre-se

[Pedido] Aumentar dano das traps


Posts Recomendados

Olá rapazes, estou procurando algo sobre dano de traps, precisamente algo do tipo:

Item 1510, a trap que sai espetos do chão

Fazer a trap dar mais dano (de preferencia em porcentagem)

Fazer a trap dar dano com probabilidade, como por exemplo, dar dano 25% das vezes que um player passar por cima dela.

Link para o post
Compartilhar em outros sites

O tópico foi movido para a área correta, preste mais atenção da próxima vez!

Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680

Este tópico foi movido:

De: "OTServScriptingGeral"

Para: "OTServSuporte OTServSuporte de Scripts"

Link para o post
Compartilhar em outros sites

não sei como é nos outros TFSs, mas no 1.1 fica aqui: data/movements/scripts/trap.lua 

local traps = {
	[1510] = {transformTo = 1511, damage = {-50, -100}},
	[1513] = {damage = {-50, -100}},
	[2579] = {transformTo = 2578, damage = {-15, -30}},
	[4208] = {transformTo = 4209, damage = {-15, -30}, type = COMBAT_EARTHDAMAGE}
}

function onStepIn(creature, item, position, fromPosition)
	local trap = traps[item.itemid]
	if trap ~= nil then
		if creature:isMonster() then
			doTargetCombatHealth(0, creature, trap.type or COMBAT_PHYSICALDAMAGE, trap.damage[1], trap.damage[2], CONST_ME_NONE)
		end

		if trap.transformTo ~= nil then
			Item(item.uid):transform(trap.transformTo)
		end
	end
	return true
end

function onStepOut(creature, item, position, fromPosition)
	Item(item.uid):transform(item.itemid - 1)
	return true
end

function onRemoveItem(item, tile, position)
	local trap = Item(item.uid)
	local thingPos = trap:getPosition()
	if getDistanceBetween(thingPos, position) > 0 then
		trap:transform(item.itemid - 1)
		thingPos:sendMagicEffect(CONST_ME_POFF)
	end
	return true
end
Link para o post
Compartilhar em outros sites

Esse está muito melhor que o meu, consegui aumentar o dano, mas ainda não consegui colocar o dano em porcentagem, tampouco colocar o supracitado com probabilidade de dano.

Link para o post
Compartilhar em outros sites

Esse é o meu.

~function onStepIn(cid, item, pos)

if(item.itemid == 2579) then

if(not isPlayer(cid)) then

doTargetCombatHealth(0, cid, COMBAT_PHYSICALDAMAGE, -15, -30, CONST_ME_NONE)

doTransformItem(item.uid, item.itemid - 1)

end

else

if(isPlayer(cid)) then

doTargetCombatHealth(0, cid, COMBAT_PHYSICALDAMAGE, -500000, -100000, CONST_ME_NONE)

doTransformItem(item.uid, item.itemid + 1)

end

end

return true

end

function onStepOut(cid, item, pos)

doTransformItem(item.uid, item.itemid - 1)

return true

end

function onRemoveItem(item, tile, pos)

local thingPos = getThingPos(item.uid)

if(getDistanceBetween(thingPos, pos) > 0) then

doTransformItem(item.uid, item.itemid - 1)

doSendMagicEffect(thingPos, CONST_ME_POFF)

end

return true

end

Como eu disse, estou tentando colocar a damage para ser cerca de 90% do hp do player, e que ela ative tipo 50% das vezes que alguém passar por ela. Se não der, somente o damage em porcentagem está bom.

Link para o post
Compartilhar em outros sites
function onStepIn(cid, item, pos)
	
	if(item.itemid == 2579) then
		if(not isPlayer(cid)) then
			doTargetCombatHealth(0, cid, COMBAT_PHYSICALDAMAGE, -15, -30, CONST_ME_NONE)
			doTransformItem(item.uid, item.itemid - 1)
		end
	else
		if(isPlayer(cid)) then
		local c = math.random(2)
			if c == 1 then
				doCreatureAddHealth(cid, - (getCreatureHealth(cid) * 0.9) )
				doTransformItem(item.uid, item.itemid + 1)
			end
		end
	end
return true
end

function onStepOut(cid, item, pos)
doTransformItem(item.uid, item.itemid - 1)
return true
end

function onRemoveItem(item, tile, pos)
local thingPos = getThingPos(item.uid)
if(getDistanceBetween(thingPos, pos) > 0) then
doTransformItem(item.uid, item.itemid - 1)
doSendMagicEffect(thingPos, CONST_ME_POFF)
end
return true
end

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

Perfeito Caronte, fiz umas modificações bruxosas no script, troquei o getcreaturehp por getcreaturemaxhp, pois sem o maxhp ele dava cada vez menos dano, pois era de acordo com o HP atual, então nunca matava o player, ele ficava com 1 de hp. Já com o maxhp as traps estão matando o player. Adicionei também dano à mana, porém mesmo sendo exatamente igual ao HP, ela está diminuindo gradualmente, e não de uma vez só (como se fosse em porcentagem, e não fixo). Depois de uns testes percebi que 50% das vezes era muito, então diminui para 10%, ficou um valor bom.

~function onStepIn(cid, item, pos)

if(item.itemid == 2579) then

if(not isPlayer(cid)) then

doTargetCombatHealth(0, cid, COMBAT_PHYSICALDAMAGE, -15, -30, CONST_ME_NONE)

doTransformItem(item.uid, item.itemid - 1)

end

else

if(isPlayer(cid)) then

local c = math.random(10)

if c == 1 then

doCreatureAddHealth(cid, -((getCreatureMaxHealth (cid))-1))

doTransformItem(item.uid, item.itemid + 1)

else

doCreatureAddMana(cid, -((getCreatureMaxMana (cid))))

doTransformItem(item.uid, item.itemid + 1)

end

end

end

return true

end

function onStepOut(cid, item, pos)

doTransformItem(item.uid, item.itemid - 1)

return true

end

function onRemoveItem(item, tile, pos)

local thingPos = getThingPos(item.uid)

if(getDistanceBetween(thingPos, pos) > 0) then

doTransformItem(item.uid, item.itemid - 1)

doSendMagicEffect(thingPos, CONST_ME_POFF)

end

return true

end

Link para o post
Compartilhar em outros sites

Coloquei hp porque você não disse maxhp :P

cerca de 90% do hp do player
 

 

 

 

olha desse jeito, vai tirar a maxhp -1 ..., você não quer por 90% não  ?

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

Então, a idéia de 90% era pra tirar HP suficiente pra deixar o player quase morrendo, porém matando na segunda pisada, depois de testar, vi que era mais "emocionante" deixar o player com 1 de HP. A idéia é fazer um corredorzão de traps que dá numa quest. Apesar de eu ter mudado o script, muito obrigado pela ajuda.

Link para o post
Compartilhar em outros sites
function onStepIn(cid, item, pos)
	
	if(item.itemid == 2579) then
		if(not isPlayer(cid)) then
			doTargetCombatHealth(0, cid, COMBAT_PHYSICALDAMAGE, -15, -30, CONST_ME_NONE)
			doTransformItem(item.uid, item.itemid - 1)
		end
	else
		if(isPlayer(cid)) then
		local c = math.random(2)
			if c == 1 then
				doCreatureAddHealth(cid, - (getCreatureMaxHealth(cid) * 0.9) )
			doPlayerAddMana(cid, - (getPlayerMaxMana(cid) * 0.9) )
				doTransformItem(item.uid, item.itemid + 1)
			end
		end
	end
return true
end
 
function onStepOut(cid, item, pos)
doTransformItem(item.uid, item.itemid - 1)
return true
end
 
function onRemoveItem(item, tile, pos)
local thingPos = getThingPos(item.uid)
if(getDistanceBetween(thingPos, pos) > 0) then
doTransformItem(item.uid, item.itemid - 1)
doSendMagicEffect(thingPos, CONST_ME_POFF)
end
return true
end

Vai tirar sempre 90% da max mana e max vida, ou seja, vai matar na segunda, caso ele não tenha +90% de vida...

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

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