Interesting ideas, but there's two main issues I see with this:
1) It would complicate the client to add it
Well, so be it :)
2) Much of it would need to be done on the server to avoid cheating (perhaps
create an extension to the CF protocol that calls gtk bindings on the client
(which would
Hello.
What's the use of the glue code? In glue.c, and the callback
functions, in the library.
From what I understand, it was supposed to be for the Python plugin.
But the fun part is that is doesn't work under Win32: the library is
generated as static, so plugin and server have each their own
Mitch Obrian a écrit :
It may be that all the arches aren't in? I remeber
when I was developing the bottles, if all the arches
and their faces weren't in I'd get a crash.
No, it's more related to merging behaviour, it seems.
Ryo
___
crossfire
Yes, and if the player is part of a party, and other party
members are on teh
same quest, this should count for them also.
Yes, party should be handled for every quest aspect.
Can you be more specifc on this? Does this meaning having
n items in your inventory? snip
Imagine a quest like
Apparently that's a bug related to layer handling: i get a
common::expand_face : Did not find empty slot message when a ghost
image is left. So it would seem living monsters are put on a layer, and
dead on another...
Ryo
___
crossfire mailing list
Hello.
I was wondering about the opportunity of making branches when we get
close to releases.
It would let people go on committing to HEAD, while ensuring code can be
stabilized for release.
Opinions? Flames? Comments?
Ryo
___
crossfire mailing
Hello.
The other issue is that generally, I'm not seeing so many commits that
having people hold off a week would seem like much an issue.
Well of course we can always wait one or two weeks to add features. But
sometimes it's things we'd rather have people test fast than wait weeks.
Also need
Hello.
Gros / Lauwenmark and I are currently rewriting the plugin system, both
the server-plugin API and the Python plugin. It'll feature much
improvement (using Python objects instead of plain values, so that
you'll be able to do: Map.Width instead of CFPython.MapWidth(Map)).
So please don't
Hello.
I thought about the upcoming quest system, here are things i'd like to
see. Feel free to comment, change, and so on (like a wiki :p)
Quests are subdivided in tasks. You don't need to complete all tasks
to complete the quest. So for instance if you ask an ncp you'll get to
know the
What should I do here?
a) fix the documentation (map_scroll implicitly clears out of map bounds
information), or
You got my vote on that one too.
Thanks for fixing display issues :)
Nicolas
___
crossfire mailing list
crossfire@metalforge.org
It'd probably be nice if that is somehow setable (eg, you
need to do tasks
1,5,6, but 2 and 3 are optional). Not positive how hard
that would be to set up.
My idea is that it would be implicitely optional, at the quest
designer's implementation.
I picute a quest like a tree, with many leafs
Also there should be the ability to abandon a quest, so
players don't
end up with 50 or so quests building up which they no longer
can or
want to do.
Except you still want to keep the fact the player did some
tasks, as to not give bonuses again.
Ryo
Accédez au courrier électronique de La
I suppose a gtk client would be easier to make to a
windows port. And while
one side of me would sort of like the speed and efficiency
of such an editor,
one side of me says I really don't want to see another such
editor due to the
maintenance and support headaches it would involve (support
Note that mapdata.c still contains lots of assert() statements. They did
help me to ensure the passed coordinates are valid. I'll remove them
before I commit.
I have nothing against assert, as long as compilation is (usually) in
release mode (ie assert does nothing). Quite the contrary, if
However, I still think it would be better to put work into
improving the java editor vs writing a new one.
Once again I agree.
There are too many unfinished projects / ideas around (sdl
client, opengl client, even gtk2 client, refactor things in
server, ...) to add yet another one. And you
All fields below use a bitmask to represent value, similar
to how the attacktype
works. These would be defined like:
MOVE_WALK 0x1
MOVE_FLY 0x2
MOVE_SWIM 0x4
etc
Sounds like a great proposal.
I'd tweak it slightly, having MOVE_FLY_LOW and MOVE_FLY_HIGH:
first is your regular
As per started in another thread, adding a fatigue stat
has some interesting ideas.
snipped much away
Fatigue seems like a good idea. I'd even extend it to items,
thus adding the need to repair stuff now and then. Which could
extend the use of smithery and such - put weapon in smithery
bench,
Andreas Kirschbaum a écrit :
I just added my patches to fix bug #1102991 (Duplicate grapical display
of the same monster):
http://sourceforge.net/tracker/index.php?func=detailaid=1269280group_id=13833atid=313833
This patch makes client unusable on my computer. Drawing routines suck
110%
This patch makes client unusable on my computer. Drawing routines suck
110% of the CPU power.
Fixed committed to CVS (flag not correctly cleared when drawing).
Ryo
___
crossfire mailing list
crossfire@metalforge.org
Hello.
The logic of create_and_rescale_image_from_data (in gtk/image.c) is strange.
In a first pass, it tests
if (iscale != 100) {
and calls in any case create_icon_image which creates the pixmap's image
and mask through rgba_to_gdkpixmap.
Then just after
if (use_config[CONFIG_MAPSCALE]
Generally speaking, I think assert statements should normally not be
disabled at all, particularly not for release builds: if an assert
statement actually should fail, the program contains a very serious
logic error. Therefore it is not sensible to continue (and probably
crash shortly
A unique map could get messy. I think it is cleaner just to use the
functions provided by the python plugin to store the items in a
seperate file.
Pretty hard to save items. Would need to call the store/load functions,
messy too :)
A map with unique tile lets the game handle the messy details
At some level, also have to decide how far this goes.
IMO, at its heart,
crossfire is an adventure type game, not a sim. The issue
being that we
probably can't be as good as a sim as a game dedicated for
that purpose. I'd
suggest getting the basics done first and worry about some
of the
Hello.
I just committed a change to the archetypes collect script collect.pl.in
that makes it easier to write and also read archetypes.
You can now use attacktype fire poison instead of computing fire +
poison is 1028.
You can even mix values and text (ie attacktype 1028 death to add
death to
Hello.
A while ago i added a ground positionning system, item that lets you
know your location in the world.
AFAIK you can only find it on mlab maps, it's not yet on other maps.
Unless someone objects with good arguments, i'll move the relevant code
to a Python script. Since it's not a mandatory
If I were to do it I would have implemented this behavior in
the server
instead of in the collecting of archetypes (that way it
could be used in
maps as well), but this is fine too.
I voluntarily choose to do that at collect time, because doing
it at item or map load time may be bad for
Hello.
The first one allow you to summon pet that are of lower
level that the
current pet you can summon. It is mainly a one line patch
that use the
same argument that create food or create weapon use.
Saw it on SF, sounds ok.
The second one allow to use argument with the cast command
so
Committed your 2 patches.
Just changed one call from (pseudo variables) (x)?f(a,b,c):f(a,b,d) to
f(a,b,x?c:d) to not duplicate 2 similar calls
Nicolas
___
crossfire mailing list
crossfire@metalforge.org
Why don't you create a new Sourceforge project and use it to store your
maps?
This way you'll have storage room, cvs, and will be able to use the
structure you want :)
Nicolas
___
crossfire mailing list
crossfire@metalforge.org
It works like that for me, on Metalforge.
What server are you playing on?
Ryo
___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire
Hello.
Investigating why empty bottles behve weirdly, here are some oddnesses:
* the insertion of the empty bottle in the bottle sometimes fails. Empty
tries to be inserted in creator's (bootle) map which is NULL for some
reason.
* merge_ob doesn't correctly free the item's inventory. Thus when
The rationale i see for using Python for item transformation is that
it's not a required feature to play the game. Same for bank actually -
you can play and do many things without the bank system. Same for gps,
and everything in Python scripts. It makes the game more fun, but the
core of the game
Hello.
There's a weather bug, seen on cat2.
Floor tiles disappear under 'rainx' archetypes.
Apparently it only happens when there is something apart the ground on
the tile (house, light, whatever).
I looked at the weather code, but can't right now find the issue.
Either the avoid_weather
Well, if anyone knows the weather code, please put some comments in it lol
I think i'm starting to understand how it works, but still...
I found something that seems strange: in weather.c, lines around 2064.
Apparently, if we find a tile and its herb, remove *both*. But why both?
If mint grows
Oh yeah, also check test/quest map, basic test map.
Note that I didn't really test everything...
Ryo
___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire
See also : http://forum.metalforge.net/viewtopic.php?t=1274
thread on the forum on this exact subject :)
Ryo
___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire
Women's Rights Delenda Est.
Translation for people who don't speak latin or are too lazy to google:
Women's Rights must be destroyed.
___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire
While we're at it :)
* could we use names more explicit that EVENT_GDEATH and EVENT_GKILL?
I'd say EVENT_PLAYER_DEATH and EVENT_KILL, less confusing
* EVENT_GKILL takes *two* parameters (what was killed and by who), only
one is used in plugin. And parameters should be inverted imo, first what
was
Random question - do guilds in any way limit membership of people to a
single guild? If so, that should probably be done.
Right now, no. Guild membership is based on owning a key, so you can
have as many as you want.
Python-based guilds I think limit to one guild, but that can be changed.
Hello.
I was wondering if it wouldn't be interesting to make the
/python/event/python_xxx scripts simply run all scripts in a subdir eg
/python/event/born/, or have the plugin do that itself.
(yes, it feels like runlevels in linux)
The idea is to modularize the scripts, to be able to simply
Mitch Obrian a écrit :
I don't like this idea at all.
Let's add layers of complexity for no reason!!
Time would better be spent creating usefull things
like new maps and scripts rather then pissing off
people trying to install things IMHO.
Hum actually I see my proposal as a way to
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?
(with ratio 75
Hello.
I think I figured out why some tiles disappear under weather.
weather.c:change_the_world handles removal of grown items, including
(for instance) grass. It handles ground by simply checking from the
get_ob_map()-above object.
When the overlay for a map is loaded, by
Mitch Obrian a écrit :
Do I have to update code for this to work, or just the
archtypes?
Collecting archs should be enough, since it's a floor and does not
require any special handling.
Ryo
___
crossfire mailing list
crossfire@metalforge.org
Mitch Obrian a écrit :
Do I have to update code for this to work, or just the
archtypes?
Just found out a bug: make sure that the built wall archetype has the
'WALL' type, and not 0 or something else.
This is true for all walls that people want to build on/build: wall
should be WALL type, not
Mitch Obrian a écrit :
The package delevery is broken now? Why? When will it
be fixed if so?
It works on my computer, with Python 2.4.
Seems to have issues on Metalforge, didn't yet have time to check why.
Ryo
___
crossfire mailing list
Mitch Obrian a écrit :
This is what happens now (some of it was fixed
allready it seems, but this is the state now).
Lets say you have this:
ferns
snow/puddle
ground
The ground will dissapear.
As I said, I think it's related to the overlay loading.
Try to change the following lines
Could you test it, now that I have users I don't want
to possibly crash the server.
I tested it locally, seemed fine.
But I didn't really play with my change, and I have no idea
what the side effects could be. Which is why I sent a mail on
the list, in case some other people knew better :)
Ryo
Hello.
I'd like to discuss adding item weariness / fatigue.
Basically: each item has max fatigue points, which decrease at use (when
attacking for weapon, when attacked for shield, when player walks for
shoes, you get the idea)
Of course when fatigue reaches 0 the item breaks and is unusable or
Mitch Obrian a écrit :
Weather bug status?
Same as last time.
Ryo
___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire
Hello.
Here's an idea concerning skills: add a cap level without doing a quest.
For instance (levels are random numbers): a player could level up to 15
in one handed weapons. Then he'd need to complete a quest to be able to
get to 25, then another for 40, and so on.
The aim would be to force
Sure, the intend - force people to explore the world furthermore - is good.
But I see little justification of forcing them to make a given quest to
increase their level. Arbitrarily capping the levels looks very artificial to
me.
It could be seen as you can't learn more by yourself, you
bump
Hey please remember we're all volunteers here :)
We need time to fix things, sometimes a week or more.
Nicolas
___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire
Hello.
I'd like to extend alchemy-like skills, probably with a 'cooking' skill.
What i'd like to do is:
* add a way for formulaes to never blow up, and just yield a specific
item when failed ('burnt cake'). This will make it safer and more fun,
of course this would be for low exp recipes (or for
Yes, in the short run this is a much better idea. However, a
long term goal of a self-supporting economy based on
inter-player interaction (where government-owned shops do not
exist except to maybe provide some very basic food and weapons
at time of war/famine/natural disaster) is IMO desirable.
One thing that I also thought would be needed is to add some slow decay
factor to most all flesh items like there are for a few special ones
(demon ichor). You shouldn't be able to carry around the orc corpse for
3 months and expect it to still be edible.
That wouldn't be hard to do, but
One thing that I also thought would be needed is to add some slow decay
factor to most all flesh items like there are for a few special ones
(demon ichor). You shouldn't be able to carry around the orc corpse for
3 months and expect it to still be edible.
That wouldn't be hard to do, but
Hello.
Currently, a plugin can easily crash the server, which doesn't check
parameters (just call a function with a NULL pointer, nice crash
guaranteed). Also, server doesn't checks parameters and such, which can
lead to invalid values (Str of 50 for a player...).
So should that be fixed in a
Hello.
There are a few (Python) scripts i'd like to write, to extend Crossfire.
Merely thinking something like a visit card system (to let other
players know your level or skill), or something to autorejoin party at
login time.
So I'm wondering where to put those scripts. Should I put them in
Hello.
I'm wondering about moving some parts of the code to plugins.
IMO things like weather system (excluding darkness-related things) could
be moved to a plugin, and just hook to server core.
Random maps generation too could imo be moved.
(particularly weather, as it's really optional, setting
If its a choice of:
a) when callback to set value is used, we set the value and then mark a
flag that the object has been modified, and when function is finished,
we check sanity of object,
or
b) when callback to set value is made, we check the validity
I'd personally choose b -
If Ryo etc want to work on something, as it seems he's
itching to do,
how about add a alchaholpercent variable and add the
ability to get
drunk? Or perhapse fix earthwall and the invisiblity
spell (
tracker)? Better to fix what's broken then fix what's
working (rather
then break it and
I personally don't see much reason to rewrite existing code that is
working fine as a plugin. There are just enough things that could
be/should be done than rewriting working code doesn't make sense.
As Yann said, i was not really mentioning rewriting stuff - apologies
for the confusion.
Hello.
Really nice idea, it'll help me for the Windows snapshots :)
Nicolas
___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire
Hello.
Since there was no commit mail (i killed CVS when i saw it was
committing archetypes files, but it had already committed other files),
I'll just point out there's a new DM command, insert_into. It takes 2
arguments, and puts the 2nd in the 1st's inventory.
Pretty simple.
Note that you
Hello.
Does it really make sense to support both SDL Opengl? I know SDL is
suppose
to be cross platform, but I'm not sure if the window ports/releases Ryo does
actually support SDL.
Current Windows build don't use SDL for graphics, no
(not talking music here, though it could be used
Hello.
I just committed the Perl plugin, courtesy Marc Lehmann (see
https://sourceforge.net/tracker/index.php?func=detailaid=1423431group_id=13833atid=313833
for more info).
But I haven't yet figure how to make it compile with the autoconf /
automake and such (my black magic level isn't high
Hello.
There are some maps in the 'test' subdirectory, I guess.
At least, there is a map and script related to Python, to test things :)
Maybe we could first test through Python? It'll probably uncover some
bugs there, but once fixed we'll be able to test the server itself.
Nicolas
Hello.
Since 1.9.0 has been released, I'm gonna clean the server code some:
* rename FunctionsWithCamelCaseNames to names_matching_other_functions
* switch comments to Doxygen's format, to make the doc better
* maybe some more tweaks
This may impact quite a few files :)
Nicolas
Hello.
As promised I just cleaned a massive amount of code.
I admit, there *are* things still in CamelCase. I just became lazy at
the end :)
I renamed functions, as to have some coherence - command functions
(sent from client) now end with _cmd, thinks like that.
I do think I didn't break
Hello.
I just made a small proof-of-concept of player-owned shop, attached to
that mail. Just a map and 2 Python scripts.
Basically: mark an item, go to the table, say sell price in silver
coins, then drop the item anywhere.
To buy, it behaves exactly like a regular shop (well, right now, if
Could a little more detail on this process be given? Looking over the
patch
to see how it works leaves me with a few questions.
Yeah, it's a pretty basic patch for now :)
It seems to me that the patch in question lets the owner set whatever
price,
but doesn't actually pay the
There are a few functions in arch.c which are named
get_archetype_xx but in fact return a new object of that archetype
using arch_to_object. I plan to rename those create_object_xx,
which i think is more suitable. Any objection?
None by me, let they be renamed and some coherence made!
Hello.
I just committed a big change, removing the static buffer from query_name(),
which now takes a buffer + size for working.
There were 150 occurrences, so I couldn't test everything. I may have made
mistakes when replacing stuff :)
I did take care, but well.
Another concern is that
for query_name(), I doubt that buffer size makes a difference.
And we'll fix when needed :)
where it may be an issue is describe_item() and get_ob_diff() - but I'm
not 100% sure if those return static values or not.
They did use static buffers :)
I used HUGE_BUF, like the static buffer's
Hello.
What would everyone think of:
- deciding that eg one outside square translates to eg 20x20 squares inside.
There may already be such a measurement, but I'm not sure it's that formal
- doing more multisquare (4x3? 6x4?) buildings. This would mean making towns
bigger in the bigworld, but
Ok, I just fixed the whole logic, using this nice IS_ARMOR macro :)
Also, girdles and cloaks are not considered as armor anymore, but now that's
easy to change :)
Nicolas
--
http://nicolas.weeger.free.fr [Petit site d'images, de textes, de code, bref
de l'aléatoire !]
Related to bug
https://sourceforge.net/tracker/index.php?func=detailaid=1539207group_id=
13833atid=113833 concerning the max_speed when wearing armor, I've changed
the logic in fix_object (former fix_player) to always cap speed at armor's
max_speed.
Apparently that fix was too restrictive, so
Le jeudi 15 février 2007 08:42, Mark Wedel a écrit :
Looking at some of the crashes on metalforge, which is latest 1.x as of a
week ago. Saw 2 crashes wit the same cause. From the logfile:
Ok, that was a fun bug :)
Chain of events:
* you gain at the slot machine
* slot machine creates
Hello.
There is a FLAG_PICK_UP which is used only for determining monster's
experience and nowhere else.
This seems like a leftover of some code, should we remove it?
Nicolas
--
http://nicolas.weeger.free.fr [Petit site d'images, de textes, de code, bref
de l'aléatoire !]
Le dimanche 04 mars 2007 08:55, Crossfire CVS repository messages. a écrit :
Revision: 5665
http://svn.sourceforge.net/crossfire/?rev=5665view=rev
Author: mwedel
Date: 2007-03-03 23:55:08 -0800 (Sat, 03 Mar 2007)
Log Message:
---
1.10 branch
Hello.
I (and I'm sure
Hello.
The patch
https://sourceforge.net/tracker/index.php?func=detailaid=1660388group_id=13833atid=313833
adds (void) to functions instead of () when no argument.
What do you think of that?
I have mixed feelings, I don't like adding unecessary things. On the other
hand maybe that's the
Hello.
I'd like to add a typedef const char* sstring and use that for relevant
members / variables. sstring is of course shared_string.
It wouldn't change much things, but clarify when the string is shared
(add_string / add_refcount) and when it's safe to alter it.
Unless I'm mistaking the
Hello.
I'd like to propose changes to the plugin API.
Currently, plugins call eg char* directory = cfapi_system_directory(val, 3)
to get a directory information.
I'd like to change that to the general format: int result =
cfapi_system_directory(val, 3, directory, sizeof(directory)) with
Now to turn this more constructive, I think the real question is: How
often should we be doing releases? Every month? Every 3 months?
Somewhere in between?
I think anything more frequent then every month (save for critical
builds/to fix something DOA) doesn't make much sense, as I
Hello.
I just fixed a fun issue: add_string() will abort() if sent string is NULL and
MANY_CORES is defined. Except this define was never used, since the relevant
file (config.h) wasn't included :)
Now the file is included, so the define has effect - and I had to fix the race
for dwarf_player
Le samedi 10 mars 2007 23:38, Lalo Martins a écrit :
I re-created the pupland branch, and started by moving everything to where
I think it should be according to the guidelines.
As a special open issue, ancient Pupland went to /quests/pupland/ancient,
but there are arguments for
Hello.
The real solution here is to use keywords instead of the actual word,
like $SCORN_PASSWORD. So you'd have something like:
@match $SCORN_PASSWORD
you look ok, ...
Agreed there, shouldn't be too hard. Also makes everything way more souple,
not linked to maps.
Of course, there
Hello.
Cleaning the treasures files (exploding in individual .trs files), I found old
cruff about reincarnation: it can possibly change player's race.
But the treasure list was using old (now removed) archetypes.
So that should be fixed, if someone knows how to?
Nicolas
--
Hello.
If anyone wants to create plugin, I just did a small sh script to help,
located in plugins/template/create_plugin.sh
Syntax is: create_plugin.sh id [name]
where id is the plugin's identifier (Python, CFAnim, ...).
Script will update required Makefile.[in|am] and configure.ac files, and
Hello.
I'd like to remove old pickup mode code, and either remove totally support for
it, or merge it with new pickup.
Objections?
Nicolas
--
http://nicolas.weeger.free.fr [Petit site d'images, de textes, de code, bref
de l'aléatoire !]
___
Hello.
I just committed a new plugin, 'cfnewspaper', which as its name implies is a
newspaper generating plugin :)
It is really an alpha version. For now, it'll only list monster and player
deaths for the last ingame day.
I hope to improve it to add many more things, but of course other
Regional papers is a good idea.
Other thoughts of things to add in the paper:
Quest information - people doing the nobility quest of scorn as an
example Maybe most valuable items recently sold.
Player deaths in the area.
A thing on the RFE list would be regional based messages.
Hello.
I'm wondering if there is documentation on the material system. Couldn't
really find much :)
Nicolas
--
http://nicolas.weeger.free.fr [Petit site d'images, de textes, de code, bref
de l'aléatoire !]
___
crossfire mailing list
Hello.
I just committed a fishing pole (picture courtesy Maligor), and the
corresponding fishing skill.
I also changed the 'fish' archetype to be fishable :)
Technical documentation is at
http://wiki.metalforge.net/doku.php/dev:skills#sk_harvesting
Short summary: to enable a player to fish
Hello.
I'm wondering whether the polymorph spell couldn't be reactivated. It's been
desactivated for eons, but IMO it could be a fun one - with some limits.
Maybe create some scrolls, and have them at end of hard quests only?
Or the code should simply be removed if not used, but IMO that'd be
I'd like to suggest a small change, if it isn't too pokémon-ish: if the
harvested item is a monster, then instead of coming into your inventory, it
comes in the space next to you (maybe on the space you're harvesting), and
it will attack you. The uses are obvious -- for a hard item, you'd put
1) You could polymorph tough boss monsters into easy to kill monsters.
From the current code, monsters = level 20 just aren't affected...
That limit will probably need to be adjusted on casting level ;)
Nicolas
--
http://nicolas.weeger.free.fr [Petit site d'images, de textes, de code, bref
Spell is now enabled :)
I tweaked some parameters and caps (polymorphed monster can't be more than
casting level / 2). It should work with multipart mobs.
IMO such a powerful spell should be only available in scrolls and wands.
Nicolas
--
http://nicolas.weeger.free.fr [Petit site d'images, de
Hello.
Anyone has issues with Sourceforge when adding files?
I'm getting:
svn: COPY of skills/Skill_Tools/fishing_pole.arc: 403 Forbidden
(https://svn.sourceforge.net)
in branch tree. Couldn't find anything worth testing...
Nicolas
--
http://nicolas.weeger.free.fr [Petit site d'images, de
1 - 100 of 680 matches
Mail list logo