⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buff.cpp.svn-base

📁 ROSE的源代码。了解的自己研究,编译通过
💻 SVN-BASE
📖 第 1 页 / 共 3 页
字号:
                                            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 + -