Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Calculation of skills parameters buffs/debuffs etc.
- int(__thiscall* CSkillManager__CalAffect)(void * tThis, unsigned int dwCasterId, unsigned __int16 wKind, unsigned int *pdwParams, int bAdd) = (int(__thiscall*)(void * tThis, unsigned int dwCasterId, unsigned __int16 wKind, unsigned int *pdwParams, int bAdd))(0x004A7F20);
- int __fastcall dCSkillManager__CalAffect(void * This, void* notUsed, unsigned int dwCasterId, unsigned __int16 wKind, unsigned int *pdwParams, int bAdd)
- {
- CSkillManager * skillMgr = (CSkillManager*)This;
- switch (wKind)
- {
- //RUMIR
- case Skillidx::RUMIR_CASUAL_LOOP:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_CASUAL_LOOP_CRIT_HEAL_RATE, pdwParams[0], bAdd);
- break;
- }
- case Skillidx::RUMIR_VINE_PROTECTION:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_RUMIR_VINE_DECREASE_DAMAGE, pdwParams[1], bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_RUMIR_VINE_STUN_CHANCE, pdwParams[0], bAdd);
- break;
- }
- case Skillidx::RUMIR_REVIVE_FORCE:
- {
- if (bAdd)
- {
- skillMgr->_option.SetOption(Skillabilityoptiontype::SAOT_REVIVE_FORCE_RATE, pdwParams[0]);
- }
- else
- {
- skillMgr->_option.SetOption(Skillabilityoptiontype::SAOT_REVIVE_FORCE_RATE, 0);
- }
- break;
- }
- case Skillidx::RUMIR_GROWTH_ACCELERATION:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_ATTACK_SPEED_RATE, pdwParams[1], bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MELEE_ATTACK_RATE, pdwParams[0], bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MISSILE_ATTACK_RATE, pdwParams[0], bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MAGIC_ATTACK_FORCE_RATE, pdwParams[0], bAdd);
- break;
- }
- case Skillidx::RUMIR_BLESSED_CROWN:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MENTALITY_RATE, pdwParams[0], bAdd);
- break;
- }
- case Skillidx::RUMIR_SEQUOIAS_FAVOR:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_HEALTH_RATE_NO_LIFE_ADD, pdwParams[0], bAdd);
- break;
- }
- case Skillidx::RUMIR_PRISM_SPHERE:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MULTI_ATTACK_COUNT_BY_DESTROY, pdwParams[2], bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MULTI_ATTACK_RANGE_BY_DESTROY, 2000, bAdd);
- break;
- }
- case Skillidx::RUMIR_ARRENDAL_MASTERY:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MAGIC_ATTACK_BY_PSYCHE, pdwParams[0], bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_HEAL_RECOVERY_RATE, pdwParams[1], bAdd);
- break;
- }
- case Skillidx::RUMIR_TRINITY_FORCE:
- {
- std::shared_ptr<PlayerExtensions> extsn = MapUtil::getPlayerExtension(skillMgr->_biotic->_iD.id);
- if (extsn)
- {
- extsn->SetValues(PExtensionEnums::TRINITY_FORCE_BOOSTER_PTS, pdwParams[4], bAdd);
- }
- break;
- }
- /*NOIR BUFFS
- *
- *
- */
- case Skillidx::NOIR_WINDY_CHAIN:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MOVE_SPEED_RATE, -static_cast<signed int>(pdwParams[2]), bAdd);
- break;
- }
- case Skillidx::NOIR_DISTORTION_CLAW_GRAVITY:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MOVE_SPEED_RATE, -static_cast<signed int>(pdwParams[0]), bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_ATTACK_SPEED_RATE, -static_cast<signed int>(pdwParams[1]), bAdd);
- break;
- }
- case Skillidx::NOIR_DISTORTION_CLAW_CHAOS:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MELEE_ATTACK_RATE, -static_cast<signed int>(pdwParams[2]), bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MISSILE_ATTACK_RATE, -static_cast<signed int>(pdwParams[2]), bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MAGIC_ATTACK_FORCE_RATE, -static_cast<signed int>(pdwParams[2]), bAdd);
- break;
- }
- case Skillidx::NOIR_TRINITY_FORCE:
- {
- std::shared_ptr<PlayerExtensions> extsn = MapUtil::getPlayerExtension(skillMgr->_biotic->_iD.id);
- if (extsn)
- {
- extsn->SetValues(PExtensionEnums::TRINITY_FORCE_BOOSTER_PTS, pdwParams[4], bAdd);
- //skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_WIDE_ATTACK_REDUCED_DAMAGE_RATE_BY_EQUALITY, pdwParams[1], bAdd);
- //skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_WIDE_ATTACK_PROBABILITY, 1000000, bAdd);
- //skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_WIDE_ATTACK_RANGE, pdwParams[3], bAdd);
- }
- break;
- }
- case Skillidx::NOIR_DISTORTION_CLAW_REVERSE:
- {
- std::shared_ptr<PlayerExtensions> extsn = MapUtil::getPlayerExtension(skillMgr->_biotic->_iD.id);
- if (extsn)
- {
- extsn->SetValues(PExtensionEnums::REVERSE_CLAW_BOOST_DAMAGE, pdwParams[1], bAdd);
- }
- break;
- }
- case Skillidx::NOIR_DIMENSIONAL_COAT:
- {
- std::shared_ptr<PlayerExtensions> extsn = MapUtil::getPlayerExtension(skillMgr->_biotic->_iD.id);
- if (extsn)
- {
- extsn->SetValues(PExtensionEnums::DIMENSIONAL_COAT_TP_BOOSTER_PTS, pdwParams[4], bAdd);
- extsn->SetValues(PExtensionEnums::DIMENSIONAL_COAT_HEAL_RATE, pdwParams[0], bAdd);
- }
- break;
- }
- case Skillidx::NOIR_ARRENDAL_MASTERY:
- {
- //skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MELEE_ATTACK_BY_STRENGTH, pdwParams[0], bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MELEE_ATTACK_RATE, pdwParams[0], bAdd);
- break;
- }
- case Skillidx::NOIR_DARK_ASSIMILATION:
- {
- //skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MELEE_ATTACK_RATE, pdwParams[0], bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_ATTACK_SPEED_RATE, pdwParams[0], bAdd);
- break;
- }
- case Skillidx::NOIR_SPIRIT_CONCENTRATION:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_STRENGTH_RATE, pdwParams[0], bAdd);
- break;
- }
- case Skillidx::TR_TUNE_OF_LIFE:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MELEE_ATTACK_RATE, pdwParams[0], bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MISSILE_ATTACK_RATE, pdwParams[0], bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MAGIC_ATTACK_FORCE_RATE, pdwParams[0], bAdd);
- break;
- }
- case Skillidx::TR_DORMANT_POWER:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MAX_LIFE_ADD_TRINITY_BY_SKILL_POINT, pdwParams[0], bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MAX_MANA_ADD_TRINITY_BY_SKILL_POINT, pdwParams[1], bAdd);
- break;
- }
- /*TRINITY
- *END
- *
- */
- case Skillidx::SCOUT_HERO_SKILL_TEMP_1:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MULTI_ATTACK_FORCE_RATE_BY_DESTROY, *pdwParams, bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MULTI_ATTACK_COUNT_BY_DESTROY, pdwParams[2], bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MULTI_ATTACK_RANGE_BY_DESTROY, 2000, bAdd);
- break;
- }
- case Skillidx::PREDATOR_HERO_SKILL_TEMP_1:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_WIDE_ATTACK_REDUCED_DAMAGE_RATE_BY_EQUALITY, pdwParams[1], bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_WIDE_ATTACK_PROBABILITY, *pdwParams, bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_WIDE_ATTACK_RANGE, pdwParams[3], bAdd);
- break;
- }
- case Skillidx::BERSERKER_HERO_SKILL_TEMP_1:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_WIDE_ATTACK_REDUCED_DAMAGE_RATE_BY_EQUALITY, pdwParams[1], bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_WIDE_ATTACK_PROBABILITY, *pdwParams, bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_WIDE_ATTACK_RANGE, pdwParams[3], bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_TOTAL_DEFENCE_RATE, pdwParams[4], bAdd);
- break;
- }
- case Skillidx::GUARDIAN_HERO_SKILL_TEMP_2:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MELEE_ATTACK_RATE, *pdwParams, bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_ATTACK_SPEED_RATE, pdwParams[1], bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MOVE_SPEED_RATE, pdwParams[2], bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_LIFE_DRAIN_RATE, pdwParams[3], bAdd);
- break;
- }
- case Skillidx::GUARDIAN_HERO_SKILL_TEMP_1:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_WIDE_ATTACK_REDUCED_DAMAGE_RATE_BY_EQUALITY, pdwParams[1], bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_WIDE_ATTACK_PROBABILITY, *pdwParams, bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_WIDE_ATTACK_RANGE, pdwParams[3], bAdd);
- break;
- }
- case Skillidx::WIZARD_HERO_SKILL_TEMP_1:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MENTALITY_RATE, *pdwParams, bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_ATTACK_SPEED_RATE, pdwParams[1], bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MOVE_SPEED_RATE, pdwParams[2], bAdd);
- break;
- }
- case Skillidx::AVENGER_HERO_SKILL_TEMP_1:
- {
- skillMgr->_biotic->_skillSlot._orderSwingCount = 0;
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_PARRY_RATE, pdwParams[1], bAdd);
- break;
- }
- case Skillidx::SAVAGE_HERO_SKILL_TEMP_1:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MELEE_ATTACK_RATE, -static_cast<signed int>(pdwParams[1]), bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MISSILE_ATTACK_RATE, -static_cast<signed int>(pdwParams[1]), bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MAGIC_ATTACK_FORCE_RATE, -static_cast<signed int>(pdwParams[1]), bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MAGIC_DEFENCE_RATE, -static_cast<signed int>(pdwParams[1]), bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_PHYSICS_DEFENCE_RATE, -static_cast<signed int>(pdwParams[1]), bAdd);
- break;
- }
- case Skillidx::WARLOCK_HERO_SKILL_TEMP_1:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MELEE_ATTACK_RATE, -static_cast<signed int>(pdwParams[4]), bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MISSILE_ATTACK_RATE, -static_cast<signed int>(pdwParams[4]), bAdd);
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MAGIC_ATTACK_FORCE_RATE, -static_cast<signed int>(pdwParams[4]), bAdd);
- break;
- }
- case Skillidx::TEMPLER_HERO_SKILL_TEMP_1:
- {
- skillMgr->_option.CalOption(Skillabilityoptiontype::SAOT_MOVE_SPEED_RATE, -static_cast<signed int>(pdwParams[1]), bAdd);
- break;
- }
- default:
- {
- return CSkillManager__CalAffect(This, dwCasterId, wKind, pdwParams, bAdd);
- }
- }
- CPlayer * player = (CPlayer *)___RTDynamicCast(skillMgr->_biotic, 0, (void *)0x786588, (void *)0x7865B8, 0);
- if (player)
- player->CalAllAbility();
- else
- {
- Monster * monsta = (Monster *)___RTDynamicCast(skillMgr->_biotic, 0, (void *)0x786588, (void *)0x00786EB0, 0);
- if (monsta) {
- monsta->CalAllAbility();
- }
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement