浏览代码

- Fixed an warning of type casting. (bugreport:7081)
- Removed an unecessary type cast before atoi.
- Fixed Ray of Genesis Attack Formula. (bugreport:7053)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17074 54d463be-8e91-2dee-dedb-b68131a5f0ec

markzd 12 年之前
父节点
当前提交
cebcf7a332
共有 3 个文件被更改,包括 11 次插入12 次删除
  1. 1 1
      src/map/atcommand.c
  2. 9 10
      src/map/battle.c
  3. 1 1
      src/map/script.c

+ 1 - 1
src/map/atcommand.c

@@ -8611,7 +8611,7 @@ ACMD_FUNC(set) {
 		if( is_str )
 			set_var(sd, reg, (void*) val);
 		else
-			set_var(sd, reg, (void*)__64BPRTSIZE((int)(atoi(val))));
+			set_var(sd, reg, (void*)__64BPRTSIZE((atoi(val))));
 
 	}
 

+ 9 - 10
src/map/battle.c

@@ -2731,7 +2731,7 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src,struct blo
 					RE_LVL_DMOD(100);
 					break;
 				case LG_RAYOFGENESIS:
-					skillratio = skillratio + 200 + 300 * skill_lv;
+					skillratio = 300 + 300 * skill_lv;
 					RE_LVL_DMOD(100);
 					break;
 				case LG_EARTHDRIVE:
@@ -2989,12 +2989,6 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src,struct blo
 					if(sd)
 						ATK_ADD(30*pc_checkskill(sd, RA_TOOTHOFWUG));
 					break;
-				case LG_RAYOFGENESIS:
-					if( sc && sc->data[SC_BANDING] ) {// Increase only if the RG is under Banding.
-						short lv = (short)skill_lv;
-						ATK_ADDRATE( 190 * ((sd) ? skill_check_pc_partner(sd,(short)skill_id,&lv,skill_get_splash(skill_id,skill_lv),0) : 1));
-					}
-					break;
 				case SR_GATEOFHELL:
 					ATK_ADD (sstatus->max_hp - status_get_hp(src));
 					if(sc && sc->data[SC_COMBO] && sc->data[SC_COMBO]->val1 == SR_FALLENEMPIRE){
@@ -3930,9 +3924,14 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
 						RE_LVL_DMOD(100);
 						break;
 					case LG_RAYOFGENESIS:
-						skillratio = (skillratio + 200) * skill_lv;
-						RE_LVL_DMOD(100);
-						break;
+					{
+						int16 lv = skill_lv;
+						int bandingBonus = 0;
+						if( sc && sc->data[SC_BANDING] )
+							bandingBonus = 200 * (sd ? skill_check_pc_partner(sd,skill_id,&lv,skill_get_splash(skill_id,skill_lv),0) : 1);
+						skillratio = ((300 * skill_lv) + bandingBonus) * (sd ? sd->status.job_level : 1) / 25;
+					}
+					break;
 					case LG_SHIELDSPELL:// [(Casters Base Level x 4) + (Shield MDEF x 100) + (Casters INT x 2)] %
 						if( sd ) {
 							skillratio = status_get_lv(src) * 4 + sd->bonus.shieldmdef * 100 + status_get_int(src) * 2;

+ 1 - 1
src/map/script.c

@@ -15026,7 +15026,7 @@ BUILDIN_FUNC(searchitem)
 
 	for( i = 0; i < count; ++start, ++i )
 	{// Set array
-		void* v = (void*)__64BPRTSIZE(items[i]->nameid);
+		void* v = (void*)__64BPRTSIZE((int)items[i]->nameid);
 		set_reg(st, sd, reference_uid(id, start), name, v, reference_getref(data));
 	}