Browse Source

- You are allowed to attack/use skills now when your cloaking level is below 3.
- Small change to Stone Curse that may fix the permanent "semi-stone" status.
- Corrected "taming monster" having your skill-use be stuck if you cancel the target selection process.
- config setting party_show_share_picker now displays the jname of the item picked as well.


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

skotlex 18 năm trước cách đây
mục cha
commit
046dd34c58
6 tập tin đã thay đổi với 26 bổ sung7 xóa
  1. 8 0
      Changelog-Trunk.txt
  2. 1 1
      conf-tmpl/battle/party.conf
  3. 12 3
      src/map/clif.c
  4. 2 0
      src/map/itemdb.h
  5. 1 1
      src/map/party.c
  6. 2 2
      src/map/status.c

+ 8 - 0
Changelog-Trunk.txt

@@ -4,6 +4,14 @@ 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.
 
 2007/02/26
+	* You are allowed to attack/use skills now when your cloaking level is
+	  below 3.
+	* Small change to Stone Curse that may fix the permanent "semi-stone"
+	  status.
+	* Corrected "taming monster" having your skill-use be stuck if you cancel
+	  the target selection process.
+	* config setting party_show_share_picker now displays the jname of the item
+	  picked as well.
 	* Corrected some typos and small details
 	  (forgotten bInfiniteEndure [r6487], mysterious '1' in help file, etc)
 2007/02/25

+ 1 - 1
conf-tmpl/battle/party.conf

@@ -27,7 +27,7 @@
 // features.
 //--------------------------------------------------------------
 
-// If someone loots, show name in party? (Note 1)
+// If someone steals (gank/steal skills), show name in party? (Note 1)
 show_steal_in_same_party: no
 
 // Interval before updating the party-member map mini-dots (milliseconds)

+ 12 - 3
src/map/clif.c

@@ -9707,8 +9707,12 @@ void clif_parse_UseSkillToId(int fd, struct map_session_data *sd) {
 		target_id = sd->bl.id;
 	
 	if(sd->menuskill_id)
-		return; //Can't use skills while a menu is open.
-	
+	{
+		if (sd->menuskill_id == SA_TAMINGMONSTER)
+			sd->menuskill_id = sd->menuskill_lv = 0; //Cancel pet capture.
+		else
+			return; //Can't use skills while a menu is open.
+	}
 	if (sd->skillitem == skillnum) {
 		if (skilllv != sd->skillitemlv)
 			skilllv = sd->skillitemlv;
@@ -9807,7 +9811,12 @@ void clif_parse_UseSkillToPosSub(int fd, struct map_session_data *sd, int skilll
 		return;
 	
 	if(sd->menuskill_id)
-		return; //Can't use skills while a menu is open.
+	{
+		if (sd->menuskill_id == SA_TAMINGMONSTER)
+			sd->menuskill_id = sd->menuskill_lv = 0; //Cancel pet capture.
+		else
+			return; //Can't use skills while a menu is open.
+	}
 
 	pc_delinvincibletimer(sd);
 

+ 2 - 0
src/map/itemdb.h

@@ -86,6 +86,8 @@ int itemdb_searchname_array(struct item_data** data, int size, const char *str);
 struct item_data* itemdb_load(int nameid);
 struct item_data* itemdb_search(int nameid);
 struct item_data* itemdb_exists(int nameid);
+#define itemdb_name(n) itemdb_search(n)->name
+#define itemdb_jname(n) itemdb_search(n)->jname
 #define itemdb_type(n) itemdb_search(n)->type
 #define itemdb_atk(n) itemdb_search(n)->atk
 #define itemdb_def(n) itemdb_search(n)->def

+ 1 - 1
src/map/party.c

@@ -825,7 +825,7 @@ int party_share_loot(struct party_data *p, TBL_PC *sd, struct item *item_data, i
 	//Logs
 	if(battle_config.party_show_share_picker && target != sd){
 		char output[80];
-		sprintf(output, "%s acquired the item.",target->status.name);
+		sprintf(output, "%s acquired %s.",target->status.name, itemdb_jname(item_data->nameid));
 		clif_disp_onlyself(sd,output,strlen(output));
 	}
 	return 0;

+ 2 - 2
src/map/status.c

@@ -988,7 +988,7 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int
 			|| (sc->data[SC_AUTOCOUNTER].timer != -1 && !flag)
 			|| (sc->data[SC_GOSPEL].timer != -1 && sc->data[SC_GOSPEL].val4 == BCT_SELF && skill_num != PA_GOSPEL)
 			|| (sc->data[SC_GRAVITATION].timer != -1 && sc->data[SC_GRAVITATION].val3 == BCT_SELF && skill_num != HW_GRAVITATION)
-			|| (sc->data[SC_CLOAKING].timer != -1 && sc->data[SC_CLOAKING].val1 < 3 && skill_num != AS_CLOAKING)
+//			|| (sc->data[SC_CLOAKING].timer != -1 && sc->data[SC_CLOAKING].val1 < 3 && skill_num != AS_CLOAKING) //Official sites say it blocks attack/skill usage, ingame proof says it does not.
 		)
 			return 0;
 
@@ -6628,7 +6628,7 @@ int status_change_timer(int tid, unsigned int tick, int id, int data)
 		break;
 
 	case SC_STONE:
-		if(sc->opt1 == OPT1_STONEWAIT) {
+		if(sc->opt1 == OPT1_STONEWAIT && sc->data[type].val3) {
 			sc->data[type].val4 = 0;
 			unit_stop_walking(bl,1);
 			sc->opt1 = OPT1_STONE;