Ir para conteúdo
  • 0
Entre para seguir isso  
Pepeco

Scripting Cooldown

Pergunta

Pepeco    4
Pepeco

Base:   The Forgotten Server 1.2, Versão: 8.60

Qual a sua pergunta? 

Estou com problemas em arrumar o exhaustion de uma runa, queria que ela não tivesse muito, ser algo que possa ser muito rápido, porém, parece que tem um minimo de exhaustion e não pode ser menor que o minimo e eu não faço a minima ideia de como deixar ela rapida. Tentei mudar no spells.xml, colocar no script (vi que dava certo '-') a função "Player.getExhaustion"  e "Player.setExhaustion"... Tentei mudar na distro no spells.cpp o cooldown estava 1000 e eu deixar em 1 (pensei que era um padrão), mas não funcionou.... Alguem tem alguma ideia?

 

Você tem o código disponível? Se tiver poste-o na caixa de código que está dentro do spoiler abaixo: (A runa seria uma arma de fogo, nesse exemplo a ak47)

Spoiler

 local _config = {
	armaID = 2304,
	type = COMBAT_PHYSICALDAMAGE,
	effect = CONST_ME_MORTAREA, 
	dist = CONST_ANI_BOLT, 
	ammu_id = 2543, 
	ammu_lose = 1, 
	min = 250, 
	max = 330
}

local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, _config.type)
combat:setParameter(COMBAT_PARAM_EFFECT, _config.effect)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, _config.dist)

function onGetFormulaValues(player, level)
	local distance = player:getSkillLevel(SKILL_DISTANCE)
	local min = _config.min
	local max = distance + _config.max
	return -min, -max
end

function onCastSpell(creature, variant, isHotkey)
	print(Player.getExhaustion(creature, 23000))
	if Player.getExhaustion(creature, 23000) == 0 then
        Player.setExhaustion(creature, 23000, 0)
    else
        print(111)
        return false
    end



local ItemPosLEFT = creature:getSlotItem(CONST_SLOT_LEFT)
	if (ItemPosLEFT.itemid == _config.armaID) then
		if creature:getItemCount(_config.ammu_id) < 1 then
			return creature.sendCancelMessage(creature, "Voce nao tem municao o suficiente.")
		end
		creature:removeItem(_config.ammu_id, _config.ammu_lose)
		return combat:execute(creature, variant)
	else
		return creature.sendCancelMessage(creature, "Voce precisa estar com a arma equipada na mao esquerda.")
	end
end
combat:setCallback(CALLBACK_PARAM_DISTANCEVALUE, "onGetFormulaValues")

 

Eu fiz varios testes no script, então o que eu utilizava dês do inicio era esse

Spoiler

local _config = {
	armaID = 2267,
	type = COMBAT_PHYSICALDAMAGE,
	effect = CONST_ME_MORTAREA, 
	dist = CONST_ANI_INFERNALBOLT, 
	ammu_id = 6529, 
	ammu_lose = 1, 
	min = 50, 
	max = 100
}

local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, _config.type)
combat:setParameter(COMBAT_PARAM_EFFECT, _config.effect)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, _config.dist)

function onGetFormulaValues(player, level)
	local distance = player:getSkillLevel(SKILL_DISTANCE)
	local min = _config.min
	local max = distance + _config.max
	return -min, -max
end

function onCastSpell(creature, variant, isHotkey)
local ItemPosLEFT = creature:getSlotItem(CONST_SLOT_LEFT)
	if (ItemPosLEFT.itemid == _config.armaID) then
		if creature:getItemCount(_config.ammu_id) < 1 then
			return creature.sendCancelMessage(creature, "Voce nao tem municao o suficiente.")
		end
		creature:removeItem(_config.ammu_id, _config.ammu_lose)
		return combat:execute(creature, variant)
	else
		return creature.sendCancelMessage(creature, "Voce precisa estar com a arma equipada na mao esquerda.")
	end
end
combat:setCallback(CALLBACK_PARAM_DISTANCEVALUE, "onGetFormulaValues")

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

3 respostass a esta questão

Recommended Posts

  • 1
Majesty    1755
Majesty

https://otland.net/threads/player-setexhaustion-player-getexhaustion-tfs-1-0.224233/

Tente o exemplo abaixo:

function onCastSpell(creature, variant, isHotkey)
        print(Player.getExhaustion(creature, 23000))
    if Player.getExhaustion(creature, 23000) <= 0 then
        Player.setExhaustion(creature, 23000, 0.5)
    else
        print('You\'re exhausted for: '..player:getExhaustion(creature, 23000)..' seconds.')
        print(111)
    end
    return true
end

No config.lua, procure por:

 timeBetweenExActions = 1000

Esse parâmetro define o exhausted padrão para runas, tente também alterar esse valor.

Obs: não testei então não sei se funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 1
Majesty    1755
Majesty

spells.xml.

exhaustion = "1000".

1000 = 1 segundo.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
Pepeco    4
Pepeco
18 horas atrás, Majesty disse:

spells.xml.

exhaustion = "1000".

1000 = 1 segundo.

A questão é essa, parece que ele não aceita se for menor que 1000, queria um numero muito inferior a isso, como por exemplo, 50 ~ 400 (precisa ser entra isso +/-, pois é algo que os players vão usar toda hora, então faz muita diferença)

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×