summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt1
-rw-r--r--conf-tmpl/battle/misc.conf3
-rw-r--r--conf-tmpl/msg_athena.conf1
-rw-r--r--src/map/atcommand.c6
-rw-r--r--src/map/battle.c6
-rw-r--r--src/map/battle.h1
6 files changed, 16 insertions, 2 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 790cfda44..f0a731d9e 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,7 @@ 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.
2006/07/31
+ * Added possibility to restrict duel usage to same map [Toms]
* Merged mpeg's fix on ninja skills [Toms]
* Corrected a status_get_race call which should be status_get_race2 in misc
attacks. [Skotlex]
diff --git a/conf-tmpl/battle/misc.conf b/conf-tmpl/battle/misc.conf
index 5ae83e707..ff448aa61 100644
--- a/conf-tmpl/battle/misc.conf
+++ b/conf-tmpl/battle/misc.conf
@@ -126,6 +126,9 @@ duel_autoleave_when_die: yes
// Delay between using @duel in minutes
duel_time_interval: 60
+// Restrict duel usage to same map
+duel_only_on_same_map: no
+
// Determines max number of characters that can stack within a single cell.
// NOTE: For this setting to make effect you have to use a server compiled with
// Cell Stack Limit support (see src/map/map.h)
diff --git a/conf-tmpl/msg_athena.conf b/conf-tmpl/msg_athena.conf
index e9f8b7cc5..7a9e31a03 100644
--- a/conf-tmpl/msg_athena.conf
+++ b/conf-tmpl/msg_athena.conf
@@ -363,6 +363,7 @@
361: Duel: The duel invitation has been accepted.
362: Duel: You can't use @reject without a duel invitation.
363: Duel: The duel invitation has been rejected.
+364: Duel: You can't invite %s because he isn't on the same map.
// @duel (part 2)
370: -- Duels: %d/%d, Members: %d/%d, Max players: %d --
371: -- Duels: %d/%d, Members: %d/%d --
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index e0c4b5405..ccdbab7bf 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -10181,6 +10181,12 @@ int atcommand_invite(
clif_displaymessage(fd, msg_txt(353));
return 0;
}
+
+ if(battle_config.duel_only_on_same_map && target_sd->bl.m != sd->bl.m)
+ {
+ clif_displaymessage(fd, msg_txt(364));
+ return 0;
+ }
duel_invite(did, sd, target_sd);
// "Duel: Invitation has been sent."
diff --git a/src/map/battle.c b/src/map/battle.c
index 50c35867a..27b718bc9 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -3731,7 +3731,8 @@ static const struct battle_data_short {
{ "duel_allow_teleport", &battle_config.duel_allow_teleport}, // [LuzZza]
{ "duel_autoleave_when_die", &battle_config.duel_autoleave_when_die}, //[LuzZza]
{ "duel_time_interval", &battle_config.duel_time_interval}, // [LuzZza]
-
+ { "duel_only_on_same_map", &battle_config.duel_only_on_same_map}, // [Toms]
+
{ "skip_teleport_lv1_menu", &battle_config.skip_teleport_lv1_menu}, // [LuzZza]
{ "allow_skill_without_day", &battle_config.allow_skill_without_day}, // [Komurka]
{ "allow_es_magic_player", &battle_config.allow_es_magic_pc },
@@ -4156,10 +4157,11 @@ void battle_set_defaults() {
battle_config.duel_enable = 1;
battle_config.duel_allow_pvp = 0;
- battle_config.duel_allow_pvp = 0;
+ battle_config.duel_allow_gvg = 0;
battle_config.duel_allow_teleport = 0;
battle_config.duel_autoleave_when_die = 1;
battle_config.duel_time_interval = 60;
+ battle_config.duel_only_on_same_map = 0;
battle_config.skip_teleport_lv1_menu = 0;
battle_config.allow_skill_without_day = 0;
diff --git a/src/map/battle.h b/src/map/battle.h
index 12e4b2488..5ff2cfc30 100644
--- a/src/map/battle.h
+++ b/src/map/battle.h
@@ -420,6 +420,7 @@ extern struct Battle_Config {
unsigned short duel_allow_teleport; // [LuzZza]
unsigned short duel_autoleave_when_die; // [LuzZza]
unsigned short duel_time_interval; // [LuzZza]
+ unsigned short duel_only_on_same_map; // [Toms]
unsigned short skip_teleport_lv1_menu; // possibility to disable (skip) Teleport Lv1 menu, that have only two lines `Random` and `Cancel` [LuzZza]