Jelajahi Sumber

Added possibility to restrict duel usage to same map

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8013 54d463be-8e91-2dee-dedb-b68131a5f0ec
toms 19 tahun lalu
induk
melakukan
35fc0dc4f3

+ 1 - 0
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]

+ 3 - 0
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)

+ 1 - 0
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 --

+ 6 - 0
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."

+ 4 - 2
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;

+ 1 - 0
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]