summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-SVN.txt5
-rw-r--r--src/map/atcommand.c66
2 files changed, 42 insertions, 29 deletions
diff --git a/Changelog-SVN.txt b/Changelog-SVN.txt
index d776eed47..cc3a971bb 100644
--- a/Changelog-SVN.txt
+++ b/Changelog-SVN.txt
@@ -1,6 +1,11 @@
Date Added
03/14
+ * Fixed @marry and @divorce. Also added Wedding music+confetti effect to @marry [Lupus]
+ - @marry Player1,Player2
+ (don't miss the COMMA ',' betwin the names)
+ - @divorce Player
+ (in @divorce use any name from the couple)
* Added auto convert advanced job and baby class sprite ID's in mob_avail.txt
to correct format [celest]
* Added SC_Speedup cannot be stacked with Increase Agility [celest]
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index fdd3143a5..9bcf0a511 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -7235,7 +7235,7 @@ atcommand_useskill(const int fd, struct map_session_data* sd,
if (!message || !*message)
return -1;
- if(sscanf(message, "%d %d %s", &skillnum, &skilllv, target) != 3) {
+ if(sscanf(message, "%d %d %99[^\n]", &skillnum, &skilllv, target) != 3) {
clif_displaymessage(fd, "Usage: @useskill <skillnum> <skillv> <target>");
return -1;
}
@@ -7337,7 +7337,7 @@ atcommand_skilltree(const int fd, struct map_session_data* sd,
}
/*==========================================
- * @marry by [MouseJstr]
+ * @marry by [MouseJstr], fixed by Lupus
*
* Marry two players
*------------------------------------------
@@ -7352,37 +7352,35 @@ atcommand_marry(const int fd, struct map_session_data* sd,
nullpo_retr(-1, sd);
- if (!message || !*message)
- return -1;
-
- if (sscanf(message, "%[^,],%[^\r\n]", player1, player2) != 2) {
- clif_displaymessage(fd, "usage: @marry <player1> <player2>.");
+ if (!message || !*message || sscanf(message, "%[^,],%[^\r\n]", player1, player2) != 2) {
+ clif_displaymessage(fd, "Usage: @marry <player1>,<player2>.");
return -1;
}
if((pl_sd1=map_nick2sd((char *) player1)) == NULL) {
- sprintf(player2, "Cannot find player %s online", player1);
+ sprintf(player2, "Cannot find player '%s' online", player1);
clif_displaymessage(fd, player2);
return -1;
}
if((pl_sd2=map_nick2sd((char *) player2)) == NULL) {
- sprintf(player1, "Cannot find player %s online", player2);
+ sprintf(player1, "Cannot find player '%s' online", player2);
clif_displaymessage(fd, player1);
return -1;
}
if (pc_marriage(pl_sd1, pl_sd2) == 0) {
- clif_displaymessage(fd, "They are married.. wish them well");
- return 0;
- } else
- return -1;
+ clif_displaymessage(fd, "They are married.. wish them well");
+ clif_wedding_effect(&sd->bl); //wedding effect and music [Lupus]
+ return 0;
+ }
+ return -1;
}
/*==========================================
- * @divorce by [MouseJstr]
+ * @divorce by [MouseJstr], fixed by [Lupus]
*
- * divorce two players
+ * divorce two players
*------------------------------------------
*/
int
@@ -7390,19 +7388,29 @@ atcommand_divorce(const int fd, struct map_session_data* sd,
const char* command, const char* message)
{
struct map_session_data *pl_sd = NULL;
+ char player[255], output[255];
nullpo_retr(-1, sd);
- if (!message || !*message)
+ if (!message || !*message || sscanf(message, "%[^\r\n]", player) != 1) {
+ clif_displaymessage(fd, "Usage: @divorce <player>.");
return -1;
+ }
- if((pl_sd=map_nick2sd((char *) message)) != NULL) {
- return pc_divorce(pl_sd);
- clif_displaymessage(fd, "They are now divorced.");
- } else
- clif_displaymessage(fd, "The divorce has failed.. talk to the judge..");
-
- return 0;
+ if((pl_sd=map_nick2sd((char *) player)) != NULL) {
+ if (pc_divorce(pl_sd) != 0) {
+ sprintf(output, "The divorce has failed.. Cannot find player '%s' or his(her) partner online.", player);
+ clif_displaymessage(fd, output);
+ return -1;
+ } else {
+ sprintf(output, "'%s' and his(her) partner are now divorced.", player);
+ clif_displaymessage(fd, output);
+ return 0;
+ }
+ }
+ sprintf(output, "Cannot find player '%s' online", player);
+ clif_displaymessage(fd, output);
+ return -1;
}
/*==========================================
@@ -7478,7 +7486,7 @@ atcommand_grind(const int fd, struct map_session_data* sd,
if (!message || !*message)
return -1;
if(sscanf(message, "%s", target) != 1) {
- clif_displaymessage(fd, "Usage: @grind <target>");
+ clif_displaymessage(fd, "Usage: @grind <target>");
return -1;
}
if((pl_sd=map_nick2sd(target)) == NULL)
@@ -7752,7 +7760,7 @@ atcommand_mobsearch(
nullpo_retr(-1, sd);
- if (sscanf(message, "%99s", mob_name) < 0)
+ if (sscanf(message, "%99[^\n]", mob_name) < 0)
return -1;
if ((mob_id = atoi(mob_name)) == 0)
@@ -7946,7 +7954,7 @@ atcommand_adjcmdlvl(
nullpo_retr(-1, sd);
if (!message || !*message || sscanf(message, "%d %s", &newlev, cmd) != 2) {
- clif_displaymessage(fd, "usage: @adjcmdlvl <lvl> <command>.");
+ clif_displaymessage(fd, "Usage: @adjcmdlvl <lvl> <command>.");
return -1;
}
@@ -7981,7 +7989,7 @@ atcommand_adjgmlvl(
nullpo_retr(-1, sd);
if (!message || !*message || sscanf(message, "%d %[^\r\n]", &newlev, user) != 2) {
- clif_displaymessage(fd, "usage: @adjgmlvl <lvl> <user>.");
+ clif_displaymessage(fd, "Usage: @adjgmlvl <lvl> <user>.");
return -1;
}
@@ -8034,7 +8042,7 @@ atcommand_setbattleflag(
nullpo_retr(-1, sd);
if (!message || !*message || sscanf(message, "%s %s", flag, value) != 2) {
- clif_displaymessage(fd, "usage: @setbattleflag <flag> <value>.");
+ clif_displaymessage(fd, "Usage: @setbattleflag <flag> <value>.");
return -1;
}
@@ -8132,7 +8140,7 @@ int atcommand_mute(
nullpo_retr(-1, sd);
if (!message || !*message || sscanf(message, "%d %99[^\n]", &manner, character) < 1) {
- clif_displaymessage(fd, "usage: @mute <time> <character name>.");
+ clif_displaymessage(fd, "Usage: @mute <time> <character name>.");
return -1;
}