📄 assistancemagic.cpp
字号:
// AssistanceMagic.cpp: implementation of the CAssistanceMagic class.
//
//////////////////////////////////////////////////////////////////////
#include "..\stdafx.h"
#include "AssistanceMagic.h"
#include "..\HigherLayers\OP_Magic.h"
#include "..\HigherLayers\WeatherControl.h"
extern CHARLIST* CheckServerName( const char* szName );// kyo
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CAssistanceMagic::CAssistanceMagic()
{
}
CAssistanceMagic::~CAssistanceMagic()
{
}
///////////////////////////////////////////////////////////////////////////////
// Public Method
///////////////////////////////////////////////////////////////////////////////
bool CAssistanceMagic::Bind()
{
Resist(SPEED_UP, &CAssistanceMagic::SpeedUp);
Resist(ENCHANT_WEAPON, &CAssistanceMagic::EnchantWeapon);
Resist(PRAY_POWER, &CAssistanceMagic::PrayPower);
Resist(GREAT_PRAY, &CAssistanceMagic::GreatPray);
Resist(MINOR_AMPLIFY, &CAssistanceMagic::MinorAmplify);
Resist(MAGIC_AMPLIFY, &CAssistanceMagic::MagicAmplify);
Resist(TRANSPARENCY, &CAssistanceMagic::Transparency);
Resist(LIGHT, &CAssistanceMagic::Light);
Resist(AUTHORITY_LUCK, &CAssistanceMagic::AuthorityLuck);
return true;
}
bool CAssistanceMagic::SpeedUp()
{ // [83]加档刘啊 : 捞悼加档甫 20 ~ 50% 刘啊
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 刘啊伏 拌魂
const int nInt = m_pCaster->GetAbility(INT_);
const int nTactics = m_pCaster->Skill[TACTICS_Magery];
int nBasic = (nInt + nTactics)/20;
if (nBasic < 0) nBasic = 0;
if (nBasic > 30) nBasic = 30;
// 捞悼加档 20 ~ 50% 刘啊
m_pTarget->speedUp.SetState(m_dwNow + wPeriod, nBasic + 20);
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
InitMagicResult(CMD_MAGIC_RESULT_T);
m_packet.u.magic.server_magic_result_t.nMagic = m_nIndex;
m_packet.u.magic.server_magic_result_t.idTarget = m_idTarget;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
SendMagicResult();
return true;
}
bool CAssistanceMagic::EnchantWeapon()
{ // [21]牢镁飘傀迄 : 拱府利 傍拜 单固瘤阑 50% 刘啊
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 拱府利 傍拜仿 50% 刘啊
m_pTarget->SetPhysicalAttack(m_dwNow + wPeriod, 50, 50, 50);
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
InitMagicResult(CMD_MAGIC_RESULT_T);
m_packet.u.magic.server_magic_result_t.nMagic = m_nIndex;
m_packet.u.magic.server_magic_result_t.idTarget = m_idTarget;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
m_packet.u.magic.server_magic_result_t.wDuration= wPeriod;
SendMagicResult();
return true;
}
bool CAssistanceMagic::PrayPower()
{ // [161]扁档狼 开荤 : 拱府利 傍拜 单固瘤甫 50% 刘啊
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 拱府利 傍拜仿 50% 刘啊
m_pTarget->SetPhysicalAttack(m_dwNow + wPeriod, 50, 50, 50);
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
InitMagicResult(CMD_MAGIC_RESULT_T);
m_packet.u.magic.server_magic_result_t.nMagic = m_nIndex;
m_packet.u.magic.server_magic_result_t.idTarget = m_idTarget;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
SendMagicResult();
return true;
}
bool CAssistanceMagic::GreatPray()
{ // [166]困措茄 扁档
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 拱府利 傍拜仿 50% 刘啊
m_pTarget->SetPhysicalAttack(m_dwNow + wPeriod, 50, 50, 50);
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
InitMagicResult(CMD_MAGIC_RESULT_T);
m_packet.u.magic.server_magic_result_t.nMagic = m_nIndex;
m_packet.u.magic.server_magic_result_t.idTarget = m_idTarget;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
SendMagicResult();
return true;
}
bool CAssistanceMagic::MinorAmplify()
{ // [25]家刘气 : 傍拜 付过狼 单固瘤甫 20% 刘啊
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 傍拜 付过狼 单固瘤甫 20% 刘啊
m_pTarget->amplify.SetState(m_dwNow + wPeriod, 20);
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
InitMagicResult(CMD_MAGIC_RESULT_T);
m_packet.u.magic.server_magic_result_t.nMagic = m_nIndex;
m_packet.u.magic.server_magic_result_t.idTarget = m_idTarget;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
SendMagicResult();
return true;
}
bool CAssistanceMagic::MagicAmplify()
{ // [26]付过刘气 : 傍拜 付过狼 单固瘤甫 50% 刘啊
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 傍拜 付过狼 单固瘤甫 50% 刘啊
m_pTarget->amplify.SetState(m_dwNow + wPeriod, 50);
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
InitMagicResult(CMD_MAGIC_RESULT_T);
m_packet.u.magic.server_magic_result_t.nMagic = m_nIndex;
m_packet.u.magic.server_magic_result_t.idTarget = m_idTarget;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
SendMagicResult();
return true;
}
bool CAssistanceMagic::Transparency()
{ // [22]捧疙林巩 : 磊脚狼 个阑 捧疙窍霸 父甸绢 淋
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
m_pTarget->dwTransparency = m_dwNow + wPeriod;
// 捧疙眉 免仿阑 困茄 VIEWTYPE 汲沥(transparency)
m_pTarget->viewtype = VIEWTYPE_TRANSPARENCY_;
::SendViewType(m_pTarget, VIEWTYPE_TRANSPARENCY_, m_pTarget->dwTransparency);
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
InitMagicResult(CMD_MAGIC_RESULT_T);
m_packet.u.magic.server_magic_result_t.nMagic = m_nIndex;
m_packet.u.magic.server_magic_result_t.idTarget = m_idTarget;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
// 老馆 己傍栏肺 焊郴绰 版快 努扼捞攫飘俊辑 促矫 沥惑惑怕肺 悸泼窍骨肺 角菩肺 焊晨
m_packet.u.magic.server_magic_result_t.nResult = HIT_FAILED;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
SendMagicResult();
return true;
}
bool CAssistanceMagic::Light()
{ // [46]蝴 : 林困甫 券窍霸 秦淋(广俊 矫具啊 绢滴况瘤绰 巴阑 困秦)
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
m_pTarget->dwLight = m_dwNow + wPeriod;
// 林困甫 券窍霸 窃
WeatherControl.SetChLight(m_pCaster, nMaximumLight, wPeriod);
for (int i = 0; i < MAX_PARTY_MEMBER; ++i)
{
if (m_pCaster->party[i].On)
{
//CHARLIST *Target = CheckServerId( m_pCaster->party[i].Server_id );
CHARLIST *Target = CheckServerName( &(m_pCaster->party[i].Name[0]) );
if(!Target){continue;}
WeatherControl.SetChLight(Target,nMaximumLight/2,5*60);
}
}
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
InitMagicResult(CMD_MAGIC_RESULT_T);
m_packet.u.magic.server_magic_result_t.nMagic = m_nIndex;
m_packet.u.magic.server_magic_result_t.idTarget = m_idTarget;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
SendMagicResult();
return true;
}
bool CAssistanceMagic::AuthorityLuck()
{ // [175]例措 青款狼 鼻瓷 : 葛电 拱府利 傍拜苞 付过捞 己傍
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
m_pTarget->dwDontMiss = m_dwNow + wPeriod;
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
InitMagicResult(CMD_MAGIC_RESULT_T);
m_packet.u.magic.server_magic_result_t.nMagic = m_nIndex;
m_packet.u.magic.server_magic_result_t.idTarget = m_idTarget;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
SendMagicResult();
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -