From crossfire-devel at archives.real-time.com Mon Mar 1 00:53:02 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:07 2005 Subject: [CF-Devel] artifact list error In-Reply-To: <1078101036.3227.23.camel@oberon.kameria> References: <1078084384.3227.6.camel@oberon.kameria> <1078101036.3227.23.camel@oberon.kameria> Message-ID: On Mon, 1 Mar 2004, Todd Mitchell wrote: > > < while (fgets(buf, MAX_BUF, fp)!=NULL) { > > --- > > > while (fgets(buf, HUGE_BUF, fp)!=NULL) { > > > > Is this going to be a problem to increase that - there are few places > where it might be needed and arguably it isn't needed (just allow less > items per artifact entry)? > As it is a local variable, this should be no problem at all. I do not think limiting the item types is necessary or desireable. I am now considering lists like: Allow arch1,arch2,arch3 ,arch4,arch5 This way we can have list of any length while keeping each line shorter then 80 characters for easy editing. Even more elegant would be creating groups of items. Eg.: race 1h-swords sword1 sword2 ... end Then these lists would be not only shorter/more readable, but also more easy to maintain. This takes more programming effort of course. > > > > While after running collect: > > > > Couldn't find archetype ability_dragonbreath > > Actually I think this one isn't mine - I can't find that arch either. > This was a quick fix by Mark Wedel, due to popular demand. I just thought, as you are doing arches, you could get the arch info from the cvs archetypes file , rename it to abil_dragonbreath and create the arch/spell/Ability/abil_dragonbreath.arc Bernd Edler _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 1 01:13:48 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:07 2005 Subject: [CF-Devel] artifact list error In-Reply-To: <1078101036.3227.23.camel@oberon.kameria> References: <1078084384.3227.6.camel@oberon.kameria> <1078101036.3227.23.camel@oberon.kameria> Message-ID: <4042E2AC.8060607@sonic.net> Todd Mitchell wrote: > > That works, thanks. > Is this going to be a problem to increase that - there are few places > where it might be needed and arguably it isn't needed (just allow less > items per artifact entry)? > If not I can commit the change. Note that I believe it should be possible to just duplicate the artifact with different allowed lists, and that would be one way to shorten the list. I'm curious on why the list is so long in the first place - almost all other artifact allowd lists are quite short. You could also use the negation to disallow it from showing up in certain objecs, which may result in a more succinct list. >>While after running collect: >> >>Couldn't find archetype ability_dragonbreath >>Treasure lacks archetype: ability_dragonbreath >>Couldn't find archetype ability_dragonbreath >>Treasure lacks archetype: ability_dragonbreath >>Treasurelist dragon has element with no name or archetype >>Treasurelist Cwyvern has element with no name or archetype I've committed the arch into CVS. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 1 01:44:09 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:07 2005 Subject: [CF-Devel] Some bug fixes Message-ID: <20040301074409.GA3468@idefix2.dvlp.in-medias-res.com> Hi, I'd like to present some bug fixes for the server. (I'll commit them if there are no objections.) The patches correct some out of bounds accesses to arrays that occurred on my local server. For the first patch (patch-1.diff), I do not have any specific item to reproduce the bug but it occurred frequently that "enc > 20". The loops in patch-2.diff run one too far, especially for (client) map size 25x25: in this case the loops run from -1 to 25 (inclusive). The patch patch-3.diff fixes two out of range errors in lines 737+ and 1061+. The remaining changes replace the sizeof-expressions with the macro "arraysize". Is this change acceptable or should I correct the bugs only? Maybe the macro should go into a header file (which one?) because there are some other places (server/commands.c, server/alchemy.c, ...) where it could be used. patch-4.diff fixes some invalid array references when no free spot can be found. (Only the first one in treasure.c did actually crash.) I don't think, the fixes for the exit (and maybe the key) are very good because they drop the exit or place the key in an invalid place. The bug in patch-5.diff did happen in /pup_land/nurnberg/dick/bomb1 with the first titan (it has Str=60). For me, this patch is not yet ready for inclusion because similar problems exist for dex_bonus[] and maybe other xxx_bonus[]. My preferred solution is to create new functions to calculate the bonus. These functions can take care for the correct index values. Andreas -------------- next part -------------- Index: common/item.c =================================================================== RCS file: /cvsroot/crossfire/crossfire/common/item.c,v retrieving revision 1.39 diff -u -w -r1.39 item.c --- common/item.c 18 Dec 2003 20:39:44 -0000 1.39 +++ common/item.c 27 Feb 2004 19:56:46 -0000 @@ -205,16 +205,7 @@ if(QUERY_FLAG(op,FLAG_SEE_IN_DARK)) enc += 1; if(QUERY_FLAG(op,FLAG_MAKE_INVIS)) enc += 1; -#if 0 - if (enc > 20) { - LOG(llevDebug,"calc_item_power got %d enchantments for %s\n", enc, op->name?op->name:"(null)"); - enc = 20; - } -#endif - /* Items only have a positive power rating */ - if (enc < 0) enc = 0; - - return enc_to_item_power[enc]; + return get_power_from_ench(enc); } -------------- next part -------------- Index: common/los.c =================================================================== RCS file: /cvsroot/crossfire/crossfire/common/los.c,v retrieving revision 1.10 diff -u -w -r1.10 los.c --- common/los.c 2 Apr 2003 08:12:53 -0000 1.10 +++ common/los.c 27 Feb 2004 19:56:46 -0000 @@ -441,6 +441,6 @@ * be blocked by different spaces in front, this mean that a lot of spaces * could be examined multile times, as each path would be looked at. */ - for (x=(MAP_CLIENT_X - op->contr->socket.mapx)/2 - 1; x<(MAP_CLIENT_X + op->contr->socket.mapx)/2 + 1; x++) - for (y=(MAP_CLIENT_Y - op->contr->socket.mapy)/2 - 1; y<(MAP_CLIENT_Y + op->contr->socket.mapy)/2 + 1; y++) + for (x=(MAP_CLIENT_X - op->contr->socket.mapx)/2; x<(MAP_CLIENT_X + op->contr->socket.mapx)/2; x++) + for (y=(MAP_CLIENT_Y - op->contr->socket.mapy)/2; y<(MAP_CLIENT_Y + op->contr->socket.mapy)/2; y++) check_wall(op, x, y); -------------- next part -------------- Index: common/readable.c =================================================================== RCS file: /cvsroot/crossfire/crossfire/common/readable.c,v retrieving revision 1.13 diff -u -w -r1.13 readable.c --- common/readable.c 13 Sep 2003 05:01:30 -0000 1.13 +++ common/readable.c 27 Feb 2004 19:56:47 -0000 @@ -78,6 +78,9 @@ * are not needed anyplace else, so why have them globally declared? */ +/* Calculate the number of items in an array variable. */ +#define arraysize(array) (sizeof(array)/sizeof(*(array))) + /* 'title' and 'titlelist' are used by the readable code */ typedef struct titlestruct { char *name; /* the name of the book */ @@ -450,1 +453,1 @@ }; -static int max_titles[6] = +static int max_titles[] = { - ((sizeof (light_book_name) / sizeof (char *)) + (sizeof (heavy_book_name) / sizeof (char *))) * (sizeof (book_author) / sizeof (char *)), - (sizeof (mon_book_name) / sizeof (char *)) * (sizeof (mon_author) / sizeof (char *)), - (sizeof (art_book_name) / sizeof (char *)) * (sizeof (art_author) / sizeof (char *)), - (sizeof (path_book_name) / sizeof (char *)) * (sizeof (path_author) / sizeof (char *)), - (sizeof (formula_book_name) / sizeof (char *)) * (sizeof (formula_author) / sizeof (char *)), - (sizeof (gods_book_name) / sizeof (char *)) * (sizeof (gods_author) / sizeof (char *)) + (arraysize(light_book_name) + arraysize(heavy_book_name)) * arraysize(book_author), + arraysize(mon_book_name) * arraysize(mon_author), + arraysize(art_book_name) * arraysize(art_author), + arraysize(path_book_name) * arraysize(path_author), + arraysize(formula_book_name) * arraysize(formula_author), + arraysize(gods_book_name) * arraysize(gods_author) }; /****************************************************************************** @@ -737,7 +740,7 @@ } LOG (llevDebug, " book archives(used/avail): "); bl = booklist; - while (bl && max_titles[i]) + while (bl && i < arraysize(max_titles) && max_titles[i]) { LOG (llevDebug, "(%d/%d)", bl->number, max_titles[i]); bl = bl->next; @@ -860,5 +863,4 @@ static void new_text_name (object *book, int msgtype) { - int nbr; char name[MAX_BUF]; if (book->type != BOOK) @@ -869,36 +871,29 @@ switch (msgtype) { case 1: /*monster */ - nbr = sizeof (mon_book_name) / sizeof (char *); - strcpy (name, mon_book_name[RANDOM () % nbr]); + strcpy (name, mon_book_name[RANDOM () % arraysize(mon_book_name)]); break; case 2: /*artifact */ - nbr = sizeof (art_book_name) / sizeof (char *); - strcpy (name, art_book_name[RANDOM () % nbr]); + strcpy (name, art_book_name[RANDOM () % arraysize(art_book_name)]); break; case 3: /*spellpath */ - nbr = sizeof (path_book_name) / sizeof (char *); - strcpy (name, path_book_name[RANDOM () % nbr]); + strcpy (name, path_book_name[RANDOM () % arraysize(path_book_name)]); break; case 4: /*alchemy */ - nbr = sizeof (formula_book_name) / sizeof (char *); - strcpy (name, formula_book_name[RANDOM () % nbr]); + strcpy (name, formula_book_name[RANDOM () % arraysize(formula_book_name)]); break; case 5: /*gods */ - nbr = sizeof (gods_book_name) / sizeof (char *); - strcpy (name, gods_book_name[RANDOM () % nbr]); + strcpy (name, gods_book_name[RANDOM () % arraysize(gods_book_name)]); break; case 6: /*msg file */ default: if (book->weight > 2000) { /* based on weight */ - nbr = sizeof (heavy_book_name) / sizeof (char *); - strcpy (name, heavy_book_name[RANDOM () % nbr]); + strcpy (name, heavy_book_name[RANDOM () % arraysize(heavy_book_name)]); } - else if (book->weight < 2001) + else { - nbr = sizeof (light_book_name) / sizeof (char *); - strcpy (name, light_book_name[RANDOM () % nbr]); + strcpy (name, light_book_name[RANDOM () % arraysize(light_book_name)]); } break; } @@ -915,4 +910,3 @@ add_author (object *op, int msgtype) { char title[MAX_BUF], name[MAX_BUF]; - int nbr = sizeof (book_author) / sizeof (char *); if (msgtype < 0 || strlen (op->msg) < 5) return; @@ -923,26 +917,21 @@ switch (msgtype) { case 1: /* monster */ - nbr = sizeof (mon_author) / sizeof (char *); - strcpy (name, mon_author[RANDOM () % nbr]); + strcpy (name, mon_author[RANDOM () % arraysize(mon_author)]); break; case 2: /* artifacts */ - nbr = sizeof (art_author) / sizeof (char *); - strcpy (name, art_author[RANDOM () % nbr]); + strcpy (name, art_author[RANDOM () % arraysize(art_author)]); break; case 3: /* spellpath */ - nbr = sizeof (path_author) / sizeof (char *); - strcpy (name, path_author[RANDOM () % nbr]); + strcpy (name, path_author[RANDOM () % arraysize(path_author)]); break; case 4: /* alchemy */ - nbr = sizeof (formula_author) / sizeof (char *); - strcpy (name, formula_author[RANDOM () % nbr]); + strcpy (name, formula_author[RANDOM () % arraysize(formula_author)]); break; case 5: /* gods */ - nbr = sizeof (gods_author) / sizeof (char *); - strcpy (name, gods_author[RANDOM () % nbr]); + strcpy (name, gods_author[RANDOM () % arraysize(gods_author)]); break; case 6: /* msg file */ default: - strcpy (name, book_author[RANDOM () % nbr]); + strcpy (name, book_author[RANDOM () % arraysize(book_author)]); } sprintf (title, "of %s", name); @@ -1024,8 +1013,6 @@ void change_book (object *book, int msgtype) { - int nbr = sizeof (book_descrpt) / sizeof (char *); - switch (book->type) { case BOOK: @@ -1061,5 +1048,5 @@ /* Don't have any default title, so lets make up a new one */ else { - int numb, maxnames = max_titles[msgtype]; + int numb, maxnames = max_titles[msgtype >= 0 && msgtype < arraysize(max_titles) ? msgtype : arraysize(max_titles)-1]; char old_title[MAX_BUF], old_name[MAX_BUF]; if (book->title) @@ -1121,7 +1108,7 @@ book->title = add_string (old_title); /* Lets give the book a description to individualize it some */ if (RANDOM () % 4) - sprintf (old_name, "%s %s", book_descrpt[RANDOM () % nbr], old_name); + sprintf (old_name, "%s %s", book_descrpt[RANDOM () % arraysize(book_descrpt)], old_name); book->name = add_string (old_name); } else if (book->title && strlen (book->msg) > 5) /* archive if long msg texts */ @@ -1336,7 +1323,7 @@ */ i=0; do { - index = RANDOM () % (sizeof (art_name_array) / sizeof (arttypename)); + index = RANDOM () % arraysize(art_name_array); type = art_name_array[index].type; al = find_artifactlist (type); i++; @@ -1581,14 +1568,14 @@ * water of section. */ sprintf(title,"%s: %s of %s", - formula_book_name[RANDOM() % (sizeof(formula_book_name) / sizeof(char*))], + formula_book_name[RANDOM() % arraysize(formula_book_name)], op_name, formula->title); } else { sprintf (retbuf, "%sThe %s", retbuf, op_name); sprintf(title,"%s: %s", - formula_book_name[RANDOM() % (sizeof(formula_book_name) / sizeof(char*))], + formula_book_name[RANDOM() % arraysize(formula_book_name)], op_name); if (at->clone.title) { -------------- next part -------------- Index: random_maps/exit.c =================================================================== RCS file: /cvsroot/crossfire/crossfire/random_maps/exit.c,v retrieving revision 1.16 diff -u -w -r1.16 exit.c --- random_maps/exit.c 7 Oct 2001 06:45:40 -0000 1.16 +++ random_maps/exit.c 27 Feb 2004 19:56:48 -0000 @@ -245,6 +245,7 @@ if(the_exit_down) { char buf[2048]; i = find_first_free_spot(the_exit_down->arch,map,downx,downy); + if(i==-1) return; the_exit_down->x = downx + freearr_x[i]; the_exit_down->y = downy + freearr_y[i]; RP->origin_x = the_exit_down->x; Index: random_maps/treasure.c =================================================================== RCS file: /cvsroot/crossfire/crossfire/random_maps/treasure.c,v retrieving revision 1.19 diff -u -w -r1.19 treasure.c --- random_maps/treasure.c 8 Jan 2003 08:39:18 -0000 1.19 +++ random_maps/treasure.c 27 Feb 2004 19:56:48 -0000 @@ -176,6 +176,7 @@ /* first, find a place to put the chest. */ i = find_first_free_spot(find_archetype("chest"),map,x,y); + if(i==-1) return 0; xl = x + freearr_x[i]; yl = y + freearr_y[i]; /* if the placement is blocked, return a fail. */ @@ -305,6 +306,7 @@ /* if we don't find a good keymaster, drop the key on the ground. */ if(the_keymaster==NULL) { int freeindex = find_first_free_spot(the_key->arch,map,i,j); + if(freeindex==-1) freeindex = 0; kx = i + freearr_x[freeindex]; ky = j + freearr_y[freeindex]; } -------------- next part -------------- Index: server/player.c =================================================================== RCS file: /cvsroot/crossfire/crossfire/server/player.c,v retrieving revision 1.145 diff -u -w -r1.145 player.c --- server/player.c 11 Feb 2004 08:09:29 -0000 1.145 +++ server/player.c 27 Feb 2004 19:56:49 -0000 @@ -1455,6 +1455,7 @@ object *left, *bow; tag_t left_tag, tag; int bowspeed; + sint8 str; if (!dir) { new_draw_info(NDI_UNIQUE, 0, op, "You can't shoot yourself!"); @@ -1545,2 +1546,2 @@ * added to the damage. I think the strength bonus is more proper. */ + str = op->stats.Str; + if(str < 0) str = 0; + if(str > MAX_STAT) str = MAX_STAT; arrow->stats.dam += (QUERY_FLAG(bow, FLAG_NO_STRENGTH) ? - 0 : dam_bonus[op->stats.Str]) + + 0 : dam_bonus[str]) + bow->stats.dam + bow->magic + arrow->magic; /* update the speed */ arrow->speed = (float)((QUERY_FLAG(bow, FLAG_NO_STRENGTH) ? - 0 : dam_bonus[op->stats.Str]) + + 0 : dam_bonus[str]) + bow->magic + arrow->magic) / 5.0 + (float)bow->stats.dam / 7.0; -------------- next part -------------- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 1 10:19:36 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:07 2005 Subject: =?iso-8859-1?Q?Re:_Re:_[CF-Devel]_artifact_list_error?= Message-ID: > Note that I believe it should be possible to just duplicate the artifact with > different allowed lists, and that would be one way to shorten the list. > That is probably better way to do it as it would be easier to maintain as well. It does not prevent this from happening later however if there were another large group so maybe a note about it in the artifacts file would be good) I am not versed enough in C to know how much memory or speed penalty is caused increasing the buffer but if it is even small it would be pretty simple to work around this. Same sort of issue is true with the 10K size limit for faces. > I'm curious on why the list is so long in the first place - almost all other > artifact allowd lists are quite short. There are a lot of swords type weapons I suppose. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 1 10:41:54 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:07 2005 Subject: [CF-Devel] Two of the same skill Message-ID: <1078159313.5122.2.camel@d5110227.lss.emc.com> When I use the 'skills command I see that lockpicking is listed twice with different values. I'm not sure what caused this, or how to select which version of the skill I'm going to use. Is there anything I can do to help provide more useful information for debugging at this point? I'm playing on metalforge. --PC _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 1 10:55:59 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:07 2005 Subject: [CF-Devel] lost ring Message-ID: <1078160159.5118.11.camel@d5110227.lss.emc.com> I just had something weird happen. I applied a ring, causing another ring to be unapplied. To my surprise, the old ring not only became unapplied, but it vanished from my inventory. I double-checked to make sure I hadn't dropped it, and I was in my main inventory view. It didn't come back after saving and resume. Odd. I know that this isn't a terribly helpful bug report, as I don't know how to reproduce it. Hopefully it will ring a bell somewhere. --PC _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 1 10:57:24 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:07 2005 Subject: [CF-Devel] lost ring In-Reply-To: <1078160159.5118.11.camel@d5110227.lss.emc.com> References: <1078160159.5118.11.camel@d5110227.lss.emc.com> Message-ID: <40436B74.1050407@laposte.net> > I just had something weird happen. I applied a ring, causing another > ring to be unapplied. To my surprise, the old ring not only became > unapplied, but it vanished from my inventory. I double-checked to make > sure I hadn't dropped it, and I was in my main inventory view. It > didn't come back after saving and resume. > > Odd. > > I know that this isn't a terribly helpful bug report, as I don't know > how to reproduce it. Hopefully it will ring a bell somewhere. Didn't it merge with anothe ring? If you have two rings of the same kind, one applied, unapplying it will make it merge with the other - thus 2 rings of. > --PC Nicolas 'Ryo' _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 1 10:56:35 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:08 2005 Subject: [CF-Devel] Two of the same skill In-Reply-To: <1078159313.5122.2.camel@d5110227.lss.emc.com> References: <1078159313.5122.2.camel@d5110227.lss.emc.com> Message-ID: <40436B43.2020105@laposte.net> Preston Crow a ?crit : > When I use the 'skills command I see that lockpicking is listed twice > with different values. I'm not sure what caused this, or how to select > which version of the skill I'm going to use. Is there anything I can do > to help provide more useful information for debugging at this point? There was a bug making some skills duplicate. Hopefully it is now fixed. When did you notice those multiple skills? When did they appear? (yes, multiple lines is a bug) > I'm playing on metalforge. Next time Leaf, Katia, Kaori or Ireth log in (DMs), ask'em to fix you :) > --PC Nicolas _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 1 11:15:19 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:08 2005 Subject: [CF-Devel] lost ring In-Reply-To: <40436B74.1050407@laposte.net> References: <1078160159.5118.11.camel@d5110227.lss.emc.com> <40436B74.1050407@laposte.net> Message-ID: <1078161319.5117.16.camel@d5110227.lss.emc.com> On Mon, 2004-03-01 at 11:57, Nicolas Weeger wrote: > Didn't it merge with anothe ring? If you have two rings of the same > kind, one applied, unapplying it will make it merge with the other - > thus 2 rings of. Nope. I checked that, too. I think I've seen this twice, but I was certain it messed up the second time. (I have a fairly new character, and a "ring (Str+1)(dam+1)" is what I lost; I only had one, and I didn't see any merge error where some different item doubled.) --PC _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 1 11:12:40 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:08 2005 Subject: [CF-Devel] Two of the same skill In-Reply-To: <40436B43.2020105@laposte.net> References: <1078159313.5122.2.camel@d5110227.lss.emc.com> <40436B43.2020105@laposte.net> Message-ID: <1078161160.5118.13.camel@d5110227.lss.emc.com> On Mon, 2004-03-01 at 11:56, Nicolas Weeger wrote: > There was a bug making some skills duplicate. Hopefully it is now fixed. > When did you notice those multiple skills? When did they appear? > (yes, multiple lines is a bug) Ahh, thanks. It was a few days ago. Possibly a week. I'm glad to hear that it's fixed. --PC _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 2 01:02:49 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:08 2005 Subject: [CF-Devel] Some bug fixes In-Reply-To: <20040301074409.GA3468@idefix2.dvlp.in-medias-res.com> References: <20040301074409.GA3468@idefix2.dvlp.in-medias-res.com> Message-ID: <40443199.9010508@sonic.net> Andreas Kirschbaum wrote: > Hi, > > I'd like to present some bug fixes for the server. (I'll commit them if > there are no objections.) The patches correct some out of bounds > accesses to arrays that occurred on my local server. > > For the first patch (patch-1.diff), I do not have any specific item to > reproduce the bug but it occurred frequently that "enc > 20". Looks fine. > > The loops in patch-2.diff run one too far, especially for (client) map > size 25x25: in this case the loops run from -1 to 25 (inclusive). I'd double check that logic if that change still works properly if the player chooses an even map size (eg, 20x20). Granted, that it is a little odd in that the player won't be centered, but I recall some odd issues there. Alternative would only be to allow odd map sizes or the like. > > The patch patch-3.diff fixes two out of range errors in lines 737+ and > 1061+. The remaining changes replace the sizeof-expressions with the > macro "arraysize". Is this change acceptable or should I correct the > bugs only? Maybe the macro should go into a header file (which one?) > because there are some other places (server/commands.c, > server/alchemy.c, ...) where it could be used. If not seen any problems here, so I'm not positive what that change is fixing. > > patch-4.diff fixes some invalid array references when no free spot can > be found. (Only the first one in treasure.c did actually crash.) I don't > think, the fixes for the exit (and maybe the key) are very good because > they drop the exit or place the key in an invalid place. Hard to say - in some cases, it can be better to just crash, because at least that allows easier investigation on what caused the problem. > > The bug in patch-5.diff did happen in /pup_land/nurnberg/dick/bomb1 with > the first titan (it has Str=60). For me, this patch is not yet ready for > inclusion because similar problems exist for dex_bonus[] and maybe other > xxx_bonus[]. My preferred solution is to create new functions to > calculate the bonus. These functions can take care for the correct index > values. Well, one solution is to just extend the tables themselves (str_bonus, etc). And in fact, that is probably the best solution, because it keeps it simple (same code for both monsters & characters). Probably still important to have a max_player_stat vs just a max_stat. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 2 01:14:49 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:08 2005 Subject: [CF-Devel] lost ring In-Reply-To: <1078161319.5117.16.camel@d5110227.lss.emc.com> References: <1078160159.5118.11.camel@d5110227.lss.emc.com> <40436B74.1050407@laposte.net> <1078161319.5117.16.camel@d5110227.lss.emc.com> Message-ID: <40443469.2010108@sonic.net> Preston Crow wrote: > On Mon, 2004-03-01 at 11:57, Nicolas Weeger wrote: > >>Didn't it merge with anothe ring? If you have two rings of the same >>kind, one applied, unapplying it will make it merge with the other - >>thus 2 rings of. > > > Nope. I checked that, too. > > I think I've seen this twice, but I was certain it messed up the second > time. (I have a fairly new character, and a "ring (Str+1)(dam+1)" is > what I lost; I only had one, and I didn't see any merge error where some > different item doubled.) Character name/server/item name? It's possible that somehow or another it became 'hidden' (eg, get made invisible or something) so woudl at least be worth looking at the character file to see if that is the case. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 2 01:49:08 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:08 2005 Subject: [CF-Devel] Some warning cleaning In-Reply-To: <404072A9.5050705@laposte.net> References: <404072A9.5050705@laposte.net> Message-ID: <40443C74.8090704@sonic.net> Nicolas Weeger wrote: > Hello. > > I committed a few patches to clean some compilation warnings (mainly > type matching, for map coordinates & stats). > There are some left, because stuff like 'sint16 + sint16' yields (at > least under Windows) an int, thus integral size mismatch in function > call if it expects a sint16 (case of most map coordinates-related > functions). But fixing those ones would require explicit casts around > all (sint16+sint16), which sounds pretty ugly... Yep. > > Most of the other warnings I have left are signed/unsigned mismatch. I'd > want to fix'em, but this is potentially easy to break things with those > fixes. > What do you think? Is it worth trying to fix signed/unsigned mismatches, > or do we just let'em, hoping they won't be a bother later? Well, I don't think most of these warnings were that big an issue. The biggest issue with changing signed/unsigned might be any variables. For example, you could have something like: unsigned u; signed s; ... where s is set to some positive value ... u = s; ... other code where s may now be assigned negative values .. So if s was changed to unsigned, that could break some code. Which means to fix those up, the code has to be properly examined to see if there are any side effects. I don't really think it is worth putting a bunch of casts into the code - it seems to be that doesn't really 'fix' anything, and rather just masks a warning, which seems pretty pointless. Also, it is likely to cause problems if any of the variables in question change in their type, as now the casts are potentially improperly changing the type of value. > > > Also, in common/porting.c, is there a compelling reason why > strdup_local(), strncasecmp(), strcasecmp() and strcasestr_local() take > char* and not const char* as arguments? Since strings are used only for > comparison, and not changed. no compelling reason. When was the 'const' keyword added to the C spec? Very possible that code predates that code. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 2 02:03:27 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:08 2005 Subject: [CF-Devel] Some warning cleaning In-Reply-To: <40443C74.8090704@sonic.net> References: <404072A9.5050705@laposte.net> <40443C74.8090704@sonic.net> Message-ID: <40443FCF.4090400@laposte.net> > Well, I don't think most of these warnings were that big an issue. > > The biggest issue with changing signed/unsigned might be any > variables. For example, you could have something like: > > unsigned u; > signed s; > > ... where s is set to some positive value ... > > u = s; > > ... other code where s may now be assigned negative values .. > > So if s was changed to unsigned, that could break some code. > > Which means to fix those up, the code has to be properly examined to > see if there are any side effects. Yes, that's the trouble. In some cases, overflows/invalid signed/unsigned casts may happen, but with big values only. So far, Crossfire doesn't use high values - stats are capped to 30, stuff like that - so that's not an issue. So probably fixing all those isn't that useful. > no compelling reason. When was the 'const' keyword added to the C > spec? Very possible that code predates that code. Then I'll change that to const, if only because there's no need for'em to be char*. Also I think it'll be safer, just in case... Nicolas 'Ryo' _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 2 09:08:58 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:08 2005 Subject: [CF-Devel] lost ring In-Reply-To: <40443469.2010108@sonic.net> References: <1078160159.5118.11.camel@d5110227.lss.emc.com> <40436B74.1050407@laposte.net> <1078161319.5117.16.camel@d5110227.lss.emc.com> <40443469.2010108@sonic.net> Message-ID: <1078240137.4511.0.camel@d5110227.lss.emc.com> On Tue, 2004-03-02 at 02:14, Mark Wedel wrote: > Character name/server/item name? > > It's possible that somehow or another it became 'hidden' (eg, get made > invisible or something) so woudl at least be worth looking at the character file > to see if that is the case. Thilgar on metalforge. The item was a ring (Str+1)(dam+1). --PC _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 2 14:29:27 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:08 2005 Subject: [CF-Devel] artifact list error In-Reply-To: <40442EB4.8040701@sonic.net> References: <40442EB4.8040701@sonic.net> Message-ID: <1078259367.543.4.camel@oberon.kameria> Mark said: > The memory usage is trivial - that 256 is just a buffer that is allocated when > reading the data. > > When storing the data, it only allocates sufficient space for the string, so > if only 10 characters were used, that is all that would be allocated.? > > Note that just having shorter lists may be easier to deal with in terms of > editors and other tools, since there is no \ continuation character or the like. > > In any case, in almost all cases, the extra memory would be pretty trivial > either way, because there is just one copy of the data stored away (eg, one > artifact entry or whatever). I've changed the buffer as suggested by Bernd as it is minimal impact and fixed the existing problem. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 3 00:12:57 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:08 2005 Subject: [CF-Devel] lost ring In-Reply-To: <1078240137.4511.0.camel@d5110227.lss.emc.com> References: <1078160159.5118.11.camel@d5110227.lss.emc.com> <40436B74.1050407@laposte.net> <1078161319.5117.16.camel@d5110227.lss.emc.com> <40443469.2010108@sonic.net> <1078240137.4511.0.camel@d5110227.lss.emc.com> Message-ID: <40457769.8080706@sonic.net> Preston Crow wrote: > On Tue, 2004-03-02 at 02:14, Mark Wedel wrote: > >> Character name/server/item name? >> >> It's possible that somehow or another it became 'hidden' (eg, get made >>invisible or something) so woudl at least be worth looking at the character file >>to see if that is the case. > > > Thilgar on metalforge. The item was a ring (Str+1)(dam+1). > Don't see it, so it must have gone to the bitbucket. I have no idea how/why it would have disappeared, making it a hard bug to fix. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 3 15:47:09 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:08 2005 Subject: [CF-Devel] lost ring In-Reply-To: <1078160159.5118.11.camel@d5110227.lss.emc.com> References: <1078160159.5118.11.camel@d5110227.lss.emc.com> Message-ID: On Mon, 1 Mar 2004, Preston Crow wrote: > I just had something weird happen. I applied a ring, causing another > ring to be unapplied. To my surprise, the old ring not only became > unapplied, but it vanished from my inventory. I double-checked to make > sure I hadn't dropped it, and I was in my main inventory view. It > didn't come back after saving and resume. > > Odd. Do you have a bag/sack open? I've had this happen to items only to discover they were tucked away in a bad/sack somewhere. I have actually had issues getting containers to close properly (they keep reopening) so as a rule I avoid them. Rob -- Robert Brockway B.Sc. email: robert@timetraveller.org, zzbrock@uqconnect.net Linux counter project ID #16440 (http://counter.li.org) "The earth is but one country and mankind its citizens" -Baha'u'llah _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Thu Mar 4 17:36:34 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:08 2005 Subject: [CF-Devel] crossfire/adm/*.pl files wrong perms? Message-ID: <200403041736.34873@Twin.Cities.Linux.Users.Group-www.mn-linux.org> Is there any reason the following files are installed 644? crossfire/adm/map_info crossfire/adm/map_expand.pl crossfire/adm/mapslitter.pl crossfire/adm/archsearch.pl crossfire/adm/collect_images.pl Security issue? -- Bob Tanner | Phone : (952)943-8700 http://www.mn-linux.org, Minnesota, Linux | Fax : (952)943-8500 Key fingerprint = AB15 0BDF BCDE 4369 5B42 1973 7CF1 A709 2CC1 B288 _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Thu Mar 4 15:49:44 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:08 2005 Subject: [CF-Devel] Multipart creatures and maps Message-ID: <1078436984.681.7.camel@oberon.kameria> One thing i have noticed since I started working on the multipart arches is that a lot of maps have these objects stored in the I am supposing 'old style' and this is causing display problems I believe when the maps are loaded up. I noticed this first with the Palace graphic when I merged it there was suddenly a whole bunch of palaces in the spot - each piece of the arch was stored in the map. It is more noticable with monsters like the cyclops now that the images have been merged - here's an example: ./darcap/darcap/circus/bigtop:arch cyclops_2 ./darcap/darcap/circus/bigtop:arch cyclops_3 ./darcap/darcap/circus/bigtop:arch cyclops_4 ./darcap/darcap/circus/bigtop:arch cyclops_5 ./darcap/darcap/circus/bigtop:arch cyclops_6 Anyone have a quick scripted way to strip these out and use the more modern multipart notation (head only I believe?)- it would lighten the maps up a bit and would fix some of the graphic issues we have been seeing. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Thu Mar 4 22:14:15 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:08 2005 Subject: [CF-Devel] artifact list error In-Reply-To: <1078084384.3227.6.camel@oberon.kameria> References: <1078084384.3227.6.camel@oberon.kameria> Message-ID: I have a better solution than just increasing the buffer. With this patch one can now have multiple "Allowed" lines. See examples in artifact.diff. This way we have a nicely editable file and can avoid buffer-overflow. Bernd Edler -------------- next part -------------- Index: treasure.c =================================================================== RCS file: /cvsroot/crossfire/crossfire/common/treasure.c,v retrieving revision 1.46 diff -c -r1.46 treasure.c *** treasure.c 3 Mar 2004 01:17:09 -0000 1.46 --- treasure.c 5 Mar 2004 03:34:19 -0000 *************** *** 1182,1192 **** cp=buf; while(*cp==' ') /* Skip blanks */ cp++; ! if (!strncmp(cp, "Allowed", 7)) { ! art=get_empty_artifact(); ! ! nrofartifacts++; cp = strchr(cp,' ') + 1; if (!strcmp(cp,"all")) continue; --- 1182,1194 ---- cp=buf; while(*cp==' ') /* Skip blanks */ cp++; ! if (*cp=='\0') continue; ! if (!strncmp(cp, "Allowed", 7)) { ! if (art==NULL) { ! art=get_empty_artifact(); ! nrofartifacts++; ! } cp = strchr(cp,' ') + 1; if (!strcmp(cp,"all")) continue; *************** *** 1219,1224 **** --- 1221,1227 ---- } art->next = al->items; al->items = art; + art = NULL; } else LOG(llevError,"Unkown input in artifact file: %s\n", buf); -------------- next part -------------- *** artifacts~ Fri Mar 5 02:58:02 2004 --- artifacts Fri Mar 5 02:58:02 2004 *************** *** 392,398 **** item_power 1 end # ! Allowed axe,axe_2,axe_3,axe_4,axe_5,battle_axe,stoneaxe,poleaxe,morningstar,large_morningstar,nunchacu_1,nunchacu_2,hammer,mace,mace_2,lspear,spear,club,quarterstaff,big_club,stonehammer,stake,bonecrusher,mjoellnir,skullcleaver chance 20 Object Gaea type 15 --- 392,401 ---- item_power 1 end # ! Allowed axe,axe_2,axe_3,axe_4,axe_5,battle_axe,stoneaxe,poleaxe,morningstar ! Allowed large_morningstar,nunchacu_1,nunchacu_2,hammer,mace,mace_2 ! Allowed lspear,spear,club,quarterstaff,big_club,stonehammer,stake ! Allowed bonecrusher,mjoellnir,skullcleaver chance 20 Object Gaea type 15 *************** *** 645,651 **** item_power 1 end # ! Allowed axe,axe_2,axe_3,axe_4,axe_5,battle_axe,hammer,skullcleaver,mjoellnir,bonecrusher,frost_hammer chance 10 Object Mostrai type 15 --- 648,655 ---- item_power 1 end # ! Allowed axe,axe_2,axe_3,axe_4,axe_5,battle_axe,hammer,skullcleaver ! Allowed mjoellnir,bonecrusher,frost_hammer chance 10 Object Mostrai type 15 *************** *** 685,691 **** # # Metal Weapons # ! Allowed dagger,light_sword,shortsword,shortsword_2,taifu_1,trident,axe,axe_2,axe_3,axe_4,axe_5,battle_axe,poleaxe,morningstar,large_morningstar,hammer,mace,mace_2,lspear,spear,sword,sword_2,sword_3,sabre,rapier,rapier,scimitar,katana_1,falchion,broadsword,broadsword_2 chance 5 Object Sorig type 15 --- 689,699 ---- # # Metal Weapons # ! Allowed dagger,light_sword,shortsword,shortsword_2,taifu_1,trident ! Allowed axe,axe_2,axe_3,axe_4,axe_5,battle_axe,poleaxe ! Allowed morningstar,large_morningstar,hammer,mace,mace_2 ! Allowed lspear,spear,sword,sword_2,sword_3,sabre,rapier,rapier,scimitar ! Allowed katana_1,falchion,broadsword,broadsword_2 chance 5 Object Sorig type 15 *************** *** 712,718 **** item_power 2 end # ! Allowed dagger,axe,axe_2,axe_3,axe_4,axe_5,battle_axe,sword,sword_2,sword_3,sabre,rapier,scimitar,light_sword,katana_1,falchion,broadsword,broadsword_2,shortsword,shortsword_2,morningstar,large_morningstar,hammer,mace,mace_2,lspear,spear,poleaxe,taifu_1,trident chance 5 Object Ruggilli type 15 --- 720,729 ---- item_power 2 end # ! Allowed dagger,axe,axe_2,axe_3,axe_4,axe_5,battle_axe,sword,sword_2,sword_3 ! Allowed sabre,rapier,scimitar,light_sword,katana_1,falchion,broadsword ! Allowed broadsword_2,shortsword,shortsword_2,morningstar,large_morningstar ! Allowed hammer,mace,mace_2,lspear,spear,poleaxe,taifu_1,trident chance 5 Object Ruggilli type 15 -------------- next part -------------- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Fri Mar 5 01:49:29 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:08 2005 Subject: [CF-Devel] Multipart creatures and maps In-Reply-To: <1078436984.681.7.camel@oberon.kameria> References: <1078436984.681.7.camel@oberon.kameria> Message-ID: On Thu, 4 Mar 2004, Todd Mitchell wrote: > ... > Anyone have a quick scripted way to strip these out and use the more > modern multipart notation (head only I believe?)- it would lighten the > maps up a bit and would fix some of the graphic issues we have been > seeing. > This script, started from witih the map root, should do. Caution: There might be cases where this simple sript might brake something. There are a lot of mpas concerned and i have only tested some. Bernd Edler _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Fri Mar 5 04:15:27 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:09 2005 Subject: [CF-Devel] Multipart creatures and maps In-Reply-To: References: <1078436984.681.7.camel@oberon.kameria> Message-ID: This time with atttachment. -------------- next part -------------- #!/usr/bin/perl -w use strict 'refs'; use strict 'subs'; @files = split /\n/,`find -type f | grep -v "/CVS/"`; foreach $file (@files) { open (MAPFILE,$file) or die ("could not open $file\n"); undef $/; $bigstring = ; close MAPFILE; $bigstring =~ s/^More.*?end\n//msg; open (MAPFILE,"> $file") or die ("could not open $file for writing\n"); print MAPFILE $bigstring; close MAPFILE; } -------------- next part -------------- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Fri Mar 5 20:27:55 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:09 2005 Subject: [CF-Devel] Runes of marking Message-ID: <20040305232755.70ec032c.kstenger@montevideo.com.uy> Hi all, Since it's been some cases when players abused their vocabulary using the runes of marking as insulting marks along the world, i'd like it very much if the rune could be in some way identified at least by a DM so the owner is known. We mostly agreed in the channel that "signing" the rune is not always desireable, so i thought about some unused field and searched for other items that saved the owner. Finally found out how the town portals do it and since the race field of runes of marking is not used in the arches, i thought it could work in the same way by saving the name of the player in the race field of the rune. It compiled (thanks Ryo! :) ) and seems to work fine with this change, but i'd like your thoughts, to make sure it's not likely to break any other part of the code. If you think this change is ok, i would apreciate it to be comitted asap. Thanks, Katia. -- +-----------------------------+ | Karla M? Stenger S?bat | | Pando . Canelones . Uruguay | | kstenger@montevideo.com.uy | +-----------------------------+ -------------- next part -------------- A non-text attachment was scrubbed... Name: mark_rune_owner.diff Type: application/octet-stream Size: 648 bytes Desc: not available Url : http://shadowknight.real-time.com/pipermail/crossfire/attachments/20040305/bba88f35/mark_rune_owner.obj -------------- next part -------------- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sat Mar 6 00:58:03 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:09 2005 Subject: [CF-Devel] artifact list error In-Reply-To: References: <1078084384.3227.6.camel@oberon.kameria> Message-ID: <4049767B.5020806@sonic.net> Bernd Edler wrote: > I have a better solution than just increasing the buffer. > With this patch one can now have multiple "Allowed" lines. > See examples in artifact.diff. > > This way we have a nicely editable file and can avoid buffer-overflow. The patch looks fine to me. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sat Mar 6 00:56:40 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:09 2005 Subject: [CF-Devel] Runes of marking In-Reply-To: <20040305232755.70ec032c.kstenger@montevideo.com.uy> References: <20040305232755.70ec032c.kstenger@montevideo.com.uy> Message-ID: <40497628.3060607@sonic.net> Karla Stenger wrote: > Hi all, > It compiled (thanks Ryo! :) ) and seems to work fine with this change, but i'd > like your thoughts, to make sure it's not likely to break any other part of the > code. If you think this change is ok, i would apreciate it to be comitted asap. The patch looks fine - I can't think of any side effects from that change. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sat Mar 6 01:35:48 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:09 2005 Subject: [CF-Devel] crossfire/adm/*.pl files wrong perms? In-Reply-To: <200403041736.34873@Twin.Cities.Linux.Users.Group-www.mn-linux.org> References: <200403041736.34873@Twin.Cities.Linux.Users.Group-www.mn-linux.org> Message-ID: <40497F54.80208@sonic.net> Bob Tanner wrote: > Is there any reason the following files are installed 644? > > crossfire/adm/map_info > crossfire/adm/map_expand.pl > crossfire/adm/mapslitter.pl > crossfire/adm/archsearch.pl > crossfire/adm/collect_images.pl > > Security issue? > Nope - probably just a mistake. IF a user has physical access to the machines, the fact those scripts are 644 or 755 isn't going to make any actual difference in terms of security. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sat Mar 6 02:39:13 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:09 2005 Subject: [CF-Devel] Runes of marking In-Reply-To: <20040305232755.70ec032c.kstenger@montevideo.com.uy> References: <20040305232755.70ec032c.kstenger@montevideo.com.uy> Message-ID: <40498E31.4080108@laposte.net> Committed. Nicolas _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sat Mar 6 10:49:03 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:09 2005 Subject: [CF-Devel] Client patch: metaserver & connect info Message-ID: <404A00FF.1050900@laposte.net> Hello. I noticed that failure to connect to metaserver wasn't reported to client's window, only on the console. This patch uses draw_info to report failure to player. I also changed the color of failure to connect to metaserver or server message to black (instead of red). Even if it should probably be in red, in split window mode this means the 'trying to connect to' and 'can't connect to server' messages appear in different windows, making it confusing (imo). Finally, the information windows weren't correctly updated: frozen in draw_info, but released only in do_timeout, which is not called in metaserver mode. So I moved the relevant code to a function, to use it in metaserver mode too. Nicolas -------------- next part -------------- Index: common/metaserver.c =================================================================== RCS file: /cvsroot/crossfire/client/common/metaserver.c,v retrieving revision 1.8 diff -u -r1.8 metaserver.c --- common/metaserver.c 30 Jan 2004 18:43:34 -0000 1.8 +++ common/metaserver.c 6 Mar 2004 16:39:45 -0000 @@ -167,7 +167,7 @@ fd = socket(PF_INET, SOCK_STREAM, protox->p_proto); if (fd==-1) { perror("get_metaserver_info: Error on socket command.\n"); - return 1; + return 1; } insock.sin_family = AF_INET; insock.sin_port = htons((unsigned short)meta_port); @@ -178,14 +178,15 @@ if (hostbn == (struct hostent *) NULL) { LOG(LOG_WARNING,"common::metaserver_get_info","Unknown metaserver hostname: %s",metaserver); - return 1; - } + return 1; + } memcpy(&insock.sin_addr, hostbn->h_addr, hostbn->h_length); } if (connect(fd,(struct sockaddr *)&insock,sizeof(insock)) == (-1)) { - perror("Can't connect to server"); - return 1; + perror("Can't connect to metaserver"); + draw_info("\nCan't connect to metaserver.",NDI_BLACK); + return 1; } #ifndef WIN32 /* Windows doesn't support this */ @@ -370,7 +371,7 @@ draw_info(buf,NDI_BLACK); csocket.fd=init_connection(server_ip, use_config[CONFIG_PORT]); if (csocket.fd==-1) { - draw_info("Unable to connect to server.", NDI_RED); + draw_info("Unable to connect to server.", NDI_BLACK); return 1; } return 0; Index: gtk/gx11.c =================================================================== RCS file: /cvsroot/crossfire/client/gtk/gx11.c,v retrieving revision 1.46 diff -u -r1.46 gx11.c --- gtk/gx11.c 30 Jan 2004 18:43:34 -0000 1.46 +++ gtk/gx11.c 6 Mar 2004 16:39:59 -0000 @@ -4844,21 +4844,26 @@ } } +void draw_info_windows() + { + if (draw_info_freeze1) { + gtk_text_thaw (GTK_TEXT (gtkwin_info_text)); + gtk_adjustment_set_value(GTK_ADJUSTMENT(text_vadj), GTK_ADJUSTMENT(text_vadj)->upper-GTK_ADJUSTMENT(text_vadj)->page_size); + gtk_text_set_adjustments(GTK_TEXT (gtkwin_info_text),GTK_ADJUSTMENT(text_hadj),GTK_ADJUSTMENT(text_vadj)); + draw_info_freeze1=FALSE; + } + if (draw_info_freeze2) { + gtk_text_thaw (GTK_TEXT (gtkwin_info_text2)); + gtk_adjustment_set_value(GTK_ADJUSTMENT(text_vadj2), GTK_ADJUSTMENT(text_vadj2)->upper-GTK_ADJUSTMENT(text_vadj2)->page_size); + gtk_text_set_adjustments(GTK_TEXT (gtkwin_info_text2),GTK_ADJUSTMENT(text_hadj2),GTK_ADJUSTMENT(text_vadj2)); + draw_info_freeze2=FALSE; + } + } + int do_timeout() { updatelock=0; - if (draw_info_freeze1) { - gtk_text_thaw (GTK_TEXT (gtkwin_info_text)); - gtk_adjustment_set_value(GTK_ADJUSTMENT(text_vadj), GTK_ADJUSTMENT(text_vadj)->upper-GTK_ADJUSTMENT(text_vadj)->page_size); - gtk_text_set_adjustments(GTK_TEXT (gtkwin_info_text),GTK_ADJUSTMENT(text_hadj),GTK_ADJUSTMENT(text_vadj)); - draw_info_freeze1=FALSE; - } - if (draw_info_freeze2) { - gtk_text_thaw (GTK_TEXT (gtkwin_info_text2)); - gtk_adjustment_set_value(GTK_ADJUSTMENT(text_vadj2), GTK_ADJUSTMENT(text_vadj2)->upper-GTK_ADJUSTMENT(text_vadj2)->page_size); - gtk_text_set_adjustments(GTK_TEXT (gtkwin_info_text2),GTK_ADJUSTMENT(text_hadj2),GTK_ADJUSTMENT(text_vadj2)); - draw_info_freeze2=FALSE; - } + draw_info_windows(); if (redraw_needed) { display_map_doneupdate(TRUE); draw_all_list(&inv_list); @@ -5951,7 +5956,8 @@ metaserver_get_info(meta_server, meta_port); metaserver_show(TRUE); do { - ms=get_metaserver(); + draw_info_windows(); + ms=get_metaserver(); } while (metaserver_select(ms)); negotiate_connection(use_config[CONFIG_SOUND]); } else { -------------- next part -------------- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sat Mar 6 12:08:39 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:09 2005 Subject: [CF-Devel] Patch: server stuff, and message color Message-ID: <404A13A7.5080901@laposte.net> Hello. I tweaked some stuff related to DM & message colors :) Attached patch does the following: * player enter & leave messages use the 'NDI_DK_ORANGE' color * DM enter & leave use the 'NDI_LT_GREEN' color * DMs now see hidden DMs in 'who' command * 'hide' command now also displays DM join & leave messages (because a DM wanting to leave would first need to 'unbecome' DM, and vice versa) * DMs now become visible again immediately when using 'hide' command to unhide (regardless of invisibility spell, probably...) * when a DM teleports to a player, this player won't see the 'you see a portal open' message if the DM is hidden Nicolas -------------- next part -------------- Index: server/apply.c =================================================================== RCS file: /cvsroot/crossfire/crossfire/server/apply.c,v retrieving revision 1.99 diff -u -r1.99 apply.c --- server/apply.c 27 Feb 2004 23:00:27 -0000 1.99 +++ server/apply.c 6 Mar 2004 18:00:47 -0000 @@ -2006,7 +2006,7 @@ } remove_ob(pl); pl->direction=0; - new_draw_info_format(NDI_UNIQUE | NDI_ALL, 5, pl, + new_draw_info_format(NDI_UNIQUE | NDI_ALL | NDI_DK_ORANGE, 5, pl, "%s leaves the game.",pl->name); /* update respawn position */ Index: server/c_misc.c =================================================================== RCS file: /cvsroot/crossfire/crossfire/server/c_misc.c,v retrieving revision 1.37 diff -u -r1.37 c_misc.c --- server/c_misc.c 20 Jan 2004 05:45:32 -0000 1.37 +++ server/c_misc.c 6 Mar 2004 18:00:50 -0000 @@ -245,18 +245,19 @@ for(pl=first_player;pl!=NULL;pl=pl->next) { if(pl->ob->map == NULL) continue; - if (pl->hidden) continue; + if (pl->hidden && !QUERY_FLAG(op, FLAG_WIZ)) continue; if (pl->state==ST_PLAYING || pl->state==ST_GET_PARTY_PASSWORD) { if(op == NULL || QUERY_FLAG(op, FLAG_WIZ)) - (void) sprintf(buf,"%s the level %d %s (@%s) [%s]%s%s (%d)", + (void) sprintf(buf,"%s the level %d %s (@%s) [%s]%s%s%s (%d)", pl->ob->name, pl->ob->level, (pl->own_title[0]=='\0'?pl->title:pl->own_title), pl->socket.host, pl->ob->map->path, QUERY_FLAG(pl->ob,FLAG_WIZ)?" [WIZ]":"", + pl->hidden?"[HID]":"", pl->peaceful?"Peaceful":"Hostile",pl->ob->count); else (void) sprintf(buf,"%s the %s [%s]%s%s",pl->ob->name, Index: server/c_wiz.c =================================================================== RCS file: /cvsroot/crossfire/crossfire/server/c_wiz.c,v retrieving revision 1.38 diff -u -r1.38 c_wiz.c --- server/c_wiz.c 17 Feb 2004 00:22:24 -0000 1.38 +++ server/c_wiz.c 6 Mar 2004 18:00:53 -0000 @@ -102,17 +102,21 @@ { if (op->contr->hidden) { op->contr->hidden=0; + op->invisible=1; new_draw_info(NDI_UNIQUE, 0,op, "You are no longer hidden from other players"); - op->map->players++; - new_draw_info_format(NDI_UNIQUE | NDI_ALL, 5, NULL, - "%s has entered the game.",op->name); - } + op->map->players++; + new_draw_info_format(NDI_UNIQUE | NDI_ALL | NDI_DK_ORANGE, 5, NULL, + "%s has entered the game.",op->name); + new_draw_info(NDI_UNIQUE | NDI_ALL | NDI_LT_GREEN, 1, NULL, + "The Dungeon Master has arrived!"); } else { op->contr->hidden=1; new_draw_info(NDI_UNIQUE, 0,op, "Other players will no longer see you."); - op->map->players--; - new_draw_info_format(NDI_UNIQUE | NDI_ALL, 5, NULL, - "%s left the game.",op->name); + op->map->players--; + new_draw_info(NDI_UNIQUE | NDI_ALL | NDI_LT_GREEN, 1, NULL, + "The Dungeon Master is gone.."); + new_draw_info_format(NDI_UNIQUE | NDI_ALL | NDI_DK_ORANGE, 5, NULL, + "%s left the game.",op->name); } return 1; } @@ -446,7 +450,8 @@ EXIT_Y(dummy) = pl->ob->y + freearr_y[i]; enter_exit(op, dummy); free_object(dummy); - new_draw_info(NDI_UNIQUE, 0, pl->ob, "You see a portal open."); + if (!op->contr->hidden) + new_draw_info(NDI_UNIQUE, 0, pl->ob, "You see a portal open."); new_draw_info(NDI_UNIQUE, 0, op, "OK."); return 1; } @@ -1159,7 +1164,7 @@ if (settings.real_wiz == TRUE) CLEAR_FLAG(op, FLAG_WAS_WIZ); op->contr->hidden=0; - new_draw_info(NDI_UNIQUE | NDI_ALL, 1, NULL, + new_draw_info(NDI_UNIQUE | NDI_ALL | NDI_LT_GREEN, 1, NULL, "The Dungeon Master is gone.."); return 1; } @@ -1215,7 +1220,7 @@ SET_FLAG(op, FLAG_WAS_WIZ); SET_FLAG(op, FLAG_WIZPASS); new_draw_info(NDI_UNIQUE, 0,op, "Ok, you are the Dungeon Master!"); - new_draw_info(NDI_UNIQUE | NDI_ALL, 1, NULL, + new_draw_info(NDI_UNIQUE | NDI_ALL | NDI_LT_GREEN, 1, NULL, "The Dungeon Master has arrived!"); SET_FLAG(op, FLAG_FLYING); clear_los(op); Index: server/login.c =================================================================== RCS file: /cvsroot/crossfire/crossfire/server/login.c,v retrieving revision 1.45 diff -u -r1.45 login.c --- server/login.c 21 Dec 2003 02:13:46 -0000 1.45 +++ server/login.c 6 Mar 2004 18:00:55 -0000 @@ -673,7 +673,7 @@ } new_draw_info(NDI_UNIQUE, 0,op,"Welcome Back!"); - new_draw_info_format(NDI_UNIQUE | NDI_ALL, 5, NULL, + new_draw_info_format(NDI_UNIQUE | NDI_ALL | NDI_DK_ORANGE, 5, NULL, "%s has entered the game.",pl->ob->name); /* GROS : Here we handle the LOGIN global event */ evtid = EVENT_LOGIN; Index: server/main.c =================================================================== RCS file: /cvsroot/crossfire/crossfire/server/main.c,v retrieving revision 1.76 diff -u -r1.76 main.c --- server/main.c 13 Sep 2003 05:02:11 -0000 1.76 +++ server/main.c 6 Mar 2004 18:00:58 -0000 @@ -140,7 +140,7 @@ new_draw_info(NDI_UNIQUE, 0,op,buf); new_draw_info(NDI_UNIQUE, 0,op,"Press `?' for help"); new_draw_info(NDI_UNIQUE, 0,op," "); - new_draw_info_format(NDI_UNIQUE | NDI_ALL, 5, op, + new_draw_info_format(NDI_UNIQUE | NDI_ALL | NDI_DK_ORANGE, 5, op, "%s entered the game.",op->name); if(!op->contr->name_changed) { new_draw_info(NDI_UNIQUE, 0,op,"Note that you must set your name with the name"); @@ -1061,7 +1061,7 @@ } pl->ob->type = DEAD_OBJECT; /* To avoid problems with inventory window */ } - if (pl!=NULL && draw_exit) new_draw_info(NDI_UNIQUE | NDI_ALL, 5, NULL, buf); + if (pl!=NULL && draw_exit) new_draw_info(NDI_UNIQUE | NDI_ALL | NDI_DK_ORANGE, 5, NULL, buf); } int forbid_play() -------------- next part -------------- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sun Mar 7 04:22:28 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:09 2005 Subject: [CF-Devel] Some bug fixes In-Reply-To: <40443199.9010508@sonic.net> References: <20040301074409.GA3468@idefix2.dvlp.in-medias-res.com> <40443199.9010508@sonic.net> Message-ID: <20040307102227.GA6214@idefix2.dvlp.in-medias-res.com> Mark Wedel wrote: > Andreas Kirschbaum wrote: > > patch-4.diff fixes some invalid array references when no free spot > > can be found. (Only the first one in treasure.c did actually crash.) > > I don't think, the fixes for the exit (and maybe the key) are very > > good because they drop the exit or place the key in an invalid > > place. > > Hard to say - in some cases, it can be better to just crash, because > at least that allows easier investigation on what caused the problem. I did some test-runs with the random_map program. Input file was the attached file "input" with different values for random_seed. The following values cause the function find_first_free_spot() to return -1. treasure.c:178: 1078435692 1078435698 1078435700 1078435712 1078435714 treasure.c:307: 1078439702 1078440272 1078442332 1078442732 1078443081 exit.c:247: (could not find a value to trigger this one) The problem is that the maps contain few free space and large blocked areas. Therefore it is likely that a random position (and the nearby area) is blocked. So the fix for chests (drop them) seems ok to me. For the keys we should try harder (some more tries for keymaster and many tries for ground) and drop the key if we really can't find a free spot. Andreas _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sun Mar 7 04:46:01 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:09 2005 Subject: [CF-Devel] Some bug fixes In-Reply-To: <40443199.9010508@sonic.net> References: <20040301074409.GA3468@idefix2.dvlp.in-medias-res.com> <40443199.9010508@sonic.net> Message-ID: <20040307104601.GA6327@idefix2.dvlp.in-medias-res.com> Mark Wedel wrote: > Andreas Kirschbaum wrote: > > The patch patch-3.diff fixes two out of range errors in lines 737+ > > and 1061+. The remaining changes replace the sizeof-expressions with > > the macro "arraysize". > > If not seen any problems here, so I'm not positive what that change is > fixing. This change is fixing accesses to max_titles[] for incorrect indices (i.e. book types). My server crashed because the bookarch file did contain the types 20, 30, 40, 50, and 100 besides the (correct) types 0-5. While loading the file, the function init_book_archive() in common/readable.c does not check the values for "type", so the variable "booklist" gets 101 entries. The loop in line 737+ then traverses this list and prints the corresponding values from max_titles[]. This does not work because max_titles has 6 entries only. The other fix in line 1061+ triggers when a book with an incorrect type value is created, i.e. change_book() is called with with an incorrect msgtype value. To reproduce the problem, I deleted my invalid bookarch file and put an assert(number < 6) into get_titlelist(). It triggered in map /wolfsburg/eeur/tower1.4 with type=30. The stack trace (including my annotations) was: #0 0x400b4571 in kill () from /lib/libc.so.6 #1 0x400b4315 in raise () from /lib/libc.so.6 #2 0x400b5838 in abort () from /lib/libc.so.6 #3 0x400ada4f in __assert_fail () from /lib/libc.so.6 #4 0x082169ac in get_titlelist (i=30) at readable.c:520 #5 0x08219411 in change_book (book=0x911180c, msgtype=30) at readable.c:1057 book->name = "scroll" book->msg = "\n \n" #6 0x0821d918 in tailor_readable_ob (book=0x4, msg_type=30) at readable.c:1961 book is a register variable, so the debugger could not retrieve the correct value. #7 0x0822b4f0 in fix_generated_item (op=0x4, creator=0x911266c, difficulty=152115212, max_magic=0, flags=8) at treasure.c:904 op and difficulty are register variables. treasure.c:904: tailor_readable_ob(op,(creator&&creator->stats.sp)?creator->stats.sp:-1); creator->name = "demon" creator->stats.sp = 30 #8 0x08228c12 in create_one_treasure (tl=0x86ba460, op=0x911266c, flag=8, difficulty=4, tries=6) at treasure.c:388 #9 0x08228d96 in create_treasure (t=0x86ba460, op=0x911266c, flag=8, difficulty=4, tries=5) at treasure.c:410 #10 0x08228a72 in create_one_treasure (tl=0x86ba480, op=0x911266c, flag=8, difficulty=4, tries=4) at treasure.c:379 #11 0x08228d96 in create_treasure (t=0x86ba480, op=0x911266c, flag=8, difficulty=4, tries=3) at treasure.c:410 #12 0x08228504 in create_all_treasures (t=0x4, op=0x911266c, flag=8, difficulty=4, tries=2) at treasure.c:335 #13 0x08228413 in create_all_treasures (t=0x4, op=0x911266c, flag=8, difficulty=4, tries=2) at treasure.c:353 #14..#20 are the same as #13 #21 0x08228de5 in create_treasure (t=0x86ba480, op=0x911266c, flag=8, difficulty=4, tries=3) at treasure.c:412 #22 0x08228504 in create_all_treasures (t=0x4, op=0x911266c, flag=8, difficulty=4, tries=1) at treasure.c:335 #23 0x08228413 in create_all_treasures (t=0x4, op=0x911266c, flag=8, difficulty=4, tries=1) at treasure.c:353 #24 0x08228de5 in create_treasure (t=0x86ba480, op=0x911266c, flag=8, difficulty=4, tries=3) at treasure.c:412 #25 0x0816126f in generate_monster_arch (gen=0x9120890) at time.c:158 server/time.c:157: if(HAS_RANDOM_ITEMS(op)) server/time.c:158: create_treasure(op->randomitems,op,GT_APPLY, server/time.c:159: gen->map->difficulty,0); gen->name = "generator" gen->race = "demon" #26 0x08161448 in generate_monster (gen=0x3) at time.c:174 #27 0x0816cd8b in process_object (op=0x4) at time.c:1266 #28 0x080da478 in process_events (map=0x0) at main.c:965 #29 0x080db909 in main (argc=1, argv=0xbffff734) at main.c:1183 After that, I think the root cause is that "demon"->stats.sp is used as the book type. Because I do not know the code well enough, I can't suggest a fix. Nevertheless, I still think the functions init_book_archive() and change_book() should check the (external) values they use. Andreas _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sun Mar 7 23:01:26 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:09 2005 Subject: [CF-Devel] Some bug fixes In-Reply-To: <20040307104601.GA6327@idefix2.dvlp.in-medias-res.com> References: <20040301074409.GA3468@idefix2.dvlp.in-medias-res.com> <40443199.9010508@sonic.net> <20040307104601.GA6327@idefix2.dvlp.in-medias-res.com> Message-ID: <404BFE26.4010903@sonic.net> Andreas Kirschbaum wrote: > Mark Wedel wrote: > >>Andreas Kirschbaum wrote: >> >>>The patch patch-3.diff fixes two out of range errors in lines 737+ >>>and 1061+. The remaining changes replace the sizeof-expressions with >>>the macro "arraysize". >> >>If not seen any problems here, so I'm not positive what that change is >>fixing. > > > This change is fixing accesses to max_titles[] for incorrect indices > (i.e. book types). My server crashed because the bookarch file did > contain the types 20, 30, 40, 50, and 100 besides the (correct) types > 0-5. > > While loading the file, the function init_book_archive() in > common/readable.c does not check the values for "type", so the variable > "booklist" gets 101 entries. > > The loop in line 737+ then traverses this list and prints the > corresponding values from max_titles[]. This does not work because > max_titles has 6 entries only. > > The other fix in line 1061+ triggers when a book with an incorrect type > value is created, i.e. change_book() is called with with an incorrect > msgtype value. Ok. That all makes sense now. Certainly most functions should check to see if passed in values are valid - I wasn't aware that there were other cases where the field type was used. So it is OK to commit the fix. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sun Mar 7 22:59:23 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:10 2005 Subject: [CF-Devel] Some bug fixes In-Reply-To: <20040307102227.GA6214@idefix2.dvlp.in-medias-res.com> References: <20040301074409.GA3468@idefix2.dvlp.in-medias-res.com> <40443199.9010508@sonic.net> <20040307102227.GA6214@idefix2.dvlp.in-medias-res.com> Message-ID: <404BFDAB.4040903@sonic.net> Andreas Kirschbaum wrote: > The problem is that the maps contain few free space and large blocked > areas. Therefore it is likely that a random position (and the nearby > area) is blocked. > > So the fix for chests (drop them) seems ok to me. For the keys we should > try harder (some more tries for keymaster and many tries for ground) and > drop the key if we really can't find a free spot. Yep - that seems to be the better fix. Right now, I notice it doesn't even generate new coordinates if it can't find a keymaster monster. It just uses the last coordinate chosen at random, which very well could be a solid wall. Looking for free spots some 10 or 15 times, both for a keymaster, and then for a free spot, is probably quite reasonable. Some random maps are very sparse in terms of number of monsters starting on the map, and thus could still have lots of open space, but not many monsters to give the key to. So better logic of finding an free space is definately needed. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 9 15:52:44 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:10 2005 Subject: [CF-Devel] stat potions: patch/question Message-ID: I noticed a bug: If a natural stat gets below 1, one can no longer raise it with stat potions. It is possible to get to 0, if you drink too many cursed stat potions. You can even have a negative natural starting stat due to negative class modificators. Example: start int 9 -> quez,int 9-8 = 1 -> barbarian, int 1-6 = -5. With this patch one can now raise these stats with potions. Furthermore cursed potions no longer drain you below 1. Now for the question: In the original code tmp->stats.sp (the potions spellpoints) is used in the if condition,then set to 0 if a stat is changed. As i do not understand the intention for /* Fix it up for super potions */ , i can not emulate the desired behavior. I do know, that this stuff has no relevance to normal stat potions,as their sp is o anyway. So if somebody can explain that, i can finish this patch. -------------- next part -------------- Index: common/living.c =================================================================== RCS file: /cvsroot/crossfire/crossfire/common/living.c,v retrieving revision 1.60 diff -c -r1.60 living.c *** common/living.c 27 Feb 2004 23:00:26 -0000 1.60 --- common/living.c 9 Mar 2004 20:50:25 -0000 *************** *** 355,364 **** * that gives them that ability. */ int change_abil(object *op, object *tmp) { ! int flag=QUERY_FLAG(tmp,FLAG_APPLIED)?1:-1,i,j,success=0; object refop; char message[MAX_BUF]; ! int potion_max=0; /* remember what object was like before it was changed. note that * refop is a local copy of op only to be used for detecting changes --- 355,366 ---- * that gives them that ability. */ int change_abil(object *op, object *tmp) { ! int flag=QUERY_FLAG(tmp,FLAG_APPLIED)?1:-1; ! int i,j,potion,newstat,success=0; object refop; char message[MAX_BUF]; ! int potion_worked=0; ! /* remember what object was like before it was changed. note that * refop is a local copy of op only to be used for detecting changes *************** *** 369,390 **** if (tmp->type==POTION) { for(j=0;jcontr->orig_stats),j); ! ! /* Check to see if stats are within limits such that this can be ! * applied. ! */ ! if (((i+flag*get_attr_value(&(tmp->stats),j))<= ! (20+tmp->stats.sp + get_attr_value(&(op->arch->clone.stats),j))) ! && i>0) ! { ! change_attr_value(&(op->contr->orig_stats),j, ! flag*get_attr_value(&(tmp->stats),j)); ! tmp->stats.sp=0;/* Fix it up for super potions */ ! } ! else { ! /* potion is useless - player has already hit the natural maximum */ ! potion_max = 1; ! } } /* This section of code ups the characters normal stats also. I am not * sure if this is strictly necessary, being that fix_player probably --- 371,390 ---- if (tmp->type==POTION) { for(j=0;jcontr->orig_stats),j); ! potion = flag*get_attr_value(&(tmp->stats),j); ! printf("sp:%d,pot:%d,stat:%d\n",tmp->stats.sp,potion,i); ! newstat=i+potion; ! if (potion<0) { /* stat drain */ ! if (i<1) continue; /* No miracle cure for negative starting stats */ ! else if (newstat<1) newstat=1; /* No drain below 1 */ ! } ! else if (newstat>20+get_attr_value(&(op->arch->clone.stats),j)) ! newstat=20+get_attr_value(&(op->arch->clone.stats),j); ! if ( newstat != i ) { ! set_attr_value(&(op->contr->orig_stats),j,newstat); ! potion_worked=1; ! tmp->stats.sp=0;/* Fix it up for super potions (what is this?,b.e.) */ ! } } /* This section of code ups the characters normal stats also. I am not * sure if this is strictly necessary, being that fix_player probably *************** *** 614,621 **** } } ! if(tmp->type!=EXPERIENCE && !potion_max) { ! for (j=0; jstats),j))!=0) { success=1; if (i * flag > 0) --- 614,621 ---- } } ! if(tmp->type!=EXPERIENCE && potion_worked) { ! for (j=0; jstats),j))!=0) { success=1; if (i * flag > 0) *************** *** 623,629 **** else (*draw_info_func)(NDI_UNIQUE, 0, op, lose_msg[j]); } ! } } return success; } --- 623,629 ---- else (*draw_info_func)(NDI_UNIQUE, 0, op, lose_msg[j]); } ! } } return success; } -------------- next part -------------- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 9 17:07:58 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:10 2005 Subject: [CF-Devel] God-given prayers Message-ID: <404E4E4E.1080801@laposte.net> Hello. On cf.mf.net, a player has 2 times 'wall of thorns', one spell, one force. From the code & such, it seems the force used to be special prayer marker. A change from Mark (2003-11-09) changed that force to use 'startequip'. But still find_special_prayer_mark (apply.c) and check_special_prayers (gods.c) use the force, with 'slaying == special prayer', to check those prayers. So I guess the force for the player can be removed, and probably the code should be fixed? :) Nicolas _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 10 02:41:23 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:10 2005 Subject: [CF-Devel] '/command and ' In-Reply-To: References: Message-ID: <404ED4B3.9040703@cox.net> Perhaps instead of requiring people to type say for every chat, we could make whatever is typed into the text bar by default be said. In order to use commands, you would merely prefix the command with a /. This would do two things. It would make it easier to say things and less annoying. It would also make Crossfire more like nearly all of the other RPGs, since this is the most common behavior for commands vs. say. In order to do so, the server must handle the default as say unless it sees a '/'. If it does see a slash, it will parse it as a command, unless it is not listed on the server as a command, in which case it would return an invalid command error. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 10 04:18:42 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:10 2005 Subject: [CF-Devel] '/command and ' In-Reply-To: <404ED4B3.9040703@cox.net> References: <404ED4B3.9040703@cox.net> Message-ID: <20040310101842.GA6137@ds217-115-141-205.dedicated.hosteurope.de> Hi! On Wed, Mar 10, 2004 at 02:41:23 -0600, Brian Angeletti wrote: > Perhaps instead of requiring people to type say for every chat, we could > make whatever is typed into the text bar by default be said. > > In order to use commands, you would merely prefix the command with a /. > > This would do two things. It would make it easier to say things and > less annoying. It would also make Crossfire more like nearly all of the > other RPGs, since this is the most common behavior for commands vs. say. > > In order to do so, the server must handle the default as say unless it > sees a '/'. If it does see a slash, it will parse it as a command, > unless it is not listed on the server as a command, in which case it > would return an invalid command error. This could be handled completely in the client. That way, it could even be optional. Bye Jochen -- Jochen Suckfuell --- http://www.suckfuell.net/jochen/ --- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 10 05:21:41 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:10 2005 Subject: [CF-Devel] '/command and ' In-Reply-To: <20040310101842.GA6137@ds217-115-141-205.dedicated.hosteurope.de> References: <404ED4B3.9040703@cox.net> <20040310101842.GA6137@ds217-115-141-205.dedicated.hosteurope.de> Message-ID: <404EFA45.1090607@cox.net> Jochen Suckfuell wrote: >>In order to do so, the server must handle the default as say unless it >>sees a '/'. If it does see a slash, it will parse it as a command, >>unless it is not listed on the server as a command, in which case it >>would return an invalid command error. >> >> > >This could be handled completely in the client. That way, it could even >be optional. > > Yes that would work, but I feel that server side would pay off more in the end. It would make sense to make our current style as the default if the slashed command prefix weren't *much* more common than our command style. For example, IRC and the overwhelming majority of other MMOGs prefix commands with a /. Finally, it makes more sense to err on the side of caution and use the most commonly used command style rather than to force people to learn a new command entry style if they haven't used it before. Also, if we were to add this as just a client option, you would need to patch each of the 5 different clients. Another reason is that I feel that the method of entry we use now is highly redundant. 'say is the most commonly used command... why should I need to type say to say something anyway? I think we can err on the side of caution and handle text as though users want to say something when they don't deliberately invoke a command. Another advantage is that if we write this into the server, if someone didn't write the "standard command" option into the client this use would still be default. For many people who are new to Crossfire this may be much easier to understand than typing commands without /. The client can still have an option for "Crossfire style commands", regardless of whether we handle this server side or not, but I feel that if we put this on the server it will be much more beneficial. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 10 05:24:08 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:10 2005 Subject: [CF-Devel] '/command and ' In-Reply-To: <404EFA45.1090607@cox.net> References: <404ED4B3.9040703@cox.net> <20040310101842.GA6137@ds217-115-141-205.dedicated.hosteurope.de> <404EFA45.1090607@cox.net> Message-ID: <404EFAD8.5060607@cox.net> Please excuse me if that looked garbled, I "revise" my speeches many times before sending them :P _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 10 05:33:04 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:10 2005 Subject: [CF-Devel] '/command and ' In-Reply-To: <404ED4B3.9040703@cox.net> References: <404ED4B3.9040703@cox.net> Message-ID: <404EFCF0.6020104@laposte.net> It seems to me it's both better & easier to implement on client side, as an option. Implementing on server side will require, to not break right away all players' bindings, to warn of the change ahead, and maybe change the protocol version (for old clients). And players will have to update their bindings. On client side, it's probably easier, since many functions are common to all clients (that's why there is a 'common' subdirectory :)) Also, if it's an option, it's *much* easier to do it on client side. That's an easy test, really: * if first char is /, remove it and send. * else add 'say ' before string and send. Painless, no? :) (ok, reed to change a few things, like " => "say " in command line, but easy) Nicolas _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 10 12:13:53 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:10 2005 Subject: [CF-Devel] '/command and ' In-Reply-To: <404EFA45.1090607@cox.net> References: <20040310101842.GA6137@ds217-115-141-205.dedicated.hosteurope.de> <404EFA45.1090607@cox.net> Message-ID: <200403101914.01064.david.Delbecq@myrealbox.com> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Le Mercredi 10 Mars 2004 12:21, Brian Angeletti a ?crit : > Jochen Suckfuell wrote: > >>In order to do so, the server must handle the default as say unless it > >>sees a '/'. If it does see a slash, it will parse it as a command, > >>unless it is not listed on the server as a command, in which case it > >>would return an invalid command error. > > > >This could be handled completely in the client. That way, it could even > >be optional. > > Yes that would work, but I feel that server side would pay off more in > the end. It would make sense to make our current style as the default > if the slashed command prefix weren't *much* more common than our > command style. For example, IRC and the overwhelming majority of other > MMOGs prefix commands with a /. Finally, it makes more sense to err on > the side of caution and use the most commonly used command style rather > than to force people to learn a new command entry style if they haven't > used it before. Also, if we were to add this as just a client option, > you would need to patch each of the 5 different clients. > implementing on server side mean to patch all running servers. Some server only use the releases, some servers are still a 1.5.0 version or and finally some server use the cvs. If we change it server side, we change it only for cvs servers. This mean we end up with different set of commands on different sets of server. Not good > Another reason is that I feel that the method of entry we use now is > highly redundant. 'say is the most commonly used command... why should > I need to type say to say something anyway? I think we can err on the > side of caution and handle text as though users want to say something > when they don't deliberately invoke a command. > And what happen if an admin want to type dm mypassword and mistake it, typing dl myspassword ?? Yes the dmpassword will be 'said' around :/ a bad thing imo > Another advantage is that if we write this into the server, if someone > didn't write the "standard command" option into the client this use > would still be default. For many people who are new to Crossfire this > may be much easier to understand than typing commands without /. The > client can still have an option for "Crossfire style commands", > regardless of whether we handle this server side or not, but I feel that > if we put this on the server it will be much more beneficial. > Do not agree, on server is complicate, need code, need to wait for the server admins to upgrade. Concerning your 5 clients... Can you enumarate them? I'll say directx client is deprecated and it already has 'say' and 'shout' buttons The gtk linux and windows client are now insync concerning releases. The cfclient uses the same core as gtk, so changes in gtkclient would be done immediatly in cfclient Who's the 5th client? :/ > _______________________________________________ > crossfire-devel mailing list > crossfire-devel@lists.real-time.com > https://mailman.real-time.com/mailman/listinfo/crossfire-devel -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFAT1rnHHGOa1Q2wXwRAmMsAJ9AaiOjduEIDF/F72f+87/lXgoCxgCfZSfJ uVKeyYgsHNQAtHz4j0eEdL8= =hm1E -----END PGP SIGNATURE----- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 10 12:49:51 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:10 2005 Subject: [CF-Devel] '/command and ' In-Reply-To: <200403101914.01064.david.Delbecq@myrealbox.com> References: <20040310101842.GA6137@ds217-115-141-205.dedicated.hosteurope.de> <404EFA45.1090607@cox.net> <200403101914.01064.david.Delbecq@myrealbox.com> Message-ID: <20040310184951.GA26878@ds217-115-141-205.dedicated.hosteurope.de> On Wed, Mar 10, 2004 at 19:13:53 +0100, David Delbecq wrote: > Who's the 5th client? :/ Uuuh! If we'd change it on the server side, I'd have to adapt my bot! (Remember Hoz?) And then the bot won't work on old servers anymore. Bye Jochen -- Jochen Suckfuell --- http://www.suckfuell.net/jochen/ --- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 10 13:04:46 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:10 2005 Subject: [CF-Devel] '/command and ' In-Reply-To: <404EFA45.1090607@cox.net> References: <404ED4B3.9040703@cox.net> <20040310101842.GA6137@ds217-115-141-205.dedicated.hosteurope.de> <404EFA45.1090607@cox.net> Message-ID: <20040310190446.GI1847@laranja.org> actually, now that I thought better... On Wed, Mar 10, 2004 at 05:21:41AM -0600, Brian Angeletti wrote: > Also, if we were to add this as just a client option, > you would need to patch each of the 5 different clients. to add this to the server, you would need to patch the server *AND* each of the existing clients. So, can we consider this discussion finished? []s, |alo +---- -- Those who trade freedom for security lose both and deserve neither. -- http://www.laranja.org/ mailto:lalo@laranja.org pgp key: http://www.laranja.org/pessoal/pgp GNU: never give up freedom http://www.gnu.org/ _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 10 12:55:41 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:10 2005 Subject: [CF-Devel] '/command and ' In-Reply-To: <404EFA45.1090607@cox.net> References: <404ED4B3.9040703@cox.net> <20040310101842.GA6137@ds217-115-141-205.dedicated.hosteurope.de> <404EFA45.1090607@cox.net> Message-ID: <20040310185540.GH1847@laranja.org> On Wed, Mar 10, 2004 at 05:21:41AM -0600, Brian Angeletti wrote: > Yes that would work, but I feel that server side would pay off more in > the end. It would make sense to make our current style as the default > if the slashed command prefix weren't *much* more common than our > command style. For example, IRC and the overwhelming majority of other > MMOGs prefix commands with a /. This is a bogus argument; IRC (and probably most MMOGs) do it on the client. When you type "foo" in an IRC channel window, what is really sent to the server is "privmsg #channel foo". > Finally, it makes more sense to err on the side of caution and > use the most commonly used command style rather than to force > people to learn a new command entry style if they haven't used > it before. Agreed. Let's patch the clients. []s, |alo +---- -- Those who trade freedom for security lose both and deserve neither. -- http://www.laranja.org/ mailto:lalo@laranja.org pgp key: http://www.laranja.org/pessoal/pgp GNU: never give up freedom http://www.gnu.org/ _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 10 14:29:14 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:10 2005 Subject: [CF-Devel] '/command and ' In-Reply-To: <404EFCF0.6020104@laposte.net> References: <404ED4B3.9040703@cox.net> <404EFCF0.6020104@laposte.net> Message-ID: <404F7A9A.5070504@cox.net> Touch? everyone... I lose another argument, which I cannot make well anyway. (This is the second one I lost today :P ) If this becomes the main way of handling commands, though, the server should change. For now, yes, leave it client side! _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 10 17:23:38 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:10 2005 Subject: [CF-Devel] bugfix:stat pumping spell messages Message-ID: Mini patch to fix the failure messages for the stat improvement spells e.g. "dexterity". -------------- next part -------------- Index: server/spell_effect.c =================================================================== RCS file: /cvsroot/crossfire/crossfire/server/spell_effect.c,v retrieving revision 1.115 diff -c -r1.115 spell_effect.c *** server/spell_effect.c 6 Mar 2004 08:32:39 -0000 1.115 --- server/spell_effect.c 10 Mar 2004 22:51:09 -0000 *************** *** 1479,1485 **** } set_attr_value(&force->stats, i, sm); if (!sm) ! new_draw_info(NDI_UNIQUE, 0,op,no_gain_msgs[stat]); } } } --- 1479,1485 ---- } set_attr_value(&force->stats, i, sm); if (!sm) ! new_draw_info(NDI_UNIQUE, 0,op,no_gain_msgs[i]); } } } -------------- next part -------------- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 10 19:59:26 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:10 2005 Subject: Hoz bot (was [CF-Devel] '/command and ') Message-ID: Speaking of Hoz - will "he" be stopping by any of the servers, anytime soon? ;) On Wed, 10 Mar 2004, Jochen Suckfuell wrote: > > On Wed, Mar 10, 2004 at 19:13:53 +0100, David Delbecq wrote: > > Who's the 5th client? :/ > > Uuuh! If we'd change it on the server side, I'd have to adapt my bot! > (Remember Hoz?) _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Thu Mar 11 11:18:23 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:11 2005 Subject: =?iso-8859-1?Q?Re:_Re:_[CF-Devel]_'/command_and_'?= Message-ID: Since we can bind keys why do we need to change anything? Wouldn't it be better to have people binding keys for the commands they use than hardcoding all these changes all over the place? A lot of players just shout all the time anyway. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Thu Mar 11 12:52:34 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:11 2005 Subject: [CF-Devel] '/command and ' In-Reply-To: References: Message-ID: <20040311185234.GB4415@lolli.home.lan> On Thu, Mar 11, 2004 at 12:18:23 -0500, Todd Mitchell wrote: > A lot of players just shout all the time anyway. That's because they probably never discovered the 'tell command. Maybe we should give new players a book "Crossfire Netiquette" with the most common commands, just to make them aware of them. I hardly read the introduction that scrolls by in the text display when starting a character, but I would pay attention to a book I find in my inventory. Bye Jochen -- Jochen Suckf?ll --- http://www.suckfuell.net/jochen/ --- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Thu Mar 11 14:01:02 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:11 2005 Subject: Hoz bot (was [CF-Devel] '/command and ') In-Reply-To: References: Message-ID: <20040311200102.GC4415@lolli.home.lan> On Wed, Mar 10, 2004 at 19:59:26 -0600, Rick Tanner wrote: > > Speaking of Hoz - will "he" be stopping by any of the servers, anytime > soon? ;) > Hm. The bot is started when my server boots, and I have a watchdog running to check that the script is running. So Hoz actually should be on metalforge.real-time.com, but he isn't. Anyway, it seems there's not much traffic on this server. I'll start Hoz on crossfire.metalforge.net. Bye Jochen -- Jochen Suckf?ll --- http://www.suckfuell.net/jochen/ --- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Thu Mar 11 16:59:27 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:11 2005 Subject: Hoz bot (was [CF-Devel] '/command and ') In-Reply-To: <20040311200102.GC4415@lolli.home.lan> References: <20040311200102.GC4415@lolli.home.lan> Message-ID: <20040311225927.GA27962@ds217-115-141-205.dedicated.hosteurope.de> On Thu, Mar 11, 2004 at 21:01:02 +0100, Jochen Suckfuell wrote: > > On Wed, Mar 10, 2004 at 19:59:26 -0600, Rick Tanner wrote: > > > > Speaking of Hoz - will "he" be stopping by any of the servers, anytime > > soon? ;) > > > > Hm. The bot is started when my server boots, and I have a watchdog running to check that the script is running. So Hoz actually should be on metalforge.real-time.com, but he isn't. Anyway, it seems there's not much traffic on this server. > I'll start Hoz on crossfire.metalforge.net. Ok, now Hoz is alive again. It's an updated version with some fixes, adaptions for some server changes, and even a few new admin commands. You can find it at http://www.suckfuell.net/software.html . There is also a link to the scripting language that Hoz understands. Bye Jochen -- Jochen Suckfuell --- http://www.suckfuell.net/jochen/ --- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Fri Mar 12 02:17:19 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:11 2005 Subject: [CF-Devel] '/command and ' In-Reply-To: <20040311185234.GB4415@lolli.home.lan> References: <20040311185234.GB4415@lolli.home.lan> Message-ID: <4051720F.1090902@sonic.net> Jochen Suckfuell wrote: > On Thu, Mar 11, 2004 at 12:18:23 -0500, Todd Mitchell wrote: > >>A lot of players just shout all the time anyway. > > > That's because they probably never discovered the 'tell command. Maybe we > should give new players a book "Crossfire Netiquette" with the most common > commands, just to make them aware of them. > I hardly read the introduction that scrolls by in the text display when > starting a character, but I would pay attention to a book I find in my > inventory. It might not be a bad idea to include more (some?) documentation on actual play with the client. That is what people are downloading - toss a .txt or .pdf file there, and people would probably read it. They aren't going to hunt aroudn the server directory for it. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Fri Mar 12 02:27:48 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:11 2005 Subject: [CF-Devel] '/command and ' In-Reply-To: <404F7A9A.5070504@cox.net> References: <404ED4B3.9040703@cox.net> <404EFCF0.6020104@laposte.net> <404F7A9A.5070504@cox.net> Message-ID: <40517484.2030600@sonic.net> this will never be done on server side. It just makes no sense. If your goal was to try to make it work better with old clients, you will in fact just break them to be completely useless. This is because all the pre-bound commands (eg, a=apply, s=search, up arrow=north, etc) are indistinguishable from the user typing that command - the server sees the exact same data. So if this was changed on the behaviour, all clients would be totally broken until they were updated. And the reason some clients (old directx client) is out of data is because it can't be updated, so such a change wouldn't help that out. Now personally, since I have " (double quote) bound as the say command, I don't find it really hard to press that and then say whatever. I'd actual make the case that this is more just a user interface issue. One could add a couple of text entry boxes - one like: Say: Tell So if you want to say something, you just click in the say box. For the tell area - the person to tell box wouldn't get cleared out after the tell is done. Thus, you could just keep telling stuff to the same person over and over again, and if you want to tell someone else, you coudl just clear it out at that point. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Fri Mar 12 09:20:29 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:11 2005 Subject: =?iso-8859-1?Q?Re:_Re:_[CF-Devel]_'/command_and_'?= Message-ID: > > > >>A lot of players just shout all the time anyway. > > > > > > That's because they probably never discovered the 'tell command. Maybe we > > should give new players a book "Crossfire Netiquette" with the most common > > commands, just to make them aware of them. A lot of people shout because they like to shout even if they know how to use say and tell. I just think that making special boxes or rules for the communication commands is silly when all that is needed is nice key bindings. > > I hardly read the introduction that scrolls by in the text display when > > starting a character, but I would pay attention to a book I find in my > > inventory. Yes a player book in inventory would be better than those initial magic mouths on eating and moving in the hall of selection. I don't thing it would need to be god given item and maybe if players could trade their book in at a shop in a starting city for a special item or something (like a potion of life with zero value)it would be nice as well. > > It might not be a bad idea to include more (some?) documentation on actual > play with the client. That is what people are downloading - toss a .txt or .pdf > file there, and people would probably read it. They aren't going to hunt aroudn > the server directory for it. > Yes of course. The thing I have had to explain the most to players is keybinding (especially removing global bindings and using run and fire mode for key combinations). I also think that less global keybindings would be nice as it seems to be hard to reconfigure the keyboard nicely for laptops (from what I am told). There was some new in game tutorials about key bindings in the new starting map as well. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Fri Mar 12 12:12:44 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:11 2005 Subject: =?iso-8859-1?Q?Re:_Re:_[CF-Devel]_'/command_and_'?= In-Reply-To: References: Message-ID: I've been working on a GTK Client walkthrough/intro off and on for a while now. http://crossfire.real-time.com/guides/walkthrough/client.html It's quickly becoming out of date (or is out of date already?) due to the new skill system, but it probably is a good start for a client user guide. Anyone interested in contributing to it? On Fri, 12 Mar 2004, Todd Mitchell wrote: > > It might not be a bad idea to include more (some?) documentation on actual > > play with the client. That is what people are downloading - toss a .txt or .pdf > > file there, and people would probably read it. They aren't going to hunt aroudn > > the server directory for it. > > > > Yes of course. The thing I have had to explain the most to players is > keybinding (especially removing global bindings and using run and fire > mode for key combinations). I also think that less global keybindings > would be nice as it seems to be hard to reconfigure the keyboard nicely > for laptops (from what I am told). > There was some new in game tutorials about key bindings in the new > starting map as well. -- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Fri Mar 12 13:28:38 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:11 2005 Subject: [CF-Devel] artifact list error In-Reply-To: References: <1078084384.3227.6.camel@oberon.kameria> Message-ID: <40520F66.7080205@laposte.net> Just committed this patch, as well as 2 others from me (one on client, one for messages colors). Nicolas 'Ryo' _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Fri Mar 12 17:34:41 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:11 2005 Subject: [CF-Devel] '/command and ' In-Reply-To: References: Message-ID: <20040312233441.GA20755@laranja.org> On Fri, Mar 12, 2004 at 10:20:29AM -0500, Todd Mitchell wrote: > Yes of course. The thing I have had to explain the most to players is keybinding (especially removing global bindings and using run and fire mode for key combinations). I also think that less global keybindings would be nice as it seems to be hard to reconfigure the keyboard nicely for laptops (from what I am told). > There was some new in game tutorials about key bindings in the new starting map as well. What keybindings need is a decent UI. Check any good IRC client (irsi, x-chat) for an example. []s, |alo +---- -- Those who trade freedom for security lose both and deserve neither. -- http://www.laranja.org/ mailto:lalo@laranja.org pgp key: http://www.laranja.org/pessoal/pgp GNU: never give up freedom http://www.gnu.org/ _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sat Mar 13 04:22:27 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:11 2005 Subject: [CF-Devel] '/command and ' In-Reply-To: <40517484.2030600@sonic.net> References: <404ED4B3.9040703@cox.net> <404EFCF0.6020104@laposte.net> <404F7A9A.5070504@cox.net> <40517484.2030600@sonic.net> Message-ID: <4052E0E3.4020502@cox.net> Mark Wedel wrote: > Now personally, since I have " (double quote) bound as the say > command, I don't find it really hard to press that and then say whatever. Speaking of that, in the Windows client it highlights that and when you start typing it overwrites the "say " so it is pointless. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sat Mar 13 17:05:39 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:11 2005 Subject: [CF-Devel] stat potions: patch/question In-Reply-To: References: Message-ID: On Tue, 9 Mar 2004, Bernd Edler wrote: > > I noticed a bug: > If a natural stat gets below 1, one can no longer > raise it with stat potions. > > It is possible to get to 0, if you drink too many > cursed stat potions. > You can even have a negative natural starting stat due to > negative class modificators. > Example: start int 9 -> quez,int 9-8 = 1 -> barbarian, int 1-6 = -5. > > With this patch one can now raise these stats with potions. > Furthermore cursed potions no longer drain you below 1. > > Now for the question: > > In the original code tmp->stats.sp (the potions spellpoints) > is used in the if condition,then set to 0 if a stat is changed. > > As i do not understand the intention for /* Fix it up for super potions */ > , i can not emulate the desired behavior. > > I do know, that this stuff has no relevance to normal stat potions,as > their sp is 0 anyway. > > So if somebody can explain that, i can finish this patch. > After checking the archetypes, artifacts and all map files, i think that potions with stat boni and sp!=0 do not exist in the game. Thus, i am positive, this new patch will fix the bug without breaking anything else. -------------- next part -------------- Index: common/living.c =================================================================== RCS file: /cvsroot/crossfire/crossfire/common/living.c,v retrieving revision 1.60 diff -c -r1.60 living.c *** common/living.c 27 Feb 2004 23:00:26 -0000 1.60 --- common/living.c 13 Mar 2004 22:36:30 -0000 *************** *** 355,361 **** * that gives them that ability. */ int change_abil(object *op, object *tmp) { ! int flag=QUERY_FLAG(tmp,FLAG_APPLIED)?1:-1,i,j,success=0; object refop; char message[MAX_BUF]; int potion_max=0; --- 355,362 ---- * that gives them that ability. */ int change_abil(object *op, object *tmp) { ! int flag=QUERY_FLAG(tmp,FLAG_APPLIED)?1:-1; ! int i,j,potion,newstat,success=0; object refop; char message[MAX_BUF]; int potion_max=0; *************** *** 367,390 **** if(op->type==PLAYER) { if (tmp->type==POTION) { for(j=0;jcontr->orig_stats),j); ! ! /* Check to see if stats are within limits such that this can be ! * applied. ! */ ! if (((i+flag*get_attr_value(&(tmp->stats),j))<= ! (20+tmp->stats.sp + get_attr_value(&(op->arch->clone.stats),j))) ! && i>0) ! { ! change_attr_value(&(op->contr->orig_stats),j, ! flag*get_attr_value(&(tmp->stats),j)); ! tmp->stats.sp=0;/* Fix it up for super potions */ ! } ! else { ! /* potion is useless - player has already hit the natural maximum */ ! potion_max = 1; ! } } /* This section of code ups the characters normal stats also. I am not * sure if this is strictly necessary, being that fix_player probably --- 368,388 ---- if(op->type==PLAYER) { if (tmp->type==POTION) { + potion_max=1; for(j=0;jcontr->orig_stats),j); ! potion = flag*get_attr_value(&(tmp->stats),j); ! newstat=i+potion; ! if (potion<0) { /* stat drain */ ! if (i<1) continue; /* No miracle cure for negative starting stats */ ! else if (newstat<1) newstat=1; /* No drain below 1 */ ! } ! else if (newstat>20+get_attr_value(&(op->arch->clone.stats),j)) ! newstat=20+get_attr_value(&(op->arch->clone.stats),j); ! if ( newstat != i ) { ! set_attr_value(&(op->contr->orig_stats),j,newstat); ! potion_max=0; ! } } /* This section of code ups the characters normal stats also. I am not * sure if this is strictly necessary, being that fix_player probably -------------- next part -------------- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sat Mar 13 19:19:01 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:11 2005 Subject: [CF-Devel] patch: max level Message-ID: With this little change, we can allow players to gain exp in their skills even if maxed out overall. We just restrict the maxexp check in change_exp to monsters, as add_exp checks everything correctly for players already. Then it is no more harmful to gain experience in "useless" skills. Speaking of that, it seems to me like fireborn do fire damage with punching and karate. While this has a certain logic, it also renders their natural flame touch useless. -------------- next part -------------- *** common/living.c~ Sat Mar 13 23:36:32 2004 --- common/living.c Sun Mar 14 00:49:04 2004 *************** *** 1757,1779 **** */ if (exp == 0) return; - /* reset exp to max allowed value. We subtract from - * MAX_EXPERIENCE to prevent overflows. If the player somehow has - * more than max exp, just return. - */ - if (exp > 0 && ( op->stats.exp > (MAX_EXPERIENCE - exp))) { - exp = MAX_EXPERIENCE - op->stats.exp; - if (exp < 0) return; - } - /* Monsters are easy - we just adjust their exp - we * don't adjust level, since in most cases it is unrelated to * the exp they have - the monsters exp represents what its * worth. */ if(op->type != PLAYER) { ! /* Sanity check */ ! if (!QUERY_FLAG(op, FLAG_ALIVE)) return; op->stats.exp += exp; } else { /* Players only */ --- 1757,1778 ---- */ if (exp == 0) return; /* Monsters are easy - we just adjust their exp - we * don't adjust level, since in most cases it is unrelated to * the exp they have - the monsters exp represents what its * worth. */ if(op->type != PLAYER) { ! /* Sanity check */ ! if (!QUERY_FLAG(op, FLAG_ALIVE)) return; ! /* reset exp to max allowed value. We subtract from ! * MAX_EXPERIENCE to prevent overflows. If the moster somehow has ! * more than max exp, just return. add_player_exp checks this for players ! */ ! if (exp > 0 && ( op->stats.exp > (MAX_EXPERIENCE - exp))) { ! exp = MAX_EXPERIENCE - op->stats.exp; ! if (exp < 0) return; ! } op->stats.exp += exp; } else { /* Players only */ -------------- next part -------------- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sun Mar 14 13:08:46 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:11 2005 Subject: [CF-Devel] patch: max level In-Reply-To: References: Message-ID: <4054ADBE.5050209@cox.net> Bernd Edler wrote: >Speaking of that, it seems to me like fireborn do fire damage with >punching and karate. >While this has a certain logic, it also renders their natural >flame touch useless. > The same can be said for dragons and clawing... Claw should take precedence. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sun Mar 14 22:26:33 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:11 2005 Subject: [CF-Devel] Rings bug ... Message-ID: <200403142226.33943.eracclists@bellsouth.net> Greetings, crossfire.metalforge.net: Character, poof, has several rings in apt to give to newbie players. Picked up a Wis +2, then a Pow +2 and the Pow +2 MERGED with the Wis +2! When I dropped them they became FOUR rings of Wis +2. Then picked up a Pow +2 FIRST then a Wis +2 which THEN merged with the Pow +2 and I had two more Pow +2 which I then dropped and they became FOUR Pow +2. As far as I know right now I can repeat this behavior at will. Did not try other combinations. Caveat: The becoming four rings MAY be my mind misremembering as this happened several hours ago. But the merging I DO remember. Gene (aka poof, aka eracc) -- Linux era4.eracc.UUCP 2.4.22-28mdkenterprise i686 22:18:08 up 15 days, 17:11, 9 users, load average: 0.16, 0.07, 0.05 ERA Computer Consulting - http://www.eracc.com/ eCS, OS/2, Mandrake GNU/Linux, OpenServer & UnixWare resellers _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sun Mar 14 23:26:30 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:12 2005 Subject: [CF-Devel] Fwd: Sparks and Burger Bolts Message-ID: <40553E86.4020109@cox.net> This post was originally just for Ketche, but I think it has too many ideas in it for one person so I will forward it to everyone :P -------Pupland Lone Town Dressing Room fiasco: ------------ red mages and blue mage run away likely due to lack of skill in spellcasting. ---------- Spark Shower: -------------- doesn't increase in power by level. ---------- Burger Bolt: ---------------- Joke spell... Maybe we could make a Burger restaurant in scorn tho. Possibly also a Taco/Burrito joint too... and a Sencha (green tea) and Miso soup place... ^_^ wai~! ----------- Trap Failures: --------------- well they don't always click :P ----------- Angelic Heirarchy: -------------- We lack seraphim, dominions, thrones, principalities, virtues See also: http://en.wikipedia.org/wiki/Hierarchy_of_angels Cherubim are not weak little cupids... they are second to the seraphim Seraphim should be six winged beings of raw light Heaven is not categorized by proper angelic power. If I am not mistaken, there is only 1 Holy Ghost... so why are there myriads in Heaven... (maybe rename to Revenant or Saint's soul) Valriel's followers cannot summon higher angels: Retributioner, High Angel, Arch Angel etc. Valriel's Heaven could stand some "Pearly Gates" at the entrance level then 99 random ending at Valriel's throne Arch Angels should have an artifact like the Balrogs do for balance sake and they only get paralyze and wrath eye Angels need a generator to counter the demons generator... What is a whim? If they are gonna be like "minor angels", maybe we could give them light spray to counter the imp's fire spray --------- Demonic Heirarchy: --------------- Who/What is Jessy? (should be Unique/non summonable) Shouldn't Belzebub be unique and non summonable. Gorokh's Hell could be designed with some "Gates" on the first level, and then 99 random then Gorokh's throne room ----------General Cults:--------------- Possibly as "God of Death", make Devourers named something specific, although cult still Devourers Call "holy word" for Devourer and Gorokh followers "unholy word", and "detect evil" should be "detect good" not to mention "unholy symbol" vs holy one Their banish/holy word should kill living like a weak spray spell Lythander could have a faery world plane Gnarg could have a titan plane. Spider deity for Dark elves... ?? ---------- Elemental Planes ------------- Perhaps Gaea, Ixalovh, Sorig and Ruggili could have planes for their element and a throne room at the top of 99 random levels and an entrance portal room Add Efreet for fire djinn, make djinn on air plane, make dao on earth plane, marid on water plane. (coresident with elementals) You could even add a djinni city to each plane. Note only noble air djinn grant wishes, but only if they are freed from a prison on the normal planes. ---------- More Monsters -------------- Stone, Cloud, Fire, Storm, Frost... Giants Wraiths are a player class, but they don't even match the monster wraiths, which just kamikaze ghosts... the kamikazes should be called shades and the wraiths be spellcasting ghosts, maybe rename Spectres to wraiths (or vice versa) Vampire player race (I assume you were working on it already?) -- idea Must follow devourers, vulnerable to silver and holy. Their main attack (biting) drains health from victim, feeding the vampire somewhat. Food has half value, but it sustains unless it is onion or garlic (poison). They cannot use holy symbols and light spells do modest damage. Lich players: get mana storage crystal at start called a Phylactery, if crystal is destroyed, they die. They can leave their crystal somewhere to recall there when their body is destroyed, or carry it and they die normally. They lose 5% less xp dying because their soul is in their phylactery crystal, but suffer an inability to cast spells for 10 minutes after returning. They are vulnerable to fire and holy and MUST worship Devourers. (hammer it a bit) Add some air para elementals to the twin towers, please ^^; _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 15 02:05:52 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:12 2005 Subject: [CF-Devel] Rings bug ... In-Reply-To: <200403142226.33943.eracclists@bellsouth.net> References: <200403142226.33943.eracclists@bellsouth.net> Message-ID: <200403150205.52621.eracclists@bellsouth.net> On Sunday 14 March 2004 22:26 ERACC wrote: > Greetings, > > crossfire.metalforge.net: > > Character, poof, has several rings in apt to give to newbie > players. Picked up a Wis +2, then a Pow +2 and the Pow +2 MERGED > with the Wis +2! When I dropped them they became FOUR rings of Wis > +2. Then picked up a Pow +2 FIRST then a Wis +2 which THEN merged > with the Pow +2 and I had two more Pow +2 which I then dropped and > they became FOUR Pow +2. As far as I know right now I can repeat > this behavior at will. Did not try other combinations. > > Caveat: The becoming four rings MAY be my mind misremembering as > this happened several hours ago. But the merging I DO remember. > > Gene (aka poof, aka eracc) After further testing it appears the rings were also merging with other rings when I dropped them. That is why I thought they were doubling when I dropped them. All the +2 rings I had are now just Pow and Wis rings. Looks like something has hosed the merge code at least for these +2 rings. :-/ Gene (aka poof, aka eracc) -- Linux era4.eracc.UUCP 2.4.22-28mdkenterprise i686 02:02:45 up 15 days, 20:56, 9 users, load average: 0.30, 0.16, 0.10 ERA Computer Consulting - http://www.eracc.com/ eCS, OS/2, Mandrake GNU/Linux, OpenServer & UnixWare resellers _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 15 02:24:10 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:12 2005 Subject: [CF-Devel] Fwd: Sparks and Burger Bolts In-Reply-To: <40553E86.4020109@cox.net> References: <40553E86.4020109@cox.net> Message-ID: <4055682A.2000008@laposte.net> Hello. All these are nice ideas (I don't say all should be implemented). But I think the real question will be: is anyone feeling like actually implementing that? :) I agree the angelic hierarchy is somewhat weird. But, just maybe, the game could use many more things before that - new maps, for instance? ^_- Bigworld map is kind of empty, it seems... Nicolas _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 15 08:05:08 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:12 2005 Subject: [CF-Devel] Fwd: Sparks and Burger Bolts In-Reply-To: <4055682A.2000008@laposte.net> References: <40553E86.4020109@cox.net> <4055682A.2000008@laposte.net> Message-ID: <4055B814.5080801@laposte.net> Re-reading my message, i think it was kind of harsh, sorry... My point is more: those are nice ideas, but if you really want to see'em, the best way is probably to do them yourself.... Nicolas _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 15 09:54:12 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:12 2005 Subject: =?iso-8859-1?Q?Re:_[CF-Devel]_Fwd:_Sparks_and_Burger_Bolts?= Message-ID: > > Maybe we could make a Burger restaurant in scorn tho. > Well not in Scorn - there is a quest on the way however... > > ----------- Trap Failures: --------------- > well they don't always click :P The click is the default message. > Valriel's followers cannot summon higher angels: Retributioner, High > Angel, Arch Angel etc. > The cult monster lists could certainly use tweaking - also a few summoner spells like summon angel or summon devil with a good progressive list would be nifty. > > Angels need a generator to counter the demons generator... > > > Possibly as "God of Death", make Devourers named something specific, > although cult still Devourers Devourers is a pretty great 'name'. Of all the gods this one has the coolest image IMHO mainly because the name is kind of different-- much more than if it was 'Sidney the Devourer'. > Spider deity for Dark elves... ?? please no!!!!!!!!!!! > > ---------- Elemental Planes ------------- > Perhaps Gaea, Ixalovh, Sorig and Ruggili could have planes for their > element and a throne room at the top of 99 random levels and an entrance > portal room I thought that having certain planes to be used for transportation would be a nice touch. I have started to make some maps for Gaia which I would like to link together at a sort of 'green nexus' (kind of like forest walk) which would allow you to travel big world in a unique way and this could be done for other gods as well. > ---------- More Monsters -------------- > Stone, Cloud, Fire, Storm, Frost... Giants I recently made the images for a fire troll and there is room for more monsters certainly... the longest part is balancing them. -Todd _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 15 18:53:10 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:12 2005 Subject: [CF-Devel] diseased chairs? (cf.mf.net) Message-ID: As pointed out on IRC, the Drunken Barbarian guild contains two chairs that are heavily infected with various diseases. /santo_dominion/guilds/drunken_barbarian/upper ("alchemy room") The chairs originally came from the "Undead Bungalow". also in Santo Dominion. Looks like the chairs were renamed somehow or by another DM. Should this (the diseased chairs) be possible? Is this part of a larger problem? Is this a minor problem that should be ignored? Is this a strange fluke? The chairs are the following: That is chair (dam+6)(weapon speed 19) You name it Chair of Diseases It is made of: pine. It goes on your arm (2) It weighs 60.000 kg. You would get 1 platinum coin for it. There you see: - chair (120374082). - the runs (121046459). - tapeworms (121046458). - flaming farts (121046457). - tooth decay (121046456). - the runs (121046455). - egg disease (121046454). - the runs (121046453). - scurvy (121046452). - egg disease (121046451). - flaming farts (121046450). - tapeworms (121046449). - flaming farts (121046448). - tapeworms (121046447). - the runs (121046446). - lack of bladder control (121046445). - egg disease (121046444). - lack of bladder control (121046443). - tapeworms (121046442). - tapeworms (121046441). - tapeworms (121046440). - woodfloor (121046439). That is chair (unidentified) You name it Alchemist's Chair It is made of: pine. It goes on your arm (2) It weighs 60.000 kg. You would get 1 gold coin and 6 silver coins for it. There you see: - chair (120985604). - scurvy (magic) (121046316). - egg disease (121046315). - scurvy (magic) (121046314). - woodfloor (121046313). -- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 15 19:07:41 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:13 2005 Subject: [CF-Devel] diseased chairs? (cf.mf.net) In-Reply-To: References: Message-ID: Add to this one of the nearby cauldrons, it has about 50 diseases. Perhaps bad alchemy recipies are infecting nearby items? On Mon, 15 Mar 2004, Rick Tanner wrote: > > As pointed out on IRC, the Drunken Barbarian guild contains two chairs > that are heavily infected with various diseases. > > /santo_dominion/guilds/drunken_barbarian/upper ("alchemy room") _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 15 19:40:39 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:13 2005 Subject: [CF-Devel] diseased chairs? (cf.mf.net) In-Reply-To: References: Message-ID: <40565B17.4050307@cox.net> Rick Tanner wrote: >/santo_dominion/guilds/drunken_barbarian/upper ("alchemy room") > > If possible we would like to save the stuff on this map. >The chairs originally came from the "Undead Bungalow". also in Santo >Dominion. Looks like the chairs were renamed somehow or by another DM. > > Renamed with the 'rename item to command. >Should this (the diseased chairs) be possible? > > It does make a good idea for some chairs, but it shouldn't infect other items. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 16 00:02:24 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:13 2005 Subject: [CF-Devel] diseased chairs? (cf.mf.net) In-Reply-To: References: Message-ID: <20040316030224.0e2664ce.kstenger@montevideo.com.uy> > > Add to this one of the nearby cauldrons, it has about 50 diseases. > > Perhaps bad alchemy recipies are infecting nearby items? > > On Mon, 15 Mar 2004, Rick Tanner wrote: > > > > > As pointed out on IRC, the Drunken Barbarian guild contains two chairs > > that are heavily infected with various diseases. > > > > /santo_dominion/guilds/drunken_barbarian/upper ("alchemy room") > Just a note on this, the infected ones are not the chairs, the diseases are just "on the floor" in almost every spot of the "alchemy room". Even in one whichhad no chair at first (at least when i got in tonight). -- +-----------------------------+ | Karla M? Stenger S?bat | | Pando . Canelones . Uruguay | | kstenger@montevideo.com.uy | +-----------------------------+ _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 16 15:17:48 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:13 2005 Subject: [CF-Devel] Green Chaos wyverns = bad In-Reply-To: <40565B17.4050307@cox.net> References: <40565B17.4050307@cox.net> Message-ID: <40576EFC.6030407@cox.net> The chaos quest maps in the Lake Country feature several wyverns of chaos that are stunningly GREEN! This is not preferred since we already have a wyvern of chaos arch now that is a black wyvern. If we replace them, we don't have to manually graft in the chaos spells since they already are built into the wyvern of chaos arch, _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 16 15:58:52 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:13 2005 Subject: [CF-Devel] diseased chairs? (cf.mf.net) In-Reply-To: <20040316030224.0e2664ce.kstenger@montevideo.com.uy> References: <20040316030224.0e2664ce.kstenger@montevideo.com.uy> Message-ID: <20040316185852.2f9c2f76.kstenger@montevideo.com.uy> Well i found the way to reproduce this problem, talking to the members of the guild i found out they use the _spell_ disarm instead of the disarm traps skill to disarm the chests and they usually did it into the alchemy room or the "big chest", the problem seems to be when you fail to disarm a diseased needle, and the disease falls to the ground instead of infecting the person and end it up right there. I tried this myself and after cleaning up a chest with more than 50 traps i ended up with a pile of about 10 diseases after i picked up the chest. I also found out that casting this spell in your own apartment (scorn) would crash the server. Hope this is helpful enough as to trace the bug(s) :) Greetings, Katia. -- +-----------------------------+ | Karla M? Stenger S?bat | | Pando . Canelones . Uruguay | | kstenger@montevideo.com.uy | +-----------------------------+ _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 16 14:07:40 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:13 2005 Subject: [CF-Devel] Multipart creatures and maps In-Reply-To: <1078436984.681.7.camel@oberon.kameria> References: <1078436984.681.7.camel@oberon.kameria> Message-ID: <1079467660.542.11.camel@oberon.kameria> I have run the multipart arch map cleanup script (cleanarch.pl) that Bernd submitted and so far it is working great - perhaps I am imagining it but my server seems faster (lots of extraneous map data cleaned up?). After some testing I have not seen any issues with the bigworld maps from this script but of course there are a lot of maps and I have not even come close to testing all of them. I would like to commit the cleaned up maps (first bigworld then old maps) however as I believe that any problems that might arise from running this script would be isolated and fixable. There are still display issues with large images however which this did not fix, but I think it is worth cleaning up the maps anyway. On Thu, 2004-03-04 at 21:49, Todd Mitchell wrote: > One thing i have noticed since I started working on the multipart arches > is that a lot of maps have these objects stored in the I am supposing > 'old style' and this is causing display problems I believe when the maps > are loaded up. I noticed this first with the Palace graphic when I > merged it there was suddenly a whole bunch of palaces in the spot - each > piece of the arch was stored in the map. It is more noticable with > monsters like the cyclops now that the images have been merged - here's > an example: > > ./darcap/darcap/circus/bigtop:arch cyclops_2 > ./darcap/darcap/circus/bigtop:arch cyclops_3 > ./darcap/darcap/circus/bigtop:arch cyclops_4 > ./darcap/darcap/circus/bigtop:arch cyclops_5 > ./darcap/darcap/circus/bigtop:arch cyclops_6 > > Anyone have a quick scripted way to strip these out and use the more > modern multipart notation (head only I believe?)- it would lighten the > maps up a bit and would fix some of the graphic issues we have been > seeing. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 16 17:38:39 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:13 2005 Subject: [CF-Devel] diseased chairs? (cf.mf.net) In-Reply-To: <20040316185852.2f9c2f76.kstenger@montevideo.com.uy> References: <20040316030224.0e2664ce.kstenger@montevideo.com.uy> <20040316185852.2f9c2f76.kstenger@montevideo.com.uy> Message-ID: <20040316203839.34de079c.kstenger@montevideo.com.uy> Another point on this, while i cleaned up the diseases with the 'remove command i had no problems, but after removing a bounch of them and leaving the map after some minutes the server crashed. I'm guessing it's somehow related to the removed items that could not always be totally freed and failed when trying to reload the map from the cache and save it to disk (or whatever the server does then). So, if there is a way to avoid this to happen again i'd like to know it to remove the items safely. Anyhow it's something that could need fixing too, even when it's not as important as a player's spell that might be commonly used by anyone. See you soon, Katia. -- +-----------------------------+ | Karla M? Stenger S?bat | | Pando . Canelones . Uruguay | | kstenger@montevideo.com.uy | +-----------------------------+ _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 17 01:26:50 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:13 2005 Subject: [CF-Devel] Multipart creatures and maps In-Reply-To: <1079467660.542.11.camel@oberon.kameria> References: <1078436984.681.7.camel@oberon.kameria> <1079467660.542.11.camel@oberon.kameria> Message-ID: <4057FDBA.70702@sonic.net> Todd Mitchell wrote: > I have run the multipart arch map cleanup script (cleanarch.pl) that > Bernd submitted and so far it is working great - perhaps I am imagining > it but my server seems faster (lots of extraneous map data cleaned > up?). After some testing I have not seen any issues with the bigworld > maps from this script but of course there are a lot of maps and I have > not even come close to testing all of them. > I would like to commit the cleaned up maps (first bigworld then old > maps) however as I believe that any problems that might arise from > running this script would be isolated and fixable. > There are still display issues with large images however which this did > not fix, but I think it is worth cleaning up the maps anyway. Seems reasonable. It might be prudent to check in a portion of the maps first - let them soak in CVS for a week and see if there are any issues so that if there are, there isn't a huge amount of stuff that has to be fixed really quickly. Although it does seem unlikely that there should be any actual problems with those changes. Also, can you provide a description/sample map/screenshot of the latest drawing issues with big images? _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 17 05:48:41 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:13 2005 Subject: [CF-Devel] Multipart creatures and maps In-Reply-To: <4057FDBA.70702@sonic.net> References: <1078436984.681.7.camel@oberon.kameria> <1079467660.542.11.camel@oberon.kameria> <4057FDBA.70702@sonic.net> Message-ID: My first version DID break those maps: maps-bigworld/quests/peterm/FireTemple/ThirdFloor maps-bigworld/wolfsburg/whorehouse So i made a more pedantic one. Those are the only maps to show up with diff -rq comparing output of version 1 and version 2 of the script. I did not run into any problems with these modified maps so far. -------------- next part -------------- #!/usr/bin/perl -w use strict 'refs'; use strict 'subs'; @files = split /\n/,`find -type f | grep -v "/CVS/"`; foreach $file (@files) { open (MAPFILE,$file) or die ("could not open $file\n"); undef $/; $bigstring = ; close MAPFILE; if ($bigstring =~ s/^More\narch.*?^end\n//msg) { open (MAPFILE,"> $file") or die ("could not open $file for writing\n"); print MAPFILE $bigstring; close MAPFILE; print "$file modified\n"; } } -------------- next part -------------- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 17 10:42:08 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:13 2005 Subject: =?iso-8859-1?Q?Re:_Re:_[CF-Devel]_Multipart_creatures_and_maps?= Message-ID: Ok good catch. I will try this new script and do as suggested - commit a sample directory first. But so far have not seen any issues. As for remaining large image issues I will soon document these more closely and send in some screenshots yes. > My first version DID break those maps: > > maps-bigworld/quests/peterm/FireTemple/ThirdFloor > maps-bigworld/wolfsburg/whorehouse > > So i made a more pedantic one. > Those are the only maps to show up with diff -rq > comparing output of version 1 and version 2 of the script. > > I did not run into any problems with these modified maps > so far. > > _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 17 06:09:06 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:14 2005 Subject: [CF-Devel] port In-Reply-To: Message-ID: Which port does crossfire use? _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 17 12:15:43 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:14 2005 Subject: [CF-Devel] port In-Reply-To: References: Message-ID: Port 13327 The metaserver uses Port 13326 On Wed, 17 Mar 2004, Palfy Tamas wrote: > > Which port does crossfire use? > _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 17 14:25:50 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:14 2005 Subject: [CF-Devel] Multipart creatures and maps In-Reply-To: References: Message-ID: <20040317202550.GD15455@laranja.org> On Wed, Mar 17, 2004 at 11:42:08AM -0500, Todd Mitchell wrote: > and do as suggested - commit a sample directory first. I over-suggest [;-)] a cvs branch. []s, |alo +---- -- Those who trade freedom for security lose both and deserve neither. -- http://www.laranja.org/ mailto:lalo@laranja.org pgp key: http://www.laranja.org/pessoal/pgp GNU: never give up freedom http://www.gnu.org/ _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 17 14:44:22 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:14 2005 Subject: [CF-Devel] port In-Reply-To: References: Message-ID: <20040317204422.GE15455@laranja.org> On Wed, Mar 17, 2004 at 01:09:06PM +0100, Palfy Tamas wrote: > > Which port does crossfire use? almost all big cities have a port. Most players use the port of Scorn. (j/k) []s, |alo +---- -- Those who trade freedom for security lose both and deserve neither. -- http://www.laranja.org/ mailto:lalo@laranja.org pgp key: http://www.laranja.org/pessoal/pgp GNU: never give up freedom http://www.gnu.org/ _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 17 15:38:04 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:14 2005 Subject: [CF-Devel] port In-Reply-To: <20040317204422.GE15455@laranja.org> References: <20040317204422.GE15455@laranja.org> Message-ID: <200403172238.12023.d.delbecq@laposte.net> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Le Mercredi 17 Mars 2004 21:44, Lalo Martins a ?crit : > On Wed, Mar 17, 2004 at 01:09:06PM +0100, Palfy Tamas wrote: > > Which port does crossfire use? > > almost all big cities have a port. Most players use the port of Scorn. > > > > U ok? -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFAWMVCHHGOa1Q2wXwRAjMsAJ4y6x1iR64H6Zetc4sRyBK+0RMMEgCgpGCe BlIYFMlwmNKowZTfkqjqLHk= =7h1U -----END PGP SIGNATURE----- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sat Mar 20 05:47:32 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:14 2005 Subject: [CF-Devel] ideas that occurred while playing online Message-ID: <20040320114732.GK15455@laranja.org> I usually play crossfire at the local server I run for family and friends. Recently the goddess of bandwidth has been nice to me some random nights, and I acquired the habit of playing in metalforge when I can. Tonight I gathered a few notes: 1. would be nice to add to the client a "lag meter" like some IRC clients have Crossfire is very dangerous on dialup ;-) I died more than once due to an outburst of sudden lag. 2. conversation using "say" should *really* be colored - it's just too easy to miss. Perhaps the same color as "me". 3. the new skill system messes up the gtk client level/XP display - it tries to render two columns, but skills with long names like "two handed weapons" make it rather pointless. My gtk lore is a bit rusty, but I think it's possible to check if the string will fit... if it doesn't, dunno, maybe don't display a second column. Or add an "abbreviated name" field to each skill, I think I could live with "2h weapons" or "weapons(2h)". []s, |alo +---- -- Those who trade freedom for security lose both and deserve neither. -- http://www.laranja.org/ mailto:lalo@laranja.org pgp key: http://www.laranja.org/pessoal/pgp GNU: never give up freedom http://www.gnu.org/ _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sat Mar 20 05:57:41 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:14 2005 Subject: [CF-Devel] Re: ideas that occurred while playing online In-Reply-To: <20040320114732.GK15455@laranja.org> References: <20040320114732.GK15455@laranja.org> Message-ID: <20040320115741.GL15455@laranja.org> ... and one more: what happened to rotatespells? Can we bring it back?y []s, |alo +---- -- Those who trade freedom for security lose both and deserve neither. -- http://www.laranja.org/ mailto:lalo@laranja.org pgp key: http://www.laranja.org/pessoal/pgp GNU: never give up freedom http://www.gnu.org/ _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sat Mar 20 06:40:48 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:14 2005 Subject: [CF-Devel] ideas that occurred while playing online In-Reply-To: <20040320114732.GK15455@laranja.org> References: <20040320114732.GK15455@laranja.org> Message-ID: <405C3BD0.8060203@laposte.net> > 2. conversation using "say" should *really* be colored - it's > just too easy to miss. Perhaps the same color as "me". Try 'split windows mode', that should take care of conversation. > []s, > |alo > +---- Nicolas _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sat Mar 20 09:08:39 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:14 2005 Subject: [CF-Devel] Future plans? In-Reply-To: <403532F8.8060702@laposte.net> References: <403532F8.8060702@laposte.net> Message-ID: <20040320150839.GM15455@laranja.org> On Thu, Feb 19, 2004 at 11:04:40PM +0100, Nicolas Weeger wrote: > Hello. > > I was wondering if anyone was doing any big thing on the server (or client) > side. Any big feature planned? I think I finally have time to do some crossfire hacking. I do have a list of nitpicks and wishes, some of which are implemented in my local server already, all of which I would like to contribute, most of which are related to gods. (Will post details in a few days) []s, |alo +---- -- Those who trade freedom for security lose both and deserve neither. -- http://www.laranja.org/ mailto:lalo@laranja.org pgp key: http://www.laranja.org/pessoal/pgp GNU: never give up freedom http://www.gnu.org/ _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sat Mar 20 17:21:32 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:14 2005 Subject: [CF-Devel] ideas that occurred while playing online In-Reply-To: <20040320114732.GK15455@laranja.org> References: <20040320114732.GK15455@laranja.org> Message-ID: On Sat, 20 Mar 2004, Lalo Martins wrote: > > 3. the new skill system messes up the gtk client level/XP > display - it tries to render two columns, but skills with long > names like "two handed weapons" make it rather pointless. My > gtk lore is a bit rusty, but I think it's possible to check if > the string will fit... if it doesn't, dunno, maybe don't display > a second column. Or add an "abbreviated name" field to each > skill, I think I could live with "2h weapons" or "weapons(2h)". > I am working on a solution for that right now. I have icons ready, for every skill. These are much smaller than the skill names. As i have not done gtk stuff before, it takes some time. I also want to have a new server -> client command to send the experience->level table to the client. Then we could skip displaying the actual experience and do things like: [small icon] 15.75 Meaning you are level 15 and have 75% of the needed additional exp for level 16. To get full information one just clicks on the icon. Then you get something like: woodsman: blah blah forest.. blah id flesh.. food.. blah cooking..stove last : 20,000,000 (15.0) current : 27,512.234 (15.512) next : 30,000,000 (16.0) In the text window. As one uses about 30 skills, I hope to manage 5 or 6 columns. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sat Mar 20 18:59:06 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:14 2005 Subject: [CF-Devel] ideas that occurred while playing online In-Reply-To: References: <20040320114732.GK15455@laranja.org> Message-ID: <1079830746.533.9.camel@oberon.kameria> On Sat, 2004-03-20 at 23:21, Bernd Edler wrote: > I am working on a solution for that right now. > I have icons ready, for every skill. These are much smaller than > the skill names. > As i have not done gtk stuff before, it takes some time. > One nice thing about the new skill code is the ease of adding or customizing skills by changing the arches. Hopefully your icons system will take this into account (would use an image stored with the arches and not images coded in the client) > I also want to have a new server -> client command to > send the experience->level table to the client. > > > Then we could skip displaying the actual experience and do things like: > > [small icon] 15.75 > > Meaning you are level 15 and have 75% of the needed additional exp for > level 16. > > To get full information one just clicks on the icon. > Then you get something like: > woodsman: > blah blah forest.. > blah id flesh.. food.. > blah cooking..stove > last : 20,000,000 (15.0) > current : 27,512.234 (15.512) > next : 30,000,000 (16.0) > In the text window. > > As one uses about 30 skills, I hope to manage 5 or > 6 columns. This sounds pretty good, especially the summary/detail aspect. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sun Mar 21 12:15:59 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:14 2005 Subject: [CF-Devel] [Fwd: New (maybe) ideas for artificial life in roguelikes] Message-ID: <405DDBDF.1050707@cox.net> This post seems to be highly interesting, I thought I would forward it to you since it pertains to a possible method of monster generation and is a cool idea. John Q. Smith wrote the following post on rec.games.roguelike.development: > Hi everybody, I have a possibly new idea that may help create a > radically unique roguelike. Then again, it may be a horrible idea, > which is why I'm testing it out here first. > > I, like, everybody else here, am working on my own roguelike, and, > like everybody else here, I'm not content to make > yet-another-roguelike. I want to make mine bigger, better, and more > innovative then the rest of them. I probably won't, but you all > understand the desire to keep pushing the envelope. After all, if > we're not making something different, then what's the point? Anyway, > along with my idea. Along with my interest in roguelikes, I have a > deep interest in programming AI, neural nets, genetic algorithms, > agents, and the like. After a recent project, I began to think that > maybe some of these ideas could be incorporated into a roguelike. To > get an idea of what I'm hinting at, let me describe my project that > gave me the idea. > > My project was called Wonderland, and it was a simplistic ASCII world > with a 1000 x 1000 grid, each space containing either dirt, rock, > grass, water, bushes, or trees. Then wonderland was populated with a > variety of different creatures, each with varying attributes, and a > unique brain. As time wore on in Wonderland, the creatures all bred > to be stronger and smarter, or they died out. Because all of the > creature's data (attributes, brain, etc.) were encoded in their genes, > the offspring of two creatures would share its parents genes. Through > very simple and subtle changes in the brains of creatures, a variety > of radically different behaviors were produced. Following is a > descriptions of creatures during there first generation, and then a > description of how they were when Wonderland was finally shut down. > > Goblins - At the start, goblins were fast, relatively strong > omnivores, with relatively poor sight, but excellent noses for > tracking. Their brains were initially made to allow them to be > relatively independant, but they eventually evolved into group > dwelling creatures, with a strong central leadership. The strongest > of the herd would lead, and delegate tasks to weaker creatures, and > through this the various goblin tribes managed to flourish. Note that > they eventually migrated from a riverside society to cave dwelling. > Also note that none of these behaviors were programmed in, they > evolved that way on their own, into a species/society that best suited > them. > > Ants - Ants were initially programmed to be fast, moderately strong > herbivores, with practically no sight, but terrific senses of smell. > Initially they were programmed with a sort of hive mind, but they > gradually grew away from central leadership to more of a swarming > structure. No individual made any decisions, and the ants were > individually very stupid, but by following very simple behavior > patterns the ants as a whole were very successful, but they were > unfortunately driven to near extinction by the balrogs. > > Balrogs - Balrogs were immensely strong, moderately fast, with a > moderate sense of sight and smell. They had a very slow gestation > period, with small litters, and since they had a very small initial > population, they grew and evolved rather slow. Because of this, they > grouped into to a tribe-like society, where no individual made any > more decisions than the rest, but they all looked out for each other, > to ensure genetic survival. They all cross bred and were extremely > good parents, protecting their children avidly. They found the ants > to be the best source of food, and the least challenging to defeat, so > they eventually trapped the ants at their nesting sight, took up > residence their, and lived off a steady supply of newly hatched ants, > thus preventing the ants from breaking free. Basically, the ants were > farmed by the balrogs. Of all the emergent behavior to occur, this > was the least expected and most bizarre. The balrogs biggest threat > were the raptors, and Alice. > > Raptors - Raptors were fast, lethal, and with excellent senses of > smell and a unique sense of sight; they could only see movement > (unfortunately, no other species caught on to this inherent weakness > in their vision. They changed little, although their hunting skills > did become more coordinated and efficient. They were initially a hive > mind, but gradually grew to be more individualistic, but with > excellent communication skills, causing them to be the fiercest > hunters in all of Wonderland. They seemed to be able to quickly take > up appropriate positions during the hunt. For example, the most > splendid hunt I viewed occured with a pack of 5 raptors, against a > balrog who had strayed from the pack to try and find a fresh food > source (the ants were slowly dying out). When the balrog was about 50 > paces from the rest of his fellow's group, and well out of his allies > sight and smell range, 2 raptors cut him off. The balrog turned to > fight, but a 3rd raptor showed up and the balrog changed his mind, and > ran. To the north 2 more raptors appeared, and sensing trouble, he > ran to the west (since the north and southeast were blocked). The > raptors continually shifted their flanking pattern, forcing the balrog > into a dead end cave, where he was ganged up on and slaughtered > simultaneously by all 5 raptors. Not a single raptor died, despite > the fact that one balrog can kill two raptors and survive, and > sometimes a third, but the raptors teamwork saved them all. > > Alice - Alice was the final type of creature in Wonderland, and also > the most unique. Alice was one of a kind, which means no breeding. > She was given an infinite lifespan, however, so she would never die > from old age. She was the fastest creature in all of wonderland, and > also the weakest, but she possessed the most highly developed brain, > with as much memory as she could fill alloted to her, and superior > learning capabilities. She also possessed the unique ability to move > any object in the environment; in effect, tool using. She could move > rocks, trees, bushes, and other creatures (although they didn't go > quietly). There were several points early on where she almost died, > but she eventually grew to be the most fearsome creature in all of > Wonderland. If any group of creatures caught her scent or spotted > her, they would all flee. Not because she was ferociously strong, but > because she always had a clever plan of attack which was devestatingly > effective. For example, she once flanked the opening of a long and > narrow cave of goblins. The goblins, not daring to leave the > 'protection' of their cave, huddled deeper and deeper inside. Alice, > meanwhile, casually dragged a number of rocks from nearby, and blocked > off the cave entrance. Because she was the only one capable of moving > rocks, the goblins were trapped without a food source except each > other. Alice waited a few days, when the goblins were weaker from > hunger and halved in numbers, then casually hurled the rocks that were > blocking the entrance into the cave, crushing and killing the > survivors, and giving Alice a few weeks worth of food. There were > several other brilliant kills she achieved, but this post has run on > long enough. > > While watching my experiment run its course, it was hard not to > imagine it as being a roguelike. ASCII graphics, along with Alice's > '@', and I began thinking that the genetic algorithms, AI, and neural > net techniques could potentially provide a fresh gameplay experience > in a roguelike. Traditionally, as the player grows in power, so do > the enemies, to compensate. In this, you could just let the enemies > evolve, and they would naturally grow in power, plus they would get > smarter, forcing the player to think up new strategies to defeat > enemies. For example, if the player always tried a certain technique > against goblins, eventually the goblins would anticipate it and make > plans to circumvent such a plan of attack. This, I think, could have > a lot of potential and freshen the playing experience. Well, this has > run on long enough, so, tell me what you think. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sun Mar 21 15:27:19 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:14 2005 Subject: [CF-Devel] Item bugs. In-Reply-To: <405DDBDF.1050707@cox.net> Message-ID: There are two not-that-minor item bugs in the game, which should be fixed pretty soon I think, for they break up equilibrium pretty much. One is Ring of Occidental Mages. Applying-unapplying several times causes it to go cursed. But that's not the problem. The problem is that whenever you do this with it, the ring get a random +1 Int, Con or Dex bonus! And you can do it multiple time, by uncursing the Ring. Not even it's item power changes. Currently I've got this: That is ring of Occidental Mages * (worn) (item_power +7)(Dex+13)(Con+9)(Int+6) It goes on your finger Second, once I found 10 cursed Cloaks of Acid Proofing in the shop. I uncursed one and am keepingthe rest, here is their stats: That is cloak of Acid Proofing * (Int-2)(item_power +3)(resist acid +130) It is made of: astolare. They were made by a skill (smithery or woodsman, kinda strange), not by me. Alchemy and other item creation possabilities and skills should be revised as soon as possible! I sense other great bugs there as well. And I presume it's way too easy to make money via these skill, tho I'm not sure of that, for I know very few about these things. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sun Mar 21 23:40:01 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:14 2005 Subject: [CF-Devel] Green Chaos wyverns = bad In-Reply-To: <40576EFC.6030407@cox.net> References: <40565B17.4050307@cox.net> <40576EFC.6030407@cox.net> Message-ID: <405E7C31.3070409@cox.net> Brian Angeletti wrote: > The chaos quest maps in the Lake Country feature several wyverns of > chaos that are stunningly GREEN! This is not preferred since we > already have a wyvern of chaos arch now that is a black wyvern. If we > replace them, we don't have to manually graft in the chaos spells > since they already are built into the wyvern of chaos arch, Possible patch: http://emperorbma.tripod.com/snakepit_3.diff Please test and verify that it doesn't break the area. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 22 00:19:17 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:14 2005 Subject: [CF-Devel] Re: ideas that occurred while playing online In-Reply-To: <20040320115741.GL15455@laranja.org> References: <20040320114732.GK15455@laranja.org> <20040320115741.GL15455@laranja.org> Message-ID: <405E8565.8080900@sonic.net> Lalo Martins wrote: > ... and one more: what happened to rotatespells? Can we bring > it back?y The problem is that the order of spells is a bit random item. So the reason it was removed is that order of doing a rotate spells is basically non predictable. So it really didn't make much sense to have a rotate command. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 22 01:31:27 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:15 2005 Subject: [CF-Devel] Re: ideas that occurred while playing online In-Reply-To: <405E8565.8080900@sonic.net> References: <20040320114732.GK15455@laranja.org> <20040320115741.GL15455@laranja.org> <405E8565.8080900@sonic.net> Message-ID: <20040322073127.GQ15455@laranja.org> On Sun, Mar 21, 2004 at 10:19:17PM -0800, Mark Wedel wrote: > Lalo Martins wrote: > >... and one more: what happened to rotatespells? Can we bring > >it back?y > > The problem is that the order of spells is a bit random item. > > So the reason it was removed is that order of doing a rotate spells is > basically non predictable. So it really didn't make much sense to have a > rotate command. even then, I find it easier to press one key several times than type a whole command. There are only so many keys I can bind (specially since I use the same client setup for many characters). And now with the new magic system, I'm not supposed to know 50+ spells, so rotate is not as unreasonable. Would it be too resource-consuming if the client kept a list of all spells you know, and then sort them alphabetically? []s, |alo +---- -- Those who trade freedom for security lose both and deserve neither. -- http://www.laranja.org/ mailto:lalo@laranja.org pgp key: http://www.laranja.org/pessoal/pgp GNU: never give up freedom http://www.gnu.org/ _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 22 01:28:26 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:15 2005 Subject: [CF-Devel] Item bugs. In-Reply-To: References: <405DDBDF.1050707@cox.net> Message-ID: <20040322072826.GP15455@laranja.org> On Sun, Mar 21, 2004 at 10:27:19PM +0100, Palfy Tamas wrote: > > There are two not-that-minor item bugs in the game, which should be fixed > pretty soon I think, for they break up equilibrium pretty much. > One is Ring of Occidental Mages. > Applying-unapplying several times causes it to go cursed. But that's not > the problem. The problem is that whenever you do this with it, the ring > get a random +1 Int, Con or Dex bonus! And you can do it multiple time, by > uncursing the Ring. Not even it's item power changes. I think this is the intended behavior. Perhaps it is unbalanced that these bonuses are cumulative... dunno. But it is definitely the way it was designed to behave. []s, |alo +---- -- Those who trade freedom for security lose both and deserve neither. -- http://www.laranja.org/ mailto:lalo@laranja.org pgp key: http://www.laranja.org/pessoal/pgp GNU: never give up freedom http://www.gnu.org/ _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 22 01:39:41 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:15 2005 Subject: [CF-Devel] sourceforge Message-ID: <20040322073941.GR15455@laranja.org> is it just me, or has cvs been offline for the whole weekend? any chance of getting an arch or svn repository somewhere? []s, |alo +---- -- Those who trade freedom for security lose both and deserve neither. -- http://www.laranja.org/ mailto:lalo@laranja.org pgp key: http://www.laranja.org/pessoal/pgp GNU: never give up freedom http://www.gnu.org/ _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 22 02:27:26 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:15 2005 Subject: [CF-Devel] Re: ideas that occurred while playing online In-Reply-To: <20040322073127.GQ15455@laranja.org> References: <20040320114732.GK15455@laranja.org> <20040320115741.GL15455@laranja.org> <405E8565.8080900@sonic.net> <20040322073127.GQ15455@laranja.org> Message-ID: <405EA36E.5030601@laposte.net> > even then, I find it easier to press one key several times than > type a whole command. There are only so many keys I can bind > (specially since I use the same client setup for many > characters). And now with the new magic system, I'm not > supposed to know 50+ spells, so rotate is not as unreasonable. Hehe, that's why Windows client uses one key binding file per character name... > Would it be too resource-consuming if the client kept a list of > all spells you know, and then sort them alphabetically? Right now there is no way for the client to know spells you know, short of doing 'cast' and parsing the output. This could probably be done - but i for one prefer key bindings, some spells aren't used often enough to justify a binding & can be written imo. > []s, > |alo > +---- Nicolas _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 22 11:12:40 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:15 2005 Subject: =?iso-8859-1?Q?Re:_Re:_[CF-Devel]_Re:_ideas_that_occurred_while_playing_online?= Message-ID: > > Would it be too resource-consuming if the client kept a list of > > all spells you know, and then sort them alphabetically? > > Right now there is no way for the client to know spells you know, short > of doing 'cast' and parsing the output. This could probably be done - > but i for one prefer key bindings, some spells aren't used often enough > to justify a binding & can be written imo. a programmable spell quene command would be nifty - something which would allow you to assign a quene number to x number of spells (perhaps a number around 5-10 would be quick enough useful and big enough to be worth while) and then rotate through these. Maybe it should even be a skill or ability (or a spell?)? _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 22 11:45:54 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:15 2005 Subject: [CF-Devel] Re: ideas that occurred while playing online References: Message-ID: <006401c41035$89976cd0$8024a2cd@YUANC8000> I actually worked on some of the rotation on the client-side for the gtk win32 client a long time ago... ( to use the mousewheel to rotate through ) I believe what I did was to create a doubly-linked list to hold the spells list and added spells to the list only when they were learned. On a roll-up, you would search through the list until you found the current spell. Then you would ready the previous spell. On a roll-down, you would, instead, ready the next spell. Of course, you have the caveats... On a roll-up, if the spell is the head, then you ready the tail 'n vise-versa. It's been a long time since I programmed for the client, so I don't have my code lying around anymore, but that's the gist of it. :) oh yea, I really do URGE the win32 gtk client to store character keybindings in a 'per-site' situation... like creating a 'metalforge.real-time.com' folder when the user decides to go to metalforge to play and to place the keybindings for the metalforge characters in that folder. It would allow the players to have multiple characters w/ the same name on different servers. Yua CaVan ----- Original Message ----- From: "Todd Mitchell" To: Sent: Monday, March 22, 2004 11:12 AM Subject: Re: Re: [CF-Devel] Re: ideas that occurred while playing online > > > > > Would it be too resource-consuming if the client kept a list of > > > all spells you know, and then sort them alphabetically? > > > > Right now there is no way for the client to know spells you know, short > > of doing 'cast' and parsing the output. This could probably be done - > > but i for one prefer key bindings, some spells aren't used often enough > > to justify a binding & can be written imo. > > a programmable spell quene command would be nifty - something which would allow you to assign a quene number to x number of spells (perhaps a number around 5-10 would be quick enough useful and big enough to be worth while) and then rotate through these. Maybe it should even be a skill or ability (or a spell?)? > > > _______________________________________________ > crossfire-devel mailing list > crossfire-devel@lists.real-time.com > https://mailman.real-time.com/mailman/listinfo/crossfire-devel > > _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 22 08:10:02 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:15 2005 Subject: [CF-Devel] Item bugs. In-Reply-To: <20040322072826.GP15455@laranja.org> Message-ID: On Mon, 22 Mar 2004, Lalo Martins wrote: > On Sun, Mar 21, 2004 at 10:27:19PM +0100, Palfy Tamas wrote: > > > > There are two not-that-minor item bugs in the game, which should be fixed > > pretty soon I think, for they break up equilibrium pretty much. > > One is Ring of Occidental Mages. > > Applying-unapplying several times causes it to go cursed. But that's not > > the problem. The problem is that whenever you do this with it, the ring > > get a random +1 Int, Con or Dex bonus! And you can do it multiple time, by > > uncursing the Ring. Not even it's item power changes. > > I think this is the intended behavior. Perhaps it is unbalanced > that these bonuses are cumulative... dunno. But it is > definitely the way it was designed to behave. Of course it is, except that you can do it several times. A random +1 dex/con/int is ok, but merely using uncurse scrolls/praying you can get 30 in all the three stats. By the way, a player checked the source and said it should also give randmly STR as well, but whenever it should give STR it gives DEX, and well it was intended to do such thing only once. I don't understand why it's not obvious that this way this item is way too powerfull. > > []s, > |alo > +---- > -- > Those who trade freedom for security > lose both and deserve neither. > -- > http://www.laranja.org/ mailto:lalo@laranja.org > pgp key: http://www.laranja.org/pessoal/pgp > > GNU: never give up freedom http://www.gnu.org/ > > _______________________________________________ > crossfire-devel mailing list > crossfire-devel@lists.real-time.com > https://mailman.real-time.com/mailman/listinfo/crossfire-devel > _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 22 11:59:40 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:15 2005 Subject: [CF-Devel] sourceforge In-Reply-To: <20040322073941.GR15455@laranja.org> References: <20040322073941.GR15455@laranja.org> Message-ID: <200403221859.48372.tchize@myrealbox.com> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Le Lundi 22 Mars 2004 08:39, Lalo Martins a ?crit : > is it just me, or has cvs been offline for the whole weekend? > > any chance of getting an arch or svn repository somewhere? There is a procedure on sourceforge website which explain how to create a cron job on the sourceforge shell servers to automatically checkout the cvs, make a tar.gz and put it on the project webpage (aka crossfire.sf.net). But this need to be done by the project maintainer. Perhaps it should be done for future problems. Because the cron has anonymous pserver access to the real cvs and not the copy, it's still accessible when cvs is down. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFAXymSHHGOa1Q2wXwRAsz8AKCPVVzc0Y8OWXjMU5Do8qsxJ6N3mgCg8cpn CD9tYelnblal/4VbvdsJg1c= =AYo0 -----END PGP SIGNATURE----- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 22 12:39:12 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:15 2005 Subject: [CF-Devel] Item bugs. In-Reply-To: References: <20040322072826.GP15455@laranja.org> Message-ID: <20040322183911.GT15455@laranja.org> I checked the source again and I'm 111% sure it's behaving exactly as intended - cumulative bonuses and never on str. If I understand it correctly, however, and comparing it with the Weapons of Occidental Mages, the catch is that the "bonus" should be able to be negative to, so if you get +30 you're *really* very lucky. The version of the script attached does just this. On Mon, Mar 22, 2004 at 03:10:02PM +0100, Palfy Tamas wrote: > > > One is Ring of Occidental Mages. > > > Applying-unapplying several times causes it to go cursed. But that's not > > > the problem. The problem is that whenever you do this with it, the ring > > > get a random +1 Int, Con or Dex bonus! And you can do it multiple time, by > > > uncursing the Ring. Not even it's item power changes. > > > > I think this is the intended behavior. Perhaps it is unbalanced > > that these bonuses are cumulative... dunno. But it is > > definitely the way it was designed to behave. > > Of course it is, except that you can do it several times. A random +1 > dex/con/int is ok, but merely using uncurse scrolls/praying you can get 30 > in all the three stats. By the way, a player checked the source and said > it should also give randmly STR as well, but whenever it should give STR > it gives DEX, and well it was intended to do such thing only once. I don't > understand why it's not obvious that this way this item is way too > powerfull. []s, |alo +---- -- Those who trade freedom for security lose both and deserve neither. -- http://www.laranja.org/ mailto:lalo@laranja.org pgp key: http://www.laranja.org/pessoal/pgp GNU: never give up freedom http://www.gnu.org/ -------------- next part -------------- import CFPython import sys import random me = CFPython.WhoAmI() ac = CFPython.WhoIsActivator() r = random.random() if (CFPython.IsApplied(me)): if (r <= 0.01): CFPython.SetIdentified(me,0) CFPython.SetCursed(me, 1) CFPython.SetDexterity(me, CFPython.GetDexterity(me)+1) elif (r <= 0.02): CFPython.SetIdentified(me,0) CFPython.SetCursed(me, 1) CFPython.SetIntelligence(me, CFPython.GetIntelligence(me)+1) elif (r <= 0.03): CFPython.SetIdentified(me,0) CFPython.SetCursed(me, 1) CFPython.SetConstitution(me, CFPython.GetConstitution(me)+1) elif (r >= 0.99): CFPython.SetIdentified(me,0) CFPython.SetCursed(me, 1) CFPython.SetDexterity(me, CFPython.GetDexterity(me)-1) elif (r >= 0.98): CFPython.SetIdentified(me,0) CFPython.SetCursed(me, 1) CFPython.SetIntelligence(me, CFPython.GetIntelligence(me)-1) elif (r >= 0.97): CFPython.SetIdentified(me,0) CFPython.SetCursed(me, 1) CFPython.SetConstitution(me, CFPython.GetConstitution(me)-1) -------------- next part -------------- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 22 12:59:01 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:15 2005 Subject: [CF-Devel] Item bugs. In-Reply-To: <20040322183911.GT15455@laranja.org> References: <20040322072826.GP15455@laranja.org> <20040322183911.GT15455@laranja.org> Message-ID: <200403221259.01808.eracclists@bellsouth.net> On Monday 22 March 2004 12:39 Lalo Martins wrote: (RE: ring of Occidental Mages) > I checked the source again and I'm 111% sure it's behaving > exactly as intended - cumulative bonuses and never on str. I am SOOOO happy I read this list! I've just been dumping off those rings. :-) > If I understand it correctly, however, and comparing it with the > Weapons of Occidental Mages, the catch is that the "bonus" > should be able to be negative to, so if you get +30 you're > *really* very lucky. The version of the script attached does > just this. Oh NO! Guess I'd better get one of those rings soon then. :-P Gene (aka poof, aka eracc) -- Linux era4.eracc.UUCP 2.4.22-28mdkenterprise i686 12:56:31 up 23 days, 7:50, 8 users, load average: 0.00, 0.03, 0.03 ERA Computer Consulting - http://www.eracc.com/ eCS, OS/2, Mandrake GNU/Linux, OpenServer & UnixWare resellers _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 22 13:11:39 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:15 2005 Subject: [CF-Devel] Re: ideas that occurred while playing online In-Reply-To: <006401c41035$89976cd0$8024a2cd@YUANC8000> References: <006401c41035$89976cd0$8024a2cd@YUANC8000> Message-ID: <405F3A6B.8030208@laposte.net> > oh yea, I really do URGE the win32 gtk client to store character keybindings > in a 'per-site' situation... like creating a 'metalforge.real-time.com' > folder when the user decides to go to metalforge to play and to place the > keybindings for the metalforge characters in that folder. It would allow > the players to have multiple characters w/ the same name on different > servers. That could be done. But it'd need to explain to players how to copy bindings between servers. Or make it easy from the client (harder). > Yua CaVan Ryo _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 22 20:18:22 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:15 2005 Subject: [CF-Devel] Fear? Message-ID: <200403222018.22745.eracclists@bellsouth.net> Greetings Developers, Question: Is fear supposed to make players run? There is a claim on cf.mf.net that it does not and that is intended. Even for worshipers of Gaea that have -100 fear. I would think that player race, class and cult alignment that is susceptible to fear would RUN when hit with fear. Also, are fireborn supposed to be susceptible to fear? If players are supposed to run when susceptible and hit with fear then the code is apparently broken. The claim is that is not what happens ... that fear does: archaios shouts: Ok. But it doesn't do ANYTHING. Fear does zip. Zilch. Nothing. Please advise. TIA! Gene (aka poof, aka eracc) -- Linux era4.eracc.UUCP 2.4.22-28mdkenterprise i686 20:09:37 up 23 days, 15:03, 8 users, load average: 0.00, 0.00, 0.00 ERA Computer Consulting - http://www.eracc.com/ eCS, OS/2, Mandrake GNU/Linux, OpenServer & UnixWare resellers _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 23 01:24:02 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:15 2005 Subject: [CF-Devel] Re: ideas that occurred while playing online In-Reply-To: <20040322073127.GQ15455@laranja.org> References: <20040320114732.GK15455@laranja.org> <20040320115741.GL15455@laranja.org> <405E8565.8080900@sonic.net> <20040322073127.GQ15455@laranja.org> Message-ID: <405FE612.3090600@sonic.net> Lalo Martins wrote: > > even then, I find it easier to press one key several times than > type a whole command. There are only so many keys I can bind > (specially since I use the same client setup for many > characters). And now with the new magic system, I'm not > supposed to know 50+ spells, so rotate is not as unreasonable. > > Would it be too resource-consuming if the client kept a list of > all spells you know, and then sort them alphabetically? The client could certainly do that. It'd actually be convenient for the client to know the spells the character knows, because it could also generate menus or other nicer interfaces for the user. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 23 02:14:09 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:15 2005 Subject: [CF-Devel] diseased chairs? (cf.mf.net) In-Reply-To: <20040316185852.2f9c2f76.kstenger@montevideo.com.uy> References: <20040316030224.0e2664ce.kstenger@montevideo.com.uy> <20040316185852.2f9c2f76.kstenger@montevideo.com.uy> Message-ID: <405FF1D1.3080906@sonic.net> Karla Stenger wrote: > Well i found the way to reproduce this problem, talking to the members of the > guild i found out they use the _spell_ disarm instead of the disarm traps skill > to disarm the chests and they usually did it into the alchemy room or the "big > chest", the problem seems to be when you fail to disarm a diseased needle, and > the disease falls to the ground instead of infecting the person and end it up > right there. I tried this myself and after cleaning up a chest with more than 50 > traps i ended up with a pile of about 10 diseases after i picked up the chest. > > I also found out that casting this spell in your own apartment (scorn) would > crash the server. I believe this is now fixed in CVS. From the changelog: server/rune.c: Change trap_disarm() to call destroy_object() on the trap object, so that all the trapss inventory is also destroyed and not dumped on the ground. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 23 04:40:55 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:15 2005 Subject: [CF-Devel] Fear? In-Reply-To: <200403222018.22745.eracclists@bellsouth.net> References: <200403222018.22745.eracclists@bellsouth.net> Message-ID: <40601437.7080402@laposte.net> Fear makes monsters run away when cast by a player. Now if cast on a player i think it doesn't have any effect. Nicolas _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 23 10:37:35 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:15 2005 Subject: =?iso-8859-1?Q?Re:_Re:_[CF-Devel]_Fear=3F?= Message-ID: > Fear makes monsters run away when cast by a player. > Now if cast on a player i think it doesn't have any effect. > > Nicolas We could borrow from the disease code and make it so that players mess their pants... _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 23 13:51:49 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:16 2005 Subject: [CF-Devel] Fear? In-Reply-To: <40601437.7080402@laposte.net> References: <200403222018.22745.eracclists@bellsouth.net> <40601437.7080402@laposte.net> Message-ID: <200403231351.49802.eracclists@bellsouth.net> On Tuesday 23 March 2004 04:40 Nicolas Weeger wrote: > Fear makes monsters run away when cast by a player. > Now if cast on a player i think it doesn't have any effect. Then what is the point of Gaea giving fear -100 if there is no effect from fear on players? Why not ignore fear altogether and not have any items that give +/- fear values? If CF is going to have fear at all then there should be some effect from it on players based on their race, class, deity and resistances. I would think that some player races, like human and elf, would be susceptible to fear and some, like dragon and troll, would be immune with others falling in there somewhere. I see creatures using fear against players but if it is not going to affect the player then why have creatures use it at all? I'm quite puzzled about this. Gene (aka poof, aka eracc) -- Linux era4.eracc.UUCP 2.4.22-28mdkenterprise i686 13:29:25 up 24 days, 8:23, 8 users, load average: 0.06, 0.02, 0.00 ERA Computer Consulting - http://www.eracc.com/ eCS, OS/2, Mandrake GNU/Linux, OpenServer & UnixWare resellers _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 23 14:08:24 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:16 2005 Subject: [CF-Devel] Fear? In-Reply-To: <200403231351.49802.eracclists@bellsouth.net> References: <200403222018.22745.eracclists@bellsouth.net> <40601437.7080402@laposte.net> <200403231351.49802.eracclists@bellsouth.net> Message-ID: <1080072503.22072.12.camel@d5110227.lss.emc.com> > > Fear makes monsters run away when cast by a player. > > Now if cast on a player i think it doesn't have any effect. I thought fear made players run away. I remember this working as expected a number of years ago. I've always made an effort to get a ring or amulet of free action, so I haven't noticed that it was broken. So shouldn't it just be considered a bug and fixed? --PC _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 23 23:58:44 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:16 2005 Subject: [CF-Devel] Fear? In-Reply-To: <40601437.7080402@laposte.net> References: <200403222018.22745.eracclists@bellsouth.net> <40601437.7080402@laposte.net> Message-ID: <40612394.4040403@cox.net> Nicolas Weeger wrote: > Fear makes monsters run away when cast by a player. > Now if cast on a player i think it doesn't have any effect. Now in ToME, fear just makes you unable to attack. Perhaps that would be the simplest way to make an affect, and it may be how fear is already handled. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 24 00:15:24 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:16 2005 Subject: [CF-Devel] Fear? In-Reply-To: <40612394.4040403@cox.net> References: <200403222018.22745.eracclists@bellsouth.net> <40601437.7080402@laposte.net> <40612394.4040403@cox.net> Message-ID: <4061277C.70708@cox.net> Brian Angeletti wrote: > affect, Should be effect... _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 24 02:27:52 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:16 2005 Subject: [CF-Devel] Fear? In-Reply-To: <1080072503.22072.12.camel@d5110227.lss.emc.com> References: <200403222018.22745.eracclists@bellsouth.net> <40601437.7080402@laposte.net> <200403231351.49802.eracclists@bellsouth.net> <1080072503.22072.12.camel@d5110227.lss.emc.com> Message-ID: <40614688.90209@sonic.net> Preston Crow wrote: >>>Fear makes monsters run away when cast by a player. >>>Now if cast on a player i think it doesn't have any effect. > > > I thought fear made players run away. I remember this working as > expected a number of years ago. I've always made an effort to get a > ring or amulet of free action, so I haven't noticed that it was broken. > > So shouldn't it just be considered a bug and fixed? Yep. It's apparantly been broken a long time. This is presuming the code was supposed to use the flee_player() code. So I've committed the following: server/attack.c: Add scare_creature() function, which sets FLAG_SCARED and also sets up appropriate enemy. Clean up some formatting in other functions, and fix friendly fire - move it out of the loop for all attacktypes (can be after we have figured out max damage). Also, has a bug where if an attach wasn't doing any damage, friendly fire could actually make it do damage (eg, fear spell). server/player.c: Fix up flee_player() to be map tile aware. Also, add call to flee_player() in handle_newcs_player() so player will run away. MSW 2004-03-24 Note that while poking around, I also found that scared creatures/players have a penalty to hit things, and are also themselves easier to hit. Note that the resist fear penalty/bonus a character may have only really effects the creatures saving through. Once affected, you basically run until you can run no farther. Note that 'wimpy' mode also used the scared flag to have the player run away, so if you have wimpy set, you may also notice that works again also (but I didn't really test that that much.) _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 24 12:01:19 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:16 2005 Subject: [CF-Devel] bugs/problems with windows server Message-ID: <001d01c411ca$026fe4d0$a50a6486@informatik.unihamburg.de> I noticed a few bugs/problems, when running a crossfire server under WindowsXP on my machine at home 1.) The server sometimes did hang. After building a full-debug version, i found out, that the problem was the windows emulation of the gettimeofday function in "win32.c", which simply set "time_Info->tv_usec = timeGetTime() *1000;", which is wrong, since timeGetTime() returns the system time in milliseconds and somewhere else in the code there are code fragments like: "last_time->tv_usec = 0;", so that sleep_delta() in "time.c" sometimes tried to Sleep enormously long (> 4800 seconds:). The patch at the end of this mail fixes the problem. 2.) The variable "skill" is sometimes used uninitialized in "int kill_object(object *op,int dam, object *hitter, int type)" in "attack.c" (change_exp() is sometimes called there with skill=0xcccccccc, when doing a full debug build with VisualC++). Maybe this isn't a real bug, because in the cases where changeExp() is called with an uninitialized skill parameter, skill may probably not be used in changeExp(); but this "bug" makes it impossible to run the debug version of the server, because everytime skill is used uninitialized, the runtime check system of VisualC++ throws an exception. I simply changed: char buf[MAX_BUF], *skill; to: char buf[MAX_BUF], *skill = NULL; 3.) The VisualC++ runtime uses another type prefix in printf format strings for 64-bit integers than the GNU C/C++ compiler. Could you please change all occurrencs (about 20-30) of code like sprintf( buf, "%lld", ... ); to something like: #ifdef WIN32 sprintf( buf, "%I64d", ... ); #else sprintf( buf, "%lld", ... ); I saw you already started doing this, but there are still a lot of places where this hasn't been changed yet. --------------------- "gettimeofday"-Patch: --------------------- Old version (in "win32.c"): =========================== int gettimeofday(struct timeval *time_Info, struct timezone *timezone_Info) { /* Get the time, if they want it */ if (time_Info != NULL) { time_Info->tv_sec = time(NULL); time_Info->tv_usec = timeGetTime() *1000; } /* Get the timezone, if they want it */ if (timezone_Info != NULL) { _tzset(); timezone_Info->tz_minuteswest = _timezone; timezone_Info->tz_dsttime = _daylight; } /* And return */ return 0; } New version: ============ int gettimeofday(struct timeval *time_Info, struct timezone *timezone_Info) { // remarks: a DWORD is an unsigned long static DWORD time_t0, time_delta, mm_t0; static int t_initialized = 0; DWORD mm_t, delta_t; if( !t_initialized ) { time_t0 = time(NULL); time_delta = 0; mm_t0 = timeGetTime(); t_initialized = 1; } /* Get the time, if they want it */ if (time_Info != NULL) { // timeGetTime() returns the system time in milliseconds mm_t = timeGetTime(); // handle wrap around of system time (happens every // 2^32 milliseconds = 49.71 days) if( mm_t < mm_t0 ) delta_t = (0xffffffff - mm_t0) + mm_t + 1; else delta_t = mm_t - mm_t0; mm_t0 = mm_t; time_delta += delta_t; if( time_delta >= 1000 ) { time_t0 += time_delta / 1000; time_delta = time_delta % 1000; } time_Info->tv_sec = time_t0; time_Info->tv_usec = time_delta * 1000; } /* Get the timezone, if they want it */ if (timezone_Info != NULL) { _tzset(); timezone_Info->tz_minuteswest = _timezone; timezone_Info->tz_dsttime = _daylight; } /* And return */ return 0; } _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 24 12:33:58 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:16 2005 Subject: [CF-Devel] bugs/problems with windows server In-Reply-To: <001d01c411ca$026fe4d0$a50a6486@informatik.unihamburg.de> References: <001d01c411ca$026fe4d0$a50a6486@informatik.unihamburg.de> Message-ID: <4061D496.50903@laposte.net> > 1.) The server sometimes did hang. After building a full-debug > version, i found out, that the problem was the windows > emulation of the gettimeofday function in "win32.c", which simply set > "time_Info->tv_usec = timeGetTime() *1000;", > which is wrong, since timeGetTime() returns the system > time in milliseconds and somewhere else in the code > there are code fragments like: "last_time->tv_usec = 0;", > so that sleep_delta() in "time.c" sometimes tried to > Sleep enormously long (> 4800 seconds:). > The patch at the end of this mail fixes the problem. This should probably happen also under Linux, though - no one noticed this issue? > 2.) The variable "skill" is sometimes used uninitialized in > "int kill_object(object *op,int dam, object *hitter, int type)" > in "attack.c" (change_exp() is sometimes called there with > skill=0xcccccccc, when doing a full debug build with VisualC++). This should be fixed, imo. Probably missing initialization. > 3.) The VisualC++ runtime uses another type prefix in printf > format strings for 64-bit integers than the GNU C/C++ compiler. > Could you please change all occurrencs (about 20-30) of code like Yes, missing a few here & there. Didn't really take the time to fix everything. Please, if you send a patch, send a cvs diff, or a regular diff, not code like what you sent :) Nicolas ('official' Windows maintainer) _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 24 16:46:31 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:16 2005 Subject: [CF-Devel] About sounds Message-ID: <40620FC7.8090007@laposte.net> Hello. Started to add (back) sounds to Windows GTK client (but not with SDL, as been the case before). It seems there are really less sounds than before in the game: no found for firebolt, explosions, and such. Is there a compelling reason for this? I quickly browsed the code, and it seems the 'main' line sending sounds to client was commented out (server/spell_util.c:1353). Also, what would be the sampling rate & such of the sounds in 'sounds' module? I need to convert to WAV to play'em easily... Thanks :) Nicolas _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Thu Mar 25 01:20:45 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:16 2005 Subject: [CF-Devel] bugs/problems with windows server In-Reply-To: <4061D496.50903@laposte.net> References: <001d01c411ca$026fe4d0$a50a6486@informatik.unihamburg.de> <4061D496.50903@laposte.net> Message-ID: <4062884D.5030804@sonic.net> Nicolas Weeger wrote: >> 1.) The server sometimes did hang. After building a full-debug >> version, i found out, that the problem was the windows >> emulation of the gettimeofday function in "win32.c", which simply set >> "time_Info->tv_usec = timeGetTime() *1000;", >> which is wrong, since timeGetTime() returns the system >> time in milliseconds and somewhere else in the code >> there are code fragments like: "last_time->tv_usec = 0;", >> so that sleep_delta() in "time.c" sometimes tried to >> Sleep enormously long (> 4800 seconds:). >> The patch at the end of this mail fixes the problem. > > > This should probably happen also under Linux, though - no one noticed > this issue? gettimeofday is a native function in linux, since there is no issue of it using the 'broken' emulated version. Crossfire was programmed to use the calling semantics provided on unix type system, and thus it shouldn't see any problems in this area. > >> 2.) The variable "skill" is sometimes used uninitialized in >> "int kill_object(object *op,int dam, object *hitter, int type)" >> in "attack.c" (change_exp() is sometimes called there with >> skill=0xcccccccc, when doing a full debug build with VisualC++). I recently fixed this in CVS. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Thu Mar 25 01:34:32 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:16 2005 Subject: [CF-Devel] About sounds In-Reply-To: <40620FC7.8090007@laposte.net> References: <40620FC7.8090007@laposte.net> Message-ID: <40628B88.5020207@sonic.net> Nicolas Weeger wrote: > Hello. > > Started to add (back) sounds to Windows GTK client (but not with SDL, as > been the case before). > > It seems there are really less sounds than before in the game: no found > for firebolt, explosions, and such. Is there a compelling reason for > this? I quickly browsed the code, and it seems the 'main' line sending > sounds to client was commented out (server/spell_util.c:1353). With the change in spells, the sound handling for them sort of broke. Before the change, each spell had a unique number. There was a sound associated with each of those numbers. With the spell code, there is no longer a unique number per spell, so there is no way to simply identify a fireball based on the object (you can identify spells by subtype, but firebolt should obviously have a different sound than lightning bolt). The proper way to deal this is to re-do the sound system. the general idea I have is to add a new structure like: struct soundlist { char *sound_name; uint8 volume uint8 play_event ... any other flags.. struct soundlist *next; } where play_event could be set to things like SPELL_CAST, SPELL_END, APPLY, MOVE, etc.. Thus when an object is used, check to see if any of the events apply, and if so, send the appropriate sound event to the client (to speed things up, probably add something like a sound_flags to the object structure itself, and have the play_event be a bitmask, so if an object is applied, the code can simply look at the sound_flags, and only if the event there is matched, do we have to bother going through the sound list). > > Also, what would be the sampling rate & such of the sounds in 'sounds' > module? I need to convert to WAV to play'em easily... Believe they are at 11025 sample rate. I'm not sure if the sounds themselves are stereo, or if the sound module converts them to stereo when played. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Thu Mar 25 03:17:54 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:16 2005 Subject: [CF-Devel] About sounds In-Reply-To: <40628B88.5020207@sonic.net> References: <40620FC7.8090007@laposte.net> <40628B88.5020207@sonic.net> Message-ID: <4062A3C2.3060403@laposte.net> > With the change in spells, the sound handling for them sort of broke. > > Before the change, each spell had a unique number. There was a sound > associated with each of those numbers. > > With the spell code, there is no longer a unique number per spell, so > there is no way to simply identify a fireball based on the object (you > can identify spells by subtype, but firebolt should obviously have a > different sound than lightning bolt). What about sending the spell's name to the client, so it could play the 'right' sound? Like 'fireball', 'frostbolt', ... > The proper way to deal this is to re-do the sound system. > > the general idea I have is to add a new structure like: > > struct soundlist { > char *sound_name; > uint8 volume > uint8 play_event > ... any other flags.. > struct soundlist *next; > } > > where play_event could be set to things like SPELL_CAST, SPELL_END, > APPLY, MOVE, etc.. > > Thus when an object is used, check to see if any of the events apply, > and if so, send the appropriate sound event to the client (to speed > things up, probably add something like a sound_flags to the object > structure itself, and have the play_event be a bitmask, so if an object > is applied, the code can simply look at the sound_flags, and only if the > event there is matched, do we have to bother going through the sound list). Seems nice, but I don't see the need for the volume - since it's a client setting, not a server one. And, if we redo the sound structure, could I suggest adding sound direction/propagation information too? This way, in the future, clients could add doppler effects to sounds, making'em coming towards, stuff like that. > Believe they are at 11025 sample rate. I'm not sure if the sounds > themselves are stereo, or if the sound module converts them to stereo > when played. Many thanks. Nicolas 'Ryo' _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Thu Mar 25 08:48:39 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:16 2005 Subject: [CF-Devel] server 1.6.0? Message-ID: What should we do about getting a 1.6.0 server packed up and set. There has been a LOT of stuff since 1.5.0 and the client was packed up partly because of this so it would be nice to bring the server up to 1.6 anyway. Maybe we can polish up something and then have a nice modern package for download before we start opening new things. I believe the server is reasonably stable and I imagine a lot of folks would like a more current server package (and a distinct version containing the new skills/spell code) but maybe if we take time and everyone could mention or check for things that should be fixed but hold off on adding new stuff till this is done? _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Thu Mar 25 09:18:36 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:16 2005 Subject: [CF-Devel] server 1.6.0? In-Reply-To: References: Message-ID: <20040325151836.GV15455@laranja.org> On Thu, Mar 25, 2004 at 09:48:39AM -0500, Todd Mitchell wrote: > > What should we do about getting a 1.6.0 server packed up and set. It has been mentioned - and I agree - that the new skill sys is reason enough for calling it 2.0. Personally I would prefer to make the contributions that are piled up on my HD first :-) but that's me. []s, |alo +---- -- Those who trade freedom for security lose both and deserve neither. -- http://www.laranja.org/ mailto:lalo@laranja.org pgp key: http://www.laranja.org/pessoal/pgp GNU: never give up freedom http://www.gnu.org/ _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Thu Mar 25 09:40:50 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:16 2005 Subject: [CF-Devel] server 1.6.0? In-Reply-To: References: Message-ID: <4062FD82.9000304@laposte.net> > What should we do about getting a 1.6.0 server packed up and set. There has been a LOT of stuff since 1.5.0 and the client was packed up partly because of this so it would be nice to bring the server up to 1.6 anyway. Maybe we can polish up something and then have a nice modern package for download before we start opening new things. I believe the server is reasonably stable and I imagine a lot of folks would like a more current server package (and a distinct version containing the new skills/spell code) but maybe if we take time and everyone could mention or check for things that should be fixed but hold off on adding new stuff till this is done? I'd feel like correcting a few things here & there, like Windows-specific int64 stuff... Are there big broken things that could use fixing before release? Nicolas _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Thu Mar 25 12:44:02 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:16 2005 Subject: [CF-Devel] server 1.6.0? In-Reply-To: <4062FD82.9000304@laposte.net> References: <4062FD82.9000304@laposte.net> Message-ID: <40632872.30004@cox.net> Nicolas Weeger wrote: >> What should we do about getting a 1.6.0 server packed up and set. >> There has been a LOT of stuff since 1.5.0 and the client was packed >> up partly because of this so it would be nice to bring the server up >> to 1.6 anyway. Maybe we can polish up something and then have a nice >> modern package for download before we start opening new things. I >> believe the server is reasonably stable and I imagine a lot of folks >> would like a more current server package (and a distinct version >> containing the new skills/spell code) but maybe if we take time and >> everyone could mention or check for things that should be fixed but >> hold off on adding new stuff till this is done? > > > I'd feel like correcting a few things here & there, like > Windows-specific int64 stuff... Relevant opinion to this discussion: The most useful thing we could do to increase stability on Windows (and everything else for that matter) would be to focus on using GTK 2.0 or SDL exclusively. It would behoove us to look into focusing all our client coding resources on one client instead of keeping the current divide, since portability will be *MUCH* easier if we don't have to fight with several different code bases and above all it will make designing for the client very much simpler. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Thu Mar 25 12:58:41 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:16 2005 Subject: [CF-Devel] server 1.6.0? In-Reply-To: <40632872.30004@cox.net> References: <4062FD82.9000304@laposte.net> <40632872.30004@cox.net> Message-ID: <20040325135841.545bbae4@laptop> On Thu, 25 Mar 2004 12:44:02 -0600 Brian Angeletti wrote: > Relevant opinion to this discussion: > > The most useful thing we could do to increase stability on Windows (and > everything else for that matter) would be to focus on using GTK 2.0 or > SDL exclusively. It would behoove us to look into focusing all our > client coding resources on one client instead of keeping the current > divide, since portability will be *MUCH* easier if we don't have to > fight with several different code bases and above all it will make > designing for the client very much simpler. In my opinion, I kind-of like that divide, because there are certain things you can do with an SDL-only client that you can't do with GTK per se. Although these days I hear you can use GTK to render to a frame buffer, an SDL-only client would probably be faster on an older system than the GTK client, so there are a lot of arguments for or against either side. There are advantages to having all the resources focused on one client: * Bugs would get fixed faster * Things would be implemented faster * etc. But, there are certain advantages to having the SDL client: * It's faster on older systems * It requires less to compile * It's portable to platforms that GTK may not be Those are my 2 cents :P, Tim _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Thu Mar 25 14:01:41 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:17 2005 Subject: =?iso-8859-1?Q?Re:_Re:_[CF-Devel]_server_1.6.0=3F?= Message-ID: Umm guys - The *Server* does not use GTK, SDL or any such nonsense AFAIK... > > Relevant opinion to this discussion: > > > > The most useful thing we could do to increase stability on Windows (and > > everything else for that matter) would be to focus on using GTK 2.0 or > > SDL exclusively. It would behoove us to look into focusing all our > > client coding resources on one client instead of keeping the current > > divide, since portability will be *MUCH* easier if we don't have to > > fight with several different code bases and above all it will make > > designing for the client very much simpler. > > In my opinion, I kind-of like that divide, because there are certain things you can do with an SDL-only client that you can't do with GTK per se. Although these days I hear you can use GTK to render to a frame buffer, an SDL-only client would probably be faster on an older system than the GTK client, so there are a lot of arguments for or against either side. > > There are advantages to having all the resources focused on one client: > * Bugs would get fixed faster > * Things would be implemented faster > * etc. > > But, there are certain advantages to having the SDL client: > * It's faster on older systems > * It requires less to compile > * It's portable to platforms that GTK may not be > > > Those are my 2 cents :P, > > Tim _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Thu Mar 25 14:23:19 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:17 2005 Subject: =?iso-8859-1?Q?Re:_Re:_[CF-Devel]_server_1.6.0=3F?= Message-ID: > It has been mentioned - and I agree - that the new skill sys is > reason enough for calling it 2.0. > > Personally I would prefer to make the contributions that are > piled up on my HD first :-) but that's me. > 2.0 eh? - sure but any estimates or outstanding issues? I have a few things to do as well which is why I would like a rough estimate to know what to focus on finishing. My thoughts on what I would like to accomplish in decending order are: -fix remaining issues with large image support where single image Multipart monsters leave image artifacts, and are placed behind other objects on the map. I have to take some screen shots although I am surprised no one has remarked on this) - I consider this an outstanding issue although it may be client or server issue and if it is a client issue then should not be listed here. -Clean up old multipart arch references in maps (this would not impair a server release however it would be nice before new map tars are made) -Tweaks to Water Goddess (can wait until actual altars are are added to the maps however) -arch clean up re: consistant monster weights (nice but no rush) New stuff to consider: -variable level encounter generators -variable level random maps Ongoing: -arch clean up re: joining split images and animation cleaning -arch clean up re: consistant direction references -arch clean up re: more smoothing templates for classic image set -outstanding maps in development -documentation _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Thu Mar 25 16:07:22 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:17 2005 Subject: [CF-Devel] server 1.6.0? In-Reply-To: References: Message-ID: <4063581A.40206@cox.net> Todd Mitchell wrote: >Umm guys - >The *Server* does not use GTK, SDL or any such nonsense AFAIK... > > But of course. Nevertheless the division of Clients is also a part of the problem.... I also said "On a similar note" or somesuch. :P _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Fri Mar 26 02:09:09 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:17 2005 Subject: [CF-Devel] server 1.6.0? In-Reply-To: References: Message-ID: <4063E525.2030609@laposte.net> I'll add fixed sound support :) This is part of the game, imo, and should be fixed before a major release - maybe not for 1.6.0, but definitely for 2.0.0. Nicolas _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Fri Mar 26 02:15:58 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:17 2005 Subject: [CF-Devel] About sounds In-Reply-To: <40628B88.5020207@sonic.net> References: <40620FC7.8090007@laposte.net> <40628B88.5020207@sonic.net> Message-ID: <4063E6BE.3050905@laposte.net> Been thinking of this sound stuff, here are some ideas. We should define sounds in archetypes/treasures/artifacts: one or more lines sound : which will fill in a list of sounds. Then when a sound needs to be sent for an event, we know which file to send. Of course, this will break current clients' sound support, which use a unique identifier. But this would enable us to have multiple sounds, one per monster for instance, maybe even up to specific sounds for one specific monster (defining sounds in editor - which would then need to support that :)) Also, sounds would be considered as pictures, sendable to the client on request. But sounds are probably bigger'an images (it seems to me), so we don't want to lock the client while it's downloading a sound. One thing, which could be used for pics too, would be for the client and server to maintain a list of known images. When the client detects changes, it grabs latest server's image list, and downloads all images/sounds/other media in the 'background', without blocking play. This way, client would transparently update its data, which'll be ready when needed. Of course, still need the case when we ned to download a file before continuing (like a new pic which is visible right now). Only drawback would be to find an easy way to sync client with server, with minimum overhead. Just my 2 cents of ? :) Nicolas _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Fri Mar 26 10:09:03 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:17 2005 Subject: =?iso-8859-1?Q?Re:_Re:_[CF-Devel]_server_1.6.0=3F?= Message-ID: > I'd feel like correcting a few things here & there, like > Windows-specific int64 stuff... > > Are there big broken things that could use fixing before release? Well exactly the question- Just to refocus the thread a but here I was just asking if we could/should make a 1.6 server package to match the existing 1.6 client packages. This does not preclude a 2.0 server package and might in fact be a 2.0 server package but I was trying to get a feel for existing requirements so we can decide if we should hold off on new stuff and fix any outstanding and pressing issues or just keep on going. Things like sending spell lists (or other info) to the client and redoing the sound system I consider 'new things' not necessarily outstanding issues. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Fri Mar 26 12:23:30 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:17 2005 Subject: [CF-Devel] server 1.6.0? In-Reply-To: References: Message-ID: <200403261923.55166.d.delbecq@laposte.net> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Just adding my stuffs to the thread, am currently working on the sever to transform all sprintf like calls to snprintf version. This take time but this should prevent lots of memory corruptions. And while doing this i saw LOTS of potential bug and even possible server attacks :s So may i at least finish it? this will take at least 2 more weeks to finish, i have only time during week ends and my week ends are busy. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFAZHUoHHGOa1Q2wXwRAnKhAJ4n4H034+QGF/WShnOxoyPqYGVUcwCg8i5f fziaSnZiJjD5+y+HK27qx7Y= =5hFV -----END PGP SIGNATURE----- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Fri Mar 26 15:25:15 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:17 2005 Subject: [CF-Devel] server 1.6.0? In-Reply-To: <200403261923.55166.d.delbecq@laposte.net> References: <200403261923.55166.d.delbecq@laposte.net> Message-ID: <40649FBB.4030409@laposte.net> > Just adding my stuffs to the thread, am currently working on the sever to > transform all > sprintf like calls > to snprintf version. fyi, i'll soon commit changed sprintf/sscanf for windows, which uses %I64d instead of %lld. I hope this won't conflit with your changes... Nicolas _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Fri Mar 26 17:52:28 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:17 2005 Subject: [CF-Devel] server 1.6.0? In-Reply-To: <200403261923.55166.d.delbecq@laposte.net> References: <200403261923.55166.d.delbecq@laposte.net> Message-ID: <1080345148.665.29.camel@oberon.kameria> > > Just adding my stuffs to the thread, am currently working on the sever to > transform all > sprintf like calls > to snprintf version. > > This take time but this should prevent lots of memory corruptions. And while > doing this i saw LOTS of potential bug and even possible server attacks :s > > So may i at least finish it? this will take at least 2 more weeks to finish, i > have only time during week ends and my week ends are busy. Great - that's the type of activity I was hoping to flush out into the open and rough estimate to boot, thanks. I have no say in any schedules or anything and don't even advocate one except in the general sense to help us plan a bit. I just want to suggest a line between things to wrap up and things to quene up for the next round since the 1.5.0 server package is a bit long in the tooth and people who don't use CVS for whatever reason can't really get a crack at playing (and testing!) much of the newer stuff. I am really just speaking of a new server tarball on sourceforge here (and maybe some distro packages based off it) not anything much more profound than that. If there is a lot of goodies and stuff people want try to include in a 2.0 release (I imagine 2.0 would want to update both server side and client packages) this would be fine with me too. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sat Mar 27 09:28:30 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:17 2005 Subject: [CF-Devel] server 1.6.0? In-Reply-To: <40649FBB.4030409@laposte.net> Message-ID: On 26-Mar-2004 Nicolas Weeger wrote: > fyi, i'll soon commit changed sprintf/sscanf for windows, which uses %I64d > instead of %lld. I hope this won't conflit with your changes... Curious.. are you doing those inside ifdefs? I don't think my OS supports that.. and I've never heard of "I" before as a printf argument. My OS supports %qd and %lld. I haven't looked at POSIX though.. --- Tim Rightnour NetBSD: Free multi-architecture OS http://www.netbsd.org/ NetBSD supported hardware database: http://mail-index.netbsd.org/cgi-bin/hw.cgi _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Sat Mar 27 09:44:37 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:17 2005 Subject: [CF-Devel] server 1.6.0? In-Reply-To: References: Message-ID: <4065A165.8050402@laposte.net> > Curious.. are you doing those inside ifdefs? I don't think my OS supports > that.. and I've never heard of "I" before as a printf argument. My OS supports > %qd and %lld. I haven't looked at POSIX though.. Yes, I'm doing #ifndef WIN32 #else #endif everywhere. Neither are parts of the ANSI standard, so... Committed those changes yesterday, btw. Nicolas _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Mon Mar 29 01:19:01 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:17 2005 Subject: [CF-Devel] server 1.6.0? In-Reply-To: <1080345148.665.29.camel@oberon.kameria> References: <200403261923.55166.d.delbecq@laposte.net> <1080345148.665.29.camel@oberon.kameria> Message-ID: <4067CDE5.50204@sonic.net> Just to follow up on this - There is always a list of 'should be fixed/done before x.y.z release'. The general problem is that tends to be very difficult to ever meet. this is because often times one things leads to another. Doing X then leads that Y should be done sooner, and not later. And there is always the potential/likelihood that someone works on/checks in their pet project, with associated set of bugs. In the past, I've generally just done an intermediate release (1.40, 1.50, etc) when the number of bugs seemed relatively low and there has been enough time since the last major checkins to make sure any bugs have been sorted out from that. Which sort of makes waiting for big commits difficult - doing so will delay any release cycle - you have to wait for the commit to be ready, and then have to wait some amount of time before making an actual release. As for release numbering and features, it could be useful to make a roadmap. However, it then might become the question of do you target for releasing by some data (eg, 2.0 by end of the year or something), or by list of features (2.0 will have ....) _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 30 02:15:38 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:17 2005 Subject: [CF-Devel] About sounds In-Reply-To: <4062A3C2.3060403@laposte.net> References: <40620FC7.8090007@laposte.net> <40628B88.5020207@sonic.net> <4062A3C2.3060403@laposte.net> Message-ID: <40692CAA.2020306@sonic.net> Nicolas Weeger wrote: > > What about sending the spell's name to the client, so it could play the > 'right' sound? Like 'fireball', 'frostbolt', ... This isn't a good long term solution. Suppose I add a new spell 'large firebolt'. The client may know what to do with firebolt, but when it sees 'large firebolt' doesn't really know what sound to play (the designer of the spell may have envisioned using the same sound as firebolt). Now one can try to come up with clever matching logic, etc, but in the end, including the sound to play someplace with the object is the way to go. > > Seems nice, but I don't see the need for the volume - since it's a client > setting, not a server one. The idea of volume is that you may want to use the same sound file for multiple events, but vary the intensity. Such a case could be for the spells which have a small/medium/large variety - perhaps same sound effect, with the large one being louder than the small one. > And, if we redo the sound structure, could I suggest adding sound > direction/propagation information too? This way, in the future, clients could > add doppler effects to sounds, making'em coming towards, stuff like that. Can you provide a better example? Currently, when a sound is played, the location of the sound (relative to the player) is sent to the client, so the client might know that the offset is -5, 5 to the player, and adjust accordingly in terms of volume as well as stereo effect. The current sound interface only presumes a 2 channel system - I suppose if someone cared, they could in fact do a 4 channel setup (left/right/front/back). > Been thinking of this sound stuff, here are some ideas. > > We should define sounds in archetypes/treasures/artifacts: one or more lines > sound : which will fill in a list of sounds. > > Then when a sound needs to be sent for an event, we know which file to send. Well, if the sound structure as mentioned previously is used, that includes the sound name. So at collection time, a 'sounds' file could be written that associates each mentioned sound file with a number, much like the images. The sound stuff could then be dealt with much like the images are, however, I'd personally say that a pure cache approach is used (at startup, the client gets the number->name mapping of all the sounds - in generally, I'd expect that list to never be that big, so shouldn't hurt startup that much). Then, after that, the server references all sounds by number. If the client doesn't have a sound, it can request it either at startup (when it gets all the sound names), later on (when actually used) or never (if sound support is turned off for example). As I think about it, it could be nice to extend that sound mapping to be something like number:filename:printable name. Thus, the client could always get the sound notifications, and depending on settings, decide to actually make a sound, or print something like 'you hear a fireball off to the west' (where fireball is the printable name). I personally don't think a push idea of sending the sound files (unrequested) to the client is a good idea. The sound files are in most cases much larger than images are (most images are just a couple K, many of the sound files are in the 10-20K range). But in addition, I'd expect the sound files to be much more static. EG, new sounds may get added, but it is unlikely that someone will 'redo' the gong.raw file, so your almost certainly pushing redundant data. And in fact, the sounds should probably be included with the client. > > Of course, this will break current clients' sound support, which use a unique > identifier. But this would enable us to have multiple sounds, one per monster > for instance, maybe even up to specific sounds for one specific monster > (defining sounds in editor - which would then need to support that :)) This is why I mentioned the idea of the sound structure. In addition to knowing that sound X is associated with an object, you have to know how it is associated. Thus, you could have something like: sound_move walk(100) sound_attack clang(80) and so on. I suppose if you want different sounds for the same event, you could do them as a list, like perhaps: sound_move walk(100),pitterpatter(40),stomp(80) (the number in parens is to denote relative volume). However, you then have a few more issues: 1) in such a list, do you cycle the sounds (walk, pitterpatter, stomp), or whenever one should be played, do you choose random? And if the later, do you then want to add some weighting criteria (90% of the time, do the walk, and 5% do pitterpatter and 5% stomp for example). 2) Potentially some form of how often to play the sound is needed. For example, many sounds laster longer than 1 tick. So if you have something that is happening every tick, you don't want to play a sound every tick - you want to somehow denote 'wait 5 ticks before playing again'. But now if the different sounds have different lenghts, you then need to denote play length for each sound also. One thought I have is something like multiple lines - the format could be like: And so if you want multiple sounds, something like this may be perfectly valid for objects: sound_apply apply1 50 ... sound_apply apply2 80 ... sound_apply apply3 90 ... And then just have the sound structure be smart enough to know there are more than one sound associated with an apply event. > > Also, sounds would be considered as pictures, sendable to the client on > request. But sounds are probably bigger'an images (it seems to me), so we > don't want to lock the client while it's downloading a sound. There may not be a really easy way to avoid it. The easiest is to have a seperate stream to get the sound - however, if you're going to do that, might as well use http or ftp so that nothing special is needed (thus, you could point your client to any number of ftp servers that have the sound files). However, that only half fixes the problem - if you're on a slow link, the length of time it takes to download the sound on that seperate stream will still deprive the client/server connection bandwidth. If you're on a slow connection, this could still be a problem (connection appears lagged). If you're on a very fast connection, the time it takes to download is pretty insignifcant (if my math is correct, to download a 20 K sound over a 1.5 mbs dsl link or the like is about 1/8th of a second). However, the bigger issues are that sounds are not as critical as images are. So IMO, saying if you want sounds, download the sound file from the web site is perfectly valid - if you're sound file is slightly out of date, its almost certainly not going to cause the game to be unplayable like missing some number of images could be. I'd also note that since the format of the sound archive would be very simple (tarred/zipped up directory) that making new releases would be quite trivial - no code changes, or dependency of code changes like you can get with the arch files, so should be trivial to keep up to date archives around (but as said above, I also don't expect it to change a whole bunch). > > One thing, which could be used for pics too, would be for the client and > server to maintain a list of known images. When the client detects changes, > it grabs latest server's image list, and downloads all images/sounds/other > media in the 'background', without blocking play. This way, client would > transparently update its data, which'll be ready when needed. Of course, > still need the case when we ned to download a file before continuing (like a > new pic which is visible right now). Only drawback would be to find an easy > way to sync client with server, with minimum overhead. Well, there is code in place to sync up before play. I'm personally not all that interested in seeing code that syncs up during play - that adds a lot of extra complexity - certainly to the client, in handling multiple incoming sockets, making sure all the client is in sync, etc. And potentially the same issue on the server (associate another socket connection with that client, have to deal with state on it also in that the server can't ever perform blocking operations, so it has to track where it is in the process, wait for buffers to drain, etc). And all of that means that it isn't as efficient tranferring data as a program designed to do so (like ftp). But there is also those edge cases. The current method of syncing everything before play start (or during play through the current in band connection) isn't that big a deal if only a few images need to be updated. If your images are completely out of date, the method crossfire uses is much less efficient than grabbing an up to date set via ftp. If anything, the best method would be for each crossfire server to have an anonymous ftp server associated with it, and use ftp to get the data. The server installation could get modified to have something like a --with-ftp-directory=... option, which is set, the 'make install' copies the relevant files to the ftp directory. Scripts (or maybe builtin functionality if a GPL ftp library is included) would then get the files - this then removes all the image and sound and any other downloading functionality out of the server. The problem is that still doesn't help the case where 99% of your images are correct - you really do want to be able to download just those 50 images that need updating, and not the entire collection. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 30 08:17:21 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:18 2005 Subject: [CF-Devel] Win32 scripting support (+ patch) Message-ID: <002501c41661$b7ae2aa0$0100000a@archaios> All: I have added Win32 scripting support. As tested, it works; however, due to the nature of pipe support in Windows, I/O is not buffered, and as soon as the pipe is closed (i.e. through process termination), the input disappears; this will break some of the examples, although a more standard script based on a main loop will work just fine. scriptkill, scripts, script, et al all work fine as tested on Windows XP. Scripts utilise the standard Win32 console functions. Diff is against latest CVS (Wed Mar 31 2004 12:11AM +1000 GMT) -archaios -------------- next part -------------- A non-text attachment was scrubbed... Name: archaios.win32.scripting.diff Type: application/octet-stream Size: 39036 bytes Desc: not available Url : http://shadowknight.real-time.com/pipermail/crossfire/attachments/20040331/1a5ba936/archaios.win32.scripting.obj -------------- next part -------------- _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 30 08:33:51 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:18 2005 Subject: [CF-Devel] Win32 scripting support (+ patch) In-Reply-To: <002501c41661$b7ae2aa0$0100000a@archaios> References: <002501c41661$b7ae2aa0$0100000a@archaios> Message-ID: <4069854F.3090305@laposte.net> David McIlwraith a ?crit : > All: > > I have added Win32 scripting support. As tested, it > works; however, due to the nature of pipe support in > Windows, I/O is not buffered, and as soon as the pipe is > closed (i.e. through process termination), the input disappears; this will > break some of the > examples, although a more standard script based on a > main loop will work just fine. scriptkill, scripts, script, et > al all work fine as tested on Windows XP. Scripts utilise > the standard Win32 console functions. > > Diff is against latest CVS (Wed Mar 31 2004 12:11AM > +1000 GMT) > > -archaios fun, i was working on that too lol thanks for the patch, i'll look at it. Nicolas _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Tue Mar 30 02:46:41 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:18 2005 Subject: [CF-Devel] About sounds In-Reply-To: <40692CAA.2020306@sonic.net> References: <40620FC7.8090007@laposte.net> <40628B88.5020207@sonic.net> <4062A3C2.3060403@laposte.net> <40692CAA.2020306@sonic.net> Message-ID: <406933F1.7020700@laposte.net> > The idea of volume is that you may want to use the same sound file for > multiple > events, but vary the intensity. Ok, got a point there, didn't think of that :) > Can you provide a better example? Currently, when a sound is played, the > location of the sound (relative to the player) is sent to the client, so > the > client might know that the offset is -5, 5 to the player, and adjust > accordingly > in terms of volume as well as stereo effect. The current sound > interface only > presumes a 2 channel system - I suppose if someone cared, they could in > fact do > a 4 channel setup (left/right/front/back). I was thinking something like 'position, propagation direction'. This way, client could apply doppler effect, so player knows which way the spell is going. Ie hear it getting closer, or away, or in a different direction. Imagine hearing a big fireball coming towards you ^_^ > The sound stuff could then be dealt with much like the images are, > however, I'd personally say that a pure cache approach is used (at > something like 'you hear a fireball off to the west' (where fireball is > the printable name). That sounds like a nice idea. But that means we need a sound list (to match filename/name, duration) and link it to archetypes. > I personally don't think a push idea of sending the sound files > (unrequested) to the client is a good idea. The sound files are in most > cases much larger than images are (most images are just a couple K, many > of the sound files are in the 10-20K range). But in addition, I'd > expect the sound files to be much more static. EG, new sounds may get > added, but it is unlikely that someone will 'redo' the gong.raw file, so > your almost certainly pushing redundant data. And in fact, the sounds > should probably be included with the client. Agree there on pushing. But still we could find a way to let the client download from server. Maybe something like: client asks for sound file fireball.raw, bytes 2000 to 2999, and server sends that back? This way the client would have the responsibility of downloading (and adjusting speed, 100b or 1000b at a time, with a cap), server wouldn't care. But it'd require opening/closing the sound file often for the server. > This is why I mentioned the idea of the sound structure. In addition > to knowing that sound X is associated with an object, you have to know > how it is associated. Thus, you could have something like: > > sound_move walk(100) > sound_attack clang(80) > > and so on. I suppose if you want different sounds for the same event, > you could do them as a list, like perhaps: Now that'd be a great idea, to have different sounds for same effect. Though I'd rather see some archetype lines line sound_event apply name volume duration instead of sound_apply name <...> Makes it easier to add new events without having to change parsing logic. In the same topic (but different thing), I'm thinking of tweaking the loading parser to be able to write 'type KEY' or 'type DOOR' instead of 'type '. Nicolas _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 31 01:38:34 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:18 2005 Subject: [CF-Devel] About sounds In-Reply-To: <406933F1.7020700@laposte.net> References: <40620FC7.8090007@laposte.net> <40628B88.5020207@sonic.net> <4062A3C2.3060403@laposte.net> <40692CAA.2020306@sonic.net> <406933F1.7020700@laposte.net> Message-ID: <406A757A.5050708@sonic.net> Nicolas Weeger wrote: > > I was thinking something like 'position, propagation direction'. This > way, client could apply doppler effect, so player knows which way the > spell is going. Ie hear it getting closer, or away, or in a different > direction. Imagine hearing a big fireball coming towards you ^_^ Well, that could certainly be done - in addition to relative position of the sound, the direction it is heading could be included in info sent to the client. I do have to admit that I don't know enough about sound processing to know how trivial/hard it would be to do those doplar effects. The thing you'd really want to do, which is perhaps harder, is for the sounds to change intensity as they move. But this then requires knowing how fast the object emanating the sound should be move. For example, that lightning bolt should be getting louder as it gets closer. However, the problem is that if the sound is played when cast, it gets played from where it is cast - so to know it is getting closer gets trickier - you only want to play that sound once. This gets even more complicated as the player himself may be moving, which should effect the accoustices (if the player is moving away, the sound shouldn't be getting louder). > That sounds like a nice idea. > But that means we need a sound list (to match filename/name, duration) > and link it to archetypes. A sound list can easily be generated as part of the arch collection, just like the images are. After all, no place in the arch's are image numbers referenced - just names. during the collection, it then maps the names to numbers, and within the server itself, numbers are used for everything. Same can happen equally easily with sounds - it can generate a list of all referenced sound names, and writes out a file with numbers. > Agree there on pushing. But still we could find a way to let the client > download from server. Maybe something like: client asks for sound file > fireball.raw, bytes 2000 to 2999, and server sends that back? This way > the client would have the responsibility of downloading (and adjusting > speed, 100b or 1000b at a time, with a cap), server wouldn't care. But > it'd require opening/closing the sound file often for the server. The open/closes get to be a problem (note that for the images, it loads them all into memory). I suppose if all the state is stored on the client side, not a big deal, but seems to add a lot of complication. > > Now that'd be a great idea, to have different sounds for same effect. > > Though I'd rather see some archetype lines line > sound_event apply name volume duration > instead of > sound_apply name <...> > > Makes it easier to add new events without having to change parsing logic. Doesn't really make any difference. If now sound_events are added, the parser has to get updated to know that there is a 'spell_expire' event or whatever. So whether it is listed as 'sound_spell_expire' or 'sound_event spell_expire', the parser still has to deal with that to convert that to the proper numerical data. After all, within all the code itself, there will be various known events, eg, apply, spell_cast, object_activate, etc, which are mapped to various things. Also, look at how the body_ stuff is handled in the client - very simple and could be done the same way with the sound stuff. > > In the same topic (but different thing), I'm thinking of tweaking the > loading parser to be able to write 'type KEY' or 'type DOOR' instead of > 'type '. I take it be able to ready those type of things, not write them. I'm much less concerned about the write logic (although the write logic is easier). However, for some aspects, like temp maps, you probably want the format that is faster to parse, which is integer. So for the write logic, probably want a flag like 'write as numeric values (which would be used for the swapped out temp maps)' and 'write as text', which might be used for things like player files. However, if I was going to choose the one thing to convert to string form, it would be the attack types and spell paths. Figuring out those bitmaps is non trivial in most cases (even if you look at attack.h, you typically need to do some math to know what attacktype 391 really is). For the basic types, that's much easier to look up - no math required. _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel From crossfire-devel at archives.real-time.com Wed Mar 31 11:18:28 2004 From: crossfire-devel at archives.real-time.com (crossfire-devel@archives.real-time.com) Date: Thu Jan 13 17:56:18 2005 Subject: [CF-Devel] Win32 scripting support (+ patch) In-Reply-To: <002501c41661$b7ae2aa0$0100000a@archaios> References: <002501c41661$b7ae2aa0$0100000a@archaios> Message-ID: <406AFD64.5040704@laposte.net> Ok, included your script, with a few tweaks. It works, tested with dumb batch files. But perl for instance doesn't correctly handle stdin/out redirect, it seems (or i'm missing something). If I may suggest? * try to put together Win & Linux parts when possible. From what I saw, most of the script code is common to the 2, so better to use a few #ifdef WIN32 here and there for specific parts than duplicate whole code * to diff, don't diff your file against checkedout cvs. Get CVS tree, modify directly files, when it works do 'cvs --lf diff -u > patch.diff'. Not that a big deal though :) Many thanks for the patch. I'll try to figure that perl issue, then i'll commit it. And before you start playing with that, I'm working on sound support! :) Ryo _______________________________________________ crossfire-devel mailing list crossfire-devel@lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel