- Posts: 138
- Thank you received: 7
do_split adding extra coins during split
- Nero
-
Topic Author
- Offline
- Premium Member
-
Less
More
10 months 2 weeks ago - 10 months 2 weeks ago #10230
by Nero
do_split adding extra coins during split was created by Nero
I am noticing a wonky issue with do_split
if a member of the group splits the gold from a kill and there is 1 coin left, it is giving 2 coins to the looter
see attached screenshot
fight.c
act.other.c
if a member of the group splits the gold from a kill and there is 1 coin left, it is giving 2 coins to the looter
see attached screenshot
fight.c
if (GROUP(ch) && (local_gold > 0) && !IS_NPC(ch) && PRF_FLAGGED(ch, PRF_AUTOSPLIT)) {
struct obj_data *coin_obj, *next_obj;
struct obj_data *corpse_obj = get_obj_contents_room_vis(ch, "corpse");
if (corpse_obj) {
do_get(ch, "all.currencie corpse", 0, 0);
do_split(ch,local_buf,0,0);
}
/* need to remove the gold from the corpse */
}
else if (!IS_NPC(ch) && (ch != victim) && PRF_FLAGGED(ch, PRF_AUTOGOLD)) {
do_get(ch, "all.currencie corpse", 0, 0);
}
if (!IS_NPC(ch) && (ch != victim) && PRF_FLAGGED(ch, PRF_AUTOLOOT)) {
do_get(ch, "all corpse", 0, 0);
}
if (IS_NPC(victim) && !IS_NPC(ch) && PRF_FLAGGED(ch, PRF_AUTOSAC)) {
do_sac(ch,"corpse",0,0);
}
return (-1);
}
return (dam);
}
act.other.c
decrease_gold(ch, share * (num - 1));
/* Abusing signed/unsigned to make sizeof work. */
len = snprintf(buf, sizeof(buf), "%s splits %d coins; you receive %d.\r\n",
GET_NAME(ch), amount, share);
if (rest && len < sizeof(buf)) {
snprintf(buf + len, sizeof(buf) - len,
"%d coin%s %s not splitable, so %s keeps the money.\r\n", rest,
(rest == 1) ? "" : "s", (rest == 1) ? "was" : "were", GET_NAME(ch));
}
while ((k = (struct char_data *) simple_list(GROUP(ch)->members)) != NULL)
if (k != ch && IN_ROOM(ch) == IN_ROOM(k) && !IS_NPC(k)) {
increase_gold(k, share);
send_to_char(k, "%s", buf);
}
send_to_char(ch, "You split %d coins among %d members -- %d coins each.\r\n",
amount, num, share);
if (rest) {
send_to_char(ch, "%d coin%s %s not splitable, so you keep the money.\r\n",
rest, (rest == 1) ? "" : "s", (rest == 1) ? "was" : "were");
increase_gold(ch, rest);
}
} else {
send_to_char(ch, "How many coins do you wish to split with your group?\r\n");
return;
}
}
Last edit: 10 months 2 weeks ago by Nero.
Please Log in or Create an account to join the conversation.
- thomas
-
- Offline
- Administrator
-
Less
More
- Posts: 818
- Thank you received: 159
10 months 2 weeks ago #10231
by thomas
Replied by thomas on topic do_split adding extra coins during split
Indeed, the "increase_gold(ch, rest)" call shouldn't be there. We're already not subtracting that single coin, so this is a gold duplication bug. Well spotted!
Please Log in or Create an account to join the conversation.
- thomas
-
- Offline
- Administrator
-
Less
More
- Posts: 818
- Thank you received: 159
10 months 2 weeks ago #10232
by thomas
Replied by thomas on topic do_split adding extra coins during split
Fixed and merged :)
The following user(s) said Thank You: Nero
Please Log in or Create an account to join the conversation.
- Nero
-
Topic Author
- Offline
- Premium Member
-
Less
More
- Posts: 138
- Thank you received: 7
10 months 2 weeks ago #10233
by Nero
Replied by Nero on topic do_split adding extra coins during split
Thanks Thomas happy to help contribute!
Please Log in or Create an account to join the conversation.
- Nero
-
Topic Author
- Offline
- Premium Member
-
Less
More
- Posts: 138
- Thank you received: 7
10 months 2 weeks ago #10234
by Nero
Replied by Nero on topic do_split adding extra coins during split
I had to change ours to all.currencie instead of all.gold or all.coin. One thing I was noticing was if a mob had a piece of equipment labeled gold or coin in it, it would try to loot that first before looting the gold. Not sure if there was an easier way around that but this works for us.
Please Log in or Create an account to join the conversation.
Time to create page: 0.112 seconds