📄 combatsys.cpp
字号:
{
// 蜡瘤矫埃捞 粮犁窍绰 付过牢 版快
if (g_lpMT[nCombat].continue_Time != 0)
{
pCaster->ready_Magic = 3; // 付过备泅 矫累
}
// 茄锅 矫傈俊 茄锅 荤侩 啊瓷茄 付过牢 版快
if (g_lpMT[nCombat].excute_Type == 1)
{
::EndCastMagic(pCaster); // 矫傈磊狼 付过 霖厚惑怕甫 檬扁拳
}
return true;
}
if (Hero == pCaster)
{
OUTPUT(MK_NORMAL, lan->OutputMessage(1, 65));
}
COMBAT_FIAL:
::EndCastMagic(pCaster); // 矫傈磊狼 付过 霖厚惑怕甫 檬扁拳
return false;
}
void CCombatSys::Effect(LPCHARACTER pCaster, LPCHARACTER pTarget)
{
static int nTemp;
if (pCaster != NULL)
{
//const int nCaster = pCaster->nActiveCombat; //Thralas
switch(pCaster->nActiveCombat.GetDecrypted()) //switch (nCaster)
{
case LIGHTNING_BOOM:
{
::InsertMagic(pCaster, pTarget, 569, 9, 0, 0, pTarget->x, pTarget->y);
break;
}
case THUNDER_BLOW:
{
::InsertMagic(pCaster, pTarget, 577, 9, 0, 0, pTarget->x, pTarget->y);
break;
}
case LIGHTNING_SHOCK:
{
::InsertMagic(pCaster, pTarget, 553, 9, 0, 0, pTarget->x, pTarget->y);
break;
}
case THUNDER_STRIKE:
{
::InsertMagic(pCaster, pTarget, 552, 4, 0, 0, pTarget->x, pTarget->y);
break;
}
case GROUND_ATTACK:
{
::InsertMagic(pCaster, pTarget, 574, 4, 0, 0, pTarget->x, pTarget->y);
break;
}
case BLOOD_WILL:
{
::InsertMagic(pCaster, pTarget, 555, 4, 0, 0, pTarget->x, pTarget->y);
break;
}
case SWORD_N_ROSES:
{
if (++nTemp%3 == 1)
{
::InsertMagic(pCaster, pTarget, 572, 9, 0, 0, pTarget->x, pTarget->y);
}
break;
}
case FLEET_MISSILE:
{
InsertMagic(pCaster, pTarget, 575, 0, 0, 0, pTarget->x, pTarget->y);
break;
}
case CONVERTING_ARMOR:
{
::InsertMagic(pCaster, pTarget, 29, 0, 0, 0, pTarget->x, pTarget->y);
break;
}
case HORN_OF_ICEBERG:
{
::InsertMagic(pCaster, pTarget, 565, 4, 0, 0, pTarget->x, pTarget->y);
break;
}
case CHARGING:
case DOUBLE_ATTACK:
{
::InsertMagic(pCaster, pTarget, 567, 4, 0, 0, pTarget->x, pTarget->y);
break;
}
case CHERROY_SHADE:
{
::InsertMagic(pCaster, pTarget, 570, 9, 0, 0, pTarget->x, pTarget->y);
break;
}
case DARK_BLADE:
{
::InsertMagic(pCaster, pTarget, 576, 4, 0, 0, pTarget->x, pTarget->y);
::InsertMagic(pCaster, pTarget, 560, 9, 0, 0, pTarget->x, pTarget->y);
break;
}
case CRITICAL_HIDING:
{
::InsertMagic(pCaster, pTarget, 179, 9, 0, 0, pTarget->x, pTarget->y);
break;
}
case MULTIPLE_FIRE:
case FIRE_EXTREME:
{
::InsertMagic(pCaster, pTarget, 513, 0, 0, 0, pTarget->x, pTarget->y);
break;
}
case ICING_BLAST:
case ICE_EXTREME:
{
::InsertMagic(pCaster, pTarget, 514, 0, 0, 0, pTarget->x, pTarget->y);
break;
}
case SHARK_MISSILE:
{
switch (pCaster->nCurrentAction)
{
case ACTION_ATTACK_BOW:
{
::InsertMagic(pCaster, pTarget, 38, 0, 0, 0, pTarget->x, pTarget->y);
break;
}
case ACTION_THROW:
{
::InsertMagic(pCaster, pTarget, 189, 0, 0, 0, pTarget->x, pTarget->y);
break;
}
}
break;
}
case LIGHTNING_EXTREME:
{
::InsertMagic(pCaster, pTarget, 587, 9, 0, 0, pTarget->x, pTarget->y); // 030513 kyo
break;
}
case EARTH_EXTREME:
{
::InsertMagic(pCaster, pTarget, 586, 9, 0, 0, pTarget->x, pTarget->y);
break;
}
case DARK_EXTREME:
{
::InsertMagic(pCaster, pTarget, 596, 9, 0, 0, pTarget->x, pTarget->y);
break;
}
case WIND_EXTREME:
{
::InsertMagic(pCaster, pCaster, 591, 0, 0, 0, pCaster->x, pCaster->y);
::InsertMagic(pCaster, pTarget, 590, 9, 0, 0, pTarget->x, pTarget->y);
break;
}
}
}
if (pTarget != NULL)
{
//const int nActive = pTarget->nActiveCombat; //Thralas
switch(pTarget->nActiveCombat.GetDecrypted()) //switch (nActive)
{
case STONE_ARMOR:
{
::InsertMagic(pTarget, pTarget, 573, 9, 0, 0, pTarget->x, pTarget->y);
break;
}
}
const int nPassive = pTarget->nPassiveCombat;
switch (nPassive)
{
case LIGHTNING_SHIELD:
{
::InsertMagic(pTarget, pTarget, 580, 9, 0, 0, pTarget->x, pTarget->y);
break;
}
case ICE_SHIELD:
{
::InsertMagic(pTarget, pTarget, 584, 9, 0, 0, pTarget->x, pTarget->y);
break;
}
}
}
}
int CCombatSys::GetCastContinue(int nCombat) const
{
return g_lpMT[nCombat].cast_Continue;
}
bool CCombatSys::IsEnable(int nCombat) const
{
// 乞拳葛靛 惑怕俊辑绰 傈捧胶懦 荤侩 阂啊
if (main_interface.data[IF_BATTLE_PEACE] == 0)
{
OUTPUT(MK_NORMAL, lan->OutputMessage(1, 55));
return false;
}
// 某腐磐啊 磷绢 乐绰 版快
if (SCharacterData.nCharacterHP <= 0)
{
OUTPUT(MK_WARNING, lan->OutputMessage(1, 66));
return false;
}
// 某腐磐啊 咯包俊辑 磊绊 乐绰 版快
if (SCharacterData.sleep != CSC_AWAKE)
{
OUTPUT(MK_WARNING, lan->OutputMessage(1, 67));
return false;
}
// 旧酒 乐绰 惑怕俊绰 付过矫傈 阂啊
if (Hero->nCurrentAction == 17)
{
return false;
}
// 扒拱 救俊 乐绰 版快
const int nX = Hero->x>>5;
const int nY = Hero->y>>5;
if (TileMap[nX][nY].attr_inside == 1)
{
OUTPUT(MK_WARNING, lan->OutputMessage(1, 4));
return false;
}
return true;
}
///////////////////////////////////////////////////////////////////////////////
// Protected Method
///////////////////////////////////////////////////////////////////////////////
bool CCombatSys::AddEffect(LPCHARACTER pCaster, LPCHARACTER pTarget, int nCombat, int nX, int nY, bool bFail)
{
const int nEffect = nCombat + 300;
const bool bPattern = false;
switch (nCombat)
{
case LIGHTNING_SHIELD:
case BURNING_BLOODY: // 030415 kyo
case ICE_SHIELD:
case THUNDER_BLOW:
case LIGHTNING_SHOCK:
case THUNDER_STRIKE:
case BLOOD_WILL:
case STONE_ARMOR:
case SWORD_N_ROSES:
case MULTIPLE_FIRE:
case FLEET_MISSILE:
case CONVERTING_ARMOR:
case HORN_OF_ICEBERG:
case ICING_BLAST:
case CRITICAL_HIDING:
case DOUBLE_ATTACK:
case GUST:
case TYBERN_GIFT:
case ACUQUIRE_DARK: // 030415 kyo
case CHERROY_SHADE:
case SHARK_MISSILE:
case DARK_BLADE:
case SIMUNIAN_BOSOM:
case LIGHTNING_EXTREME:
case EARTH_EXTREME:
case FIRE_EXTREME:
case DARK_EXTREME:
case ICE_EXTREME:
case WIND_EXTREME:
{
::InsertMagic(pCaster, pTarget, nEffect, 0, 0, 0, nX, nY, bPattern, 0, bFail);
break;
}
case LIGHTNING_BOOM:
case BLOOD_EARTH:
case GROUND_ATTACK:
case POISONING_NOVA:
case WHILWIND:
case TWISTER:
{
::InsertMagic(pCaster, pTarget, nEffect, 8, 0, 0, nX, nY, bPattern, 0, bFail);
break;
}
case CHARGING:
{
::InsertMagic(pCaster, pTarget, nEffect, 2, 0, 0, nX, nY, bPattern, 0, bFail);
break;
}
default:
{
return false;
}
}
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -