Hi, I made an update to the public servers, as a number of bugs have been fixed.
I prefer to do so.You can also report bugs and issues on this forum, if you prefer to do so.
Excellent, thank you.Just to confirm, I already implemented the yes/no question for this, and the feature will be part of the next version of GnollHack.
Thanks, I'll try that.Hi, in GnollHack, advancing with two-weapon fighting is currently implemented so that you need to hit successfully 20 times with you left-hand weapon to advance to basic level. In vanilla, this may work differently. I tested this with a samurai in debug mode and it seemed to work as intended. However, if you have a poor skill in your left-hand weapon, you might generally miss with it, compared to successful strikes with your right hand weapon, which do not count in GnollHack.
We are investigating this matter. It seems that the process crashed in the middle of writing the dump log file without any clear cause. It was able to write the last word as "Leve" and crashed at that point, which is very strange. But we will manually write your data into the xlogfile.I ascended this morning and bhaak tells me he can't find the xlogfile. Please help, thanks.
Apparently the ttyrec and dumplog indicate a crash before the xlogfile was written. Please fix, thanks. Even if it means a manually created xlogfile. I'd hate to lose the first week of junethack to this bug.
munmap_chunk(): invalid pointer
, which was the last message before the crash. It is usually caused by the free function. The only places where I found the free function was this code in end.c
starting at line 1541. /* list valuables here */
for (val = valuables; val->list; val++) {
sort_valuables(val->list, val->size);
for (i = 0; i < val->size && !done_stopprint; i++) {
int typ = val->list[i].typ;
long count = val->list[i].count;
if (count == 0L)
continue;
if (objects[typ].oc_class != GEM_CLASS || typ <= LAST_GEM) {
otmp = mksobj(typ, FALSE, FALSE, FALSE);
discover_object(otmp->otyp, TRUE, FALSE);
otmp->known = 1; /* for fake amulets */
otmp->dknown = 1; /* seen it (blindness fix) */
if (has_oname(otmp))
free_oname(otmp);
otmp->quan = count;
Sprintf(pbuf, "%8ld %s (worth %ld %s),", count,
xname(otmp), count * (long) objects[typ].oc_cost,
currency(2L));
obfree(otmp, (struct obj *) 0);
} else {
Sprintf(pbuf, "%8ld worthless piece%s of colored glass,",
count, plur(count));
}
dump_forward_putstr(endwin, 0, pbuf, 0);
}
}
free_oname(otmp);
and obfree(otmp, (struct obj *) 0);
.dump_close_log();
.