📄 buff.cpp.svn-base
字号:
character->Status->HP_down,
character->Stats->MaxHP, true );
if(BuffValue.NewValue!=0)
{
UINT j = BuffValue.Position;
character->Stats->MaxHP = BuffValue.NewValue;
character->Status->HP_up = j;
character->MagicStatus[j].Buff = thisskill->buff[i];
character->MagicStatus[j].BuffTime = clock();
character->MagicStatus[j].Duration = thisskill->duration;
character->MagicStatus[j].Value = BuffValue.Value;
bflag = true;
}
}
break;
case A_MP:
case A_MAX_MP:
{
if(thisskill->duration<=0)
{//i don't think there are a skill with this (heal mp)
character->Stats->MP += (long int)thisskill->value1;
if(character->Stats->MP > character->Stats->MaxMP)
character->Stats->MP = character->Stats->MaxMP;
return true;
}
CBValue BuffValue = GetBuffValue( thisskill, character, Evalue, i,
character->Status->MP_up,
character->Status->MP_down,
character->Stats->MaxMP, true );
if(BuffValue.NewValue!=0)
{
UINT j = BuffValue.Position;
character->Stats->MaxMP = BuffValue.NewValue;
character->Status->MP_up = j;
character->MagicStatus[j].Buff = thisskill->buff[i];
character->MagicStatus[j].BuffTime = clock();
character->MagicStatus[j].Duration = thisskill->duration;
character->MagicStatus[j].Value = BuffValue.Value;
bflag = true;
}
}
break;
}
return bflag;
}
// Add Buffs
bool CWorldServer::CheckDBuffs( CSkills* thisskill, CCharacter* character, int Evalue ,int i)
{
bool bflag = false;
switch( thisskill->buff[i] )
{
case A_HP:
{
bflag = true;
character->Stats->HP -= (long int)thisskill->value1;
if(character->Stats->HP < 0)
character->Stats->HP = 0;
}
break;
case A_ATTACK:
{
CBValue BuffValue = GetBuffValue( thisskill, character, Evalue, i,
character->Status->Attack_up,
character->Status->Attack_down,
character->Stats->Attack_Power, false );
if(BuffValue.NewValue!=0)
{
UINT j = BuffValue.Position;
character->Stats->Attack_Power = BuffValue.NewValue;
character->Status->Attack_down = j;
character->MagicStatus[j].Buff = thisskill->buff[i];
character->MagicStatus[j].BuffTime = clock();
character->MagicStatus[j].Duration = thisskill->duration;
character->MagicStatus[j].Value = BuffValue.Value;
bflag = true;
}
}
break;
case A_DEFENSE:
{
CBValue BuffValue = GetBuffValue( thisskill, character, Evalue, i,
character->Status->Defense_up,
character->Status->Defense_down,
character->Stats->Defense, false );
if(BuffValue.NewValue!=0)
{
UINT j = BuffValue.Position;
character->Stats->Defense = BuffValue.NewValue;
character->Status->Defense_down = j;
character->MagicStatus[j].Buff = thisskill->buff[i];
character->MagicStatus[j].BuffTime = clock();
character->MagicStatus[j].Duration = thisskill->duration;
character->MagicStatus[j].Value = BuffValue.Value;
bflag = true;
}
}
break;
case A_ACCUR:
{
CBValue BuffValue = GetBuffValue( thisskill, character, Evalue, i,
character->Status->Accury_up,
character->Status->Accury_down,
character->Stats->Accury, false );
if(BuffValue.NewValue!=0)
{
UINT j = BuffValue.Position;
character->Stats->Accury = BuffValue.NewValue;
character->Status->Accury_down = j;
character->MagicStatus[j].Buff = thisskill->buff[i];
character->MagicStatus[j].BuffTime = clock();
character->MagicStatus[j].Duration = thisskill->duration;
character->MagicStatus[j].Value = BuffValue.Value;
bflag = true;
}
}
break;
case A_MRESIST:
{
CBValue BuffValue = GetBuffValue( thisskill, character, Evalue, i,
character->Status->Magic_Defense_up,
character->Status->Magic_Defense_down,
character->Stats->Magic_Defense, false );
if(BuffValue.NewValue!=0)
{
UINT j = BuffValue.Position;
character->Stats->Magic_Defense = BuffValue.NewValue;
character->Status->Magic_Defense_down = j;
character->MagicStatus[j].Buff = thisskill->buff[i];
character->MagicStatus[j].BuffTime = clock();
character->MagicStatus[j].Duration = thisskill->duration;
character->MagicStatus[j].Value = BuffValue.Value;
bflag = true;
}
}
break;
case A_DODGE:
{
CBValue BuffValue = GetBuffValue( thisskill, character, Evalue, i,
character->Status->Dodge_up,
character->Status->Dodge_down,
character->Stats->Dodge, false );
if(BuffValue.NewValue!=0)
{
UINT j = BuffValue.Position;
character->Stats->Dodge = BuffValue.NewValue;
character->Status->Dodge_down = j;
character->MagicStatus[j].Buff = thisskill->buff[i];
character->MagicStatus[j].BuffTime = clock();
character->MagicStatus[j].Duration = thisskill->duration;
character->MagicStatus[j].Value = BuffValue.Value;
bflag = true;
}
}
break;
case A_DASH:
{
CBValue BuffValue = GetBuffValue( thisskill, character, Evalue, i,
character->Status->Dash_up,
character->Status->Dash_down,
character->Stats->Move_Speed, false );
if(BuffValue.NewValue!=0)
{
UINT j = BuffValue.Position;
character->Stats->Move_Speed = BuffValue.NewValue;
character->Status->Dash_down = j;
character->MagicStatus[j].Buff = thisskill->buff[i];
character->MagicStatus[j].BuffTime = clock();
character->MagicStatus[j].Duration = thisskill->duration;
character->MagicStatus[j].Value = BuffValue.Value;
bflag = true;
}
}
break;
case A_HASTE:
{
CBValue BuffValue = GetBuffValue( thisskill, character, Evalue, i,
character->Status->Haste_up,
character->Status->Haste_down,
(UINT)character->Stats->Attack_Speed, false );
if(BuffValue.NewValue!=0)
{
UINT j = BuffValue.Position;
character->Stats->Attack_Speed = BuffValue.NewValue;
character->Status->Haste_down = j;
character->MagicStatus[j].Buff = thisskill->buff[i];
character->MagicStatus[j].BuffTime = clock();
character->MagicStatus[j].Duration = thisskill->duration;
character->MagicStatus[j].Value = BuffValue.Value;
bflag = true;
}
}
break;
case A_CRITICAL:
{
CBValue BuffValue = GetBuffValue( thisskill, character, Evalue, i,
character->Status->Critical_up,
character->Status->Critical_down,
character->Stats->Critical, false );
if(BuffValue.NewValue!=0)
{
UINT j = BuffValue.Position;
character->Stats->Critical = BuffValue.NewValue;
character->Status->Critical_down = j;
character->MagicStatus[j].Buff = thisskill->buff[i];
character->MagicStatus[j].BuffTime = clock();
character->MagicStatus[j].Duration = thisskill->duration;
character->MagicStatus[j].Value = BuffValue.Value;
bflag = true;
}
}
break;
case A_MAX_HP:
{
CBValue BuffValue = GetBuffValue( thisskill, character, Evalue, i,
character->Status->HP_up,
character->Status->HP_down,
character->Stats->MaxHP, false );
if(BuffValue.NewValue!=0)
{
UINT j = BuffValue.Position;
character->Stats->MaxHP = BuffValue.NewValue;
character->Status->HP_down = j;
character->MagicStatus[j].Buff = thisskill->buff[i];
character->MagicStatus[j].BuffTime = clock();
character->MagicStatus[j].Duration = thisskill->duration;
character->MagicStatus[j].Value = BuffValue.Value;
bflag = true;
}
}
break;
case A_MAX_MP:
{
CBValue BuffValue = GetBuffValue( thisskill, character, Evalue, i,
character->Status->MP_up,
character->Status->MP_down,
character->Stats->MaxMP, false );
if(BuffValue.NewValue!=0)
{
UINT j = BuffValue.Position;
character->Stats->MaxMP = BuffValue.NewValue;
character->Status->MP_down = j;
character->MagicStatus[j].Buff = thisskill->buff[i];
character->MagicStatus[j].BuffTime = clock();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -