Ok after getting 2 of the messages in subject yesterday, i made it dump the core. Marked the line 1231 from fight.c
Hope one of you know whats wrong ?
If i need to post the lines of the other stuff from gdb let me know. Would be good to get fixed, must lie in the Stock code somewhere, since iwe not modificere simple_list.
Code:
(gdb) bt
#0 0x00504402 in __kernel_vsyscall ()
#1 0x002e1b10 in raise () from /lib/libc.so.6
#2 0x002e3421 in abort () from /lib/libc.so.6
#3 0x0816b4d6 in core_dump_real (who=0x81b77f2 "lists.c", line=264) at utils.c:833
#4 0x0810916c in simple_list (pList=0xb446f68) at lists.c:264
#5 0x080e56d7 in perform_violence () at fight.c:1231
#6 0x080b54c5 in heartbeat (heart_pulse=56080) at comm.c:996
#7 0x080b8178 in game_loop (local_mother_desc=3) at comm.c:941
#8 0x080b9d37 in init_game (argc=Cannot access memory at address 0x391b
) at comm.c:536
#9 main (argc=Cannot access memory at address 0x391b
) at comm.c:356
/* control the fights going on. Called every 2 seconds from comm.c. */
void perform_violence(void)
{
struct char_data *ch, *tch;
for (ch = combat_list; ch; ch = next_combat_list) {
next_combat_list = ch->next_fighting;
if (FIGHTING(ch) == NULL || IN_ROOM(ch) != IN_ROOM(FIGHTING(ch))) {
stop_fighting(ch);
continue;
}
if (IS_NPC(ch)) {
if (GET_MOB_WAIT(ch) > 0) {
GET_MOB_WAIT(ch) -= PULSE_VIOLENCE;
continue;
}
GET_MOB_WAIT(ch) = 0;
if (GET_POS(ch) < POS_FIGHTING) {
GET_POS(ch) = POS_FIGHTING;
act("$n scrambles to $s feet!", TRUE, ch, 0, 0, TO_ROOM);
}
if ((GET_HIT(FIGHTING(ch)) <= 12) && (MOB_FLAGGED(ch, MOB_MERCY))) {
stop_fighting(FIGHTING(ch));
stop_fighting(ch);
act("$n says: Blessed are the merciful, for they shall obtain mercy!", FALSE, ch, 0, 0, TO_ROOM);
}
// re-wield weapon lost to SKILL_DISARM
if (LOST_WEAPON(ch)) {
if (DISARM_WAIT(ch) > 0) {
DISARM_WAIT(ch) -= PULSE_VIOLENCE;
} else {
do_wield(ch, OBJN(LOST_WEAPON(ch), ch), 0, 0);
LOST_WEAPON(ch) = NULL;
}
}
}
if (GET_POS(ch) < POS_FIGHTING) {
send_to_char(ch, "You can't fight while sitting!!\r\n");
continue;
}
if (GET_MOVE(ch) <= 0)
continue;
if (GROUP(ch)) {
while ((tch = (struct char_data *) simple_list(GROUP(ch)->members)) != NULL) { <<<---Line 1231
if (tch == ch)
continue;
if (!IS_NPC(tch) && !PRF_FLAGGED(tch, PRF_AUTOASSIST))
continue;
if (IN_ROOM(ch) != IN_ROOM(tch))
continue;
if (FIGHTING(tch))
continue;
if (GET_POS(tch) != POS_STANDING)
continue;
if (!CAN_SEE(tch, ch))
continue;
do_assist(tch, GET_NAME(ch), 0, 0);
}
}
{
hit(ch, FIGHTING(ch), TYPE_UNDEFINED);
GET_MOVE(ch) -= 1;
}
Update:
Just Saw it in fight...see pic.
Its happening when mobs assist it seems.