fixed bVariableCastrate not able to decrease the variable cast time
fixed monster flee/hit calculation, we still need a mobdb update for proper monster stats - bugreport:7457 git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17249 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
b43102152f
commit
3554554874
@ -53,8 +53,8 @@
|
||||
|
||||
/* ATCMD_FUNC(mobinfo) HIT and FLEE calculations */
|
||||
#ifdef RENEWAL
|
||||
#define MOB_FLEE(mob) ( mob->lv + mob->status.agi + mob->status.luk/5 + 100 )
|
||||
#define MOB_HIT(mob) ( mob->lv + mob->status.dex + mob->status.luk/3 + 175 )
|
||||
#define MOB_FLEE(mob) ( mob->lv + mob->status.agi + 100 )
|
||||
#define MOB_HIT(mob) ( mob->lv + mob->status.dex + 175 )
|
||||
#else
|
||||
#define MOB_FLEE(mob) ( mob->lv + mob->status.agi )
|
||||
#define MOB_HIT(mob) ( mob->lv + mob->status.dex )
|
||||
|
@ -14016,8 +14016,7 @@ int skill_vfcastfix (struct block_list *bl, double time, uint16 skill_id, uint16
|
||||
}
|
||||
for( i = 0; i < ARRAYLENGTH(sd->skillcast) && sd->skillcast[i].id; i++ )
|
||||
if( sd->skillcast[i].id == skill_id ){ // bonus2 bVariableCastrate
|
||||
if( (i=sd->skillcast[i].val) < 0)
|
||||
VARCAST_REDUCTION(i);
|
||||
VARCAST_REDUCTION(sd->skillcast[i].val);
|
||||
break;
|
||||
}
|
||||
for( i = 0; i < ARRAYLENGTH(sd->skillfixcastrate) && sd->skillfixcastrate[i].id; i++ )
|
||||
|
@ -1922,14 +1922,19 @@ void status_calc_misc(struct block_list *bl, struct status_data *status, int lev
|
||||
status->cri = status->flee2 = 0;
|
||||
|
||||
#ifdef RENEWAL // renewal formulas
|
||||
status->matk_min = status->matk_max = status_base_matk(status, level);
|
||||
status->hit += level + status->dex + status->luk/3 + 175; //base level + ( every 1 dex = +1 hit ) + (every 3 luk = +1 hit) + 175
|
||||
status->flee += level + status->agi + status->luk/5 + 100; //base level + ( every 1 agi = +1 flee ) + (every 5 luk = +1 flee) + 100
|
||||
status->def2 += (int)(((float)level + status->vit)/2 + ((float)status->agi/5)); //base level + (every 2 vit = +1 def) + (every 5 agi = +1 def)
|
||||
status->mdef2 += (int)(status->int_ + ((float)level/4) + ((float)status->dex/5) + ((float)status->vit/5)); //(every 4 base level = +1 mdef) + (every 1 int = +1 mdef) + (every 5 dex = +1 mdef) + (every 5 vit = +1 mdef)
|
||||
if (bl->type == BL_MOB) {
|
||||
status->hit += level + status->dex + 175;
|
||||
status->flee += level + status->agi + 100;
|
||||
} else {
|
||||
status->hit += level + status->dex + status->luk/3 + 175; //base level + ( every 1 dex = +1 hit ) + (every 3 luk = +1 hit) + 175
|
||||
status->flee += level + status->agi + status->luk/5 + 100; //base level + ( every 1 agi = +1 flee ) + (every 5 luk = +1 flee) + 100
|
||||
}
|
||||
status->matk_min = status->matk_max = status_base_matk(status, level);
|
||||
status->def2 += (int)(((float)level + status->vit)/2 + ((float)status->agi/5)); //base level + (every 2 vit = +1 def) + (every 5 agi = +1 def)
|
||||
status->mdef2 += (int)(status->int_ + ((float)level/4) + ((float)status->dex/5) + ((float)status->vit/5)); //(every 4 base level = +1 mdef) + (every 1 int = +1 mdef) + (every 5 dex = +1 mdef) + (every 5 vit = +1 mdef)
|
||||
#else
|
||||
status->matk_min = status_base_matk_min(status);
|
||||
status->matk_max = status_base_matk_max(status);
|
||||
status->matk_min = status_base_matk_min(status);
|
||||
status->matk_max = status_base_matk_max(status);
|
||||
status->hit += level + status->dex;
|
||||
status->flee += level + status->agi;
|
||||
status->def2 += status->vit;
|
||||
|
Loading…
x
Reference in New Issue
Block a user