Postado Junho 7, 2021 3 anos 3 minutos atrás, stauro disse: Sabe em qual arquivo da source? já mexi no "config.lua" da source, também não mudou nada condition.cpp na função bool ConditionRegeneration::executeCondition(Creature* creature, int32_t interval) Se não tiver conhecimento de C++, poste aqui a função toda para que eu analise. Lembrando que alterações na source requer compilar novamente depois. Te ajudei? Clique em Gostei ! ²²²d¬¬b²²² "She's got a smile that it seems to me...." ♪♪
Postado Junho 7, 2021 3 anos Autor 4 minutos atrás, luangop disse: condition.cpp na função bool ConditionRegeneration::executeCondition(Creature* creature, int32_t interval) Se não tiver conhecimento de C++, poste aqui a função toda para que eu analise. Lembrando que alterações na source requer compilar novamente depois. bool ConditionRegeneration::serialize(PropWriteStream& propWriteStream) { if(!ConditionGeneric::serialize(propWriteStream)) return false; propWriteStream.addByte(CONDITIONATTR_HEALTHTICKS); propWriteStream.addType(healthTicks); propWriteStream.addByte(CONDITIONATTR_HEALTHGAIN); propWriteStream.addType(healthGain); propWriteStream.addByte(CONDITIONATTR_MANATICKS); propWriteStream.addType(manaTicks); propWriteStream.addByte(CONDITIONATTR_MANAGAIN); propWriteStream.addType(manaGain); return true; } bool ConditionRegeneration::executeCondition(Creature* creature, int32_t interval) { internalHealthTicks += interval; internalManaTicks += interval; if(internalHealthTicks >= healthTicks) { internalHealthTicks = 0; creature->changeHealth(healthGain); } if(internalManaTicks >= manaTicks) { internalManaTicks = 0; creature->changeMana(manaGain); } return ConditionGeneric::executeCondition(creature, interval); } bool ConditionRegeneration::setParam(ConditionParam_t param, int32_t value) { bool ret = ConditionGeneric::setParam(param, value); switch(param) { case CONDITIONPARAM_HEALTHGAIN: healthGain = value; return true; case CONDITIONPARAM_HEALTHTICKS: healthTicks = value; return true; case CONDITIONPARAM_MANAGAIN: manaGain = value; return true; case CONDITIONPARAM_MANATICKS: manaTicks = value; return true; default: break; } return ret; } É isso?
Postado Junho 7, 2021 3 anos Agora, stauro disse: bool ConditionRegeneration::serialize(PropWriteStream& propWriteStream) { if(!ConditionGeneric::serialize(propWriteStream)) return false; propWriteStream.addByte(CONDITIONATTR_HEALTHTICKS); propWriteStream.addType(healthTicks); propWriteStream.addByte(CONDITIONATTR_HEALTHGAIN); propWriteStream.addType(healthGain); propWriteStream.addByte(CONDITIONATTR_MANATICKS); propWriteStream.addType(manaTicks); propWriteStream.addByte(CONDITIONATTR_MANAGAIN); propWriteStream.addType(manaGain); return true; } bool ConditionRegeneration::executeCondition(Creature* creature, int32_t interval) { internalHealthTicks += interval; internalManaTicks += interval; if(internalHealthTicks >= healthTicks) { internalHealthTicks = 0; creature->changeHealth(healthGain); } if(internalManaTicks >= manaTicks) { internalManaTicks = 0; creature->changeMana(manaGain); } return ConditionGeneric::executeCondition(creature, interval); } bool ConditionRegeneration::setParam(ConditionParam_t param, int32_t value) { bool ret = ConditionGeneric::setParam(param, value); switch(param) { case CONDITIONPARAM_HEALTHGAIN: healthGain = value; return true; case CONDITIONPARAM_HEALTHTICKS: healthTicks = value; return true; case CONDITIONPARAM_MANAGAIN: manaGain = value; return true; case CONDITIONPARAM_MANATICKS: manaTicks = value; return true; default: break; } return ret; } É isso? Só essa parte: bool ConditionRegeneration::executeCondition(Creature* creature, int32_t interval) { internalHealthTicks += interval; internalManaTicks += interval; if(internalHealthTicks >= healthTicks) { internalHealthTicks = 0; creature->changeHealth(healthGain); } if(internalManaTicks >= manaTicks) { internalManaTicks = 0; creature->changeMana(manaGain); } return ConditionGeneric::executeCondition(creature, interval); } Muda para isso: bool ConditionRegeneration::executeCondition(Creature* creature, int32_t interval) { internalHealthTicks += interval; internalManaTicks += interval; if(creature->getZone() != ZONE_PROTECTION) { if(internalHealthTicks >= healthTicks) { internalHealthTicks = 0; creature->changeHealth(healthGain); } if(internalManaTicks >= manaTicks) { internalManaTicks = 0; creature->changeMana(manaGain); } } return ConditionGeneric::executeCondition(creature, interval); } Não esqueça de compilar novamente. Te ajudei? Clique em Gostei ! ²²²d¬¬b²²² "She's got a smile that it seems to me...." ♪♪
Postado Junho 7, 2021 3 anos Autor 6 minutos atrás, luangop disse: Só essa parte: bool ConditionRegeneration::executeCondition(Creature* creature, int32_t interval) { internalHealthTicks += interval; internalManaTicks += interval; if(internalHealthTicks >= healthTicks) { internalHealthTicks = 0; creature->changeHealth(healthGain); } if(internalManaTicks >= manaTicks) { internalManaTicks = 0; creature->changeMana(manaGain); } return ConditionGeneric::executeCondition(creature, interval); } Muda para isso: bool ConditionRegeneration::executeCondition(Creature* creature, int32_t interval) { internalHealthTicks += interval; internalManaTicks += interval; if(creature->getZone() != ZONE_PROTECTION) { if(internalHealthTicks >= healthTicks) { internalHealthTicks = 0; creature->changeHealth(healthGain); } if(internalManaTicks >= manaTicks) { internalManaTicks = 0; creature->changeMana(manaGain); } } return ConditionGeneric::executeCondition(creature, interval); } Não esqueça de compilar novamente. Funcionou!!!! Muito obrigado, amigo!!! Vc sabe se o sistema de parcel também é na source? não consigo fazer funcionar de jeito nenhum
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.