summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorL0ne_W0lf <L0ne_W0lf@54d463be-8e91-2dee-dedb-b68131a5f0ec>2010-06-28 01:10:58 +0000
committerL0ne_W0lf <L0ne_W0lf@54d463be-8e91-2dee-dedb-b68131a5f0ec>2010-06-28 01:10:58 +0000
commit9e94e8ad83d23ce2082b30217ed2f14f0b38a4bd (patch)
treede43cff93093e3324101023ce71d5a7e5f2e6fb7
parent79ef7d48a5db30fbd55078691d6a5ea127c4a4ee (diff)
downloadhercules-9e94e8ad83d23ce2082b30217ed2f14f0b38a4bd.tar.gz
hercules-9e94e8ad83d23ce2082b30217ed2f14f0b38a4bd.tar.bz2
hercules-9e94e8ad83d23ce2082b30217ed2f14f0b38a4bd.tar.xz
hercules-9e94e8ad83d23ce2082b30217ed2f14f0b38a4bd.zip
* 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14356 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--Changelog-Trunk.txt8
-rw-r--r--conf/battle/battle.conf6
-rw-r--r--db/Changelog.txt2
-rw-r--r--db/item_db.txt4
-rw-r--r--doc/script_commands.txt2
-rw-r--r--npc/Changelog.txt2
-rw-r--r--npc/kafras/dts_warper.txt5
-rw-r--r--src/map/battle.c3
-rw-r--r--src/map/battle.h1
-rw-r--r--src/map/clif.c8
-rw-r--r--src/map/pc.c4
-rw-r--r--src/map/skill.c11
12 files changed, 36 insertions, 20 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index e0c225ce7..9b3b2cb9d 100644
--- a/Changelog-Trunk.txt
+++ b/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
diff --git a/conf/battle/battle.conf b/conf/battle/battle.conf
index 05f774ea6..044acac17 100644
--- a/conf/battle/battle.conf
+++ b/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
diff --git a/db/Changelog.txt b/db/Changelog.txt
index 19748768d..d0b28bd71 100644
--- a/db/Changelog.txt
+++ b/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)
diff --git a/db/item_db.txt b/db/item_db.txt
index a8efa8240..c4e9990ef 100644
--- a/db/item_db.txt
+++ b/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,{},{},{}
diff --git a/doc/script_commands.txt b/doc/script_commands.txt
index 07819d238..12afe7221 100644
--- a/doc/script_commands.txt
+++ b/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;
diff --git a/npc/Changelog.txt b/npc/Changelog.txt
index e4b10cce7..b03075635 100644
--- a/npc/Changelog.txt
+++ b/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
diff --git a/npc/kafras/dts_warper.txt b/npc/kafras/dts_warper.txt
index 58aba58bc..ffd28edd4 100644
--- a/npc/kafras/dts_warper.txt
+++ b/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;
diff --git a/src/map/battle.c b/src/map/battle.c
index b2c74afaf..de0bfe07f 100644
--- a/src/map/battle.c
+++ b/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, },
diff --git a/src/map/battle.h b/src/map/battle.h
index 17e80c408..361867a9f 100644
--- a/src/map/battle.h
+++ b/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;
diff --git a/src/map/clif.c b/src/map/clif.c
index bd7af7eb3..0e1082d4c 100644
--- a/src/map/clif.c
+++ b/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);
diff --git a/src/map/pc.c b/src/map/pc.c
index 91017cf22..04027c42d 100644
--- a/src/map/pc.c
+++ b/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 )
diff --git a/src/map/skill.c b/src/map/skill.c
index 2f2a7e6b0..3e63a9211 100644
--- a/src/map/skill.c
+++ b/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;