Преглед на файлове

* Follow up to r13895, added a battle.conf setting to control if ranges should be checked with autocasts.
'autospell_check_range', by default is set to no, as this is official behavior. This does not affect autospellwhenhit.
* Sonic Blow autocast now stops players attacking when it triggers. It's possible there is more depth to this
on official servers, and should 'stop' attacking on regular casts as well. It appears so far that this is the
only skill that behaves this way.
* Modified the default value for homunculus_auto_vapor in source to 1.
* pvp_points are no longer calculated in the gvg_dungeon flagged maps.
* Corrected a view ID and an equip location in the item database. (bugreport:4330)
* Corrected a typo in the DTS_Warper script.

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

L0ne_W0lf преди 15 години
родител
ревизия
94ebad5ce0
променени са 12 файла, в които са добавени 36 реда и са изтрити 20 реда
  1. 8 0
      Changelog-Trunk.txt
  2. 6 0
      conf/battle/battle.conf
  3. 2 0
      db/Changelog.txt
  4. 2 2
      db/item_db.txt
  5. 1 1
      doc/script_commands.txt
  6. 2 0
      npc/Changelog.txt
  7. 3 2
      npc/kafras/dts_warper.txt
  8. 2 1
      src/map/battle.c
  9. 1 0
      src/map/battle.h
  10. 0 8
      src/map/clif.c
  11. 2 2
      src/map/pc.c
  12. 7 4
      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.
 
+2010/06/27
+	* Rev. 14356 Follow up to r13895, added a battle.conf setting to control if ranges should be checked with autocasts. [L0ne_W0lf]
+	  'autospell_check_range', by default is set to no, as this is official behavior. This does not affect autospellwhenhit.
+	* Sonic Blow autocast now stops players attacking when it triggers. It's possible there is more depth to this 
+	  on official servers, and should 'stop' attacking on regular casts as well. It appears so far that this is the
+	  only skill that behaves this way.
+	* Modified the default value for homunculus_auto_vapor in source to 1.
+	* pvp_points are no longer calculated in the gvg_dungeon flagged maps.
 2010/06/22
 	* Rev. 14353 Added support for NPC names in the 'specialeffect' script command, go go copy/paste! [L0ne_W0lf]
 2010/06/20

+ 6 - 0
conf/battle/battle.conf

@@ -165,3 +165,9 @@ delay_battle_damage: yes
 //     skill is weapon-based and used with ranged weapons (auto-guesses which 
 //     skills should consume ammo when it's acquired via a card or plagiarize)
 arrow_decrement: 1
+
+// Should the item script bonus 'Autospell' check for range/obstacles before casting?
+// Official behavior is "no", setting this to "yes" will make skills use their defined
+// range. For example, Sonic Blow requires a 2 cell distance before autocasting is allowed.
+// This setting does not affect autospellwhenhit.
+autospell_check_range: no

+ 2 - 0
db/Changelog.txt

@@ -8,6 +8,8 @@
 	1475 Equestrian's Spear:	NEED INFO.
 	13005 Angelic Wing Dagger:	NEED INFO.
 =======================
+2010/06/27
+	* Rev. 14356 Corrected a view ID and an equip location in the item database. (bugreport:4330) [L0ne_W0lf]
 2010/06/21
 	* Rev. 14352 Minor item database bug fixes! [L0ne_W0lf]
 	- Corrected some lower headgears being able to be refined. (bugreport:4328) 

+ 2 - 2
db/item_db.txt

@@ -2717,7 +2717,7 @@
 5530,Raven_Cap,Raven Cap,5,20,,300,,3,,1,0xFFFFFFFF,7,2,256,,30,1,524,{},{},{}
 5531,B_Dragon_Hat,Baby Dragon Hat,5,20,,100,,3,,1,0xFFFFFFFF,7,2,256,,0,1,525,{},{},{}
 5532,Pirate_Dagger_J,Pirate Dagger,5,,,100,,0,,0,0xFFFFFFFF,7,2,1,,0,1,327,{ bonus bShortWeaponDamageReturn,1; },{},{}
-5533,Emperor_Wreath_J,Emperor Wreath,5,,,800,,3,,1,0xFFFFFFFF,7,2,1,,80,1,261,{ bonus bAllStats,1; },{},{}
+5533,Emperor_Wreath_J,Emperor Wreath,5,,,800,,3,,1,0xFFFFFFFF,7,2,256,,80,1,261,{ bonus bAllStats,1; },{},{}
 5534,Fox_Hat_J,Fox Hat,5,20,,100,,1,,0,0xFFFFFFFF,7,0,769,,70,1,403,{ bonus bAgi,1; bonus bFlee2,2; },{},{}
 5535,Side_Cap,Side Cap,5,20,,500,,3,,0,0xFFFFFFFF,7,2,256,,0,1,529,{ bonus2 bSubRace,RC_DemiHuman,5; bonus2 bAddRace,RC_DemiHuman,3; },{},{}
 5536,Spare_Card,Spare Card,5,20,,10,,1,,0,0xFFFFFFFF,7,2,1,,10,1,526,{ bonus2 bAddMonsterDropItem,6187,1000; },{},{}
@@ -2754,7 +2754,7 @@
 5567,Bright_Fury,Bright Fury,5,20,,100,,1,,1,0xFFFFFFFF,7,2,256,,0,1,548,{ bonus2 bAddRace,RC_NonBoss,2; bonus2 bAddRace,RC_Boss,2; bonus bAspdRate,2; },{},{}
 5568,Rabbit_Bonnet,Rabbit Bonnet,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,549,{},{},{}
 5569,Gemini_Diadem,Gemini Diadem,5,20,,300,,4,,1,0xFFFFFFFF,7,2,256,,70,1,550,{ bonus bMatkRate,2; if(getrefine()>6) { bonus bMDef,7; bonus bMAtkRate,8; bonus2 bSubEle,Ele_Wind,5; } },{},{}
-5570,Gemini_Crown,Gemini Crown,5,20,,300,,4,,1,0xFFFFFFFF,7,2,256,,70,1,550,{ bonus bAtk,2; bonus bMDef,5; if(getrefine()>6) { bonus bDef,1; bonus bMAtk,15; bonus bFlee,10; bonus2 bSubEle,Ele_Wind,5; } },{},{}
+5570,Gemini_Crown,Gemini Crown,5,20,,300,,4,,1,0xFFFFFFFF,7,2,256,,70,1,551,{ bonus bAtk,2; bonus bMDef,5; if(getrefine()>6) { bonus bDef,1; bonus bMAtk,15; bonus bFlee,10; bonus2 bSubEle,Ele_Wind,5; } },{},{}
 //5571,Rasta_Wig,Rasta_Wig,5,20,,800,,1,,0,0xFFFFFFFF,7,2,256,,0,1,552,{},{},{}
 5572,Savage_Babe_Hat,Savage Babe Hat,5,20,,100,,1,,1,0xFFFFFFFF,7,2,256,,0,1,553,{},{},{}
 5573,Dokebi_Horn,Dokebi Horn,5,20,,100,,1,,1,0xFFFFFFFF,7,2,256,,0,1,554,{},{},{}

+ 1 - 1
doc/script_commands.txt

@@ -4577,7 +4577,7 @@ will retain the default behavior of the command.
 	// this will make the NPC "John Doe#1"
 	// show the effect "EF_HIT1" specified by
 	// Jane Doe. I wonder what John did...
-	mes "[Jane Doe];
+	mes "[Jane Doe]";
 	mes "Well, I never!";
 	specialeffect EF_HIT1,AREA,"John Doe#1";
 	close;

+ 2 - 0
npc/Changelog.txt

@@ -1,5 +1,7 @@
 Date		Added
 ======
+2010/06/27
+	* Rev. 14356 Corrected a typo in the DTS_Warper script. [L0ne_W0lf]
 2010/06/22
 	* Rev. 14353 Updated several NPCs to use the updated specialeffect command, updated more NPCs to use the updated emotion command. [L0ne_W0lf]
 2010/06/21

+ 3 - 2
npc/kafras/dts_warper.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= Evera
 //===== Current Version: ===================================== 
-//= 2.6
+//= 2.7
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: =========================================
@@ -51,6 +51,7 @@
 //= 2.4 Corrected NPC names to fall within proper restrictions. [L0ne_W0lf]
 //= 2.5 Converted from Aegis file. (11.3) [L0ne_W0lf]
 //= 2.6 Moved Morroc NPCs to Morroc Ruins. [L0ne_W0lf]
+//= 2.7 Fixed a typo, a - to a +. Not sure how that happened. [L0ne_w0lf]
 //============================================================ 
 
 einbroch,246,70,0	script	Vote Timer#ein	-1,{
@@ -287,7 +288,7 @@ OnTimer60000:
 		donpcevent "Vote Timer#ein::OnEnable";
 	}
 	else {
-		set $DTS_PeriodCheck,$DTS_PeriodCheck-1; //Global Variable
+		set $DTS_PeriodCheck,$DTS_PeriodCheck+1; //Global Variable
 		donpcevent "Vote Timer4#ein::OnEnable";
 	}
 	end;

+ 2 - 1
src/map/battle.c

@@ -3871,12 +3871,13 @@ static const struct _battle_data {
 	{ "auction_feeperhour",                 &battle_config.auction_feeperhour,              12000,  0,      INT_MAX,        },
 	{ "auction_maximumprice",               &battle_config.auction_maximumprice,            500000000, 0,   MAX_ZENY,       },
 	{ "gm_viewequip_min_lv",                &battle_config.gm_viewequip_min_lv,             0,      0,      99,             },
-	{ "homunculus_auto_vapor",              &battle_config.homunculus_auto_vapor,           0,      0,      1,              },
+	{ "homunculus_auto_vapor",              &battle_config.homunculus_auto_vapor,           1,      0,      1,              },
 	{ "display_status_timers",              &battle_config.display_status_timers,           1,      0,      1,              },
 	{ "skill_add_heal_rate",                &battle_config.skill_add_heal_rate,             7,      0,      INT_MAX,        },
 	{ "eq_single_target_reflectable",       &battle_config.eq_single_target_reflectable,    1,      0,      1,              },
 	{ "invincible.nodamage",                &battle_config.invincible_nodamage,             0,      0,      1,              },
 	{ "mob_slave_keep_target",              &battle_config.mob_slave_keep_target,           0,      0,      1,              },
+	{ "autospell_check_range",              &battle_config.autospell_check_range,           0,      0,      1,              },
 // BattleGround Settings
 	{ "bg_update_interval",                 &battle_config.bg_update_interval,              1000,   100,    INT_MAX,        },
 	{ "bg_short_attack_damage_rate",        &battle_config.bg_short_damage_rate,            80,     0,      INT_MAX,        },

+ 1 - 0
src/map/battle.h

@@ -469,6 +469,7 @@ extern struct Battle_Config
 	int eq_single_target_reflectable;
 	int invincible_nodamage;
 	int mob_slave_keep_target;
+	int autospell_check_range;	//Enable range check for autospell bonus. [L0ne_W0lf]
 
 	// [BattleGround Settings]
 	int bg_update_interval;

+ 0 - 8
src/map/clif.c

@@ -8310,15 +8310,7 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd)
 		clif_set0199(sd,1);
 
 	if (map[sd->bl.m].flag.gvg_dungeon)
-	{
 		clif_set0199(sd,1); //TODO: Figure out the real packet to send here.
-		if (!sd->pvp_point)
-		{
-			sd->pvp_point = 5; //Need to die twice to be warped out.
-			sd->pvp_won = 0;
-			sd->pvp_lost = 0;
-		}
-	}
 
 	if( map_flag_gvg(sd->bl.m) )
 		clif_set0199(sd,3);

+ 2 - 2
src/map/pc.c

@@ -5721,8 +5721,8 @@ int pc_dead(struct map_session_data *sd,struct block_list *src)
 	}
 	// pvp
 	// disable certain pvp functions on pk_mode [Valaris]
-	if( map[sd->bl.m].flag.gvg_dungeon || (map[sd->bl.m].flag.pvp && !battle_config.pk_mode && !map[sd->bl.m].flag.pvp_nocalcrank) )
-	{ // Pvp points always take effect on gvg_dungeon maps.
+	if( map[sd->bl.m].flag.pvp && !battle_config.pk_mode && !map[sd->bl.m].flag.pvp_nocalcrank )
+	{
 		sd->pvp_point -= 5;
 		sd->pvp_lost++;
 		if( src && src->type == BL_PC )

+ 7 - 4
src/map/skill.c

@@ -1010,8 +1010,11 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
 
 			tbl = (sd->autospell[i].id < 0) ? src : bl;
 
-			if( !battle_check_range(src, tbl, skill_get_range2(src, skill,skilllv) + (skill == RG_CLOSECONFINE?0:1)) )
-				continue; //Autocasts should always fail if the target is outside the skill range or an obstacle is in between.[Inkfish]
+			if( !battle_check_range(src, tbl, skill_get_range2(src, skill,skilllv) + (skill == RG_CLOSECONFINE?0:1)) && battle_config.autospell_check_range )
+				continue; // If autospell_check_range is yes, fail the autocast.
+
+			if (skill == AS_SONICBLOW)
+				pc_stop_attack(sd); //Special case, Sonic Blow autospell should stop the player attacking.
 
 			sd->state.autocast = 1;
 			skill_consume_requirement(sd,skill,skilllv,1);
@@ -1109,7 +1112,7 @@ int skill_onskillusage(struct map_session_data *sd, struct block_list *bl, int s
 			continue;
 		tbl = (sd->autospell3[i].id < 0) ? &sd->bl : bl;
 
-		if( !battle_check_range(&sd->bl, tbl, skill_get_range2(&sd->bl, skill,skilllv) + (skill == RG_CLOSECONFINE?0:1)) )
+		if( !battle_check_range(&sd->bl, tbl, skill_get_range2(&sd->bl, skill,skilllv) + (skill == RG_CLOSECONFINE?0:1)) && battle_config.autospell_check_range )
 			continue;
 
 		sd->state.autocast = 1;
@@ -1281,7 +1284,7 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list *
 
 			tbl = (dstsd->autospell2[i].id < 0) ? bl : src;
 
-			if( !battle_check_range(src, tbl, skill_get_range2(src, skillid,skilllv) + (skillid == RG_CLOSECONFINE?0:1)) )
+			if( !battle_check_range(src, tbl, skill_get_range2(src, skillid,skilllv) + (skillid == RG_CLOSECONFINE?0:1)) && battle_config.autospell_check_range )
 				continue;
 
 			dstsd->state.autocast = 1;