📄 bloodyspear.cpp
字号:
//////////////////////////////////////////////////////////////////////////////// Filename : BloodySpear.cpp// Written by : // Description : //////////////////////////////////////////////////////////////////////////////#include "BloodySpear.h"#include "SimpleMissileSkill.h"#include "RankBonus.h"//////////////////////////////////////////////////////////////////////////////// 轨颇捞绢 坷宏璃飘 勤甸矾//////////////////////////////////////////////////////////////////////////////void BloodySpear::execute(Vampire* pVampire, ObjectID_t TargetObjectID, VampireSkillSlot* pVampireSkillSlot, CEffectID_t CEffectID) throw(Error){ __BEGIN_TRY //cout << "TID[" << Thread::self() << "]" << getSkillHandlerName() << " Begin(vampire)" << endl; SkillInput input(pVampire); SkillOutput output; computeOutput(input, output); SIMPLE_SKILL_INPUT param; param.SkillType = getSkillType(); param.SkillDamage = output.Damage; param.Delay = output.Delay; param.ItemClass = Item::ITEM_CLASS_MAX; param.STRMultiplier = 0; param.DEXMultiplier = 0; param.INTMultiplier = 0; param.bMagicHitRoll = true; param.bMagicDamage = true; param.bAdd = false; SIMPLE_SKILL_OUTPUT result; // Knowledge of Blood 啊 乐促搁 hit bonus 10 int HitBonus = 0; if ( pVampire->hasRankBonus( RankBonus::RANK_BONUS_KNOWLEDGE_OF_BLOOD ) ) { RankBonus* pRankBonus = pVampire->getRankBonus( RankBonus::RANK_BONUS_KNOWLEDGE_OF_BLOOD ); Assert( pRankBonus != NULL ); HitBonus = pRankBonus->getPoint(); } g_SimpleMissileSkill.execute(pVampire, TargetObjectID, pVampireSkillSlot, param, result, CEffectID, HitBonus); //cout << "TID[" << Thread::self() << "]" << getSkillHandlerName() << " End(vampire)" << endl; __END_CATCH}//////////////////////////////////////////////////////////////////////////////// 阁胶磐 坷宏璃飘 勤甸矾//////////////////////////////////////////////////////////////////////////////void BloodySpear::execute(Monster* pMonster, Creature* pEnemy) throw(Error){ __BEGIN_TRY //cout << "TID[" << Thread::self() << "]" << getSkillHandlerName() << " Begin(monster)" << endl; SkillInput input(pMonster); SkillOutput output; computeOutput(input, output); SIMPLE_SKILL_INPUT param; param.SkillType = getSkillType(); param.SkillDamage = output.Damage; param.Delay = output.Delay; param.ItemClass = Item::ITEM_CLASS_MAX; param.STRMultiplier = 0; param.DEXMultiplier = 0; param.INTMultiplier = 0; param.bMagicHitRoll = true; param.bMagicDamage = true; param.bAdd = false; SIMPLE_SKILL_OUTPUT result; if (pMonster->isMaster()) { if (pEnemy==NULL) return; int X = pEnemy->getX(); int Y = pEnemy->getY(); int oX, oY; Zone* pZone = pEnemy->getZone(); Assert(pZone!=NULL); VSRect rect(0, 0, pZone->getWidth()-1, pZone->getHeight()-1); for(oX = -3; oX <= 3; oX++) for(oY = -3; oY <= 3; oY++) { int tileX = X+oX; int tileY = Y+oY; if (!rect.ptInRect(tileX, tileY)) continue; checkMine( pZone, tileX, tileY ); Tile& tile = pZone->getTile(tileX, tileY); Creature* pTargetCreature = NULL; if (tile.hasCreature(Creature::MOVE_MODE_WALKING)) pTargetCreature = tile.getCreature(Creature::MOVE_MODE_WALKING); if (pTargetCreature != NULL // NPC档 酒聪绢具 茄促. && !pTargetCreature->isNPC() // 傍拜 措惑捞 嘎绰瘤 犬牢 && pMonster->isEnemyToAttack( pTargetCreature )) { g_SimpleMissileSkill.execute(pMonster, pTargetCreature, param, result); } } } else { g_SimpleMissileSkill.execute(pMonster, pEnemy, param, result); } //cout << "TID[" << Thread::self() << "]" << getSkillHandlerName() << " End(monster)" << endl; __END_CATCH}BloodySpear g_BloodySpear;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -