瀏覽代碼

- Fixed a crash on the mobspawn script command.
- Made SC_FLEET increase batk as well as watk.


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

skotlex 19 年之前
父節點
當前提交
98d0cb73fd
共有 4 個文件被更改,包括 16 次插入4 次删除
  1. 2 0
      Changelog-Trunk.txt
  2. 10 2
      src/map/mob.c
  3. 1 1
      src/map/script.c
  4. 3 1
      src/map/status.c

+ 2 - 0
Changelog-Trunk.txt

@@ -4,6 +4,8 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 2006/08/22
+	* Fixed a crash on the mobspawn script command. [Skotlex]
+	* Made SC_FLEET increase batk as well as watk. [Skotlex]
 	* Fixed gcc warning [Toms]
 	* Fixed AM_REST not closing the homunc status window [Toms]
 	* Fixed SC_NEN according to Mpeg [Toms]

+ 10 - 2
src/map/mob.c

@@ -265,8 +265,16 @@ struct mob_data *mob_once_spawn_sub(struct block_list *bl, int m,
 	data.m = m;
 	data.num = 1;
 	data.class_ = class_;
-	strncpy(data.name, mobname, NAME_LENGTH-1);
-	strncpy(data.eventname, event, 50);
+	if (mobname)
+		strncpy(data.name, mobname, NAME_LENGTH-1);
+	else
+	if(battle_config.override_mob_names==1)
+		strcpy(data.name,"--en--");
+	else
+		strcpy(data.name,"--ja--");
+
+	if (event)
+		strncpy(data.eventname, event, 50);
 	
 	if (bl && (x < 0 || y < 0))//Locate spot around player.
 		map_search_freecell(bl, m, &x, &y, 1, 1, 0);

+ 1 - 1
src/map/script.c

@@ -11787,7 +11787,7 @@ int buildin_mobspawn(struct script_state *st){
 	x		=conv_num(st,& (st->stack->stack_data[st->start+5]));
 	y		=conv_num(st,& (st->stack->stack_data[st->start+6]));
 		
-	id = mob_once_spawn(map_id2sd(st->rid),map,x,y,str,class_,1,NULL);
+	id = mob_once_spawn(map_id2sd(st->rid),map,x,y,str,class_,1,"");
 	push_val(st->stack,C_INT,id);
 
 	return 0;

+ 3 - 1
src/map/status.c

@@ -3251,6 +3251,8 @@ static unsigned short status_calc_batk(struct block_list *bl, struct status_chan
 //Curse shouldn't effect on this?  <- Curse OR Bleeding??
 //	if(sc->data[SC_BLEEDING].timer != -1)
 //		batk -= batk * 25/100;
+	if(sc->data[SC_FLEET].timer!=-1)
+		batk += batk * sc->data[SC_FLEET].val3/100;
 	if(sc->data[SC_GATLINGFEVER].timer!=-1)
 		batk += sc->data[SC_GATLINGFEVER].val3;
 	if(sc->data[SC_MADNESSCANCEL].timer!=-1)
@@ -5497,7 +5499,7 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
 			break;
 		case SC_FLEET:
 			val2 = 30*val1; //Aspd change
-			val3 = 5+5*val1; //Atk rate change
+			val3 = 5+5*val1; //bAtk/wAtk rate change
 			break;
 		case SC_MINDBREAKER:
 			val2 = 20*val1; //matk increase.