Re: [crossfire] Classes

2010-05-28 Thread Brendan Lally
On Thu, 27 May 2010 22:03:50 -0700
Mark Wedel mwe...@sonic.net wrote:

   For starting skills, should skill tools be done away with (eg,
 talismans, holy symbols?)  My take, which may be wrong, is more often
 than not they are annoying/disliked, and I'm not sure what is really
 gained by having them vs giving the characters the native skills.
 Thoughts?

I'd agree with the skill tools bit, mostly they are just clutter in my
character's inventory until I find a 'proper' skill scroll (which I
would typically buy anyway because they are cheap enough).

Maybe talismans could remain as a form of amulet that gives a skill
boost to the spell schools in question? If they were made rare enough*,
then this would be a way to make it much easier to 'start' a
wizard-style character. 
Give a talisman as starting equipment to each mage that increases the
effective level of their skill by 3 levels (probably capped at level
15 or so). They would then immediately be able to cast 4th level
spells whereas non-specialists are forced to start with first level
spells. 
If the first area of effect spells are made available at levels 3
or 4 then it will be very slow going for anyone who isn't a wizard by
trade.

* with appropriately high-level quests which fighter-style characters
  could attempt when they are strong enough to think about generalising.

   Related to the skills discussion, maybe sense magic  sense curse
 skills go away, and instead become special bonuses of praying and
 wizardry skills?

Or maybe they should just become an extension of the identification
skills? So if I have an enchanted sword and use my smithery skill on
it, there are three possible outcomes:
1) I fail completely and think it is a mundane sword.
2) I know there is something magical about it but don't know what.
3) I find out everything there is to know about it.

If the skill is lacking, then you could still have an unmodified roll
against INT and WIS to try and determine 2.

Brendan.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Attributes/Stats

2010-05-14 Thread Brendan Lally
Sorry, just noticed that my reply to this originally was sent to the
wrong place

On Wed, 12 May 2010 23:49:31 -0700
Mark Wedel mwe...@sonic.net wrote:

 On 05/12/10 03:58 PM, Brendan Lally wrote:
  On Wed, 12 May 2010 19:11:14 +0200
  Nicolas Weegernicolas.wee...@laposte.net  wrote:
 
 Never saw any response, but had some other musings.  Changing
  subject to use attributes, since that is a bit less general than
  statistics, which can mean almost anything.
 
  Related, Brendan started a page at
  http://wiki.metalforge.net/doku.php/user:cavesomething:possible_stat_values
  listing ideas for combat rewriting.
 
  Under the kind of idea I was describing there, then stats like Pow,
  Wis and Int could give bonuses to different resist points (including
  negative resistances).
 
  I've described that in more detail at:
  http://wiki.metalforge.net/doku.php/user:cavesomething:resistances
  (this page is linked to from the one Nicolas referenced above)
 
  Hopefully a fighter character would think twice about putting 1
  in INT or WIS if it guaranteed double or triple damage on almost
  every magic attack used against them.
 
   The one issue I sort of see with that is a lot of times
 fire/electricity/cold are not magical in nature.  So use int/pow/wis
 for a resistance on them seems a bit misplaced.

Yeah, I can see why that'd be the case, I guess really it is a question
of balancing what makes sense with what makes the stats work sensibly,
it might be that part of the answer to that is to alter some attack
types for existing weapons/spells etc.

   However, problem in that case is that if say fire is Dex, and magic
 is Pow, if I have a 20 dex and 1 pow, that is the same damage as if I
 have a 11 dex and 10 Pow.  If I'm a fighter type, in that case, I'd
 probably still like the high dex/low pow - result is the same, but
 high dex would help me out more the rest of the time.

Could do something like the geometric rather than arithmetic mean, in
that case, the 'average' of 11 and 10 is still roughly 10 1/2, the
average of 20 and 1 is 4 1/2 (substantially worse).

If that isn't an extreme enough effect, could use the harmonic mean,
that would really punish having uneven stats.

   However, that table is interesting, unfortunately it does no
 represent all the stats very well.  Cha still has no role.

Yeah, I don't think that's anything like a final table, and certainly
don't think it's properly balanced for the attack types that are in use.

Probably there needs to be some proper analysis done of the monsters
currently in the game (don't know if CRE can help with that - something
like total damage dealt by type for all instances of all monsters in
all static maps would give a good idea of the relative importance of
each attack type for the player).

   With that, I would make some general changes:
 Magic: Pow

Or maybe separate magic attacks into arcane and divine magic, with one
based on the average of Pow  Int the other Pow  Wis? (This'd require
*lots* of item changes, but then so would most everything else
item-related).

 Fire/Cold/Electricity: Dex (on idea nimbleness avoids damage).  I

The reason I avoided using Dex mostly is because it is tied to the idea
of armour class. 
The full description of how I would redefine combat is on the first wiki
page linked above, but the short version is:
1) Roll an attack number (based on the object doing the attacking) and a
defence number (based on armour class) 
2) Consider a hit when the attack number is greater than the defence
number. 
3) Then damage is scaled to the ratio [attack-defence]:[resist
points]

Under such a setup then a high dex gives a higher armour class which
should typically increase the defence roll, and reduce the
number and 'strength' of the hits that are taken. (and this would be
true for all attack types)

Actually avoid damage from them once a hit is scored, should probably
be based on another stat (otherwise Dex counts twice).

 Drain, Turn Undead, Fear, Death, Life Stealing: Cha - you resist the
 effect from happening.

Ok, those are probably attack types where Cha could be made to matter,
(although there might need to be some lore changes to justify some
of those in game-terms)

Brendan

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Attributes/Stats

2010-05-14 Thread Brendan Lally
On Thu, 13 May 2010 22:51:55 -0700
Mark Wedel mwe...@sonic.net wrote:

   Exactly how potion improvement works is a bit different
 discussion.  One thought is a characters first 10 potions are sure to
 work, and potions after that have some reduced chance (maybe -10% for
 each potion, so potion 11 is 90%, potion 12 is 80%, etc, to a minimum
 chance of 20%).  These numbers could be adjusted for what is
 considered appropriate (number of potions sure to work, reduction in
 probability, etc).

Currently, improvement potions are useless once a given number have
been used and level array has been met.

One suggestion for how to handle improvement potions which wouldn't have
that issue, is as follows:

Firstly, don't roll primary stat improvements, simply generate them to
always be the same, (so something like gain 
(Con/4) HP/level,
(Pow/7)+(Int/7) SP/Level, 
(Wis/7)+(Pow/7) Grace/Level 
With plus 1 when remainder  level% (4 or 7 as appropriate))

Those figures may well need adjusting depending on how many stat points
are available in practice, and it may be worth defining a starting
bonus, so level 1 characters aren't extremely weak.

I am thinking of two effects:

Firstly, there are the h/s/g points that the player has, and the
points they would have if their stats had been high all along

- So for example, If I play a level 1 character with 6 Con, reach level
10, then boost up to 14 con, I would have 20 less HP than if I had
started with 15 con.

Improvement potions could then rectify the gap there, so boosting the
primary stats as though the gain were retrospective. - This would mean
that any time a player gained a stat, they would want improvement
potions. At high levels, (say when a player is level 80-odd
and gained a stat), they would want /lots/ of improvement potions.

Secondly, at every level up, have a bonus 1 HP/SP/Grace that could
be gained, store this as 'potential Max HP/SP/Grace' (probably as an
extra living struct on the player) and then when an improvement potion
is used, have a chance (based on how much potential has already been
granted) to transfer 1 point of potential Max HP/SP/Grace into 'real'
Max HP/SP/Grace. (use the current potential 'current' HP/SP/Grace
figures to store the amount that was transferred)).

This removes the need for the level array tracking and gives pretty
well defined results for characters, there is never any need for luck
in character development, and boosting Con later rather than
earlier is not much worse in the long term (other than affecting how
many improvement potions are needed).

Brendan.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Attributes/Stats

2010-05-12 Thread Brendan Lally
On Wed, 12 May 2010 19:11:14 +0200
Nicolas Weeger nicolas.wee...@laposte.net wrote:

Never saw any response, but had some other musings.  Changing
  subject to use attributes, since that is a bit less general than
  statistics, which can mean almost anything.
 
 Related, Brendan started a page at 
 http://wiki.metalforge.net/doku.php/user:cavesomething:possible_stat_values 
 listing ideas for combat rewriting.
  
If one looks at these descriptions, one can see that spellcasters
  have a tougher time on stats than fighters - for fighters, pretty
  simple - Str, Con, Dex, Cha, Wis, Int, Pow, and the last 4 could be
  1 and it wouldn't hurt the fighter much.

 What about rebalancing by making Wis or Int more useful for fighters?
 Something like 'your armor will communicate to you if you're
 intelligent enough, to help you more'.
 Or some way to make fighters pay if they have too low Wis or Int or
 Pow. Use Pow to resist some attacktypes?

Under the kind of idea I was describing there, then stats like Pow, Wis
and Int could give bonuses to different resist points (including
negative resistances).

I've described that in more detail at:
http://wiki.metalforge.net/doku.php/user:cavesomething:resistances
(this page is linked to from the one Nicolas referenced above)

Hopefully a fighter character would think twice about putting 1
in INT or WIS if it guaranteed double or triple damage on almost every
magic attack used against them.

Brendan


signature.asc
Description: PGP signature
___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Quest system - Error reporting needs work

2010-05-11 Thread Brendan Lally
On Mon, 10 May 2010 22:45:03 -0700
Mark Wedel mwe...@sonic.net wrote:

   Since the quest system (and some other core functionality) is using 
 python/other plugins, should the configure check be changed so that
 configure errors out if the python libraries are not available (eg,
 will be unable to compile the plugin)

I think I would prefer that to happen, or at least require it to be
specifically disabled if the server wants to run without it. (ie
if a server admin wants to run ./configure --without-python, then I'd
consider that to be ok, they can either ignore breakage or
disable/replace maps. I don't think knotwork is making much use of
python in his crossciv mapset for instance)

   Most of the plugins add functionality that is not 'core' (for lack
 of better term), but I would put quests into a core functionality
 area (especially if these replace the mechanisms currently in the
 game that do not require plugins).

As it is, even ignoring the quest system, there are a number of maps in
the standard set that don't behave sensibly without python - the mad
monk in scorn, the banking system and the post offices are all obvious
examples. 
 
Brendan

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Quest system - Error reporting needs work

2010-05-07 Thread Brendan Lally
On Fri, 7 May 2010 02:05:16 -0500
Kevin Bulgrien kbulgr...@att.net wrote:

 I tried to play test some of the new quests tonight and nothing
 worked.  None of the dialog paths did anything.  I could not get past
 go.

Having looked at this a couple of hours ago, the token check I had was
bad, and failed with multiple token options, this was a regression
caused by my breaking out the dialog actions into separate files and
I've now fixed this.

It isn't something I hadn't picked up before because not many dialogs
use tokens in that way, thank you for reporting it.
 
 Something needs work.  So digging around, I find:
 
   python/dialog/dialog_check.py
 
 I decide to see what it does:
 
   $ python python/dialog/dialog_check.py scorn/kar/gork.msg
 Traceback (most recent call last):
   File python/dialog/dialog_check.py, line 11, in module
 import cjson
 ImportError: No module named cjson

When you run the npc_dialog script as part of the server process then
it runs through the cfpython plugin which includes cjson as part of the
source tree, it gets be compiled at the same time the cfpython
plugin is (if it weren't you'd see a similar message in your server
output)

This doesn't add cjson to the normally available pool of python
libraries, so running the dialog_check.py script would require that you
have cjson installed for python normally. (there isn't really a good
way around this as far as I can see, from the maps/ folder there isn't
a clear idea of where crossfire plugins are installed - I suppose
crossfire could install cjson globally, but that will probably cause
more problems than it would solve).

 
 Ah...
 
 Yeah, that should be reported to the server admin as a major error.
 If the quest system is going to start depending on this, then
 packaging, etc. needs to make sure people know what is required to
 get basics of the game operational.  So in my case, the package is
 probably python-cjson...

The dialog_check script isn't really part of the basics of the game, it
is a tool I've created for my own purposes while writing dialogs which
others may find useful too, anyone who isn't a map-maker
writing npc dialog shouldn't need to care about it (and anyone running
into characters with dialogs should find that the cfpython version of
json works correctly).
 
 So then I wonder if the player shouldn't also be told too...

There may still be a question around player feedback on errors, I'm not
sure what the best way to approach that is, mostly because it is
sometimes difficult to define what an error is - in some cases having
no matches to a set of rules is a bad thing, in others, it might be
fine.
 
 Let's try again...
 
 :-)
 
 # urpmi python-cjson
 
 [trunk]$ python python/dialog/dialog_check.py scorn/kar/gork.msg
 Error: No script to support action:  settoken Expected:
 post/settoken.py ERROR: verification of action file
 post/settoken.py  failed for rule 1  condition  ['settoken',
 'gork_speak', 'hoard'] ...
 
 Gaack!
 
 [trunk] cd python/dialog
 [dialog]$ python dialog_check.py ../../scorn/kar/gork.msg
 checked  9 rules from file ../../scorn/kar/gork.msg Found  0  errors
 and  0 warnings
 
 Ok...
 
 Umm... its a computer.  Can't it figure out where to look for its
 stuff? It's only relative path...

Yeah, that script does still need a bit of work in terms of figuring
out where to look for things. (as well as extending the checking to
verify that named quests exist, etc), I've committed it now because it
is still a lot nicer than trying to navigate through maps to where a
character is found, trying to speak to them and finding that there was
a typo in the .msg file.

Brendan.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


[crossfire] Pickup Drop Event expansion

2010-04-29 Thread Brendan Lally
Hi All,

Quite a minor patch this, but one that has an impact on script/map
compatibility, so I figure it should probably go here.

https://sourceforge.net/tracker/?group_id=13833atid=313833

This patch changes the meaning of the return types from event_pickup
and event_drop.

The initial motivation for this was in developing an implementation of
draughts (something which is still at quite an early stage) and needing
to be able to prevent an item from being picked up under certain
conditions (ie by the player playing the other colour). The current
behaviour of event pickup isn't helpful for this because the item
disappears if the pickup fails.

So what I have done is altered the meaning of the return values, rather
than 0 meaning 'item may be picked up' and non-zero meaning 'item may
not be picked up' I have 0 meaning 'item may be picked up' negative
meaning 'item will disappear rather than being picked up' and positive
meaning 'item will stay where it is'

Because picking up and dropping items are opposing actions, it follows
that they should have the same relative meaning for their return types,
hence event_drop is altered too.

The only immediate effects of this will be to give a cleaner way for
QuestEssentialUntil.py to handle item dropping (returning negative and
writing a custom message rather than setting start equip and showing
the default 'the gods who lent it to you' message) Although I think
navar_midane_pickup.py might need amended also, and possibly also
cf_darcap.

Brendan.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] skill window

2010-04-20 Thread Brendan Lally
On Tue, 20 Apr 2010 00:18:27 -0500
Kevin Bulgrien kbulgr...@att.net wrote:

 I imagine that
 the intent was to set up some kind of feedback mechanism to help
 client development. 

Pretty much, and also allow a way to determine if there is a desire for
new layouts to be created (the point of making the wiki comment that I
did was that if there was anyone who thought along similar lines, then
that would give me sufficient reason to create it).

 I do hope to move along and be over with
 this, 

Absolutely. I'm sorry that a lot of this discussion has generated more
heat than light, and I wish to apologise for the role I have played in
that.
In retrospect I should have asked the 'how are client layouts being
updated now' question and then left the 'how can client layouts evolve
and be maintained over time' issue for another thread at a later
date. I am also now of the view that my earlier proposal was
over-engineered.

 I will be more than happy to rework a .glade
 to your specifications, and plan to do so based on what I saw on the
 wiki.

I appreciate the offer, but please don't feel like there is a need to
do so for my sake. There are lots of UI changes that ought to
take place over the next few months in order to make it easier to use
some of the existing game features, and these may well require
additional thought in terms of how an interface layout should represent
them. As such, it is likely that my local copies of the glade files
will end up being a bit of a mess as I test things.

To give you some idea of what I am thinking of:

Medium term (ie, after the next release) I am looking at:
* A 'knowledge browser' that doesn't involve typing in numbers to recall
knowledge (preferably one that is ordered into categories, and
somewhat crosslinked - ie, clicking an ingredient in a recipe should
show you a recipe to make that ingredient if you know one).
* A 'quest log' that will show information about current and completed
  quests.

As I'm thinking currently, these might go into the 'player' menu,

Longer-Term I am also thinking in terms of:
* A nicer interface to the 'who' command, so that it brings up a list
  of players and allows 'tell' commands to be sent more easily (without
  typing in an (often difficult to spell) player's name) 
  Possibly there could also be additional controls exposed for dms,
  things like muzzle and kick.

* And then additional things like toggle buttons the 'obscure but
  useful commands' such as brace, bowmode, peaceful, afk, etc. 

I still don't really have a clear idea of where any of those could
fit interface-wise, so that's something I'll be looking to discuss in
more detail.

Ultimately I want to be able to reach a point where:
* it is possible to play crossfire without needing to type anything
  other than to chat with other players/NPCs. 
* None of the command-based functionality is lost since that gives a lot
  of power to keybindings (I just don't want to *need* to use them just
  to play the game).
* The interface doesn't become cluttered.

There would be times where these three aims would be in conflict, so
I would welcome any discussion/thoughts on the most effective approach.


There is a separate discussion to be had around creating more default
keybindings for the client. The current approach is to explain right
at the start of the game how to bind commands to keys, my view is that
this is an intermediate/advanced topic, and shouldn't be something that
a new player should want or need to care about until they are a few
hours into the game.

Brendan

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Auto ID on examine

2010-04-20 Thread Brendan Lally
On Sat, 17 Apr 2010 13:00:24 +0300
Otto J. Makela o...@iki.fi wrote:

 Brendan Lally wrote:
 
  This changes the way the examine command (triggered by left
  clicking on an object) works so that if the object is unidentified,
  and the player has the appropriate skill, then an attempt to
  identify the object is automatically made.
  
  The intention is that this should make the ID process much smoother
  for new players, and less likely to be discovered after wasting
  money on ID tables or selling items that were useful.
 
 This does change the overall game balance a bit (making it easier to
 use skills automatically), but all-in-all I think it is a good change.

I'd like to think that the change to game balance is only for the first
few levels and only because with the current behaviour new players may
lose money because they sell items before identifying them, or pay to
identify items which they could have IDed for free because they had the
appropriate skill to identify them.

I'd consider such behaviour to be a challenge posed by the interface
rather than the game itself.

The flipside is that a player who would want to 'scum' exp by
identifying a huge stack of arrows individually using a keybinding or
script might accidentally click on the stack and 'lose' the exp they
would've gained.

I'm not sure that sort of behaviour that should be encouraged or
rewarded though - even if I have done it myself in the (distant) past...

Brendan.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] skill window

2010-04-17 Thread Brendan Lally
On Fri, 16 Apr 2010 18:30:56 -0500
Kevin Bulgrien kbulgr...@att.net wrote:

  
  http://wiki.metalforge.net/doku.php/gtk-v2_ui_updates
  
  Where these responses can be collected.
  
  The other advantage of this approach is that if no verdict or
  comments are given after a month or two, then it is probably safe
  to consider that layout unused and unloved, and then to consider it
  for exclusion from future releases and ultimately removal from the
  SVN repository.
 
 Surely you jest.  Just how often is the quantity of wiki edits /
 month or two an accurate sampling of the entire crossfire player
 population's views on anything?

I'm hoping the answer to that is, 'when there are a number of mailing
list, IRC and forum posts inviting, with ever escalating persistence, an
expression of such views.

That probably means up to 4 mailing list posts  forum posts +
at least that quantity of IRC discussions which follow the following
form:

1) There is a proposal to change layouts, can all layout
owners/maintainers give their verdicts and interested users give
comments.

[2-4 weeks later]

2) Please give all comments and verdicts to the layout change proposals
in the next 2 weeks, the following layouts are lacking any response:

the following layouts have comments but no owner verdict.
...
[2-4 weeks thereafter]

3) The following layouts have not received a response from the
owner/maintainer regarding the change n. 
...
Please can any commentators
who wish to take over maintenance of these layouts contact the mailing
list.

[2-4 weeks thereafter]

4) The following layouts received no response at all to the proposed
layout change n, 
...
and are now considered abandoned, they will be removed
prior to the next release.

There may also be a case for a crossfire-announce posting to be made in
the lead-up to a release, probably a couple of weeks beforehand so that
there is time for anyone who doesn't read the main mailing list to
yell. (Although then you might question how much such a person really
cares about the ongoing development of CF, and if they would really
notice).

The overall aims here are:
1) That the number of layouts remains fewer than the number of players,
preferably substantially fewer.
2) That the majority of players using the majority of layouts should
benefit from work being done on client changes, unless they are
deliberately choosing layouts which are designed not to.

My view would tend to be that if: 
* There is a layout currently that is intended never to be updated, 
* It is for the use of a single individual, who has decided that it is
perfect as it is 

Then that shouldn't be in SVN, and shouldn't be a choice in the
client as it is distributed by default. By all means keep a backup
somewhere globally accessible, along with instructions for using it
with a client, but for someone new to CF, who discovers the layout
selection widget for the first time, they should expect that the
selections they choose from correspond vaguely with the documentation
that they will read, and not have something which is hugely different
(other than in the ways that are a design feature of the layout)

The case of an underused layout where there is a desire to see it
actively maintained is a different matter, I'd hope that all the
current layouts fall into this category, and the only question is over
how to implement such maintenance (if at all).
 
  Obviously if there are vastly differing and strongly held
  sentiments in terms of what should be done for any given layout,
  then that makes the case for creating another new layout.

If no one cares to express such views over the course of several
months, the conclusion must be that they are not strongly held.

Brendan. 

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] skill window

2010-04-16 Thread Brendan Lally
On Thu, 15 Apr 2010 22:17:24 -0500
Kevin Bulgrien kbulgr...@att.net wrote:

  Questions:
  
  1) Can the skills and experience pane now disappear?
 
 Other layouts might be other player's favorites, so making sweeping
 changes seems to take some extra thought about who it affects.
 
Ok, so taking all of that, then it is even less clarity over who can
'bless' a change to a layout, particularly if the author of a layout
isn't the same thing as a user. Because there are multiple respondents,
giving different verdicts, the mailing list probably isn't the ideal
place to try and collate those, so I have created a wiki page:

http://wiki.metalforge.net/doku.php/gtk-v2_ui_updates

Where these responses can be collected.

The other advantage of this approach is that if no verdict or comments
are given after a month or two, then it is probably safe to consider
that layout unused and unloved, and then to consider it for
exclusion from future releases and ultimately removal from the SVN
repository.

Obviously if there are vastly differing and strongly held sentiments in
terms of what should be done for any given layout, then that makes the
case for creating another new layout.
 
  icons for all of the skills (implemented by sending a face number
  along with the reply_info skill_info response)
 
 Its fine, but I'd note that graphics blows out the vertical space
 requirements, so some consideration might be given to allowing them to
 be turned off or made quite small so as not to expand every line.  The
 thing I like about your dialog now is that it is pretty tight and
 readable.  I'm not really sure that I see a lot of value in skill
 graphics myself except as eye candy - which tends to aggravate things
 if you happen to have a really small monitor, but can be nice if you
 have screen real estate to throw away.

Ok, I can certainly see that point, OTOH there are 44 skills and it is
a scrolled window which is sortable, a few of these are mutually
exclusive anyway, and a couple are switched off, so you are probably
looking at not more than 40x32 pixels = 1280 pixels

For many players on modern systems, that entire list probably fits on
screen or very close to it, for the rest, then sorting by level is
probably going to show them the skills they care about anyway (after
all, when was the last time you gained jumping experience?)

  The 'character' pane on the client to show the icon for the skill
  rather than the name, and clicking on the icon to trigger the
  callback for the skill window in the same way that the menu entry
  does.
 
 Not sure I know what you mean by the 'character' pane.  If you mean
 the core stats, I'm not in favor of the text version of the readied
 skill going away on all the layouts... but maybe I'm not groking what
 you want to do.  Whereas some people like pictures, I tend to like
 text for that. I think graphics are ok for fairly static things like
 button bars, but I would find the readied skill shown only
 graphically to be frustrating.
 
That is what I meant, I can see why you might not like that, so maybe
it is something that should be altered on a per-layout basis.

Brendan

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


[crossfire] Auto ID on examine

2010-04-16 Thread Brendan Lally
Hello all,

Just wanted to get some opinions on the following patch:
https://sourceforge.net/tracker/?func=detailaid=2988536group_id=13833atid=313833

This changes the way the examine command (triggered by left
clicking on an object) works so that if the object is unidentified,
and the player has the appropriate skill, then an attempt to identify
the object is automatically made.

The intention is that this should make the ID process much smoother for
new players, and less likely to be discovered after wasting money on ID
tables or selling items that were useful.

Brendan

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] skill window

2010-04-15 Thread Brendan Lally
On Wed, 14 Apr 2010 22:59:43 -0700
Mark Wedel mwe...@sonic.net wrote:

 On 04/14/10 12:10 PM, Brendan Lally wrote:

  The aim is to enable access to all of the skills that a player has
  without needing to type anything. (I would expect that sooner or
  later, a player will want to bind use_skill praying to trigger a
  dozen times per press of a hotkey rather than clicking repeatedly,
  but if that is something that the player only needs to think about
  after playing the game for a couple of weeks rather than on the
  first day, then I'd consider that a win)
 
   One could make a compelling case that it shouldn't be necessary for
 the player to hit the same skill 50 times, but that is a more
 significant change (although one way could do it is some setting
 which basically has character doing the same activity under another
 command is entered, eg, character keeps playing until player hits
 some other command like north).

That could probably be implemented reasonably easily with a server-side
command, so you would have a syntax like 'repeat [command you would
normally issue]'

Then if the server stored a 'repeat command' then when the server comes
to process the command stream from the client, if it is empty, it would
use the 'repeat command' stored against the player. if it is not empty
(a new command has been given) then it would clear the 'repeat command'
string and process the new commands instead.

Client side, there would probably want to be a stat that is sent to say
'I am current doing your repeated command' so that the player knows
when they are no longer praying/searching for traps/etc

Might be necessary to mark a few commands as unrepeatable, since they
don't really make sense to run multiple times (quit would be an obvious
one)

  Questions:
 
  1) Can the skills and experience pane now disappear?
 
   Yes, I think so.
 
  2) If it goes, should character, protections and core statistics
  move into the same pane? (so one pane with 3 tabs rather than 2
  with 2 each)
 
   This seems to be a layout specific issue - so there isn't a simple
 answer. For example, right now the gtk-v2 layout has a stat area
 (where the hp, sp, etc, bars are) and another area which right now
 has 3 panes - core stats, skills  exp, protections.
 
   I don't think there is any clear/best answer here.  If you have a
 large/wide window, have 2 pane areas half the width may be more
 useful than one pane that is the entire width but of of which most is
 just blank.

ok, so it probably comes down to being a question for the
creator/maintainer of each of the layouts. I've left them as they are
for now (other than adding the menu entry) it does mean that the
information is duplicated, but that's not a huge problem.

  *The following are things I would like to add probably during the
  next release cycle or the one after:
 
  Columns showing the keyboard shortcuts for the skills (ie looking
  for shortcuts for use_skill or ready_skill) - not sure whether
  those should be settable there, since that treads on the task of
  the Keybindings window a little
 
   IMO, settable there would be good.   Likewise, letting the player
 do spell binding in the spell window might be handy.

Yeah, although with spells it is probably a bit more complex because
they have options that can be passed to them
 
   My thought on this is that right now, the keybinding window is a
 bit archaic - you basically need to know the syntax of the command
 you are going to bind - hardly a simple/beginner thing.  But for
 skills and spells, the client knows what the command is, so can
 provide a nicer interface, something like the player selects the
 skill, then hits a 'bind key to skill button', and it pops up a
 window or something and says 'press key you want to use to have this
 skill used when you activate it', and all the player has to do is hit
 a key and maybe something like a confirm button (or maybe a bind to
 ready or a bind to use type thing).

That's more like a 'hot-key' setup
 
   That's much better than having players have to know that they need
 to do a 'user_skill praying' syntax in the bind window.

Yeah, my inclination would be to say that the more advanced bindings
should still be possible, but that simple bindings should be simple to
set up

  icons for all of the skills (implemented by sending a face number
  along with the reply_info skill_info response)
 
   Yes - that would be nice.  I'm not 100% sure if there are currently
 suitable faces for all of the skills however.

Most of them don't have any faces at all currently, I'm hoping there's
someone who'd be prepared to draw them.

  The 'character' pane on the client to show the icon for the skill
  rather than the name, and clicking on the icon to trigger the
  callback for the skill window in the same way that the menu entry
  does.
 
   I'm not sure if I'd want the window to pop up, or just clicking it
 causes it to do the skill - I think the later may be more useful in
 most

[crossfire] skill window

2010-04-14 Thread Brendan Lally
Hi All,

As part of an overall aim to make the cf client a little more
user-friendly, I have created a patch to add a skill window to the
client.

This may be found here:

https://sourceforge.net/tracker/?func=detailaid=2987308group_id=13833atid=313833

The aim is to enable access to all of the skills that a player has
without needing to type anything. (I would expect that sooner or later,
a player will want to bind use_skill praying to trigger a dozen times
per press of a hotkey rather than clicking repeatedly, but if that is
something that the player only needs to think about after playing the
game for a couple of weeks rather than on the first day, then I'd
consider that a win)

There are a few things I'd like to add at some future point* but for
now this is complete.

Questions:

1) Can the skills and experience pane now disappear?
2) If it goes, should character, protections and core statistics move
into the same pane? (so one pane with 3 tabs rather than 2 with 2 each)
3) Is there time for either or both of 1 and 2 to occur before the
release of 1.50? (and when is that taking place?)


*The following are things I would like to add probably during the
next release cycle or the one after:

Columns showing the keyboard shortcuts for the skills (ie looking for
shortcuts for use_skill or ready_skill) - not sure whether those should
be settable there, since that treads on the task of the Keybindings
window a little

icons for all of the skills (implemented by sending a face number along
with the reply_info skill_info response)

The 'character' pane on the client to show the icon for the skill
rather than the name, and clicking on the icon to trigger the callback
for the skill window in the same way that the menu entry does.


Brendan

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] [CF-maps] Sprite Recolouring

2010-04-02 Thread Brendan Lally
On Thu, 01 Apr 2010 22:00:25 -0700
Mark Wedel mwe...@sonic.net wrote:

 On 04/ 1/10 05:46 PM, Brendan Lally wrote:
 
 
  1) Are recolours worth adding as a way to increase variety of NPCs?
 
   For NPC's, I'm not quite sure about.  However, for PC's, this could
 certainly be interesting (provided we have a way for players to
 choose this).  But I'd also say that more diversity is seldom a bad
 thing.

I started off with NPCs for two reasons:
1) there are a lot more of them than there are players
2) they can be changing them in the map files requires nothing more than
using sed appropriately.

I was also looking at creating the png file directly in the arch/
folder, so that none of the server-client interaction was affected.

I'll carry on with writing some C code to handle palette extraction and
substitution, since if it isn't used, it may form the basis of a client
patch if it is decided the client should redraw PNGs.

What you are describing now is potentially much more powerful, although
also more complex. I've copied in the main CF dev list because that is
more a server-client discussion.
 
  2) does the answer to question 1 vary depending on how they are
  implemented? (lots of different PNG files, or a script to rewrite
  the palette entries of a single png file, maybe as part of the
  collect step)
 
   Would it/how hard would it be for the client to do this coloring?
 Yes, some mechanism to convey this extra information would be needed,
 but on the plus side it means that the client doesn't have to
 download a bunch of images that are the same except for a different
 color palette.  Also, depending on how this is done, it actually
 provides for a lot more potential images (realistically, there is
 probably some upper limit of number of different colored versions of
 the same image you want, but if in the client you convey a 256 color
 base (3/3/2 bit rgb values let say), and have some way to specify
 that in the arch, you now provide a huge number of possibilities.
 And if you want to let the full 24 bit values in (figuring extra few
 bytes of bandwidth is not an issue), you now have endless colors.

I think there are several possible approaches here:

1) a different face number for each image. = This involves very little
change to the server/client interaction, since they are just
more face numbers. However it is inefficient, because the image data is
sent each time, and the number of faces potentially spirals out of
control.

2) a palette number associated with each face, so that the palettes are
sent separately = this is more efficient than 1, and less so than 3.
You also would need to extend the map2 command to send the palette
varient. = the least distruptive way to do this would probably be to
have a 5 byte variation on the image information, so that the options
then become:

2 bytes: This is only the face number.
3 bytes: face num[smooth|animspeed]
4 bytes: face numanimspeedsmooth
5 bytes: face numanimspeedsmoothpalette variation

there would also need to be some either some extension to
image2/creation of image3 in order to send the palette variations ahead
of time, or a separate palette command

Client side, the clients would need to hold the alternate PLTE sections
of the png files and substitute them in depending on the palette
variation they are sent. This could be quite quick if the variations
are stored in an array associated with the face but it would mean a
fair bit of custom PNG mangling. For the C client, this shouldn't be
too bad, I don't know what that would be like for 

3) Try to send the individual colour substitutions. While this would be
potentially more efficient, it also causes a question of how to store
them sensibly, I can't think of a coherent design for this at the
moment.

 
   This clearly changes the logic for the client - it would need to
 color them real-time in that case (for 24 bit values).  Conceivably,
 for 8 bit values, it could just set up an array and fill that in as
 it actually needs, and even in worse case, on modern systems,
 probably not a high burden on memory (and if done on the client, the
 client could perhaps choose not to even do that coloring to save
 memory or reduce the palette to 16 colors or something).
 
   But I have no idea how hard it would be to do this on the client -
 I would suspect that some form of standard for the images would be
 needed.

Yes, I'd suspect at a minimum, the existing images would need to be
re-indexed less efficiently (so that for example colours 1-10 are hair
colours, with 1 being the highlight colour through to 10 being the
darkest shadow in the hair.
11-20 skin tones
20-25 facial features (nose, eyes, mouth)
26-35 torso
36-45 lower body
46-50 feet/shoes
51-60 weaponry (if held)
61-70 headwear

and so on. 

Not many images can conform to something like that currently, and it
would bloat the PNG files to include what would be in many cases
duplicate colours (eg, the blue of a cloak may be the blue of the eyes

Re: [crossfire] Quests with multiple outcomes

2010-03-31 Thread Brendan Lally
On Tue, 30 Mar 2010 20:55:36 -0700
Mark Wedel mwe...@sonic.net wrote:

 On 03/30/10 10:20 AM, Brendan Lally wrote:
 
  quests:
  1) 
  2) 
  3) Down to the docks:
a) Port Pass
b) Scorn Password
c) The Hero of Scorn
  4 ...
  etc
 
  and then the info section would say:
 
  snip
 
 Yes, that makes a lot of sense - it sounds like the solution to
  what I said above was to do sub quests, but I'd really not want to
  see a huge list of quests which are really subquests and have no
  value on their own (in my example above, fetching a baz only makes
  sense as part of talking to foo).
 
  There is really a trade off here, the choice is between having the
  smallest possible number of really complex quests, or a greater
  number of simpler quests.
 
  My instinct is to go with the simpler individual quests, because
  they are a lot easier to build and test in isolation.
 
   That makes sense.  And really, single big quests vs many small
 quests is a server mechanic - if they are presented to the client in
 a cohesive fashion (so those 12 subquests appear as steps of a big
 quest), that is great - you don't need to have the big quest have
 those 12 individual steps.
 
   My main concern, beyond it being managable from a map designer
 standpoint, is also have some way to make them cohesive for the
 players.
 
   It would seem to me in such a system, you'd need the following
 information for these subquests:
 - What part of quest are they (parent quest)
 - what quests do these open when completed.

In terms of what the player sees, I think it will suffice to show them
a two level hierarchy. The subquests would probably be called
'objectives' or something similar in the client. The default behaviour
then would be to only show the active subquests, not the completed ones

Any occasion where there are more than two or three nested layers of
subquests for one quest probably indicates a need to rethink how the
quest is defined, or to split it up into a 'chain' of top-level quests.

One thing I do want is hidden quests and quest steps, simply because
for many quests, it will be easier to change the state of the quest
rather than use markers, and there is a value to suppressing some
status changes. (eg, there is one I am looking at where there are a
number of monsters around a leader, if one of the monsters is killed, I
want to close off a peaceful resolution with the leader, so easier to
set the queststate to $bignum rather than track a marker in the
dialogue).

I think the generic thing to do this is to have a 'parent' marker
in the child quest file, and allow each stage of any quest to
conditionally advance any other.

ie,
quest scorn/TerrysFarm

step 30
advancetarget scorn/DisputedFarm
advanceif 0-5
advanceto 10

so that setting the terry's farm quest to state 30 should advance the
disputed farm quest to step 10, but only if it is already between steps
0 and 5 (so if it is at step 7, or 20, nothing happens)

Obviously, it would be considered bad form to update another quest
without there being some story-line reason for doing so.

   For example, one could have a quest that has 6 different steps, and
 they have to be done in order (doing step 3 before step 2 doesn't
 make sense).  But you could have other quests where several of the
 steps could be done in parallel - a simple example could be alchemy
 quest - you may need to get 5 materials for the recipe, but what
 order you get them in doesn't matter.  I'm not sure how this later
 one is handled in the system - the step to go to alchemy master with
 cauldron shouldn't open up until all 5 of those subquests are done.

This could be done with a hidden quest and lots of combinations of
steps, but I think the more sensible solution would be to check the 5
subquests for completion in a dialogue. (so the dialogue script would
check all 5 quests are completed before causing the connection on the
map to be triggered. 

 
  One of the things I will be doing very shortly (ie, the next time I
  change the quest file definition after the release) will be to break
  the default.quests file into lots of smaller files. I was going to
  use the region file to specify these, so that quests then become
  attached to a region of the game world as well.
 
   Makes sense - ideally, .quest files could sit anywhere in the map
 tree, but that would make it trickier for the server to find them all.
 
   But one could imagine that in some cases, a quest may relate to a
 small set of maps (already located in its own directory in the maps
 tree), and keeping the quest near there would make sense.
 
   I wonder if rather than regions file, if maybe adding something
 like #include directives into the the default.quests would work?
 Server would then just process those and load all quest files.  It
 should only need to do this at startup, so shouldn't add much to load
 time, but gives maximum flexibility.


The reason to want to tie them to regions, is to give an idea

Re: [crossfire] Quests with multiple outcomes

2010-03-29 Thread Brendan Lally
On Sun, 28 Mar 2010 21:03:33 -0700
Mark Wedel mwe...@sonic.net wrote:

 On 03/28/10 06:19 PM, Brendan Lally wrote:
 snip
 
  quest scorn/PortPass
  title Port Pass
  description
  Acquire a port pass to be allowed into Scorn's docks.
  end_description
  stopstep 20
  restart 0
  step 10
  description
  The guards told me that I could acquire a port pass from the Office
  for Gate Passes. I should try asking there.
  end_description
  end_step
  step 20
  description
  I have purchased a port pass to allow me into Scorn docks
  end_description
  end_step
  step 30
  description
  I have found a port pass that should allow me access to Scorn Docks
  description
  end_step
  step 40
  description
  I have found another way through the gate that leads to Scorn Docks.
  end_description
  end_step
  end_quest
 
  Here then, the 'stopstep' is 20, and the steps 20, 30 and 40 are all
  steps that complete the quest, but in different ways.*
 
   So just to be clear - in this case, it means that if the player
 somehow gets the quest state to be 20 (stopstep value) that the
 quest is done?

This is correct.

 
   Rather than having the stopstep, for each step, would it be
 possible/better to have a keyword there to not that the quest is done?
 
   What I'm thinking is that for complex quests, there could be
 several paths, and it would seem clearer to me that for one path,
 maybe steps 20-25 dictate one path (with 25 being the finish point)
 and for another one, steps 30-38. For a map developer, it would be
 easier to have all steps for one path be together - better than
 having to go from step 24 to 40 to note the quest is done.

The design of quests as things stand assumes:
* Quests only progress forwards, not backwards
* Once a quest is completed, then it is not un-completed (although may
  be restarted).

Taking these two principles, anything that can be represented with
finish points at different stages can also be represented with finish
points all grouped together at the end.

(Any path in a quest that could be completed multiple times will be
something that should be implemented as a restartable sub-quest).

There is a further assumption, that I have been working with, that
bigger stage numbers = nearer completion. In particular, the script I
have been using to handle dropping quest items has that assumption
built in. The way to fix this is probably to change the meaning of the
quest_was_completed command, and assume that most quest items should
be kept for the entirety of the quest. (and that, if they shouldn't,
then 
 
 (as an aside, not related to the system but the example above, I
 think the quest description should more or less match - finding
 another way to the port area doesn't really satisfy the quest
 description of getting a port pass.  If the quest was 'get access to
 the port area', then that would be fine - and in this example, it may
 be a guard telling the character that they can buy port passes)

The reason for having the 'finding another way' description is because
there are 4 quests that I have defined for the port gate, 1 for each
of the three way of getting access, plus another one for the 'getting
access' quest.

The 'getting access' quest is set to complete once the player
successfully walks through the gate any of the three sub quests which
haven't been completed by that point are marked as complete to step 40
at that time as well (step 40 says something similar for all 3 of them).

In this case, it is not so much that the quest has been 'won' but just
that it is unnecessary now, finishing them all at the same time is a
way to remove them from the active list.

One of the additions I will want 'real soon' after release is an idea
of 'parent' quests. That way, rather than listing all of the quests on
the same level of priority, there would be quests and subquests, so the
list would read:

quests:
1) 
2) 
3) Down to the docks:
a) Port Pass
b) Scorn Password
c) The Hero of Scorn
4 ...
etc

and then the info section would say:

Down to the docks
Description:
There is a gate separating the main part of scorn from the docks. It is
closed and the guards won't let you past.

Current Status:
To pass through the gates I need to get a port pass, find the password
or become the hero of scorn. Perhaps one of the guards will tell me how
I can do one of those things.

Subquests:
Port Pass
Description:
Acquire a port pass to be allowed into Scorn's docks.

Current Status:
The guards told me that I could acquire a port pass
from the Office for Gate Passes. I should try asking
there.

Scorn Password
Description:
Discover the password that will permit passage through
the gates in Scorn.

Current Status:
The guards have told me that there is a password, just

Re: [crossfire] Healthbars

2010-03-21 Thread Brendan Lally
On Sat, 20 Mar 2010 21:14:41 -0700
Mark Wedel mwe...@sonic.net wrote:

 On 03/19/10 11:24 AM, Brendan Lally wrote:  
  The following is a proposed addition to the crossfire protocol to
  enable the clients to show monster health bars.  
 
   Just a note, this was discussed several years back, and at that
 time, there was concern that that 'gives away' information to the
 player that perhaps should not be given away (how close a monster is
 to death as an example, or fast regeneration).
 
   I don't know if we still consider that a concern or not - I know
 lots of other games show something similar, but is something I
 thought I'd mention.  

The overriding principle I have been working to is that what should be
presented is information that the player's character may reasonably be
expected to infer from looking at a monster, so if there is something
that has a direct visible effect on a monster, then the character would
know about it, so the client should, if there is no direct visible
effect, then the character won't know about it, so the client shouldn't
either.

   
 snip
  In order to implement this, the following is altered.
 
  A setup command 'healthbars' is added, if a client request it with
  argument '1' then the server will send healthbar information to the
  client, if they do not, then there is no visible change.
  [Possible expansion, if the setup flag is sent and
  confirmed, expect that the client will ignore attack messages ('you
  cut foo', 'you miss foo', etc)]  
 
   I'd have the player ignore attack messages be some option.  While
 for the most part, they are not needed, I don't know there are some
 attack messages which you would care about (I'm not 100% sure what
 all messages fall into the attack category).  But dropping them all
 could result in information not being displayed that is important.  

The gtk2 client already has client message configuration, so it would
be a question of changing the default to 'off' for that type of message.

As it stands, there are a couple of cases where you might want to keep
attack messages, invisible creatures would be the obvious ones, because
they wouldn't get healthbars sent. - maybe the answer is to use one of
the subtypes of attack message to allow those ones to be kept and the
others to be filtered out?

  The map2 command is extended to have another type of data that may
  be sent. type 4 is a healthbar. There follow 2 bytes, the first is
  the hitpoints as a proportion of maxhp, the second is the flags
  that apply to the hitpoint bar.  
 
   I haven't looked in detail, but it sounds like this information is
 now space specific (eg, this space has flags 0x02 and hp 0x40).  Is
 that correct?  

Yes, the information is sent for the highest (by layer) ALIVE object
on the map square. - This does potentially mean that there are
creatures on lower layers that aren't displayed, but there probably
isn't a sensible way to display health bars for multiple creatures on a
square anyway.

  The healthbar is sent for an alive creature that is either a
  monster or a player. It is sent whenever a face changes on the
  square, or always if the creature is below their maximum health.
  The client should show healthbars until the information for the
  square is updated.  
 
   I'm a little concerned about sending it all the time if creature is
 not at full health.  Maybe with modern connections, the bandwidth
 isn't a concern, but there are still lots of maps with large mobs of
 monsters - I could imagine them getting hit with a burning hands, and
 now sending update for all those monsters every tick (while the 3
 bytes for the data isn't bad, there are additional bytes needed for
 each space to denote the coordinates, etc).  

The other thing I have come across is that some maps seem to do odd
things with locked doors, I think it probably is useful to be able to
see information for them, but they seem to have their maxhp set oddly
and are getting sent a lot.

   If this is a per space attribute, it would be better to cache that
 data - both in the map structure itself (so fast to fetch) and in
 socket structure that holds the player map.
 
   In that way, server would only need to send data if it has changed
 in any way.  

Caching like that is a really interesting idea, the other thing this
does, if there are many players viewing the same squares, is mean that
the flags only need to be calculated once per tick.

Probably the place to store it is in the mapspace struct, then on each
tick update all the mapspace information for the maps that either have a
player on, or are loaded and linked to a map that does. 

I would probably add, if other face information is being sent anyway,
then always send the healthbar because it is probably better that a map2
clear would clear the healthbars anyway (and things like newmap commands
should too)

  The first byte has a value between 0 and 255, 128 means that the
  creature is at full health, above that means

Re: [crossfire] reorganizing the entire world

2007-06-17 Thread Brendan Lally
Been a while since I played cf, so I will be commenting on the game as it 
played a year ago; but this is a subject I've touched on before in 
#crossfire, so I hope the following is helpful.

On Thursday 14 June 2007 20:18:22 Juergen Kahnert wrote:
 What do you think about reorganizing the entire world to get regions
 for characters in a range of levels?

 For example the starting region has maps for character with level 1-5,
 than move over to a region for level 6-10 character, ...

 Every region should have a storyline quest which leads through this
 area. After the quest is solved, you're able to enter the next region
 and so on.

The way I had thought of this before was in terms of a 'home town', that being 
the place where a character would store most of their items, and set out to 
quest from.

In order to have a progression in the difficulty in maps, it is useful to also 
have a progression in 'home town'.

For example: a player should start out in scorn, hang around there for a bit, 
visiting the other nearby villages before heading to navar, at high level 
establishing themselves in brest, before finally (maybe) moving into a guild 
hall.

In order for that to work, there should be three things that are true.

1) it should be more useful to a mid-level character to live in navar than 
scorn
2) it should not be distinctly more useful (nor obviously enticing) for a 
low-level character to leave scorn (although they should be free to do so if 
they want)
3) the degree to which a character can be 'locked in' to having scorn as a 
home town, and thereby be discouraged from moving should be limited (probably 
there needs to be some kind of python-based house moving support to help 
there)

The reasons why this didn't work last time I played;

navar had a worse apartment than scorn, with less useful portals
scorn had plenty of high level maps easily accessible.
Brest had a portal leading directly there from scorn, making the approach 
quest meaningless (I don't see any changes to scorn apartment, suggesting 
this is still the case)

In order to fix this then;

Define the 3 major home cities (allow others, but assume the natural 
progression of scorn-navar-brest)

in each city, have portals which go back but not forwards, (so navar to scorn, 
but not scorn to navar).

Move some of the very high level maps from scorn and its nearby cities to 
navar (or brest) - for example, the entrance to pupland would probably move.

Make the other apartments available at least as good as the one in scorn 
(changing the portal layout probably achieves most of that anyway).

Move the guild hall purchasing place to Brest.

From what I remember the game world looking like then, you would have a 
structure like
  
Scorn ---Navar---BrestGuilds (maybe)
   ||
Euthville   Wolfsburg   
Santo Dominion  pupland (moved)
darcap

(hopefully that's vaguely readable to most people)

So in this case then, a low level character could go straight to navar (they 
could try to go to brest and get killed en route as well), but they would 
find there wouldn't be much to interest them, that they couldn't afford an 
apartment, and they would probably leave to go back to scorn for a bit.

The quest based progression could be interesting, for example if the reward 
for some intermediate stage of the scorn royalty quest was an invitation to 
see the mayor (or whatever it is, I forget the backstory) of navar (write it 
as a diplomatic visit or some such), who would send his own dragon to give a 
free ride there, then you get a strong indication that maybe your character 
is 'ready' to move

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] SVN revions in version

2006-10-13 Thread Brendan Lally
On 10/13/06, Alex Schultz [EMAIL PROTECTED] wrote:
 A few times, tracking the svn revision instead of the $Id strings has
 been brought up. IMHO this should be done, both in the client and
 server. I propose we implement it as follows in both:

  

 This version would both be used in the client for outputing to the
 console instead of the rcs-id values, and the server will use this
 version for reporting to the metaserver as well as console output. Does
 this model make sense to everyone?

I'm not sure it is such a great idea to send the revision number to
the metaserver, certainly not if the metaserver is going to push that
information out to clients, in that case, someone who wished to be
annoying could look for servers with revisions predating certain bug
fixes or balance tweaks and abuse or exploit them.

If you are talking about sending the revision as a seperate field to
the metaserver, that isn't for propagation to clients. then that is a
different issue altogether, and could provide useful information about
things like how quickly updates are made available in practice.

Likewise, although the clients need only open a connection to the
metaserver to recieve the server list, having the official clients
send their revision numbers by default would give some indication as
to which versions of the clients are in use. (assuming the metaserver
were suitably modified to read that information from the socket).

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] SVN revions in version

2006-10-13 Thread Brendan Lally
On 10/13/06, Christian Hujer [EMAIL PROTECTED] wrote:

  Likewise, although the clients need only open a connection to the
  metaserver to recieve the server list, having the official clients
  send their revision numbers by default would give some indication as
  to which versions of the clients are in use. (assuming the metaserver
  were suitably modified to read that information from the socket).
 Oh that would make it easy for a bogus server to abuse or exploit known client
 bugs to hack client machines.

I apologise if I was unclear on that point, I'm talking about sending
the information to the /metaserver/, not the individual servers for
the purpose of determining client version usage rates. Currently the
best guess as to which clients everyone is running is based on
connections to metaforge, but most of these people probably query the
metaserver first (since that is default behaviour). It would be nice
to be able to tell roughly what versions everyone is running in terms
of addressing issues of backwards compatibility (eg, is anyone using
1.4 or 1.5 still, and is it therefore safe to break compatibility? or,
if a serious bug is found, is it worth making a new point release for
a version that the majority of the userbase runs?) Likewise if the
interface mode (gtk2, gtk, x11) were sent, then there would be some
usage statistics to base the questions about client design on. I am
thinking of something to go alongside
http://crossfire.real-time.com/metaserver/ that instead of listing
servers would list summary statistics for the clients, eg

In the last week there were x client connections of which y were from
unique IP addresses from n different countries. They were using the
following versions:
1.7 ...%
1.7.1 ...%
1.8 ...%

and so on.

In terms of client abuse of servers though, I am thinking of annoying
bugs and balance exploits and not security concerns. To give a recent
example, if someone sees a server running revision = 4995 then they
may know they will be able to unequip cursed weapons by changing skill
and abuse that bug, whereas it might not occur to them to check
otherwise.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Crossfire protocol cleanup

2006-10-10 Thread Brendan Lally
On 10/9/06, Mark Wedel [EMAIL PROTECTED] wrote:
 - May not be able to use a 2.0 client to play on an older server (depends on 
 how
 old, and what protocol commands to use).  Could still use the 1.x clients of 
 course.

Might I suggest then, that when the 2.0 protocol changes are (vaguey)
finalised, a version of the 1.x server be released which understands a
2.x version number and acts as though all of the appropriate setup
flags were set (without adding any of the new features), and also is
aware of any new commands that can be sent to it, but merely ignores
them (with suitable draw_info-ed error messages). That way it should
be possible to have a compatibility upgrade to the server allowing
both sets of clients to work for however long it would be until most
distros have upgraded the versions they ship.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Removal of output-count/output-sync from server

2006-10-07 Thread Brendan Lally
On 10/7/06, Mark Wedel [EMAIL PROTECTED] wrote:
   One area that could use cleanup IMO is the output buffer handling in the 
 server.

 ...

   One question is whether it makes sense to put that code into the client.
 Given that both GTK clients have multiple panes for messages, and the only 
 thing
 that really benefits from this combinining messages is the attack messages, 
 the
 amount of benefit isn't as great.  Plus, since the attack messages where 
 changed
 to be more variable in terms of what they print, those often can not be
 combined.  IT seems the main area of benefit is spells.

The other useful one is searching for traps, especially at low levels,
I find that a small number of searches isn't sufficiant, and will hold
down the 's' key for a while, using the output count to bundle the
messages into groups of 10. That way I can search 50-100 times
(depending on how bored/paranoid I am feeling) without having the
searching messages spam the message list hopelessly.

Potentially client side support for this could be much better than
existing server-side support (if it were to say redraw the last
message on the same line it was on but with 'n times:' prepended to
it), but no existing clients do that.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] requestable party lists

2006-06-26 Thread Brendan Lally
On 6/24/06, Nicolas Weeger (Laposte) [EMAIL PROTECTED] wrote:
 Hello.

  I have uploaded a patch to the sourceforge tracker which forms an
  initial proposal for requestable party lists.
 
  https://sourceforge.net/tracker/index.php?func=detailaid=1475202group_id=
 13833atid=313833

 This patch has been opened for some time, and didn't receive much flame, just
 a few comments :)
 Should I commit it?

Honestly, I don't recall what needs done with this, I have been
meaning to go back and finish it for a while, but haven't had the time
to do so. I seem to remember it worked whilst I was testing it, but
this doesn't mean it is of quality suitable for inclusion in CVS as is
(and indeed it probably isn't)

I'd like to be able to say that I would definatly get the time to sit
down and finish this in the next week or so, but I can't honestly
claim that to be the case.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Backup(?) CVS via darcs

2006-05-04 Thread Brendan Lally
On 5/4/06, Alex Schultz [EMAIL PROTECTED] wrote:
 Here is my opinion
 of Darcs as well as some other alternatives to CVS:

Is there any reason why GNU Arch hasn't been considered in your
comparison? Is there something wrong with it that discounts it
straight away? (NB: I have never used it, but savannah does).

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] requestable party lists

2006-04-24 Thread Brendan Lally
On 4/24/06, Mark Wedel [EMAIL PROTECTED] wrote:

   Overall, the idea looks fine, but I haven't looked at the actual patch.

   But a few other thoughts:

 1) It could be nice to include the highest number party number in the stats
 command (only transmit when changed).  Since I recall that whenever a new 
 party
 is created, the client can use this to know when in fact there are new 
 parties.

party number doesn't exist anymore, it hasn't for a while, there was
an issue that it was possible to cause that value to wrap, and in so
doing duplicating parties, this was why I wrote a patch last summer to
treat parties by the pointer to the party struct rather than the
partyid

 2) It could likewise be nice for the requestinfo party_list to take a 
 parameter,
 which denotes to only send party info above that number.

You could give a name, and say only send parties beyond that one in
the linked list, but then what do you do when the party you send the
name of doesn't exist? (possibly changing the replyinfo to reflect
that fact?)

   In this way, the client could keep track of what is last requested up to, 
 and
 then can just request the new parties.

yes, this might even work if done by name, however it provides no nice
way to ensure that the player count even vaguely resembles reality,
nor any way to cope with parties that are obsoleted.

   Normally, this isn't an issue, but I believe there have been cases where
 people have tried to abuse the server by creating hundreds of parties.  If 
 with
 a relatively modest number of parties, you probably want to be able to only 
 send
 the new ones.

Yes, I was the one who first mentioned that almost a year ago (the
thread 'large numbers of parties causes weirdness' from last April)
This is why parties with no members are now periodically removed.

If the creation of vast numbers of parties is a great concern, it may
well be possible to limit each player to a certain number of parties
(3 say) and, each time a party form command is received, count up the
number of parties they currently have.

   Periodically I suppose the client could go through and request all the 
 parties
 to figure out which are now defunct.  OR perhaps more to have something like a
 request active party type of thing, which really only needs to send the party
 numbers of the active parties.

I don't see how that can usefully allow player counts to be updated.

One more point, which is tangential to all of the others, should
parties also allow comments? I am thinking of ~50 characters to
describe any given party, to be sent as an extra field in the
replyinfo.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Protocol compression.

2006-03-27 Thread Brendan Lally
On 3/27/06, Mark Wedel [EMAIL PROTECTED] wrote:
   I just ran a quick test (find . -name *.png -exec gzip -vc {}  /dev/null
 \;) , and this is a somewhat typical result of the entire arch tree:

snip
   Some files not compressible, some marginally compressible, and some very
 compressible.

I had a play with pngcrush, to see if the same space savings couldn't
be achieved in the arch tree itself, I ran PNG crush on all the png
files, then compared the filesizes before and after. I dumped a list
of all the images which are reduced in size by 10 bytes or more at
http://pastebin.ca/47176 (I strongly suspect that any gain less than
this is likely to be completely wiped out by those clients which need
to recache the image after it changes, and indeed, the threshold at
which that is true may well be closer to 50-100 bytes)

Note however, that the images which most benefited from this are /not/
the same ones that gzip seems to be able to compress well. (if anyone
wants to try and recreate this, I used pngcrush -fix -l 9 with version
1.5.10) - I think this is something to do with palette utilisation in
indexed images.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] JCrossfire and Web playing

2006-03-27 Thread Brendan Lally
On 3/27/06, Alberto Sáez Lodeiros [EMAIL PROTECTED] wrote:
  Then, you will ask...Quake2 on JAVA, maybe cool...but what is matter? The
 cool thing is that you can play Quake2 using your web browser, if it has JWS
 (Java Web Start) installed and supported. Also needed JRE 1.4. I have see
 also a port of crossfire, using JAVA, then, a cool idea, can be to play CF
 over the web browser, usin also JWS. This can allow to play CF without any
 installation, compilation or so on, or maybe, players who can't download
 software fron the web, to play Crossfire. For example, from a University,
 from the job, and more.

  I have tested the Jake2, and he goes at same speed than normal Quake2
 (using Linux).

  Also, JCrossfire is more playable over windows than the GTK version (i have
 tested gcfclient on windows, and it is really slow) But the very best of
 JCrossfire over the browser is that the user will be playing the last
 version released of JCrossfire.

I'm not altogether sure what you mean by JCrossfire, there is
jcrossclient, which is the java AWT client that I took over from Phil
Brown, and jxclient which is a java+openGL one (or something like
that) which is in crossfire CVS and primarily (exclusively?) developed
by gros.

In anycase, experimental Java WebStart scripts exist for both of them,
gros is the person who actually understands it (and indeed helped me
hack one for jcrossclient)

In the case of jxclient, no public release has yet been made, so all
JWS scripts are ad hoc ones for testing.
In the case of jcrossclient, I didn't have the binaries from the
previous release signed (or some such detail) so it didn't work
nicely, and I didn't want to re-release the binary just for that.

I can't comment on when gros thinks that jxclient will be in a state
suitable for a stable JWS script, he will have to tell you that
himself, for my part, jcrossclient /may/ have one for the next
release, if I remember in time and find a sufficiantly
straight-forward howto. :)

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] gcfclient info window text trimming crash.

2006-02-05 Thread Brendan Lally
On 2/4/06, Mark Wedel [EMAIL PROTECTED] wrote:
   Does this mean that info trimming is completely disabled with version 1 of
 gtk?  If so, I'd sort of say, what is the point - that is why there is a 
 config
 option.

Yes, but the config option causes crashes, and if that is the case, it
shouldn't be an option when that will occur.

   Are you sure version 2.0+ of GTK fixes the problem?  IIRC when doing the 
 gtk2
 client, there is a new widget for text stuff for gtk2, and the gtk2 docs
 specifically say don't use the old widget if at all possibly because it is
 severely broken.

Trimming works when the client is compiled against gtk2 using
maligor's patch found at:
http://bluemist.ath.cx/~maligor/cf-gtk2.patch

   That said, it could be that that option get removed from the config page - 
 if
 people want to muck with their config file, fair enough, but they are doing 
 that
 at their own risk.  IIRC, the config page specifically says it may cause 
 crashes
 if you use that option.

This approach will show the option if it is safe to use, and remove it
if it isn't.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Why have you banned my CVS access, And why do you hate mlab (I just finished mlabhell and I want mlab in for 1.9)

2006-02-05 Thread Brendan Lally
On 2/4/06, Miguel Ghobangieno [EMAIL PROTECTED] wrote:
 Why have you banned my CVS access,

You'd need to ask the person who banned you, but criticising other
developers in a cvs commit message would probably have a lot to do
with it.

 and why do you hate
 mlab?

I do not hate mlab, I think they are some of the most interesting maps
in the game.

 I just finished mlabhell and I want mlab in for
 1.9. It's better to have it in non-dirified format for
 1.9 then not in at all.

That's a point of contention.

 Also I am offended at lauwernmark and errac's plot to
 change mlab's culture.

To a great extent I would agree, but this does not excuse criticising
them in a CVS commit message for a commit it is not clear should have
been made.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] gtkv2 client vs gtk client gap list.

2006-02-04 Thread Brendan Lally
On 2/4/06, Mark Wedel [EMAIL PROTECTED] wrote:
   To me, at some level, keeping the gtk(v1) client about may not make a lot of
 sense.  Especially if we start going down the path of new character creation 
 and
 other widgets - I don't look forward to trying to write those for the gtkv1 
 client.

I'd note at this point that the recent spell interface updates I did
were for gcfclient not gcfclient2 - I find glade complex and
confusing, gtk code is comparatively straightforward to write, at
least for maintenance.

   I know a lot of people still use the gtkv1 client.  So my basic question is,
 for those of you that do, what needs to be changed/added/fixed in the gtkv2
 client so you would use it.

I'm not sure that is necessary, not so long ago there was a patch to
gcfclient to make it compile against gtk2, I will assume that this
gets accepted in the move towards 2.0, with the few bugs it isolates
picked up on the way.

If cfclient is removed, (and the broken gnome client also), then there
would only be one toolkit in use. It would then be possible to
restructure the client directories to have common/ gtk_common/ gtk-v1/
and gtk-v2/ mapping to:
protocol parsing and storage, toolkit specific code, and interface respectively.

These parts individually would not be so hard to maintain.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] gtkv2 client vs gtk client gap list.

2006-02-04 Thread Brendan Lally
On 2/5/06, Mark Wedel [EMAIL PROTECTED] wrote:
   But what at the main features that are missing?  IMO, there is a lot of 
 stuff
 in gtkv1 client that I'm not sure people use.  One being the keybinding
 interface - do people use that very much, or do people just use command line.
 It doesn't make sense to add features that no one needs.

I use the keybinding interface on the occasions I run gcfclient.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Transports

2006-02-01 Thread Brendan Lally
On 2/1/06, Alex Schultz [EMAIL PROTECTED] wrote:
 Well, IMHO this may not add too much for the player to use, but I can
 see it as something that would add alot of depth to the gameplay. Not
 sure how worth it it would be to do though, as it is indeed alot of
 complication, though I would say it would certainly improve the player
 experience.

The small ships would be fine I think, as long as they can still
'attack' each other and have such an event create a 'battle' map,
where there are two ships with all their occupants, plus cannons, etc
to fight each other. (there could then be pirate ships patrolling just
outside the main shipping lanes, and on PVP servers, groups of players
could be pirates themselves).

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-02-01 Thread Brendan Lally
On 2/1/06, Miguel Ghobangieno [EMAIL PROTECTED] wrote:
 And a setting to show (by default) 1 attack message
 per second or so (rather then char punches once, and
 again, and SUPRISE again!).

I want the rate of attacks to be down to about one (or two at most) a
second - at least for  'normal' weapons (like broadswords). Try
swinging a sword more than twice a second consistantly, and then you
will see why I think this a reasonable limit (yes, you can do more
with a fencing sword like a foil or epee, but they don't do much
damage anyway, if someone wants to add them with stupidly high weapon
speeds, they could still do so). - having fewer attacks means more
time to think in combat, less hack and slash, more strategy, and less
CPU overhead too.

 I
 don't think we should mess with the amount of hp
 clients or monsters get nor the weap attributes.

I want to get rid of reflect spells and reflect arrows as abilities, I
think they too effectively nerf lightning spells, and make cone spells
to useful. However I would like to have a 'recast' spell, which would
cast a copy of any spell that hits a player in the opposite direction
for  a short period of time (couple of seconds).

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Transports

2006-01-31 Thread Brendan Lally
On 1/31/06, Alex Schultz [EMAIL PROTECTED] wrote:
 Such things incline me to want to disallow them from going through
 exits, though that in my opinion makes them more limited in usefulness too.

Can exits use the move allow/block idea too? if so, you could look at
them to decide whether a transport can go through an exit or not.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Transports

2006-01-31 Thread Brendan Lally
On 1/31/06, Mark Wedel [EMAIL PROTECTED] wrote:
 Usage/implementation details:
 To activate a transport, the player will stop onto it and 'board' it.  When 
 this
 is done, the transports op-contr will point to the player, and a
 pl-transport pointer will be set up.  An 'unboard' command will be needed
 to leave the transport (thoughts on a better way to deal with this?)
 I don't think apply will work because that will be needed to get stuff in/out
 of it like a container.

what's wrong with pickup? If I follow the description properly, this
transport will stop most of the items on the ground being useful once
you are inside it anyway, so you could send as the ground view a
single item such as 'get off horse' 'dismount ship' (this requires a
new K-V (onboard name). Picking up this item should then dismount from
the transport.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] cfclient colouring (was: gcfclient options deathlist)

2006-01-31 Thread Brendan Lally
On 1/31/06, Mark Wedel [EMAIL PROTECTED] wrote:

   I'd personally say that requiring a 256 color display isn't asking too much
 now days.

I'm inclined to agree, I just don't know xlibs well enough to break
support for 16 colour displays in a non-hacky way. (there is still
some 'private colourmap' stuff, which I think is somehow related to
that)

   I actually think the grey background looks nicer than the old dark green
 background.

excellent, I've commited the patch.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-31 Thread Brendan Lally
On 1/31/06, Anton Oussik [EMAIL PROTECTED] wrote:
 In order to achieve that I propose starting with 3 changes:
   * DRASTICALLY reduce  the hp regeneration (something like 10-fold)
   * Significantly increase hp of players and monsters (3-10 fold)
   * Significantly lower resistances given by items (so a player can
 get up to 25% resistance or so with several items)

One thing that might work well there, would be to also have a
reduction in weapon speed (reduce it by a factor of 2 or so).
Currently when you attack monsters the attack messages are numerous
and spam-y, if they were slowed down a lot (to at least the point
where you could read all of them out loud as they come in). There
would be fewer attacks to calculate, the rate of damage would be less,
and there would also be fewer draw_info messages to transmit, which
seems like a win all round.

It would also make it possible to bring back the point from long ago
of attack sounds, since attacks and parries would be slow enough that
you could actually have sounds mapped to them.

 As an extension to the aboce extension a new family or party spells
 can be introduced. These will aid parties in combat by providing
 spells like party heal, and party word of recall. Possibly party
 strength, party wisdom, and so on can be introduced. They would be
 high level spells that would act on all of the party, and will belong
 to different magic schools.

IIRC party spells are already supported in principle, but nothing is
currently using them.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-30 Thread Brendan Lally
On 1/30/06, Anton Oussik [EMAIL PROTECTED] wrote:
 Another thing I can propose is to replace the listen level with
 channels, and be able to toggle/redirect individual channels between
 different tabs in the client.

I had a working channels implemention, but the problem was that it was
too complex to be really usable, and seemed too similar to the party
code.

hijacking colours in the draw_info packet to send meaningful data
about the type of draw_info would be more reasonable

Maybe also it would be an interesting idea to have a 'triggered'
draw_info which would send back the packet number that caused them to
be printed (this would involve storing the last packet number in the
player struct, and sending it in the packet)

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Negative Luck for pk

2006-01-29 Thread Brendan Lally
On 1/28/06, Miguel Ghobangieno [EMAIL PROTECTED] wrote:
 Hi, I've asked for just that configuration option
 before. I'll forward this mail to the mailing list so
 the other devs may see that this is a wanted feature.

Correction: it /was/ a wanted feature, about a year ago, which is
roughly when it was introduced.

from the settings file:

# This is the penalty to luck that is given to a player who kills another
# player (PK's). The value here is deducted from their luck value, so set this
# high to discourage PK-ing and zero (or negative) to encourage it.
# Range is limited to -100 to 100, since this is the value range that the luck
# stat can be within.

pk_luck_penalty 1

In the case of cat2, you probably want to set it to zero.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] renaming binaries (was: Moving server towards a modularized system?)

2006-01-29 Thread Brendan Lally
On 1/29/06, Yann Chachkoff [EMAIL PROTECTED] wrote:
 But it definitely wouldn't work anymore if significant changes occur in the 
 server code - in particular, getting rid of the Athena Editor would allow to 
 remove the separation between the common and server subdirectories - 
 something that makes the code structure more complex with no real benefit 
 (other than allowing the Athena Editor to exist in the first place).


I believe that the random map generator also needs the same seperation
of common and server, at least the way it is compiled at the moment.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-29 Thread Brendan Lally
On 1/29/06, Mark Wedel [EMAIL PROTECTED] wrote:
   but relatively to players and developers, what do people see as the top
 feature(s) that should be added (or things fixed) to make crossfire a better 
 game.

I'll split this into two parts, usability issues/improvements, and
game issues/improvements (many of these things I have hinted at on IRC
in the past, but I'll describe them more fully here)

Usability:

currently most useful features of the game are hidden behind obscure
text commands, without any nice way for the clients to show them in a
systematic way. . - the rest are really minor niggles.

I would suggest then, in no particular order:

* client side display of parties (so that they can present an
interface more like gcfclient2 has for the metaserver, removing the
need for using the rather complex party commands directly).

* adding more stats, including a number that could be considered as
settings, so that clients can have a configure menu for them (imagine
having a 'server' tab next to the general, map, and keybindings tabs
in gcfclient)

In order to do that, I think you would need to send

output-sync short (byte?)
output-countbyte
bowmode byte mapped to associated requestinfo
applymode   byte mapped to associated requestinfo
listen levelbyte
petmode byte mapped to associated requestinfo
usekeys byte mapped to associated requestinfo

all of which would have better names displayed client side
(eg, group up to [spinbox] identical messages before sending, recieve
messages with priority [spinbox] or lower)

* I'd also want to consider removing brace altogether, or at least
making it a flag in the stats so that it can be displayed client side
(hitting brace by accident and not being able to move can be
confusing).

* providing an [instruction]  ext new draw info so that clients can
print the instructions that apply to them in order to do things. (I
would imagine that this would be something like drawextinfo 0 8 0 to
worship a new god, stand on their alter and $(use_skill praying) 
then a client could look up their own 'instructions' array, or check
their keybindings, and if use_skill praying is found, print that
instead (otherwise, strip out the $() characters). - so for example,
my gcfclient setup has use_skill praying mapped to 'p', so when I
receive that message, it should check an 'instructions' array, find it
empty, and then look in the keybindings, find one that matches, and
say to worship a new god, stand on their alter and press p

* a new login system, which would allow single packet character login,
or creation.
something like a login name\0password packet, and also a createchar
name\0\password packet (with the double typing the responsibility of
the client).
then some way to request die rolls, and send back the final results,
and a race choice

For this there would be something like requestinfo races, returning
replyinfo [list of races with their corresponding face numbers], then
requestinfo race foo return replyinfo race foo the foo are a
mysterious race from the land of the metasyntactic variable -
clients then would be able to present a list of races to choose from,
and a nicer interface to handling swapping stats.

* sending all the information given from describing items in the items
command (I think this is only the message, chosen name  values, then
having the description generated client side, and shown as a tooltip
to each item - freeing the left mouse button to do something else to
items (moving apply away from middle click, maybe?).

* having a concept of actions applying to a square (an extension of
what I mentioned the other day about having a goto system, have
something like left-click to walk to a square/pull a lever/talk to an
NPC/fight a monster on a square (probably whichever is appropriate to
the topmost item on the square, decided server side) and right click
to cast a spell/fire an arrow, etc to a square. (diablo-style
controls)

possibly as an extension to this, send an actionid to the client with
the map command (2 bytes per square (maybe a byte if there isn't a
convenient tayste within the rest of the (newly redesigned) map
command), so that clients can tell the player what would happen by
clicking on a given square (this would also need some special flags to
decide whether to show things like secret walls - possibly they should
be marked walkable once you are adjacent to them, but not from a
distance - or maybe the detect traps skill should mark them detected,
after which they show up)

- an extension to the extension above, send health status along with
monsters (probably as a percentage to not give away total hp), they
can then have clients draw health bars above their heads.

* having a keywords system in NPC dialog, so that when NPCs speak, it
formats their text specially, underlining (or similar) the words they
say that you can ask more about - 

Re: [crossfire] renaming binaries (was: Moving server towards a modularized system?)

2006-01-29 Thread Brendan Lally
On 1/29/06, Mark Wedel [EMAIL PROTECTED] wrote:
  I would suggest the following mappings (for both binaries and package names)
  crossedit - crossedit

   Arguably, crossedit should just disappear.  This, however, may become more 
 or
 less an issue depending on other changes (if a code restructuring means
 significant rewrites needed for crossedit, I could see more reason to get rid 
 of
 it.  OTOH, if that major rewrite makes it cleaner, then maybe more compelling
 reason to keep crossedit, or make a gtk replacement).

The problem is that at the moment there is no real replacement for
crossedit (CFJavaEditor doesn't work well enough, it doesn't even have
undo support).

I don't think that crossedit needs to be abandoned though, splitting
it out into a separately distributed tarball/CVS module would suffice,
if the functions that it uses from the server code are well
documented/commented, then any changes to these functions in the
server module should backport to crossedit as and when that is needed.
Meanwhile, the server/ common/ distinction could go, and everything be
rearranged more logically. (this would also have the advantage of
allowing crossedit to be ported to a modern toolkit without breaking
the server).

  gcfclient - crossfire-client
  gcfclient2 - crossfire-client2 (or crossfire-client-gtk2)
  cfclient - crossfire-client-x

   I don't know if there is any official standard on this, but if anything, it
 would seem the standard is that it be toolkitname-program name.

   Eg, gnome-terminal, xterm, etc.

   It is a little unclear to me where gtk ends and gnome begins - on my 
 system, I
 see a lot of gnome-* programs, but not many gtk-* programs

   But given that, I'd suggest gtk-crossfire-client, gtkv2-...,
 x-crossfire-client, etc to keep that naming convention.

The thing with this is that currently all distro packages are called
crossfire-client or crossfire-client-gtk. If I am on a debian (or
similar) system and install a program, I always try and run it using
the name of the package, only if that fails do I bother to grep the
filelist for bin/, sometimes if it is something I don't care about,
then I ignore it and find something else to do the job instead.

having the binary being tab-completable from the start of the package
name is a good thing, especially when the .desktop files aren't
installed properly.

of course, should there ever be a KDE client, then the rules change
somewhat, the name krossfire-klient would be obligatory.


   Perhaps have a generic crossfire-client script that looks for the different
 programs and tries to run the 'best' one available.

I'd be interested to know how 'best' would be determined there.

  CFJavaEditor - jcrossedit

   See note above about naming.  That said, I'd be a little less concerned 
 about
 this one, as I doubt there is as much confusion in this (at least on the unix
 side, you don't run it directly anyways - you're going to use ant or have to 
 do
 the java command by hand, so that is sort of hidden).

java -jar CFJavaEditor.jar

   I don't in fact know if this can be reasonably assembled into a package or
 installed.  But once again, making a script called jcrossedit that runs the 
 JVM
 with the needed flags (I recall the default memory sizes really aren't big
 enough) may be the way to really go here.

The default memory size is ok if you only open a couple of maps, and
is a lot better than it used to be since tchize fixed it a while back.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-29 Thread Brendan Lally
On 1/29/06, Miguel Ghobangieno [EMAIL PROTECTED] wrote:
 Brace is used, as Leaf said before, to make it easier
 to swich deities without being pushed off the alter...
 this was allready discussed!

But since being pushed off the square is an intended effect, being
able to brace to avoid that is probably a bug rather than an intended
feature.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Moving server towards a modularized system?

2006-01-27 Thread Brendan Lally
On 1/28/06, Yann Chachkoff [EMAIL PROTECTED] wrote:
 I'm not speaking about theoretical developers - I'm speaking about those 
 who (hopefully) will still play with crossfire and its code long after we 
 don't. I'm thinking about all the ideas that could get implemented much more 
 easily on a cleaner base than on a patchwork of code.


I'd be inclined to say that the quickest way to do that would be to
have a deliberate compatibility break, not completely, but at least
back to what is actually used. Debian Stable is probably the single
most obsolete GNU/Linux distro in widespread use, but even this ships
crossfire 1.7.0

Given that crossfire 1.9 should be close to release (maybe?) the
second digit would wrap round, and the next release after that would
logically be 2.0. A major version number shift would be a reasonable
time to deliberately break compatibility with all versions below 1.7
(and maybe include some metaserver filter to stop servers older than
this being included too).

If this were to occur there would be an awful lot on the server side
that could be dispensed with

the map command and map1 commands (map1a could be used exclusively)
the item1 command (the C clients have long since used item2)
spell conversion from the old spell system
support for the old skill system.
support for oldsocket mode (pippijn recently made a textmode parser
using the modern packet structure, oldsocketmode is a hack that could
be retired completely)
doubtless there are more that I haven't thought of.

Remove all that compatibility cruft first, and then, when the server
is made leaner as a result, look at what, if anything needs
simplifying.

(note also, I would suggest taking the same approach with the C
clients, which have a similar problem (though less acutely))

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


[crossfire] renaming binaries (was: Moving server towards a modularized system?)

2006-01-27 Thread Brendan Lally
On 1/28/06, Brendan Lally [EMAIL PROTECTED] wrote:
 I'd be inclined to say that the quickest way to do that would be to
 have a deliberate compatibility break,

oh, one other thing which is vaguely related to that, a 2.0 release
would also seem to be a good time to rename some binaries. Currently
the server binary is called crossfire, and the gtkclient is gcfclient,
every few weeks someone appears on either #crossfire or the cfmb who
can't find the name of the binary to run, the naming system isn't as
straightforward as it might be

I would suggest the following mappings (for both binaries and package names)
crossedit - crossedit
crossfire - crossfire-server
gcfclient - crossfire-client
gcfclient2 - crossfire-client2 (or crossfire-client-gtk2)
cfclient - crossfire-client-x
CFJavaEditor - jcrossedit

The slight annoyance this might cause with script breakages can be
justified by a major version number change.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Moving server towards a modularized system?

2006-01-26 Thread Brendan Lally
On 1/25/06, Miguel Ghobangieno [EMAIL PROTECTED] wrote:
 Some CF programmers, such as Cave, would like to
 beable to reuse their code without having to recopy
 and paste what they have allready done (which would
 create bloated code if it was required).

The idea of separating the code into fairly well defined areas is
something I would support wholeheartedly, I don't think the current
tangle of functions is a desirable thing and would much rather some
functions were rearranged between files, to better reflect what they
do.

In this I do not disagree with Tchize and Gros, however I am still
unconvinced by the case for a complex API to enforce such separation,
a well constructed layout of functions within files, created according
to how they are called in various places, would, I feel, help almost
as much without adding yet another thing to support that will quickly
become outdated.

 Modules would
 disallow this (bad) as they are not loaded untill they
 are called.

In an organisational change that would achieve the same effect, these
same functions would be marked static anyway, so this is a non-point.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Lag

2006-01-25 Thread Brendan Lally
On 1/26/06, Anton Oussik [EMAIL PROTECTED] wrote:
 Is there anything that can be done to improve movement on laggy
 connections? Could the server send the client a matrix of what tiles
 on the map can be moved to, and send updates of that as they change
 for example? Any better ideas?

One thing that might work for this, is something I have been idling
toying with concerning movement.

I was looking a few weeks ago at adding a 'goto' command so that the
player could send a command goto xy (relative to the player) and
then, as long as they had no further commands sent, they would go
towards that point. (in terms of controls, this would map to clicking
on the map view somewhere). - the stupid implementation of this is
quite straightforward, getting the routing to work properly is harder.

In any case if that became the defacto standard way of moving (as it
is in most graphical RPGs), then it would be possible to figure out
what route the player would take, and send the moves they would make
to the other players in the room early. - this would still lead to the
ocassional de-sync issue (when they change direction, or something
moves in the way) but it would be a noticable improvement over what is
currently there. (the extension to that would be to have an attackto
command (or a flag to goto) so that monsters could be targeted to get
the player to follow them and attack when they are in range. -
probably such advance telling of commands should only occur if the
ping time is bigger than the tick time though.

In general though, if your ping time is over a second, you need a
better internet connection, most games are difficult to play when you
are that laggy.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Re: Polymorph etc

2006-01-19 Thread Brendan Lally
On 1/19/06, Anton Oussik [EMAIL PROTECTED] wrote:
 I did not necessarily mean more powerful spells. Some existing spells
 can get moved up the chain, and intermediate interesting spells can
 be added to fill the gaps, so a player always has a new spell just
 within reach.  Either that, or spell could be made to not get more
 powerful with level, and then players could learn more powerful
 versions of a spell they already know, which would exist every 5-10
 levels.

The problem with that is that skills already scale with level,
icestorm is one of the best cold spells at any level, because of how
well its damage and range scale, so unless you want to nerf the
scaling of all the low level spells, they are going to remain the best
option, especially if the base level of the supposedly 'better' spells
is increased, because then they will have fewer levels to scale over.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] gcfclient options deathlist

2006-01-18 Thread Brendan Lally
On 1/18/06, Mark Wedel [EMAIL PROTECTED] wrote:
 Miguel Ghobangieno wrote:
  Yes, it would be best to remove that option from the
  menu IMHO.

   I just tried this out.  If I select the 'Quit Character' option from the 
 file
 list, it does ask if I want to quit or not.

Regardless of that, I would suggest that it is something that is
something that is so infrequently the intended course of action, that
making the player issue the command themselves would be desirable.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Re: Polymorph etc

2006-01-18 Thread Brendan Lally
On 1/18/06, Anton Oussik [EMAIL PROTECTED] wrote:
 Adding fighting levels to weapons would also make sense, and in my
 opinion would be more consistent for things like swords and bows than
 item power is.

Having a minimum level for every object that can be applied wouldn't
be that difficult, I'd be inclined to say it could work well with item
power as well. (to wield sword of foo you must be level n at
one_handed_weapons and have x spare item power)

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Moving server towards a modularized system?

2006-01-18 Thread Brendan Lally
On 1/18/06, tchize [EMAIL PROTECTED] wrote:
 Having to grep throught to code to guess where you have to add your new
 features is a symptom of upcoming code management problems.

I agree on this point, however I suspect that much of this could be
avoided by simply shifting a few functions and #define's around, much
of what exists currently has been grandfathered into various parts of
the code (look at include/define.h for a good example of this) moving
these into more logical locations (or maybe even just documented
locations) would help in finding various parts of the source code.

Likewise moving things around could probably reduce the number of
functions which are called from different files, improving the
usefulness of text-editor based find tools.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Moving server towards a modularized system?

2006-01-17 Thread Brendan Lally
On 1/17/06, Mark Wedel [EMAIL PROTECTED] wrote:
   True.  I imagine dependencies to be fairly standard C dependencies.  But I
 could imagine someone writing a plugin in C++ with appropriate wrappers.

This point (more than any other) is potentially alarming. Currently
crossfire is written in C and python, with some perl scripts doing
some minor things. If this range of languages is increased, there is a
danger that it would include languages outside the range of competence
of the existing developers, or outside the range of languages which
are well supported on some of crossfire's target platforms.

Whilst it might be that $NEW_WHIZZY_FEATURE would be very easy to
write in D, for example (or some other $OBSCURE_LANGUAGE) it is
unlikely that most systems running servers have a suitable compiler
installed or that most existing developers would be able to adequately
maintain code written in it.

Whilst C++ on its own isn't greatly objectionable, there must be some
guidelines as to which languages would be permissible so that we don't
end up with 20 different modules in a dozen different languages half
of which were known only to their original author who has since
disappeared.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] gcfclient options deathlist

2006-01-17 Thread Brendan Lally
Ok, to try and summarise from this. (this is how I'm reading the
existing responses, yell if you think this isn't a fair summary).


Not a target for removal:

Split Information Window (Takes effect next run)
Automatically re-applies a container when you use apply to close it.


Still targeted for removal:

(on) Colored Inventory Lists
(on) Colored Information Text - maybe to be replaced by some future feature
(off) Print Grid Overlay
(on) Cache Images
(on) splash window (gros' suggestion)

Options on how to display resistances: - keeping the two options
involving scroll bars, but still haven't heard from an advocate of the
no-scrollbar option (if this were removed, it could go from 3 buttons
to 1)

the options in the list above need someone to claim the use of them
sometime within the next fortnight.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] requestable spell lists.

2006-01-06 Thread Brendan Lally
On 1/6/06, Mark Wedel [EMAIL PROTECTED] wrote:
   All looks good - just a one minor question:

  +   name (1 (non-zero) length byte, followed by that many bytes
  of ascii text)
  +   This is the name of the spell, and should be sent to the 
  server
  +   in order to cast/invoke it.
  +
  +   display name (1 length byte (which may be zero) followed by that
  +   many bytes of ascii text)
  +   This is the name to display to the player regarding the 
  spell.
  +   If length is zero, then the name should be used instead.

   Just curious what these these two names are far.  As far as I know right 
 now,
 each spell only has one name, so not sure why there are two.

gros wanted a way to do it, I think the reasoning was that there could
be the 'internal' name of the spell, and a more flavourful display
name.

Currently I have it set up to send the name and then name_pl as the
display name, but only if it is
1) present
2) different from name.

I could of course use a different field instead ('title' maybe?)

   As an aside - it doesn't need to be part of this patch, but it might be nice
 to have the cast/invoke command be able to tag a numeric value instead of 
 string
 name, eg:

   cast 12345

   Which casts the spell associated with tag 12345.  This provides a slightly
 more efficient way of the client communicating to the server what spell to 
 cast,
 and also provides a fairly good optimized way for the server to find the spell
 (doesn't have to worry about duplicates - just has to see if an item with that
 tag exists in the inventory (of which there is already code that does it) and
 verify it is of type spell.

This could be done quite easily, although to not break older clients,
it would have to be the case that no spell names currently start with
a number. I believe this is the case however.

one other point, should I send the face number (if there is one) too?

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Banking system

2006-01-03 Thread Brendan Lally
On 1/3/06, Miguel Ghobangieno [EMAIL PROTECTED] wrote:
 gold and silver coins are not fiate currencies, their
 value can't be just inflated. You need paper money for
 that (or money who's value is more then the value of
 the material).

 I won't support inflating gold and silver etc. I will
 support creating paralell fiat currencies, and yes
 they did exist in the ancient world.

Ah, but now you have to consider what is actually fluctuating. Is it
that the value of gold is dropping, or the value of the currency is
increasing.

In recent history, it has tended to be the case that fluctuations in
the prices of gold/silver etc, have overwhelmingly /not/ taken other
prices with them. Just because the US dollar weakens against gold (or
if you prefer that gold strengthens against the dollar) doesn't mean
that the price of bread alters.

Certainly it is fair to say that gold has traditionally been quite
consistent with reference to other commodities but silver-backed
currencies (and especially silver-backed currencies with a debased
coinage, which is what I am describing here, rather than fiat
currencies) have fluctuated over time with respect to the price of
gold.

Whether you make the 'value' field relative to a fixed commodity, or a
currency, is really an irrelevant point, once you have the same
relationship between them being expressed, however, if we take the
consumer's-eye view of the economy, prices are significant relative to
wages, which are fixed in a currency, not to a commodity that few of
them will ever trade in (plus it involves modifying fewer object
values).

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Banking system

2006-01-03 Thread Brendan Lally
On 1/3/06, Miguel Ghobangieno [EMAIL PROTECTED] wrote:
 It would be nice to beable to set in for instance:

 Object goldbar
 name goldbar
 weight 1
 value gold

 Object goldcoin
 name goldcoin
 weight 10 (or whatever it is)
 value gold

 that way the value will be * by the current value to
 weight ration (in thiscase 1/1)

This is an interesting idea, and one I hadn't thought of before.

Probably for ease of parsing however, it would need to be a new
property 'valued_as'?

maybe that should be in addition to the value field? For example, a
gold necklace might have a fixed value based on the workmanship of the
necklace, plus an inherent value based on the weight of the gold.

The final value then would be the combination of the two. This would
also scale nicely to enchanted weapons and the like.

For example a sword could be valued_as steel, with a value of 20 (say)

but a sword +1 might have a value of 1000, and a sword -1 a value of
-500 (this would require negative values, but allow in principle that
a player could make money by melting down cursed items, and reforming
them.

The questions then become, is it better to hijack the 'material' value
for that, and what effect would that have on the things that material
is currently used for?

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Banking system

2006-01-02 Thread Brendan Lally
On 1/2/06, Miguel Ghobangieno [EMAIL PROTECTED] wrote:
 Changing the value of the metal coins isn't doable as
 silver has a set weight to value ratio...

Well, today silver has about 1/80th of the weight to value ratio of
gold. So changing the relative prices is certainly possible.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Re: I'll commit the large denomination coin archtypes, I'd like to edit the amber coin to look more ambery (any objections)?

2006-01-01 Thread Brendan Lally
On 12/31/05, Miguel Ghobangieno [EMAIL PROTECTED] wrote:
 While regional currencies exchange values could change
 depending on factors that are not in the game yet the
 silver, plat, gold, jade, and amberonium coins should
 keep their absolute value forever.

Actually, something I think might be interesting would be to have
major and minor currencies.

Consider the (pre-decimalisation) British Currency.
Prices were given in pounds, shillings and pence, 12 p made one
shilling, and 20 shillings one pound

There was a one penny coin, a one shilling coin, and a one pound note.
In principle it was possible to use these, and only these, for
purchasing items. However, there were a number of other coins of
intermediate values which were extensively used to make up
intermediate values, without prices being quoted in them. (note that I
am referencing old British currancy, simply because there were so many
coins of arbitrary values that were issued -
http://en.wikipedia.org/wiki/British_coinage#Denominations_of_pre-decimal_coins_and_their_years_of_production
looks to be a fairly good list).

Now, what I am wondering, is if the coins with which shops make change
couldn't be the thing that varied, so that money would be taken from
one of 12 or so different types of coins, and change given in a
similar manner (to take an example from the above list, an item which
would require 50 shillings (gold) change might cause it to be given in
the form of two unites and a half unite in one place, but one two
guinea coin and two double florins somewhere else.

These could all be legal tender everywhere, whilst causing a player
who would travel in certain areas of the world to have different types
of coins to someone else elsewhere.

A modern form of this can be seen to a lesser extent with the euro
coins and notes, whilst they lack the amusingly contradictory values,
they have different designs on the reverse depending on which country
they are from, so that a coin with a design from a country relatively
far away is a mild curiosity on the occasions they are encountered.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Re: I'll commit the large denomination coin archtypes, I'd like to edit the amber coin to look more ambery (any objections)?

2005-12-31 Thread Brendan Lally
On 12/31/05, Mark Wedel [EMAIL PROTECTED] wrote:
   Not until relative recent history did paper money really become popular.  
 That
 said, if currency is changed, I'd suggest unique graphics (that are clearly
 distinguishable) are probably desired - having bunches of coins in my 
 inventory
 that all look the same would be confusing/annoying, and remove some of the
 reason for doing this, which is to add character.

This would also have to affect character generation, currently players
that are generated get an amount of money when they choose a class,
and before they exit the nexus. If the two destinations from the nexus
have differing currencies, then the player could get the 'wrong' type.

Moving the acquisition of money to the teleporters which the player
stepped on might work, but since dead players return there until they
get another savebed, this might be hard to guarentee to not be
exploitable (at the least, every existing player who didn't set a
savebed, would get some money next time they died).

Making those teleporters damned could work, indeed, if they pointed to
a relatively 'safe' place (scorn town hall maybe?) it might be
considered a good thing anyway.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Banking system

2005-12-27 Thread Brendan Lally
On 12/27/05, Anton Oussik [EMAIL PROTECTED] wrote:
 Also replying to several posts.
 Firstably card vs chequebook: I don't think there is plastic in CF,
 and so things should not be made out if it.

Why do you assume that credit cards /must/ be made out of plastic?
They could be made out of wood, or copper.

In fact, credit cards give a saner way to charge the player, because
real loan sha^W^W banks do exactly the same thing.

Charge a fixed amount each year/month, everytime you buy something,
send a request for payment of an amount vaguely related to the amount
owed. Every $STUPIDLY_SHORT_SPACE_OF_TIME increment by BIGNUM

You could then have differing credit limits backed by the amount that
you have in the bank (and, maybe, the level of the player). - These
could also have differing costs.

Maybe there could also be a few cards that offer gimmicks - like a
free dragon flight after you spend above a certain limit.

In case you couldn't gues, I don't like credit card companies very much.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Banking system

2005-12-25 Thread Brendan Lally
On 12/25/05, Anton Oussik [EMAIL PROTECTED] wrote:
 On 25/12/05, Mark Wedel [EMAIL PROTECTED] wrote:
  Anton Oussik wrote:
   On 24/12/05, Mark Wedel [EMAIL PROTECTED] wrote:
 At some level, it becomes a question of why not just make money a
   'stat'.
 
As said, this wouldn't be really hard.
 
Add a uint64 field to the player object.

 I suspect this would also fix the client bug when the client crashes
 when it steps on a tile where something has nrof  2^32.

Wouldn't stepping on non-money items which have a sufficiantly high
nrof also trigger such a crash?

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Banking system

2005-12-24 Thread Brendan Lally
On 12/24/05, Anton Oussik [EMAIL PROTECTED] wrote:
 Thinking about lalo's patch, an interesting idea would be to make a
 patch that makes the banking system more useful by introducing the
 following changes to the banks:

   - Gain interest on money deposited

[snip]

 In my opinion this will encourage people to use the banking system to
 store money.

It would, but I think there would need to be an associated opportunity
cost, otherwise there would be no incentive to keep liquid capital.

maybe something like 'real' banks do, where there are two accounts,
one a currant account against which cheques are drawn, and a savings
account, which takes a week (or more) to take money from, has a high
transaction charge, and also offers a reasonable interest rate.

This would unfortunatly require a more complex interface.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Wraith changes

2005-12-16 Thread Brendan Lally
On 12/16/05, Anton Oussik [EMAIL PROTECTED] wrote:

 a wraith should be strong enough to suck life from victim
 faster than victim sucks blood from it, since if it is losing hp it
 will die.

But surely this point is only true for creatures that are weaker than it?

One wouldn't expect a level 1 wraith to be able to kill a dragon surely.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] requestable spell lists.

2005-12-16 Thread Brendan Lally
On 12/17/05, Mark Wedel [EMAIL PROTECTED] wrote:
 Brendan Lally wrote:
  This could work, but requires a new command in the protocol.

   I don't know why it would require a new command.  the setup command is not
 true/false values, it is setting some variable to whatever value.

   So a 'setup spellmon 6' is perfectly valid.

   And to push the data, the same command could be used - it'd just need to be
 clarified that spellist would represent updates to existing data.  Or the
 spellist command could send optional params to denote what it is updating.

There is no 'same command' the existing implementation uses stats and
request/reply info.

the other advantage of push is we can be more bandwidth efficient.  If a
  player learns a new spell, only need to send that spell down the line, and 
  not
  all the spells if done on a pull approach.
 
  I thought about that, but I can't see how it can be done without the
  server storing the spell list for each player, which is a fairly ugly
  way to implement things. (the only other thing I could think of is to
  abuse the spell objects, and set an update value for each one (added,
  removed, changed costs, changed damage, etc)

   Same way it is done for most objects - you send it at the time of the event.

   So in server/apply.c, in learn_spell, you'd make a call to send_spellist()
 when the player learns a spell.

   This is how most all of the object updates for player inventory are 
 currently
 done - the update is sent in the code that makes the change - we don't hold 
 the
 results and send them later.

One thing that was suggested by gros on IRC earlier was almost a
hybrid approach, instead of having a stats value that says what type
of change has occurred, you have a stats value that contains a number
for the spell object, these would be assigned sequentially, and be
unique for any one player on each run of the server. (everyone would
have their spells numbered 1,2,3,4, etc.)

Then, if ever a spell was added or removed (by moving the attunement
into a seperate stat, and sending only the base cost, this can be the
only time an update is needed), the stats command can send the number
of the spell that was changed, and the client could then requestinfo #
and get back only that spell. (this was my understanding of gros'
suggestion, I hope he will clarify if I misunderstood some detail)

  2) I wonder if more spell info should be sent.  For example, base damage 
  values,
  lore information, etc.  If we only send spells on push, bandwidth 
  shouldn't be
  that costly, and it then gives the player more info to choose spells 
  (fireball,
  24 dam, ...).
 
  Lore and damage seem reasonable, although then the question is, should
  that be base damage or effective damage? Both of these values have
  issues, effective damage may not do as much damage as stated (even
  before resistance) owing to quirks in how each spell propagates, if
  base damage is sent, then you need to send a lot more data and
  hardcode the calculation. (more on that below)

   For damage, we obviously can't take into account resistances of creatures.  
 So
 it'd be basic damage - if the spell does more, like cones, because of multiple
 effects on top of each other, we don't factor that, as you can't really know 
 for
 sure how that will work out (likewise for fireballs - damage would vary 
 greatly
 based on where the creature is in the effect).  The lore info could note those
 increased effects.

This requires a substantial increase in the number of spells with such
information.

  Related, I think it'd be easier all around to send the spell path
  information as a bitmask - saves some bandwidth, and the bitmasks values 
  should
  be pretty stable (can't remember last time a new spell path was added, and 
  even
  then, the client could just display something like 'unknown' or whatever)
 
  This could work, although currently the clients have no information
  about spellpaths.
  This could be added, although maybe then a request_info spellpaths
  would be better to initialise it? (this way clients couldn't fall out
  of sync, and there is no restriction on adding new paths).

   Perhaps, adding requesting adds complication, but not that much.  At the 
 same
 time, there is a lot of communication that is defined stable.  IF someone were
 to add another stat for example, that would require some significant changes -
 the client isn't designed for dynamic stat information.

Requesting spell path names, at least on the server side, is easy, I
had it working locally already.

The way I'm dealing with stats is to only send them if spellmon is
set, anyone sending that should know what they will get back.

   At some level, it could be nice for the server to somehow note what current
 client version is and tell the player if their client is out of date.  So if 
 the
 client is out of date, they'd know to go update it - that'd be good for 
 reasons
 beyond just spellpaths.

I'm not sure

[crossfire] requestable spell lists.

2005-12-15 Thread Brendan Lally
I have today attached a patch to the sf tracker (which can be found at
https://sourceforge.net/tracker/index.php?func=detailaid=1381875group_id=13833atid=313833
) which implements the beginnings of support for a new requestinfo
type - spell_list.

Whilst this is not complete  - the cases where the spell list could be
updated are not all dealt with, and there is no proper client support
(although 
https://sourceforge.net/tracker/index.php?func=detailaid=1381871group_id=152431atid=784287
contains a hack for jcrossclient that I've been using for testing
purposes). - it is at a stage where comments are needed. - Should any
of the fields used change, or be extended or added to? With this in
mind, I ask you to read the rest of this message which contains a
(hopefully clear) description of the changes I am considering.

requestinfo spell_list:

This is intended to allow clients to request the spell list, and get
it back in a controlled way, so that it can build
menus/lists/interfaces of whatever sort it thinks appropriate.

Additionally, it adds a new setup option, spellmon, which sends a
value if the spell list has altered. This is sent once each time it
alters (or might have altered) between sending of the stats command,
and only if requested. It sends back a value which corresponds to the
type of change that might have occurred;

1 - costs changed.
2 - attunements change
4 - spells were added or removed.

This is a bitmask, so multiple values may be sent, depending on what
the client wants to do with the information, it may or may not want to
re-request the spell_list.

from the diff to doc/Developers/protocol:

 spell_list (no parameters)
This returns a list of all the spells the player knows, along with
some other information about them. The data is sent in plain text,
one spell per line in the following format.

spell name:spell level:skill:spell paths:status:mana cost:grace cost

Where:
skill is sent as the number that maps to the skill as provided
by skill info (above)
spell paths is sent as a series of space seperated words
status is a number that has the following meanings;
1 - attuned
2 - repelled
4 - denied
any or all of these may or may not be set for each spell, if so,
they add together.

All of these fields will be sent, but it is not certain that any
field will have entries. If extra fields are added later, it will be
to the end of each entry.

an example response is:

burning hands:1:174:Fire:1:4:0
holy word:1:170:Turning:0:0:4
spark shower:1:176:Electricity:0:5:0

note that in the case where the player hasn't logged in, or doesn't
have any spells, a blank list is returned (the replyinfo forms the
only line in the response)

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Re: weather, lattitude, town location, and the world

2005-11-15 Thread Brendan Lally
On 11/15/05, Lalo Martins [EMAIL PROTECTED] wrote:
 And so says Mark Wedel on 11/15/05 16:05...
   I'd personally think that canals on that scale would be more modern
  than what crossfire is really set in.

 Not really.  The ancient Chinese did it, and Bigworld has powerful and
 (relatively) cheap magic to make up for the low tech.

Also there are the Roman Canals, Foss Dyke was built in the second
century, and is  over 10 miles long (about the length of the continent
at the moment)

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] weather, lattitude, town location, and the world

2005-11-12 Thread Brendan Lally
On 11/12/05, Mark Wedel [EMAIL PROTECTED] wrote:
  Crossfire
 is somewhat limited by only 1 aspect of terrain is available (we don't have
 forested mountains for example).

Forested mountains could exist in principle, it just requires someone
to be able to draw alpine trees.

   All that said, if we were to create another continent and wanted to start 
 with
 an automatic process, there are many improvments I can think of:

 1) Create altitude map (with different seed of course) like did before.

Actually, I think it might be preferable to create tectonic plate
boundaries, and then generate heights from that, it would give a much
greater concentration of mountains, without having them scattered
everywhere (and impeding movement)

It would also be more realistic.

 2) Based on that altitude map, run weather on it for a long time (elevation 0
 is of course see).

The problem with that is that the same results aren't guarenteed, so
if this is done once, and a mistake is made with a heightmap somewhere
(a big mountain in the centre of navar, say) it could be difficult to
run the weathermap to the same effect again after fixing it.

 Water has to go somewhere, so that determines rivers,
 lakes, and marshes (lakes would basically be formed when the total water 
 flowing
 into a set of spaces is above some amount and that set of space(s) is
 constrained by higher objects around that would hold the water.

This would also be limited by temperature, at lower temperatures, the
amount of inflowing water needed is less, because less evaporation
occurs. (this is a major part of the reason why there are so many
lakes in scandinava).

   Mountains should probably be determined if the elevation is above some 
 height.
   But low mountains are also possible, but that should be done based on
 different of elevation of neighboring spaces - if a space is say 1000' 
 different
 in elevation from its neighbors, it is a mountain.

   similar for mountains, but no height - just height difference (in the 
 250-500'
 range?).

Well, if the surrounding area is high, and there is a line of low
altitude, then you get a canyon, if the surrounding land is low, and
there is a line of high altitude, then you get a mountain ridge.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] weather, lattitude, town location, and the world

2005-11-12 Thread Brendan Lally
On 11/12/05, Mark Wedel [EMAIL PROTECTED] wrote:
 Brendan Lally wrote:
  On 11/12/05, Mark Wedel [EMAIL PROTECTED] wrote:
   Crossfire
  is somewhat limited by only 1 aspect of terrain is available (we don't have
  forested mountains for example).
 
  Forested mountains could exist in principle, it just requires someone
  to be able to draw alpine trees.
 
All that said, if we were to create another continent and wanted to 
  start with
  an automatic process, there are many improvments I can think of:
 
  1) Create altitude map (with different seed of course) like did before.
 
  Actually, I think it might be preferable to create tectonic plate
  boundaries, and then generate heights from that, it would give a much
  greater concentration of mountains, without having them scattered
  everywhere (and impeding movement)

   I believe there are other projects out there (not related to crossfire) 
 about
 mimicing a planet creation process.  If we were really serious, we should look
 at those.

I did ask the freeciv developers on freenode about that point a few
months back, they have a random world generator which creates tile
based maps.

However a lot of what they had was quite hardcoded, and they don't
have a nice way to analyse the squares. - Plus the scale is much
larger, millions of acres per square.

This was just before their 2.0 release however, they map have
something more hi-jackable now.

   Then with that, you use that as the blank slate to start putting towns,
 dungeons, etc on.  Having the above info actually makes some of that process
 easier - towns wouldn't be in the middle of a mountain range, but likely along
 the rivers, and most typical, at the river/sea junction.

That could work, particularly if canals were added later, so that
boats could travel across much of the continent (your movement code
reworking could make it possible then to have narrowboats to travel
between cities).

   But point here is that this is still creating a map with actual forest 
 spaces
 and whatnot - you use a dynamic process to create a static map.

Yes, and thereafter are forced to use that static version to edit it,
this is an issue if there is a change that would be easy to make with
a heightmap, but which would require extensive modification otherwise.

Incidentally, it also strikes me that the best way to get a height map
would be from a grayscale image. - simply say that brightness is
altitude, and then lots of adjustments could be made with the use of
gimp filters.

   That said, if the same weather process is used to create this static map as
 that used in the game, then at least as the game runs, the weather would be
 consistent with the terrain.  For example, right now, there are desert areas 
 on
 the map, but with the weather code, I have no idea what level of rainfall they
 get, since the location of the desert was rather arbitrary set (lets put it 
 here).

Also there aren't enough deserts, but that is another point altogether.

   In geological terms, rivers will carve out valleys.  So in those cases 
 where a
 river flows into what would form a lake, see where the water would flow out 
 and
 make some random determination if the ground in that area is hard (rock) or 
 soft
 (earth/gravel/whatever), and thus a gorge would get eroded away to let the 
 water
 out, and you don't have a lake anymore.

The issue with doing that is that it would require playing with the
sea levels as water evaporates, to compensate for the water falling as
rain. As long as the world is mostly land, and not water, then that
will be a significant effect.

Furthermore, because in the real world, water will often drain through
rock until it reaches an imporous layer, there is normally a water
table rather than lots of water on the surface, creating vast swamps.
It would be neccessary to account for this effect to avoid a
disproportiate amount of swamp, maybe there would need to be two
inputs then, elevation and geology?

This would also improve lake formation, since it would simply be the
point at which the water table intersects with the surrounding land.

To get this to vary properly then, at least an approximation to
measure groundwater flow would be needed. (probably the laplace
approximation would be sufficiant, but I'd need to do some reading to
check on that),

hmm, hacking the weather code to include a water table would have some
merit to it (for one thing, the quick hack would be to determine
porous rock depth by archetype, so deserts might still get rain, but
they would have lots of porous rock, so the water would never stay on
the surface (yes, I realise that is not even vaguely what deserts
actually are, but it would at least stop puddles forming)

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] jcrossclient lives.

2005-11-11 Thread Brendan Lally
On 11/11/05, Yann Chachkoff [EMAIL PROTECTED] wrote:
 Just a small question: Why hasn't been jcrossclient made part of the Crossfire
 project, but is being maintained separately ? It seems a bit strange to me,
 especially since there is obviously no licencing issue.

There is also no code shared between the two.

Whereas the cfclient/gcfclient/scfclient and gcfclient2 are all
written in C, using the same code in common/ jcrossclient doesn't.
Everything is written in java (or with the newer parts in a mutated
form of java that is pretending to be C, but that is more an issue of
my coding style).

Also the eventual goal is different. I intend to modernise the
featureset of jcrossclient, to match up to current servers, but after
that, I intend to turn it into a web applet, so that crossfire servers
can offer a way to play on them with a web browser using a java plugin
(mikee has already told me that he will do this with cat2, once it is
working)

This is still a couple of months away, but even so, it is the nature
of such a goal that the release schedule will be different for
jcrossclient compared to crossfire as a whole (and, at least
initially, I expect be having a release every week or two as I try to
stabalise towards a 1.0 release. - having these releases announced in
connection with the main crossfire project may very easily cause
confusion, especially since the version numbering is different (look
at the number of questions that occured around the time of the 1.7.1
cfclient/gcfclient release).

One final point, the controls are subtly different, and the nature of
awt is such that it would be very hard to get it to mimic the gtk
clients behaviour in all respects, as such it is likely that there
will need to remain seperate control documentation, which again is
harder to differentiate in a single project.

Do not think however that this means that there will not be
significant design and code overlaps, I have already ported/mutilated
some code from gcfclient for the map1a parser, I would like to think
that in future such a transfer could also happen the other way,
although that is not likely to be until there is more code to borrow.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] weather, lattitude, town location, and the world

2005-11-11 Thread Brendan Lally
On 11/11/05, Anton Oussik [EMAIL PROTECTED] wrote:
 On 11/11/05, Lalo Martins [EMAIL PROTECTED] wrote:
  Hmm.  Maybe bigworld is not big at all :-P Brendan's calculations
  still make sense to me generally, except that now I'm thinking about
  one-chain-wide mountains and finding them a bit silly.  But that can
  pass, since those are relatively rare.

 Such rock formations may actually be possible, wih a hard surface and
 wind and such. Since the planet is not Earth and since we are willing
 to accept teleportation and beds to reality, then why not small
 naturally occuring rock formations?

These /do/ exist in the real world, a quick google turned up
http://home.bawue.de/~jjk/travel/Urlaub%202002/Canyonlands/Needles%202.png

They don't look like they occupy much more than a tenth of an acre.
Of course, arguably they should be called rock formations, and not
mountains, but that is a different point.

Personally I would say that if bigworld were not already established,
it would be nicer to use a height map, so that each square would have
a height associated with it, and then whether they are hill, mountain,
plain, river or desert could be inferred from the height values (the
areas that cities are currently on would need to be flat, with a
depression to the side with between them and the nearest sea facing
mountains, to redirect the resulting river).

This would have the added advantage of reducing the size of the
bigworld maps download, although at a cost of slower startup time.

Note that I don't actually suggest this is done, but merely seek to
describe how it might work.

Effectively to go from a height map to terrain, you would need to
determine a coastline (being areas that have height 0) determine the
water absorption, (inversely proportional to depth and distance from
shore should be a reasonable approximation) and then propagate water
along a path roughly parrallel to the coastline, losing water with a
rate given by grad(height),

low flat areas inland would be deserts under that model, unless there
was a small lake in which case an oasis would form,

if there were a mountain range then, there would be a watershed given
by the peak, so that a river would form along the path that involves
the quickest drop to sea level.

if the mountains are not very high, then water would flow down the
other side too, creating savannah or temperate forests (based on
temperature)

the rivers being created there would create areas of river delta, with
either swamps/rainforest or bogs/farmland (depending on temperature,
or local rainfall?)

If this were done in a way that avoided the use of random numbers,
this would still be a fixed value, and it might even be possible to
set exits to go for 'nearest accessible square of arch'  - for example
a mountain cave might be set to be placed on the nearest mountain
square to its current location (probably only 4-5 squares away, unless
the heightmap is altered substantially).

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


[crossfire] jcrossclient lives.

2005-11-10 Thread Brendan Lally
As those of you who follow #crossfire on freenode will be aware, I
have recently taken over Phil Brown's jcrossclient project, and
started updating it to make it work again with modern servers.

I have tonight uploaded a new version of jcrossclient to the
sourceforge page I created for it a few days ago.

It can be found https://sourceforge.net/projects/jcrossclient/

This is the first new version to be released in four and a half years.

In keeping with the previous numbering system, this is version 1.0-alpha-2.

Please note that this /is/ an alpha release, and therefore should not
be considered suitable for use as a main client (yet). If you play
using this client, and get killed due to a bug, I will not be held
responsible.

Major changes of note since the previous release include:

* Support for PNG images (and removal of xpm support)

* Support for big images on the map view

* Support for scaled big images in the ground view window ( as seen at
https://sourceforge.net/project/screenshots.php?group_id=152431)

* Numberpad now works for control

* Names in the inventory window are no longer corrupted.

* default view size is 15x15

* Removal of fatigue bar

Known Bugs:
* Command window is a bit, interesting, and sometimes throws
exceptions if the commands are malformated. Unlike other crossfire
clients, jcrossclient requires commands to be prefixed by ' and say
commands to be prefixed by 

* Main window doesn't get created at the correct size, and must be
manually re-sized to expose the stat bars.

* Map updates are somewhat slow, even on my AMD64 system, and the
display can flicker if it has lots of activity (like rapid movement).


I hope to address these issues over the coming weeks, most noticably
the map update speed/smoothess issue, as well as continuing to add
support for more of the newer features that the server can provide
(such as new_draw_info_ext support).

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Selling price variance and buying price variance

2005-11-08 Thread Brendan Lally
On 11/8/05, Mark Wedel [EMAIL PROTECTED] wrote:
 Brendan Lally wrote:
  This is because there is an arbitrary adjustment to price based on the
  item count and map name, it is in the range of +-5% it is designed to
  allow otherwise identical shops to give a small variation in price.
 
  Possibly it shouldn't apply to shops selling items, only buying them?

   How does it do that?  does it just randomize the price in the query strings
 (if so, how does that remain consistent), or does it change the actual objects
 value?

It is the price returned by query_cost that changes.

lines 295-300 server/shop.c
/* we will also have an extra 0-5% variation between shops of the same type
 * for valuable items (below a value of 50 this effect wouldn't be very
 * pointful, and could give fun with rounding.
 */
if(who-map-path!=NULL  val  50)
  
val=(sint64)val+0.05*(sint64)val*cos(tmp-count+strlen(who-map-path));

making this not apply to a shop when it sells items, is as simple as
adding an ' flag == F_SELL' to the if statement.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Selling price variance and buying price variance

2005-11-07 Thread Brendan Lally
On 11/7/05, Kevin Bulgrien [EMAIL PROTECTED] wrote:
 I do not get the purpose behind the fact that selling price of look is wildly
 different from store to store.

 At first I thought it might have something to do with the store having more
 of an interest in certain items, but now I am not so sure.

It is.

 It seems that the lighting emporium pays almost 4x for many items compared to
 some other stores.  This was true of body parts, flint/steel, and weapons.

Yeah, I made a mistake adding the header for that shop, left off a
minus sign, making it a very /good/ place to sell those items, instead
of somewhere that isn't so good. (incidentally, I posted it to the
crossfire-maps maling list, and no one called me on it).

I've updated CVS to use a more reasonable value.

 It is also pretty weird to see flint and steel sold for well over 1000 plat in
 say the weapon store when you can walk over to the lighting emporium and get
 one for 260-ish.

yes, that is the other consequence of me goofing with the header.

  And, I say -ish, because in the store, each one has a
 different price... for my character, 239-265 or so.  That seems bizarre.  Why
 would the price not be the same for the same item in the same store?

This is because there is an arbitrary adjustment to price based on the
item count and map name, it is in the range of +-5% it is designed to
allow otherwise identical shops to give a small variation in price.

Possibly it shouldn't apply to shops selling items, only buying them?

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


[crossfire] alchemy/alchemy

2005-11-05 Thread Brendan Lally
Currently there are two concepts within the game world called
'alchemy', the first is a skill for the transformation of items, the
second (which I was just reminded of today, having forgotten of it due
to its general uselessness) is the spell alchemy which transforms
items into gold.

These two things having the same name is confusing, so I propose that
one of them change their name.

since alchemy.c is a file that deals with the skill alchemy, it would
be more consistent to rename the spell. I propose the name 'aura of
midas' although if someone else has another idea then that would be
fine too.

If it were the case that it were decided to keep the name alchemy for
the spell, then notwithstanding the comment about source file names,
it would be equally straightforward to rename the alchemy skill. In
this case I would suggest something like apothecary as a suitable
replacement name.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Pickup issues

2005-11-05 Thread Brendan Lally
On 11/5/05, Nicolas Weeger [EMAIL PROTECTED] wrote:
 Hello.

 The query_cost function was changed part of selling / buying
 improvement. But now the pickup ratio, which uses this function to
 estimate the item's price, grabs much more items than before.
 Should we try to fix to keep previous behaviour? Or just ignore  leave
 like that?

That it doesn't have the previous behaviour would be a bug.

You are however welcome to call it a feature, although I believe
ragnor has just gone and fixed it on me, so such a nomenclature will
be short lived..

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Love and marriage, love and marriage...

2005-10-19 Thread Brendan Lally
On 10/19/05, Sebastian Andersson
[EMAIL PROTECTED] wrote:
 In fact, there are many societies that don't value pretty as something
 possitive (goes nicely together with many religions' art of self-denial)

That is what should happen, unfortunatly there are enough greedy
people around that it doesn't actually occur that way.

 and if they were to live alone gold would have a lower value as it
 wouldn't be wasted on vanity items.

That's a nice theory, but it didn't actually happen. Gold was highly
valued throughout the ancient world, and was one of the first things
that was traded for in the new world, often in the form of jewelery
and ornamentation (which demonstrates that it was valued and worked
there too).

I suspect that if you were to find a society that had no gold reserves
accesible, then you would find one which didn't value gold, but that
would be the only one.

 I'm usualy surprised how much is the same in crossfire and other human
 societies. If magic was so easily obtainable as it is in crossfire, I
 think few people would buy a flint  stone.

Most NPCs don't cast magic. The idea of introducing reagents
(mentioned elsewhere) is an attempt to balance this.

   but if one is interested, wikipedia has
   an article about it:
   http://en.wikipedia.org/wiki/Same-sex_marriage#History_of_same-sex_unions
 
  None of these are marriage, but are instead more like that of the
  relationship between a mentor and appretice, some of them taken to a
  sexual level.

 From the article:
 In China, especially in the southern province of Fujian where male love
 was especially cultivated, men would marry youths in elaborate
 ceremonies.

do you what to include the next line too?
'The marriages would last a number of years, at the end of which the
elder partner would help the younger find a (female) wife and settle
down to raise a family.'

quite clearly then /not/ a (semi-)permenent relationship, and /not/
one that was considered to create a unique family in its own right (as
marriage is)

To call this 'marriage' is to use the word in a non-standard way, and
therefore is unhelpful to clarity of thought and expression on this
topic.

 That in turn seems to come from the book:
 Bret Hinsch, Passions of the Cut Sleeve: The Male Homosexual Tradition
 in China, p. 132

I don't know this book or this author. nor is it explicitly referenced
in the article (an omission on the part of the creators of the
article?)

 Other parts of the article speaks of unions, which in my opinion is
 another word for marriage.

In my opinion it isn't. I suspect most trades unions would hold the same view.

marriage is a specific type of union, one that has members of two
families leave and form a new family. Other types of unions, such as
those between apprentice and mentor, do not fulfil the same
description, indeed to the host family, such a union is more similar
to a birth in terms of the change in family structure.

 Considering how diverse societies there have been, I don't think one can
 assume anything about a crossfire society by looking at ours'.

Not ours, but all human societies. There are always certain constants,
things like status determined by dress and ornamentation - in the
aztec empire, to wear clothing marking a status above your own was
punishable by death.

Today in England impersonating a police officer is considered to be a
very serious crime.

I can't think of any society (certainly not any large and successful
one) where clothing or jewelery was not reserved in such a way as a
means to show status. To not have such a thing in crossfire would seem
odd, and likely ring false.

 Heck,
 would people in a crossfire world even need to grow food, the beginning
 of most human societies? In crossfire I would rather think that
 societies would start up around priests, casting restoration on their
 friends or around mages casting create food.

But these are high level spells, most of the NPCs don't cast spells,
nor have access to them.

And production isn't at a high enough rate to feed everyone.

Nonetheless, this is yet another reason for spell reagents

   sex has to be introduced first (and better text handling).
 
  I'm not quite sure how those two follow on from each other... are you
  thinking of new attack messages?

 I was thinking about sex as in gender, not the verb. But I should have
 used the word gender of course to avoid such confusion.
 Better text handling would be needed to let people know about sex by
 using her/his, she/he etc.

I suspect that the effort to do that would be about the same as that
required to i18n the server (but not the archs or maps). If it is
going to be done, switching to gettext at the same time may be
worthwhile.

 But as has already been mentioned on the list, make things generic and
 let the people in the game role-play such things.

Yeah, and it doesn't involve playing with .po files.

___
crossfire mailing list
crossfire@metalforge.org

Re: [crossfire] Re: New movement code.

2005-10-19 Thread Brendan Lally
On 10/19/05, Anton Oussik [EMAIL PROTECTED] wrote:
 When activated the wraith becomes invisible, stealthy, can move
 through walls, and can not cast spells, or hold items in inventory
 (except invisible ones of course), The only attack then avaliable is
 wraith touch, which deals ghosthit, depletion, drain, and life
 slealing.

 Without clothes wraiths are not very strong, so I do not see how it
 will make them overpowered. Running for the nearest wall will often be
 the best choice, only preying on the weak, but that will be the only
 way of surviving, since you would die from three hits by a powerful
 monster, if you can not life steal them as fast as they are hitting
 you.

Will direct attacks hit wraith stood in a wall (like they do in ADOM
with ghosts)?

Will rings/amulets remain wearable?

I'm inclined to say that at least there should be a /big/ hit points
penalty as well (maybe 50% - though with a small ac bonus too ?)

 While in this mode the wraith ca not pick anything up, or interact
 with the environment, like push switches, buttons, or anything like
 that.

Ok, so their weight would have to be zero too.

Would you change the face as well, to give some clue they are in this mode?

 This would also mean players can not take stuff out of treasure
 rooms... they can get in, fly though it, and then walk out again
 leaving treasure behind. They would not be able to steal it without
 completing the quest.

You need to deal with switching out of this mode inside the treasure
room (you try to adress this later)

That could still lead to lots of potential spoilers (you could observe
the boulder layout and infer information from that)

 Also you should not be able to go into void squares to get to other
 floors or mechanic sections of the map. You should be able to apply
 exits though, to get around between maps.

not all boulder layouts are seperated by squares with no tiles on.

 There is howerver a case of the player going into the mode sneaking up
 to a switch opening treasure room, and then taking it out. The only
 way out of this I see is to only provide one way of leaving the mode
 once entered: by visiting some well defined set of points (like an
 altar of devourers, or a graveyard to posess a new body). This way it
 will be impossible for a player to either cheat in the quest or help
 other players cheat.

Alter of devourers might work, but there are maps that have alters in
dungeons, and these might get placed in areas where a player could get
stuck.

Also what about a wraith that doesn't worship devourers?

There are similar issues with graveyard placement, plus it is a little
illogical that a graveyard corpse should work, but a 'fresh' one
should not.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] [IDEA] Reagents for cast magic

2005-10-19 Thread Brendan Lally
On 10/19/05, Anton Oussik [EMAIL PROTECTED] wrote:
 Another issue I'd like to bring up is grace. getting rid of
 spellpoints will make grace stand out. If you ask me the model works,
 but it will stand out now that spellpoints are going away.

Would spell points go away?

To my mind they do different things, reagents limit the total number
of spells cast, spellpoints limit the rate they can be cast at.

Arguably spell delay can compensate for this effect on its own, but it
would then need to be tweaked up.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Re: New movement code. (Wraith stuff) (Please don't implement)

2005-10-19 Thread Brendan Lally
On 10/19/05, Mitch Obrian [EMAIL PROTECTED] wrote:
 Please do not implement this passing through walls
 stuff.
 I /strongly/ oppose passing through walls. I do not
 want my maps to become worthless because someone
 decided we need to make the game worthlessly easy.

If it were a new movement type, then it would be possible to block it
explicitly.

How many maps would need modified to block that movement type for one
reason or another?

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Re: New movement code.

2005-10-19 Thread Brendan Lally
On 10/20/05, Todd Mitchell [EMAIL PROTECTED] wrote:
 A quick summary of ideas I have:

 very high mountains (mountain_5) remains blocked
 high mountains (mountain_4) require 'climbing' or 'flying' movement type
 to pass

On a related note, whilst all these tiles need updating, flattening
the tiles a little may be worthwhile (mountains 1 and 2 become hills,
hills become flat ground) - currently the world map is very
mountainous, flattening it would aid movement.

 rivers remain blocked (how to explain this re flying?)

with reference to back to the future - hoverboards don't work over water.

 *most* wall types and doors remain blocked
 Wasteland remains blocked (or becomes like swamp?) except to flying

That will break the team arena.

Also, since it is being changed anyway, how about altering its name to
'volcanic plain' or something similar? Wasteland sounds like something
that should be traversible.

 shallow sea requires a 'swimming' or 'sailing'  or 'flying' movement type
 sea and deep sea require a 'sailing' or 'flying' movement type

or a submarine movement type, which should also work on icebergs and
sea ice. (not as anacronistic as might be supposed, the first
submarines were in the early 17th century).

 new types of jungle and woods require a 'woodlands' or 'flying' movement

Also, roads and tracks should allow carriages to pass and roads,
tracks and grass should allow horses to pass. (these don't exist yet,
but should).

further in the future
Desert should allow camels to pass (if there ever is a large enough
desert to make that worthwhile).

Tundra and glacier should be passable to husky sled.

 type
 flying has limits on range

but you also said sea and deep sea require a 'sailing' or
'flying' movement type

so if a player flies out over deep sea and lands, what happens? do
they insta-death?

 swimming has a drowning behaviour (like swamp)?
 climbing has a falling behaviour (like swamp)?

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Re: New movement code.

2005-10-19 Thread Brendan Lally
On 10/20/05, Todd Mitchell [EMAIL PROTECTED] wrote:
 Brendan Lally wrote:
 with reference to back to the future - hoverboards don't work over water.
 
 But you can still fly over seas... until you tire.  The reason I suggest
 we need to restrict rivers is because they are so often used to direct
 movement already and they have fords and bridges to allow passage.

Restrict such a restriction to fresh water? (salt in the water
[techobabble] so that the [technobabble] provides greater lifting
force)

 but you also said sea and deep sea require a 'sailing' or
 'flying' movement type
 
 so if a player flies out over deep sea and lands, what happens? do
 they insta-death?
 
 I think if they can't swim they would probably drown.  If they could
 swim they better hope they make it back to land before they drown.

But if deep see is blocked to swimming, then they won't be able to swim back.

 I
 imagine you can't recuperate fatigue so you can fly again while you are
 swimming...

That will be guarenteed death then.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Love and marriage, love and marriage...

2005-10-18 Thread Brendan Lally
On 10/18/05, Anton Oussik [EMAIL PROTECTED] wrote:
 I persume you would get married in a church, which means you would
 need to worship a god of some sort.

Wouldn't it be a high level thing anyway? Marriage typically something
that was engaged in later in life than soldiering.

   - Should the couple worship the same god for marriage to work? Maybe
 allow marriages between worshipers of different gods as long as they
 are not enemies and there is no conflict with any of the gods?

or allow each god to define it. I'm inclined to say no though, the
gods in crossfire are not merely different denominations, but
different religions, there is no real-world norm to parallel to what
you describe.

   - Do we allow same sex marriges (I can see valriel rejecting them)?

I can only assume this is an attempt to provoke an off-topic flamewar.

I shall simply state that it is ahistorical, without precedent in any
society that approximates the technological state where crossfire is
set (medieval europe/renaissence - with the odd 17th century-ism)

 Should it be god dependant? Should some gods not allow marriage
 alltogether (like devourers, since the primary goal of getting married
 is having children, and this seems to go against the principles of
 devourers)

probably, or else they would have polygamy/polyandry

   - Divorces. Let's face it, relationships do not last for ever, and
 you may decide to go your own ways. Should there be a mechanism for
 terminating a marriage?

not a standard one. The way that divorces can occur varies between
different faiths. I see no compelling reason why crossfire should be
different.

There are major issues though, if marriage would allow a shared bank
account, then splitting it afterwards would be interesting. This would
become more acute if polygamy existed

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] New movement code.

2005-10-17 Thread Brendan Lally
On 10/17/05, Joshua Wilson [EMAIL PROTECTED] wrote:

 Brendan Lally wrote:
  The following are IMHO only.

 IMHO is good enough for around here :-)

 
  On 10/17/05, Joshua Wilson [EMAIL PROTECTED] wrote:
 
 Do the undead (Devourer) breathe?
 
 And if not, can they simple sink to the bottom anyway and walk as far as
 they want?
 
 
  in theory, but, since water will contain trace amounts of holy water
  (being one large interconnected system into which such water will at
  some point have been introduced), and since holy water is fatal to
  undead, when they tire and sink, they start to swallow water and the
  component of that that is holy water kills them.
 

 Interesting.  A few thoughts here.

 Are you using this logic as a way to prevent the undead from getting an
 advantage that overpowers them, or is this how you really see it?

according to wikipedia: 'Once consecrated, more ordinary water can be
added to the supply of holy water, and the entire quantity of water
remains consecrated provided that the amount added is less than the
amount of water that was there.'

I had never heard this before (but then I've never really thought
about that before, so have never tried to look it up), but it sounds
plausible.

Gameplay is to me the key point, If there is drowning, then there is
no need to have massive alterations to world maps that have open
bodies of water (and illogical limits on where a player can and can't
swim). If some characters are not guarenteed to be able to drown, then
they could go anywhere in a body of water, which would mean a need to
modify them to define where someone can't swim to.

The 'all water is partially holy water' argument does have one other
problem, in that wraiths can drink potions of water with no ill
effects.

 Isn't holy water blessed by a priest to become holy, and after it's been
 used no longer holy and just water?  In this case wouldn't water
 returned to the sea no longer be holy?

That's an interesting question, I infer from the wikipedia quote
above, that the water would then no longer be exorcised, but that is
an unsourced line from a wikipedia article. I have been unable to find
a better reference myself.

I do know that the quantity of water recognised as holy by any person
is a tiny fraction of the world's total (even if the hindu
intrepretation is used where (as I understand it) the entire river
gagnes is considered holy - I'm unsure on this point, and would
welcome it being corrected, I don't think hinduism has exorcism of
water in the same way as Christianity.)

Anyway, regardless of the reality of holy water, the world of
crossfire is polytheistic, one god can define its persistance in
rivers, seas and streams (but not in glass bottles, or fountains -
sounds kinda like a gaea sort of claim to me.), while the others
don't.

If their banishments can work against wraith, why not their holy water?

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: Re: [crossfire] New movement code.

2005-10-17 Thread Brendan Lally
On 10/17/05, Mitch Obrian [EMAIL PROTECTED] wrote:
 Gaia is a diety who has it's own lore, other dieties
 have other lore. We should not make one lore primacy
 above other (_especially_ gaia's).

Is there actually a proper set of lore for the various gods in crossfire?

If so, where is it?

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Re: New movement code.

2005-10-17 Thread Brendan Lally
On 10/18/05, Lalo Martins [EMAIL PROTECTED] wrote:
 And so says Brendan Lally on 10/18/2005 09:19 AM...
  Is there actually a proper set of lore for the various gods in crossfire?
 
  If so, where is it?

 It was a pet project I was working on, many, many years ago.  It's on
 the wiki.  It's not by any means official.  And I only did Gaea, Valriel
 and Gorokh versions (although it's possible that followers of other gods
 subscribe to the Gaean version, it was written with that intention).

Yeah, I was thinking in terms of inside the game.

possibly however this stuff should go into the handbook?

 If anyone actually finds them interesting, I'm game for making
 improvements or writing more stuff.

It certainly looks interesting, there are a few grammatical oddities
(things like teached instead of taught), but I'll wait until there is
a wiki with revision control until I fix them (speaking of which, when
is that expected?)

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] New movement code.

2005-10-16 Thread Brendan Lally
On 10/16/05, Todd Mitchell [EMAIL PROTECTED] wrote:
 I would advocate that only  the shallow sea should be swimmable.

Could seas use the same approach as swamps? That when a player starts
walking into them, they stand a chance to sink slightly, and if they
keep going, they die? This would effectively stop long distance
swimming

Obviously the messages would need to change appropriately:
You glide comfortably through the water
You feel your legs start to get tired
You struggle to keep your head above water
You gasp for breath, and in the process swallow lots of water
You are drowning

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] More server speed reducing the objects number

2005-10-16 Thread Brendan Lally
On 10/16/05, Mitch Obrian [EMAIL PROTECTED] wrote:
 Also the corpses should look bloodied up, and if
 someone consumed the monster totaly with fire spell
 etc then a corpse shouldn't be dropped.

or look at the last attack type, and if it is fire or lightning and
enough (maybe  level?) damage is done, create a charred corpse
instead.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] More server speed reducing the objects number

2005-10-15 Thread Brendan Lally
On 10/15/05, Alberto Sáez Lodeiros [EMAIL PROTECTED] wrote:
 We have disscussed the way to do this, and like we talk about, the best way 
 is:
 1.- Spawn
 2.- Create random Loot
 3.- Die
 4.- Create container
 5.- Move loot to container
 6.- Put container in monster

What would you do to the container (cadaver?) after a player 'opens'
it? Destroy the container, or leave it there, empty?

If the corpses were to remain, then using the dead bodies for storing
different equipment could be interesting. I can certainly envision
storing large numbers of axes in a goblin.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Houses system for guilds

2005-10-15 Thread Brendan Lally
On 10/15/05, Alberto Sáez Lodeiros [EMAIL PROTECTED] wrote:
 Personally, i like more the blank map idea, because in this way, we
 can create our own city.

have a read of the thread from this post:
http://shadowknight.real-time.com/pipermail/crossfire/2005-September/009238.html

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] More server speed reducing the objects number

2005-10-15 Thread Brendan Lally
On 10/15/05, Mitch Obrian [EMAIL PROTECTED] wrote:
 If one's server is lagging because of items then one
 is running his server on a 286 PS/2 system (if that is
 even possible). This is a non-problem.

Well, to be fair, on the occasions where servers do slow down, it
tends to be from spell  objects (normally coupled with directors).
This is lagging 'because of items'.

However I would agree that treasure drops from monsters aren't
normally an issue in this case. Any benefit there would be would be to
bandwidth usage, not server memory usage. However, even there,
unless/until the number of faces visible per square is increased, the
difference is likely to be minor (2 objects instead of 3, if there are
multiple items dropped, and if there were nothing on the floor
already)

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] [IDEA] Reagents for cast magic

2005-10-14 Thread Brendan Lally
On 10/14/05, ERACC [EMAIL PROTECTED] wrote:
 Needing items to cast spells is more along the lines of witchcraft
 than sorcerous magic (read some Steven Brust http://dreamcafe.com/
 to see what I mean). In CF the magic system seems to be sorcerous
 based. The witchcraft based magic is more akin to alchemy in CF.

Why do you take this to be your reference point?

Real world magic is mostly con tricks and illusion anyway, and there
is therefore no 'correct' way (consistent with the real world) to
model the invocation of magic in a game.

Using items for spells to my mind is as such more an issue of game
balance than adherence to the fictional work of some random novelist.

Anyway, the old amiga RPG worlds of legend (I never did win that
game...) used a similar system, and I think runescape does too.

If you really want to get around the issue of carrying ingredients,
have it incorporated into diet. - define certain magic ingredients and
have food be able to contain them. eating that food would then
increment a counter stored as an invisible object on the player (or
directly on the player struct - that would be faster in combat). Then
decrease that back to zero every few hours (as the ingredients break
down in the players body), or whenever a spell is cast.

For extra effect, there could be variant sources of these foods which
did nasty things, like permanently reduce stats. Then there would be a
trade off (nice spells, or not needing to use more stat potions)

In terms of game balance, spell ingredients /could/ be useful.
Especially if they were created with alchemy/woodsman skills at high
level. - That skill could then become essential to the ongoing
usefulness of a wizard, and high level spells might be used a lot less
if they were sufficiently expensive. (probably that means not using
comet or meteor swarm against everything around - burning hands and
firebolt could be useful even at higher levels if they cost much less)

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] [IDEA] Reagents for cast magic

2005-10-14 Thread Brendan Lally
On 10/14/05, ERACC [EMAIL PROTECTED] wrote:
 Needing items to cast spells is more along the lines of witchcraft
 than sorcerous magic (read some Steven Brust http://dreamcafe.com/
 to see what I mean). In CF the magic system seems to be sorcerous
 based. The witchcraft based magic is more akin to alchemy in CF.

Why do you take this to be your reference point?

Real world magic is mostly con tricks and illusion anyway, and there
is therefore no 'correct' way (consistent with the real world) to
model the invocation of magic in a game.

Using items for spells to my mind is as such more an issue of game
balance than adherence to the fictional work of some random novelist.

Anyway, the old amiga RPG worlds of legend (I never did win that
game...) used a similar system, and I think runescape does too.

If you really want to get around the issue of carrying ingredients,
have it incorporated into diet. - define certain magic ingredients and
have food be able to contain them. eating that food would then
increment a counter stored as an invisible object on the player (or
directly on the player struct - that would be faster in combat). Then
decrease that back to zero every few hours (as the ingredients break
down in the players body), or whenever a spell is cast.

For extra effect, there could be variant sources of these foods which
did nasty things, like permanently reduce stats. Then there would be a
trade off (nice spells, or not needing to use more stat potions)

In terms of game balance, spell ingredients /could/ be useful.
Especially if they were created with alchemy/woodsman skills at high
level. - That skill could then become essential to the ongoing
usefulness of a wizard, and high level spells might be used a lot less
if they were sufficiently expensive. (probably that means not using
comet or meteor swarm against everything around - burning hands and
firebolt could be useful even at higher levels if they cost much less)

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] [IDEA] Reagents for cast magic

2005-10-14 Thread Brendan Lally
I'll try to only post to the list once this time.

On 10/14/05, ERACC [EMAIL PROTECTED] wrote:
 He's not random. I chose him specifically because I agree with his
 fantasy ideas on witchcraft vs. sorcery and his writing that down
 in his novels keeps me from having to reiterate it here.

It might do if it was someone I had heard of.

 As for game
 balance ... well, I've not ever been fond of that term as it
 usually means nerfing or disabling something I have found fun to use
 in the game.

If by 'fun' you mean unequivocably superior to all other options to
solve the same problem, then yes. Almost all games, from a simple game
of draughts to more sophistacated games like risk or DD are based
around making interesting choices, when the best choice to make is
unclear and requires some combination of skill, luck, experience and
planning. A choice that has an obvious or trivial best solution is
null. It doesn't matter in game terms and is merely an impediment to
the enjoyment of the game. I am not convinced that currently choice of
spells (particularly in combat) is an interesting choice most of the
time (it tends to be meteor swarm, if that doesn't work icestorm or
banisment (if undead or the right race). Only very rarely are any
other spells used, at least IME.

 Same goes for game economy. It's a fantasy game, it
 *should* be easy to get insanely wealthy once one knows how. If I
 want things to be difficult and to have little money I have that in
 real life.

Maybe but you shouldn't get that at level 1. It should rather be
something that is gradually accumulated, and requires a degree of
challenge, at least initially. If that is absent, then money is made
worthless.

 I'm reading game balance but thinking game complexity. I think
 this will just make the game more complex. It is already quite
 complex now and takes plenty of time to learn to play well enough to
 survive to a high level

This doesn't neccessarily have to make the game more complex. It would
be quite possible to remove spell points at the same time, and with it
the complexity of power crystals, power potions, and magic stats.

Especially if the amount of each ingredient it was possible to
stockpile was limited (to go back to my previous idea about
incorporating it into food, a point at which you are told 'your body
is incapable of holding any more of this'

likewise paths could be removed, rather have attunements to the
individual ingredients (so that you need twice as much, or half the
number for certain spells).

To my mind that would be a /simpler/ magic system than the one that
exists currently. The question then would be whether it is worth
changing to. That is a difficult question to resolve (which is why it
is a topic of discussion here).

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] [IDEA] Reagents for cast magic

2005-10-14 Thread Brendan Lally
On 10/15/05, Mitch Obrian [EMAIL PROTECTED] wrote:
 I also like the food idea. Perhapse if you don't
 follow the correct diet then your SP stays at 1/2 of
 what it could be.

hmm, this is a different idea to what I had in mind, but actually has
a lot to commend it.

maybe even moreso, have all foodstuffs have different stats, and have
them affect the player.

foods could have a series of different stats, so that eating different
types of food would slowly skew a character a little.

Eating lots of fat would increase armour and resistances,  and
decrease speed and ac.

Eating lots of sugar would increase dex and Con, but reduce
intelligence and power and make spellcasting failure more common.

Eating foods with E-numbers in could increase spellpoints and give
spellpath attunements, but also have randomly bad effects (confusion,
blindness, paralysis, death)

Drinking some alcohol would increase Cha and cold resistance but
reduce Dex, drinking more would reduce it, and create a
(non-transmittable) illness - hangover.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Unban me

2005-10-10 Thread Brendan Lally
On 10/10/05, Vernon T Rhyne [EMAIL PROTECTED] wrote:
 laughs  That hasn't, and will never be the case.  Rule enforcement at all
 levels is by whim and mood, as with most clique-managed open-source
 communities.

Try as with all stable communities anywhere in the world.

The nature of rules is such that to have them enforced uniformly would
be unjust. because rules only describe concepts, not individual
circumstances.

This is why court systems the world over allow for extenuating
circumstances. (and why politicians who distrust their local judicary
and try to make the response to such  calls formalised in law create
the loophole-filled laws that blight most nations in the world today)

  It's undoubtedly a major reason that the wordlwide crossfire
 player count is in the hundreds (or less), rather than thousands or more.

I suspect there are five more noticable reasons for the lack of players.

1) mediocre performance on slow/laggy network connections (crossfire
was designed for playing on an internal university network, and has
never really been properly optimised to cope with modem connections,
that up until only a couple of years ago were very common)

2) a historical lack of stability. - less of an issue in stable server
releases, though the metalforge and cat2 servers sometimes find rather
more bugs than might be preferred (that is, however, the nature of CVS
code).

3) difficulty in setting up clients - until comparitively recently
this required some interesting playing with telnet, and windows client
support is a fairly new (and under exposed) thing - I've had a small
go at helping in this respect myself (look at the posts about
autopackage from last month)

4) High initial learning curve to play the game - partially this is an
artifact of the way existing clients are created, partially this is a
map/item issue (the god-given initial items are an interesting detail
for a newbie who accidentally drops something).

5) lack of information about the project. - there are some steps being
taken to deal with that. (
http://www.gamesites200.com/mpog/vote.php?id=2197 is one of them)

 I grant that I'm a largely outside observer, but the general politics of
 crossfire ensured I'd never step inside.

I have not seen any noticable intrusion of politics in the project
itself, arguably on the metalforge server such a thing can be
observed, but metalforge != crossfire

With all of the problems and issues that have arisen since I joined
the project, I have never seen anything but a desire to find the best
or most useful technical solution to the problem at hand,

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Re: [Crossfire-cvs] CVS commit: crossfire

2005-10-03 Thread Brendan Lally
On 10/4/05, Mark Wedel [EMAIL PROTECTED] wrote:
if (m-shopmin) fprintf(fp,shopgreed %d\n, m-shopmin);
if (m-shopmax) fprintf(fp,shopgreed %d\n, m-shopmax);

   Is that code there really correct?  It seems you are saving shopgreed as the
 field name when you are actually saving shopmin and shopmax.

no, no it isn't, those are typos. I've fixed that now in CVS. Thanks
for pointing it out.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Summon pet monster

2005-09-29 Thread Brendan Lally
On 9/29/05, Benjamin Lerman [EMAIL PROTECTED] wrote:
  Now, I plan to create Enchant Ring and Enchant Amulet scrolls that
 would work like Enchant Weapon, but because it demands a little more work
 than for the 2 previous patch, I'd like to know if those scrolls would
 be Ok. I'd like to also implement think like Improve resistance to `foo'
 for Weapons, but once again, would that be Ok?

The one comment I would make here is to be sure to deal with the item
power properly. What exactly 'properly' is in this context is not
neccessarily clear, too little an effect and these scrolls would make
rings overpowered, too much, and they would be useless. I would
suggest however that if the results of enchanting rings to the extent
that their stats are about the same as one with similar item power
from the item generator, then you are probably ok.

Something that does interest me though, is how you intend to fit this
in with the jeweler skill.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Buildable Land Plots

2005-09-28 Thread Brendan Lally
On 9/28/05, Alex Schultz [EMAIL PROTECTED] wrote:
 would enhance crossfire as a MORPG, because:
 1) It increases player interaction by giving customizable maps that one
 can invite others into without having to bother with guilds and their
 storage rooms and such. IMO increased player interaction is something
 crossfire is in need of.
 2) It plain gives players more to customize, which is a positive thing
 when it neither unbalances the game nor changes the genre

You forgot a third one, it gives players something to do with all the
money that they can currently collect. Currently there are ways to get
money (alchemy  dungeon crawling) which work ad infinitum, however
the existing ways of spending money (slot machines, apartments,
equipment) is fairly limited, so that, after the first million
platinum or so, there isn't a whole lot to spend money on. However
introducing a status element that can require vast expenditure, should
be a nice way to take money away from the fool^H^H^H^H rich. -
especially if there are enough glitzy things that can costs tens of
thousands of platinum each (like mikee's coloured tiled floors in
constructor form)

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Buildable Land Plots

2005-09-27 Thread Brendan Lally
On 9/28/05, Todd Mitchell [EMAIL PROTECTED] wrote:
 I believe if you ask people if the built maps are
 superior to the random maps, you would hear that players like the built
 maps better.

I'm not quite sure your image of what is being described, and what is
attempted to being described quite match up.

we are talking about random maps yes, but random mostly empty maps.

you might well have a map that looks like (in rogue style graphics...)

...
...
..T...T
.TT
..R.
...
...
.~~
T.B.~
..~

I've probably miscounted the width of some of those lines, but assume
they are all the same width
(T - tree B - bush R - rock ~- water)

and every square would have can_build 1 on it


 Since most players aren't into making maps - perhaps they
 may find it a bit hard or at least annoying to have to build things

They would be using constructors, not the map editor.

 and
 they might like to buy something like the guild houses with things like
 trophy rooms, pet kennels, guest rooms and other special areas.

They are already available in several towns throughout the game world...

 At
 least with house templates you can have these nice features and make fun
 quests for players to access them.

You can have nice constructors and have quests to access them too (for
example a stone wall constructor, or a metal door constructor).

 For personalization, well you can
 add many rooms that are buildable to the different  house templates.
 Also the blueprints/templates way is an easy way to set different house
 styles on the map (houses, long houses, keeps, castles, guilds,
 temples...) to represent the building

This is true, I'm not sure if there is a nice way to do this.

 and a good way to set the starting price.

Well, I was thinking to charge by plot (abuse the town portal marker,
so that if it points to a valid plot square you 'ask' for that one),
and charge based on proximity to entrances, roads etc

although then all the constructors would have their own price, so a
bigger buliding, would need more constructors than a smaller one.

 Nothing stopping you from coding up a storm in any case, I'm sure you
 have ready counter-arguments to this post.   I will upload the templates
 I worked on before so they are available in any case.

Excellent, if nothing else, they will give a good idea of how to
balance the building shop treasure lists to avoid any of the standard
items (walls, doors, wooden floors) being too rare.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


  1   2   >