Explorar el Código

Renamed menuskill_lv -> Renamed menuskill_val, because people also used it to store stuff like map coords, inventory offsets and object IDs...

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10937 54d463be-8e91-2dee-dedb-b68131a5f0ec
ultramage hace 18 años
padre
commit
519d61249b
Se han modificado 5 ficheros con 77 adiciones y 73 borrados
  1. 28 28
      src/map/clif.c
  2. 1 1
      src/map/map.h
  3. 1 1
      src/map/pc.c
  4. 46 42
      src/map/skill.c
  5. 1 1
      src/map/unit.c

+ 28 - 28
src/map/clif.c

@@ -2959,7 +2959,7 @@ int clif_arrow_create_list(struct map_session_data *sd)
 	WFIFOSET(fd, WFIFOW(fd,2));
 	if (c > 0) {
 		sd->menuskill_id = AC_MAKINGARROW;
-		sd->menuskill_lv = c;
+		sd->menuskill_val = c;
 	}
 
 	return 0;
@@ -4676,9 +4676,9 @@ int clif_skill_warppoint(struct map_session_data* sd, int skill_num, int skill_l
 
 	sd->menuskill_id = skill_num;
 	if (skill_num == AL_WARP)
-		sd->menuskill_lv = (sd->ud.skillx<<16)|sd->ud.skilly; //Store warp position here.
+		sd->menuskill_val = (sd->ud.skillx<<16)|sd->ud.skilly; //Store warp position here.
 	else
-		sd->menuskill_lv = skill_lv;
+		sd->menuskill_val = skill_lv;
 	return 0;
 }
 /*==========================================
@@ -4778,7 +4778,7 @@ int clif_skill_produce_mix_list(struct map_session_data *sd, int trigger)
 	WFIFOSET(fd,WFIFOW(fd,2));
 	if(c > 0) {
 		sd->menuskill_id = AM_PHARMACY;
-		sd->menuskill_lv = trigger;
+		sd->menuskill_val = trigger;
 		return 1;
 	}
 	return 0;
@@ -5229,7 +5229,7 @@ int clif_item_identify_list(struct map_session_data *sd)
 		WFIFOW(fd,2)=c*2+4;
 		WFIFOSET(fd,WFIFOW(fd,2));
 		sd->menuskill_id = MC_IDENTIFY;
-		sd->menuskill_lv = c;
+		sd->menuskill_val = c;
 	}
 	return 0;
 }
@@ -5282,7 +5282,7 @@ int clif_item_repair_list(struct map_session_data *sd,struct map_session_data *d
 		WFIFOW(fd,2)=c*13+4;
 		WFIFOSET(fd,WFIFOW(fd,2));
 		sd->menuskill_id = BS_REPAIRWEAPON;
-		sd->menuskill_lv = dstsd->bl.id;
+		sd->menuskill_val = dstsd->bl.id;
 	}else
 		clif_skill_fail(sd,sd->ud.skillid,0,0);
 
@@ -5347,7 +5347,7 @@ int clif_item_refine_list(struct map_session_data *sd)
 	WFIFOSET(fd,WFIFOW(fd,2));
 	if (c > 0) {
 		sd->menuskill_id = WS_WEAPONREFINE;
-		sd->menuskill_lv = skilllv;
+		sd->menuskill_val = skilllv;
 	}
 	return 0;
 }
@@ -6086,7 +6086,7 @@ int clif_sendegg(struct map_session_data *sd)
 	WFIFOSET(fd,WFIFOW(fd,2));
 
 	sd->menuskill_id = SA_TAMINGMONSTER;
-	sd->menuskill_lv = -1;
+	sd->menuskill_val = -1;
 	return 0;
 }
 
@@ -6243,7 +6243,7 @@ int clif_autospell(struct map_session_data *sd,int skilllv)
 
 	WFIFOSET(fd,packet_len(0x1cd));
 	sd->menuskill_id = SA_AUTOSPELL;
-	sd->menuskill_lv = skilllv;
+	sd->menuskill_val = skilllv;
 	
 	return 0;
 }
@@ -9508,7 +9508,7 @@ void clif_parse_UseSkillToId(int fd, struct map_session_data *sd)
 	if(sd->menuskill_id)
 	{
 		if (sd->menuskill_id == SA_TAMINGMONSTER)
-			sd->menuskill_id = sd->menuskill_lv = 0; //Cancel pet capture.
+			sd->menuskill_id = sd->menuskill_val = 0; //Cancel pet capture.
 		else
 		if (sd->menuskill_id != SA_AUTOSPELL)
 			return; //Can't use skills while a menu is open.
@@ -9611,7 +9611,7 @@ void clif_parse_UseSkillToPosSub(int fd, struct map_session_data *sd, int skilll
 	if(sd->menuskill_id)
 	{
 		if (sd->menuskill_id == SA_TAMINGMONSTER)
-			sd->menuskill_id = sd->menuskill_lv = 0; //Cancel pet capture.
+			sd->menuskill_id = sd->menuskill_val = 0; //Cancel pet capture.
 		else
 		if (sd->menuskill_id != SA_AUTOSPELL)
 			return; //Can't use skills while a menu is open.
@@ -9678,7 +9678,7 @@ void clif_parse_UseSkillMap(int fd,struct map_session_data *sd)
 
 	if (clif_cant_act(sd))
 	{
-		sd->menuskill_id = sd->menuskill_lv = 0;
+		sd->menuskill_id = sd->menuskill_val = 0;
 		return;
 	}
 
@@ -9704,11 +9704,11 @@ void clif_parse_ProduceMix(int fd,struct map_session_data *sd)
 	if (clif_trading(sd)) {
 		//Make it fail to avoid shop exploits where you sell something different than you see.
 		clif_skill_fail(sd,sd->ud.skillid,0,0);
-		sd->menuskill_lv = sd->menuskill_id = 0;
+		sd->menuskill_val = sd->menuskill_id = 0;
 		return;
 	}
 	skill_produce_mix(sd,0,RFIFOW(fd,2),RFIFOW(fd,4),RFIFOW(fd,6),RFIFOW(fd,8), 1);
-	sd->menuskill_lv = sd->menuskill_id = 0;
+	sd->menuskill_val = sd->menuskill_id = 0;
 }
 /*==========================================
  * 武器修理
@@ -9720,11 +9720,11 @@ void clif_parse_RepairItem(int fd, struct map_session_data *sd)
 	if (clif_trading(sd)) {
 		//Make it fail to avoid shop exploits where you sell something different than you see.
 		clif_skill_fail(sd,sd->ud.skillid,0,0);
-		sd->menuskill_lv = sd->menuskill_id = 0;
+		sd->menuskill_val = sd->menuskill_id = 0;
 		return;
 	}
 	skill_repairweapon(sd,RFIFOW(fd,2));
-	sd->menuskill_lv = sd->menuskill_id = 0;
+	sd->menuskill_val = sd->menuskill_id = 0;
 }
 
 /*==========================================
@@ -9739,12 +9739,12 @@ void clif_parse_WeaponRefine(int fd, struct map_session_data *sd)
 	if (clif_trading(sd)) {
 		//Make it fail to avoid shop exploits where you sell something different than you see.
 		clif_skill_fail(sd,sd->ud.skillid,0,0);
-		sd->menuskill_lv = sd->menuskill_id = 0;
+		sd->menuskill_val = sd->menuskill_id = 0;
 		return;
 	}
 	idx = RFIFOW(fd,packet_db[sd->packet_ver][RFIFOW(fd,0)].pos[0]);
 	skill_weaponrefine(sd, idx-2);
-	sd->menuskill_lv = sd->menuskill_id = 0;
+	sd->menuskill_val = sd->menuskill_id = 0;
 }
 
 /*==========================================
@@ -9821,7 +9821,7 @@ void clif_parse_ItemIdentify(int fd,struct map_session_data *sd)
 	if (sd->menuskill_id != MC_IDENTIFY)
 		return;
 	skill_identify(sd,RFIFOW(fd,2)-2);
-	sd->menuskill_lv = sd->menuskill_id = 0;
+	sd->menuskill_val = sd->menuskill_id = 0;
 }
 /*==========================================
  * 矢作成
@@ -9833,11 +9833,11 @@ void clif_parse_SelectArrow(int fd,struct map_session_data *sd)
 	if (clif_trading(sd)) {
 	//Make it fail to avoid shop exploits where you sell something different than you see.
 		clif_skill_fail(sd,sd->ud.skillid,0,0);
-		sd->menuskill_lv = sd->menuskill_id = 0;
+		sd->menuskill_val = sd->menuskill_id = 0;
 		return;
 	}
 	skill_arrow_create(sd,RFIFOW(fd,2));
-	sd->menuskill_lv = sd->menuskill_id = 0;
+	sd->menuskill_val = sd->menuskill_id = 0;
 }
 /*==========================================
  * オートスペル受信
@@ -9847,7 +9847,7 @@ void clif_parse_AutoSpell(int fd,struct map_session_data *sd)
 	if (sd->menuskill_id != SA_AUTOSPELL)
 		return;
 	skill_autospell(sd,RFIFOW(fd,2));
-	sd->menuskill_lv = sd->menuskill_id = 0;
+	sd->menuskill_val = sd->menuskill_id = 0;
 }
 /*==========================================
  * カード使用
@@ -10520,10 +10520,10 @@ void clif_parse_CatchPet(int fd, struct map_session_data *sd)
 
 void clif_parse_SelectEgg(int fd, struct map_session_data *sd)
 {
-	if (sd->menuskill_id != SA_TAMINGMONSTER || sd->menuskill_lv != -1)
+	if (sd->menuskill_id != SA_TAMINGMONSTER || sd->menuskill_val != -1)
 		return;
 	pet_select_egg(sd,RFIFOW(fd,2)-2);
-	sd->menuskill_lv = sd->menuskill_id = 0;
+	sd->menuskill_val = sd->menuskill_id = 0;
 }
 
 void clif_parse_SendEmotion(int fd, struct map_session_data *sd)
@@ -11346,7 +11346,7 @@ void clif_parse_FeelSaveOk(int fd,struct map_session_data *sd)
 	int i;
 	if (sd->menuskill_id != SG_FEEL)
 		return;
-	i = sd->menuskill_lv-1;
+	i = sd->menuskill_val-1;
 	if (i<0 || i > 2) return; //Bug?
 
 	sd->feel_map[i].index = map[sd->bl.m].index;
@@ -11357,7 +11357,7 @@ void clif_parse_FeelSaveOk(int fd,struct map_session_data *sd)
 //	clif_misceffect2(&sd->bl, 0x1b0);
 //	clif_misceffect2(&sd->bl, 0x21f);
 	clif_feel_info(sd, i, 0);
-	sd->menuskill_lv = sd->menuskill_id = 0;
+	sd->menuskill_val = sd->menuskill_id = 0;
 }
 
 /*==========================================
@@ -11368,8 +11368,8 @@ void clif_parse_ReqFeel(int fd, struct map_session_data *sd, int skilllv)
 	WFIFOHEAD(fd,packet_len(0x253));
 	WFIFOW(fd,0)=0x253;
 	WFIFOSET(fd, packet_len(0x253));
-	sd->menuskill_id=SG_FEEL;
-	sd->menuskill_lv=skilllv;
+	sd->menuskill_id = SG_FEEL;
+	sd->menuskill_val = skilllv;
 }
 
 void clif_parse_AdoptRequest(int fd,struct map_session_data *sd)

+ 1 - 1
src/map/map.h

@@ -626,7 +626,7 @@ struct map_session_data {
 	short skillid_dance,skilllv_dance;
 	char blockskill[MAX_SKILL];	// [celest]
 	int cloneskill_id;
-	int menuskill_id, menuskill_lv;
+	int menuskill_id, menuskill_val;
 
 	int invincible_timer;
 	unsigned int canlog_tick;

+ 1 - 1
src/map/pc.c

@@ -4947,7 +4947,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src)
 	if (sd->skillitem)
 		sd->skillitem = sd->skillitemlv = 0;
 	if (sd->menuskill_id)
-		sd->menuskill_id = sd->menuskill_lv = 0;
+		sd->menuskill_id = sd->menuskill_val = 0;
 	//Reset ticks.
 	sd->hp_loss_tick = sd->sp_loss_tick = 0;
 

+ 46 - 42
src/map/skill.c

@@ -6302,7 +6302,7 @@ int skill_castend_map (struct map_session_data *sd, int skill_num, const char *m
 	nullpo_retr(0, sd);
 
 //Simplify skill_failed code.
-#define skill_failed(sd) { sd->menuskill_id = sd->menuskill_lv = 0; }
+#define skill_failed(sd) { sd->menuskill_id = sd->menuskill_val = 0; }
 	if(skill_num != sd->menuskill_id) 
 		return 0;
 
@@ -6351,9 +6351,8 @@ int skill_castend_map (struct map_session_data *sd, int skill_num, const char *m
 	case AL_TELEPORT:
 		if(strcmp(map,"Random")==0)
 			pc_randomwarp(sd,3);
-		else if (sd->menuskill_lv > 1) //Need lv2 to be able to warp here.
-			pc_setpos(sd,sd->status.save_point.map,
-				sd->status.save_point.x,sd->status.save_point.y,3);
+		else if (sd->menuskill_val > 1) //Need lv2 to be able to warp here.
+			pc_setpos(sd,sd->status.save_point.map,sd->status.save_point.x,sd->status.save_point.y,3);
 		break;
 
 	case AL_WARP:
@@ -6388,8 +6387,8 @@ int skill_castend_map (struct map_session_data *sd, int skill_num, const char *m
 		
 			//When it's an item-used warp-portal, the skill-lv used is lost.. assume max level.
 			lv = sd->skillitem==skill_num?skill_get_max(skill_num):pc_checkskill(sd,skill_num);
-			wx = sd->menuskill_lv>>16;
-			wy = sd->menuskill_lv&0xffff;
+			wx = sd->menuskill_val>>16;
+			wy = sd->menuskill_val&0xffff;
 			
 			if(lv <= 0) return 0;
 			for(i=0;i<lv;i++){
@@ -6426,7 +6425,7 @@ int skill_castend_map (struct map_session_data *sd, int skill_num, const char *m
 		break;
 	}
 
-	sd->menuskill_id = sd->menuskill_lv = 0;
+	sd->menuskill_id = sd->menuskill_val = 0;
 	return 0;
 #undef skill_failed
 }
@@ -6991,8 +6990,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, unsigned
 	case UNT_SIEGFRIED:
 	case UNT_HERMODE:
 		 //Needed to check when a dancer/bard leaves their ensemble area.
-		if (sg->src_id==bl->id &&
-			!(sc && sc->data[SC_SPIRIT].timer != -1 && sc->data[SC_SPIRIT].val2 == SL_BARDDANCER))
+		if (sg->src_id==bl->id && !(sc && sc->data[SC_SPIRIT].timer != -1 && sc->data[SC_SPIRIT].val2 == SL_BARDDANCER))
 			return skillid;
 		if (sc && sc->data[type].timer==-1)
 			sc_start4(bl,type,100,sg->skill_lv,sg->val1,sg->val2,0,sg->limit);
@@ -7005,7 +7003,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, unsigned
 	case UNT_DONTFORGETME:
 	case UNT_FORTUNEKISS:
 	case UNT_SERVICEFORYOU:
-		if (sg->src_id==bl->id && (!sc || sc->data[SC_SPIRIT].timer == -1 || sc->data[SC_SPIRIT].val2 != SL_BARDDANCER))
+		if (sg->src_id==bl->id && !(sc && sc->data[SC_SPIRIT].timer != -1 && sc->data[SC_SPIRIT].val2 == SL_BARDDANCER))
 			return 0;
 		if (!sc) return 0;
 		if (sc->data[type].timer==-1)
@@ -7017,6 +7015,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, unsigned
 			sc->data[type].timer = add_timer(tick+sg->limit, status_change_timer, bl->id, type);
 		}
 		break;
+	
 	case UNT_FOGWALL:
 		if (sc && sc->data[type].timer==-1)
 		{
@@ -7036,6 +7035,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, unsigned
 		if(src->limit + sg->tick > tick + 700)
 			src->limit = DIFF_TICK(tick+700,sg->tick);
 		break;
+	
 	case UNT_MOONLIT:
 	//Knockback out of area if affected char isn't in Moonlit effect
 		if (sc && sc->data[SC_DANCING].timer!=-1 && (sc->data[SC_DANCING].val1&0xFFFF) == CG_MOONLIT)
@@ -8907,7 +8907,7 @@ void skill_repairweapon (struct map_session_data *sd, int idx)
 	struct map_session_data *target_sd;
 
 	nullpo_retv(sd);
-	target_sd = map_id2sd(sd->menuskill_lv);
+	target_sd = map_id2sd(sd->menuskill_val);
 	if (!target_sd) //Failed....
 		return;
 	if(idx==0xFFFF) // No item selected ('Cancel' clicked)
@@ -8970,15 +8970,18 @@ void skill_weaponrefine (struct map_session_data *sd, int idx)
 
 	nullpo_retv(sd);
 
-	if (idx >= 0 && idx < MAX_INVENTORY) {
+	if (idx >= 0 && idx < MAX_INVENTORY)
+	{
 		struct item_data *ditem = sd->inventory_data[idx];
 		item = &sd->status.inventory[idx];
 
-		if(item->nameid > 0 && ditem->type == 4) {
-			if (item->refine >= sd->menuskill_lv ||
-				item->refine >= MAX_REFINE ||		// if it's no longer refineable
-				ditem->flag.no_refine ||	// if the item isn't refinable
-				(i = pc_search_inventory(sd, material [ditem->wlv])) < 0 ) { //fixed by Lupus (item pos can be = 0!)
+		if(item->nameid > 0 && ditem->type == 4)
+		{
+			if( item->refine >= sd->menuskill_val
+			||  item->refine >= MAX_REFINE		// if it's no longer refineable
+			||  ditem->flag.no_refine 	// if the item isn't refinable
+			||  (i = pc_search_inventory(sd, material [ditem->wlv])) < 0 )
+			{
 				clif_skill_fail(sd,sd->menuskill_id,0,0);
 				return;
 			}
@@ -9038,7 +9041,7 @@ int skill_autospell (struct map_session_data *sd, int skillid)
 
 	nullpo_retr(0, sd);
 
-	skilllv = sd->menuskill_lv;
+	skilllv = sd->menuskill_val;
 	lv=pc_checkskill(sd,skillid);
 
 	if(skilllv <= 0 || !lv) return 0; // Player must learn the skill before doing auto-spell [Lance]
@@ -10009,13 +10012,12 @@ int skill_unit_timer_sub (struct block_list *bl, va_list ap)
 	nullpo_retr(0, group);
 
 	flag = skill_dance_switch(unit, group, 0);
-	if (unit->range>=0 && group->interval!=-1) {
+	if (unit->range>=0 && group->interval!=-1)
+	{
 		if (battle_config.skill_wall_check)
-			map_foreachinshootrange(skill_unit_timer_sub_onplace, bl, unit->range,
-				group->bl_flag,bl,tick);
+			map_foreachinshootrange(skill_unit_timer_sub_onplace, bl, unit->range, group->bl_flag, bl,tick);
 		else
-			map_foreachinrange(skill_unit_timer_sub_onplace, bl, unit->range,
-				group->bl_flag,bl,tick);
+			map_foreachinrange(skill_unit_timer_sub_onplace, bl, unit->range, group->bl_flag, bl,tick);
 		if (!unit->alive)
 		{
 			if (flag)
@@ -10026,7 +10028,8 @@ int skill_unit_timer_sub (struct block_list *bl, va_list ap)
   	if (flag)
 		skill_dance_switch(unit, group, 1);
 
-	if((DIFF_TICK(tick,group->tick)>=group->limit || DIFF_TICK(tick,group->tick)>=unit->limit)){
+	if((DIFF_TICK(tick,group->tick)>=group->limit || DIFF_TICK(tick,group->tick)>=unit->limit))
+	{
 		switch(group->unit_id){
 			case UNT_BLASTMINE:
 			case UNT_GROUNDDRIFT_WIND:
@@ -10048,29 +10051,31 @@ int skill_unit_timer_sub (struct block_list *bl, va_list ap)
 			case UNT_FREEZINGTRAP:
 			case UNT_CLAYMORETRAP:
 			case UNT_TALKIEBOX:
-				{
-					struct block_list *src=map_id2bl(group->src_id);
-					if(src && src->type==BL_PC && !group->state.into_abyss)
-					{	//Avoid generating trap items when it did not cost to create them. [Skotlex]
-						struct item item_tmp;
-						memset(&item_tmp,0,sizeof(item_tmp));
-						item_tmp.nameid=1065;
-						item_tmp.identify=1;
-						map_addflooritem(&item_tmp,1,bl->m,bl->x,bl->y,NULL,NULL,NULL,0);
-					}
-					skill_delunit(unit, 0);
+			{
+				struct block_list *src=map_id2bl(group->src_id);
+				if(src && src->type==BL_PC && !group->state.into_abyss)
+				{	//Avoid generating trap items when it did not cost to create them. [Skotlex]
+					struct item item_tmp;
+					memset(&item_tmp,0,sizeof(item_tmp));
+					item_tmp.nameid=1065;
+					item_tmp.identify=1;
+					map_addflooritem(&item_tmp,1,bl->m,bl->x,bl->y,NULL,NULL,NULL,0);
 				}
+				skill_delunit(unit, 0);
 				break;
+			}
 			default:
 				skill_delunit(unit, 0);
 		}
 	}
 
-	if(group->unit_id == UNT_ICEWALL) {
+	if(group->unit_id == UNT_ICEWALL)
+	{
 		unit->val1 -= 5;
 		if(unit->val1 <= 0 && unit->limit + group->tick > tick + 700)
 			unit->limit = DIFF_TICK(tick+700,group->tick);
-	} else
+	}
+	else
 	if (group->unit_id == UNT_TATAMIGAESHI && unit->range>=0)
 	{	//Disable processed cell.
 		unit->range = -1;
@@ -10227,8 +10232,7 @@ int skill_unit_move (struct block_list *bl, unsigned int tick, int flag)
 	if (flag&2 && flag&1)
 	{ //Onplace, check any skill units you have left.
 		int i;
-		for (i=0; i < (sizeof(skill_unit_temp)/sizeof(int)) &&
-			skill_unit_temp[i]; i++)
+		for (i=0; i < (sizeof(skill_unit_temp)/sizeof(int)) && skill_unit_temp[i]; i++)
 			skill_unit_onleft(skill_unit_temp[i], bl, tick);
 	}
 
@@ -10543,12 +10547,12 @@ int skill_produce_mix (struct map_session_data *sd, int skill_id, int nameid, in
 				break;
 			default:
 				if (sd->menuskill_id ==	AM_PHARMACY &&
-					sd->menuskill_lv > 10 && sd->menuskill_lv <= 20)
+					sd->menuskill_val > 10 && sd->menuskill_val <= 20)
 				{	//Assume Cooking Dish
-					if (sd->menuskill_lv >= 15) //Legendary Cooking Set.
+					if (sd->menuskill_val >= 15) //Legendary Cooking Set.
 						make_per = 10000; //100% Success
 					else
-						make_per = 1200*(sd->menuskill_lv-10) //12% chance per set level.
+						make_per = 1200*(sd->menuskill_val-10) //12% chance per set level.
 							+ 7000 - 700*(skill_produce_db[idx].itemlv-10); //70% - 7% per dish level
 					break;
 				}

+ 1 - 1
src/map/unit.c

@@ -1696,7 +1696,7 @@ int unit_remove_map(struct block_list *bl, int clrtype)
 		if(sd->guild_alliance>0)
 			guild_reply_reqalliance(sd,sd->guild_alliance_account,0);
 		if(sd->menuskill_id)
-			sd->menuskill_id = sd->menuskill_lv = 0;
+			sd->menuskill_id = sd->menuskill_val = 0;
 
 		pc_delinvincibletimer(sd);