Ir para conteúdo

Featured Replies

Postado
  • Autor
39 minutos atrás, gabriel28 disse:

Pode postar a solução pra ajudar quem tenha a mesma dúvida?

 

Em condition.cpp procure por:

case CONDITION_GAMEMASTER:

E logo abaixo adicione

case CONDITION_REGEN:

Ainda em condition.cpp procure por:

Icons_t ConditionGeneric::getIcons() const

Olhando um pouco abaixo você irá encontrar

case CONDITION_DRUNK:
	return ICON_DRUNK;

e logo abaixo dele adicione:

case CONDITION_REGEN:
	return ICON_ENERGY;

 

Agora vamos em condition.h e procuramos por:

enum ConditionType_t

 No final você verá a última condition adicionada. A minha era -> CONDITION_HOUSESAY = 1 << 24

Então você irá adicionar a nova condition:

CONDITION_REGEN = 1 << 25

OBSERVAÇÃO: Não esqueça de colocar a virgula no número 24 e deixar sem a virgula o número 25 ou seja vai ficar assim:

CONDITION_HOUSESAY = 1 << 24,
CONDITION_REGEN = 1 << 25
};

Agora compile sua source.

Agora procure a pasta lib no seu otserv e então procure por 000-constant.lua dentro da pasta lib, abra a mesma e procure por:

CONDITION_NONE = 0

Procure por CONDITION_HUNTING = 8388608

e logo abaixo adicione:

CONDITION_REGEN = 33554432

Por que tá "33554432" ao inves de "16777216" talvez você lembre que a última linha no condition.h era "HOUSESAY" enfim é uma condition no meu constant.lua ela não  está adicionada então muti pliquei por 4x, chega de blablabla vamos pra parte final.

 

Ao criar uma magia de suporte ou qualquer que seja a magia você irá adicionar:

local REGEN = createConditionObject(CONDITION_REGEN)
setConditionParam(REGEN, CONDITION_PARAM_TICKS, tempo*1000)
doAddCondition(cid, REGEN)

após function onCastSpell(cid, var).

E pronto a minha spell de suporte ficou assim.

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_ENERGY)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0, 100, 0, 100)

local tempo = 60 -- 60 segundos

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, 250)
setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1)
setConditionParam(condition, CONDITION_PARAM_MANAGAIN, 125)
setConditionParam(condition, CONDITION_PARAM_MANATICKS, 1)
setCombatCondition(combat, condition)

function onCastSpell(cid, var)
local REGEN = createConditionObject(CONDITION_REGEN)
setConditionParam(REGEN, CONDITION_PARAM_TICKS, tempo*1000)
doAddCondition(cid, REGEN)
return doCombat(cid, combat, var)
end

Prontinho agora só ir testar.

Editado por Roy (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.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo