Browse Source

- corrected duration of sphere mines to be 30 secs regardless of skill level
- Corrected duel_count/duel_list (you DON'T place variables in a .h file! That is what 'extern' is for)
- Script command warpportal now places a warp in its initial state (as if a real warp portal was casted)
- Updated dispell to also not remove the following effects: Hindsight, Inc Hit/Atk Rate (NPC_POWERUP), Nen, TK stances and tumble, warm and speedup1 (the other speed potion)
- Chase-walking characters can now loot.
- Hiding characters can't drop items now.


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

skotlex 17 years ago
parent
commit
5c4212300a
10 changed files with 35 additions and 17 deletions
  1. 8 0
      Changelog-Trunk.txt
  2. 3 0
      db/Changelog.txt
  3. 1 1
      db/skill_cast_db.txt
  4. 0 2
      src/map/atcommand.c
  5. 3 4
      src/map/clif.c
  6. 0 8
      src/map/map.h
  7. 5 0
      src/map/pc.c
  8. 9 0
      src/map/pc.h
  9. 1 1
      src/map/script.c
  10. 5 1
      src/map/skill.c

+ 8 - 0
Changelog-Trunk.txt

@@ -3,6 +3,14 @@ Date	Added
 AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
+2008/01/09
+	* Script command warpportal now places a warp in its initial state (as if a
+	  real warp portal was casted).
+	* Updated dispell to also not remove the following effects: Hindsight, Inc
+	  Hit/Atk Rate (NPC_POWERUP), Nen, TK stances and tumble, warm and speedup1
+	  (the other speed potion).
+	* Chase-walking characters can now loot.
+	* Hiding characters can't drop items now. [Skotlex] 
 2008/01/08
 	* Added missing session auth checks to charserver. [ultramage]
 	  Packets from non-authed clients will now be discarded.

+ 3 - 0
db/Changelog.txt

@@ -37,6 +37,9 @@
 	2376 General's_Plate_Mail	Increases heal recovery effectiveness on you by 10%
 
 =======================
+01/09
+	* Corrected duration of sphere mines to be 30 secs regardless of skill
+	  level. [Skotlex]
 12/28
 	* Updated MVP drops to 11.2 [Playtester]
 	- also increased speed of Lord of the Death

+ 1 - 1
db/skill_cast_db.txt

@@ -369,7 +369,7 @@
 //-- AM_CANNIBALIZE
 232,2000,500,0,300000:240000:180000:120000:60000,0
 //-- AM_SPHEREMINE
-233,2000,500,0,40000:50000:60000:70000:80000,0
+233,2000,500,0,30000,0
 //-- AM_CP_WEAPON
 234,2000,0,0,120000:240000:360000:480000:600000,0
 //-- AM_CP_SHIELD

+ 0 - 2
src/map/atcommand.c

@@ -8548,8 +8548,6 @@ int atcommand_config_read(const char* cfgName)
 void do_init_atcommand()
 {
 	users_db = uidb_alloc(DB_OPT_BASE);
-	duel_count = 0;
-	memset(&duel_list[0], 0, sizeof(duel_list));
 	add_timer_func_list(atshowmobs_timer, "atshowmobs_timer");
 	return;
 }

+ 3 - 4
src/map/clif.c

@@ -8566,11 +8566,9 @@ void clif_parse_TakeItem(int fd, struct map_session_data *sd)
 		if (pc_cant_act(sd))
 			break;
 
-  		//Disable cloaking/chasewalking characters from looting [Skotlex]
-		if(pc_iscloaking(sd) || pc_ischasewalk(sd))
-			break;
-		
 		if(sd->sc.count && (
+			sd->sc.data[SC_HIDING] ||
+			sd->sc.data[SC_CLOAKING] ||
 			sd->sc.data[SC_TRICKDEAD] ||
 			sd->sc.data[SC_BLADESTOP] ||
 			(sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1&MANNER_NOITEM))
@@ -8601,6 +8599,7 @@ void clif_parse_DropItem(int fd, struct map_session_data *sd)
 			break;
 
 		if (sd->sc.count && (
+			sd->sc.data[SC_HIDING] ||
 			sd->sc.data[SC_AUTOCOUNTER] ||
 			sd->sc.data[SC_BLADESTOP] ||
 			(sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1&MANNER_NOITEM)

+ 0 - 8
src/map/map.h

@@ -794,14 +794,6 @@ struct map_session_data {
 	} mail;
 };
 
-struct {
-	int members_count;
-	int invites_count;
-	int max_players_limit;
-} duel_list[MAX_DUEL];
-
-int duel_count;
-
 struct npc_timerevent_list {
 	int timer,pos;
 };

+ 5 - 0
src/map/pc.c

@@ -66,6 +66,9 @@ static int GM_num = 0;
 #define MOTD_LINE_SIZE 128
 char motd_text[MOTD_LINE_SIZE][256]; // Message of the day buffer [Valaris]
 
+struct duel duel_list[MAX_DUEL];
+int duel_count = 0;
+
 //Links related info to the sd->hate_mob[]/sd->feel_map[] entries
 const struct sg_data sg_info[3] = {
 		{ SG_SUN_ANGER, SG_SUN_BLESS, SG_SUN_COMFORT, "PC_FEEL_SUN", "PC_HATE_MOB_SUN", is_day_of_sun },
@@ -7552,6 +7555,8 @@ int do_init_pc(void)
 	pc_readdb();
 	pc_read_motd(); // Read MOTD [Valaris]
 
+	memset(&duel_list[0], 0, sizeof(duel_list));
+
 	add_timer_func_list(pc_invincible_timer, "pc_invincible_timer");
 	add_timer_func_list(pc_eventtimer, "pc_eventtimer");
 	add_timer_func_list(pc_calc_pvprank_timer, "pc_calc_pvprank_timer");

+ 9 - 0
src/map/pc.h

@@ -98,6 +98,15 @@ enum {
 	EQI_MAX
 } equip_index_enum;
 
+struct duel {
+	int members_count;
+	int invites_count;
+	int max_players_limit;
+};
+
+extern struct duel duel_list[MAX_DUEL];
+extern int duel_count;
+
 #define pc_setdead(sd)        ( (sd)->state.dead_sit = (sd)->vd.dead_sit = 1 )
 #define pc_setsit(sd)         ( (sd)->state.dead_sit = (sd)->vd.dead_sit = 2 )
 #define pc_isdead(sd)         ( (sd)->state.dead_sit == 1 )

+ 1 - 1
src/map/script.c

@@ -12941,7 +12941,7 @@ BUILDIN_FUNC(warpportal)
 	if( mapindex == 0 )
 		return 0;// map not found
 
-	group = skill_unitsetting(bl, AL_WARP, 4, spx, spy, 1);
+	group = skill_unitsetting(bl, AL_WARP, 4, spx, spy, 0);
 	if( group == NULL )
 		return 0;// failed
 	group->val2 = (tpx<<16) | tpy;

+ 5 - 1
src/map/skill.c

@@ -4188,7 +4188,11 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 				case SC_SMA:         case SC_SPEEDUP0:    case SC_NOCHAT:
 				case SC_ANKLE:       case SC_SPIDERWEB:   case SC_JAILED:
 				case SC_ITEMBOOST:   case SC_EXPBOOST:    case SC_LIFEINSURANCE:
-				case SC_BOSSMAPINFO: case SC_PNEUMA:
+				case SC_BOSSMAPINFO: case SC_PNEUMA:      case SC_AUTOSPELL:
+				case SC_INCHITRATE:  case SC_INCATKRATE:  case SC_NEN:
+				case SC_READYSTORM:  case SC_READYDOWN:   case SC_READYTURN:
+				case SC_READYCOUNTER:case SC_DODGE:       case SC_WARM:
+				case SC_SPEEDUP1:
 					continue;
 				}
 				if(i==SC_BERSERK) tsc->data[i]->val2=0; //Mark a dispelled berserk to avoid setting hp to 100 by setting hp penalty to 0.