--- deliantra/server/Changes 2010/04/21 11:28:02 1.664 +++ deliantra/server/Changes 2012/12/17 02:02:29 1.838 @@ -2,64 +2,224 @@ Version numbers sort like decimal numbers. -2010-04-07 23:58:02.2729 [ABT] BUG: hitter ({cnt:4994384,uuid:<1.7f744a072>,name:"icestorm",flags:[8,11],type:102}(on /gotischerbereich/mlabspiraltower/std5@0+6)) with no relation to target ({cnt:4984688,uuid:<1.7f742acea>,name:"Dread",flags:[0,8,11,14,21,52,103,104],type:0}(on /gotischerbereich/mlabspiraltower/stc5@15+5)) at /opt/deliantra-server/share/deliantra-server/cf.pm line 3951 -2010-04-07 23:58:02.2729+ eval {...} called at /opt/deliantra-server/share/deliantra-server/cf.pm line 3951 -2010-04-07 23:58:02.2729+ cf::tick() called at /opt/deliantra-server/share/deliantra-server/cf.pm line 3519 -2010-04-07 23:58:02.2729+ cf::main_loop() called at /opt/deliantra-server/share/deliantra-server/cf.pm line 3579 -2010-04-07 23:58:02.2729+ cf::main() called at -e line 0 -2010-04-07 23:58:02.2729+ -2010-04-07 23:58:02.2729 [ABT] --- C backtrace follows --- -2010-04-07 23:58:02.2729 [ABT] [log_backtrace(char const*)] /root/src/cf.schmorp.de/server/server/./cfperl.xs:1259 -2010-04-07 23:58:02.2730 [ABT] [LOG(int, char const*, ...)] /root/src/cf.schmorp.de/server/common/logger.C:209 -2010-04-07 23:58:02.2730 [ABT] [get_attack_mode] /root/src/cf.schmorp.de/server/server/attack.C:678 -2010-04-07 23:58:02.2730 [ABT] [hit_player(object*, int, object*, unsigned int, int)] /root/src/cf.schmorp.de/server/server/attack.C:1447 -2010-04-07 23:58:02.2730 [ABT] [hit_map(object*, int, unsigned int, int)] /root/src/cf.schmorp.de/server/server/attack.C:348 -2010-04-07 23:58:02.2730 [ABT] [move_cone(object*)] /root/src/cf.schmorp.de/server/server/spell_attack.C:2066 -2010-04-07 23:58:02.2730 [ABT] [process_object(object*)] /root/src/cf.schmorp.de/server/server/time.C:1356 -2010-04-07 23:58:02.2731 [ABT] [process_events] /root/src/cf.schmorp.de/server/server/main.C:275 -2010-04-07 23:58:02.2731 [ABT] [server_tick()] /root/src/cf.schmorp.de/server/server/main.C:405 -2010-04-07 23:58:02.2731 [ABT] [XS_cf_server_tick] /root/src/cf.schmorp.de/server/server/./cfperl.xs:1641 -2010-04-07 23:58:02.2731 [ABT] [Perl_pp_entersub] /root/cvt/perl/perl-5.10.0/pp_hot.c:2851 -2010-04-07 23:58:02.2731 [ABT] [Perl_runops_standard] /root/cvt/perl/perl-5.10.0/run.c:38 -2010-04-07 23:58:02.2731 [ABT] [Perl_call_sv] /root/cvt/perl/perl-5.10.0/perl.c:2632 -2010-04-07 23:58:02.2731 [ABT] [cfperl_tick()] /root/src/cf.schmorp.de/server/server/./cfperl.xs:1052 -2010-04-07 23:58:02.2731 [ABT] [??] ??:0 -2010-04-07 23:58:02.2732 [ABT] [??] ??:0 -2010-04-07 23:58:02.2732 [ABT] [??] ??:0 -2010-04-07 23:58:02.2732 [ABT] [Perl_pp_entersub] /root/cvt/perl/perl-5.10.0/pp_hot.c:2851 -2010-04-07 23:58:02.2732 [ABT] [Perl_runops_standard] /root/cvt/perl/perl-5.10.0/run.c:38 -2010-04-07 23:58:02.2732 [ABT] [Perl_call_sv] /root/cvt/perl/perl-5.10.0/perl.c:2632 -2010-04-07 23:58:02.2732 [ABT] [main] /root/src/cf.schmorp.de/server/server/main.C:428 - -TODO: it is possible to inventory-lock items on the floor, and *spomehow* possible to drop them. - -TODO: 2009-11-29 12:48:48.3974 /opt/crossfire/share/crossfire/treasures:5729, "arch stonebig_club": treasure references unknown archetype -TODO: 2009-11-09 02:36:57.7199 unable to resolve postponed arch reference to 'Hanuk' -TODO: summon cult does not properly create multipart monsters? -2010-01-16 20:39:27.1222 BUG: process_events(): Object {cnt:2127760,uuid:<1.7241a5bd1>,name:"throwing dagger",flags:[17,24],type:48}(on /brest/ludo2@8+2) has no speed (-0.033333), but is on active list - -TODO: removing a single map tag from one map kills the tag on other maps as well, apparently - TODO: golem survives "longer" now - too long? TODO: clean up skill handling in kill_object. -TODO: make the "feed all faces" flag persistent between logins. TODO: mining experience -TODO: -2010-04-15 06:50:54.4317 victim {cnt:53513,uuid:<1.80d9c4f7d>,name:"Erich Emautti",title:"the Wizard",flags:[0,14,16,21,29,52,53,54,55,56,57,58,79,82,103,104],t -ype:0}(on /gotischerbereich/mlabspiraltower/sttop1@12+16) (-15411) already dead in hit_player() -TODO: 2010-04-16 00:11:12.8142 {cnt:414174,uuid:<1.80ffd5a6b>,name:"teleporter",flags:[8,11,103,105,106],type:41}(on /scorn/houses/house3.bas1@5+4): no alternative teleporters around (user {cnt:386700,uuid:<1.81001a4d6>,name:"mouse",flags:[0,8,11,14,16,104],type:0}(on /scorn/houses/house3.bas1@5+4)). -TODO: I can access all the apartments I have ever rented, even though I stopped renting them long ago. I have ever rented, even though I stopped renting them long ago. I can enter the scorn and SD apartments -TODO: mining class -TODO: freelist freeing TODO: highest cpu users: stand_in_light (object *op), get_map_flags, blocked_link, path_to_player -TODO: - entering a map will now respect move_on and other effects. +TODO: reload_settings +TODO: thawer should not next() +TODO: pet experience is, rarely, given to the wrong skill (e.g. mining) +TODO: 2010-05-21 02:48:16.4562 D victim {cnt:109581,uuid:<1.858befa27>,name:"ice",flags:[0,8,103],type:23}(on /whalingoutpost/misc/icecavern1@8+43) (-21) already dead in hit_player() +TODO: jumping, maybe dimdoor works wonders with earthwalls in between. +TODO: cats dimdoor, invoke charm => watch Log-1 +TODO: fountain magic power and shop magic powre potions are different, also, potions are not identified +TODO: identify doesn't merge +TOOD: apply should only apply one stack items +TODO: fixed random maps, e.g. for buildings + +TODO: fix rando maps - wallstyle includes piers? random exitstyle is teleporters? +TODO: 2010-07-26 23:16:17.5863 W Can't call method "skip_block" on an undefined value at /opt/deliantra-server/share/deliantra-server/cf.pm line 2136. + when trying to load a map that apparently could not been saved during chargen. +TODO: http://maps.deliantra.net/lostwages/alchemistscave.xhtml - doesn't work, even after the diamonds you do not get the cauldron. +TODO: 2010-10-12 00:46:54.9727 E place_special_exit: undefined hole type 4 +TODO: 2010-10-12 00:05:52.3436 E object refering to nonexistant archetype 'ability_fire'. +TODO: 2011-08-13 23:21:15.7242 E Treasurelist mage_hound did not generate a valid entry in summon_object +TODO: partially transparent, yellow ground(?): wall/bulletwall/bul_wall_*.x11.32x32.png +TODO: op->failmsgf ("You lack the proper attunement to cast %s!", &spell_ob->name); <- why for moving bsall spells? check if caster is player? + +TODO: potionimp/stat potion descriptrions +TODO: 22:29:37 -server:#cf- Scara chats: schmorp: i'm trying to get a clue about the tarot and the meaning of the +TODO: sepharoth, it goes like this: philosophical salt equals "Gunas" (Subconsciousness), philosophical +TODO: sulfur equals "Rajas" (Activity) and philosphical mercury equals "Sattva" (Superconsciousness) or +TODO: the sepharoth "Kether" +TODO: "illegal" access to mlab via town portal in zealots house near mlab tavern +TODO: only store face checksums in C++, store everything else in perl + +TODO: cspm spell arg + - (maps) hopefully fix tobias' tower. + - (maps) hopefully fix healing potion vendor in arena entrance. + - (arch) fixed an error in the Gnarg scale mail artifact. + - it was possible to unapply or half-unapply cursed items in many + cases, which confused players and also player state. fixed. + - (arch) remove curse now works more liek idnetify in that it uncurses + some items. also, no longer uncurses spells or other invisibles. + - (arch) remove curse and identify now treta the marked tiem first. + - creators no longer identify objects that shouldn't be identified + (such as money, which won't stack afterwards). + - (maps) the shady rogue in goths can unapply cursed items for you. + - (maps) implement a wilderness town portal. + - (arch) set proper(?) int values for all monsters. + - (maps) fire5.map could destroy players. + - (maps) fix pet arena pit/arena entrace and exits. + - clear the spell's applied flag when inscribing scrolls, to make the + scrolls mergeable. + - redo all build material faces from scratch. + - dropall without arguments now drops all containers. + - use blitz++ for vector maths (new dependency). + - only match archetype names in artifact allowed names. + - new command "bumpmsg" that triggers the bump-into-wall messages. + - altars with match expressions did not work properly. + - use last_sp not cursed/damned flags in remove_curse/damnation spells. + - god enemy race check fixed ("god detests your race"). + - gods errornously allowed any kind of worshipping race, even + ones they hate. + - use same default config in code as on gameserver.deliantra.net. + - Pod::POM 0.26 and higher actually interpret =encoding, which broke + our parser. + - generate slightly more special exits and avoid warning. + - applying a glowing crystal now gives status messages. + - fix a memleak in the random map generator. + - rework the random map parameter passign a bit to be extendable. + - (random maps) use a nonrecursive algorithm to generate mazes, + also, improve the quality of the mazes (no longer will the edges + almost always form a passage) and add two new types - "rooms" + and "braided". + - (random maps) add new "cave" layout, which is much more ... + cave-like. + - (random maps) new layout style "castle" that generates straighish, + rogue-ish maps. + - (random maps) new layout style "multiple" that simply mixes multiple + different styles in different areas. + - roguelike maps sometimes had dead ends due to symmetry settings. + - rewrite layout management in the random map generator from the + ground up. + - fix bug in tausworthe rng initialisation. + - switched to the faster and hopefully better quality gfsr{24,55} random + number generator, the same algorithm that freeciv apparently uses. + - replace unreachable walls in random maps by "blocked", which saves + memory and imho looks nicer. + - (arch) fix samhlaidh archetype. + - fix the "archname" match special function. + - add kensler ("better gradient noise") functins, as well as fBm + and other fractal algorithms. + - one can no longer emote to logged-out players. + - (maps) /pup_land/nurnberg/storehouse quest was fixed, the potatoe + sacks fit on a tile again. + - (arch) fixed message of improve wisdom scroll. + - (arch) move glyph/magicmap/visibility into .faceinfo files, + support background colour for text clients. + - (arch) improve automatic name from archname generation. + - implement faceset 2, colour + utf-8 glyph, for text-based clients. + - support resist_xxx, body_xxx_info and body_xxx_used specials in + match expressions. + - don't cause an error if a monster tries to cast magic mapping. + - sometimes a special exit wasn't placed when it should have been. + - make newmapcmd mandatory, remove support for map0/map1. + - require EV 4.00. + - made wording of "use_skill jeweler analyze" a bit more precise. + - add perlxsi.c to cleanfiles. + - (arch) made speed potions easier for now. + - the server didn't properly initialise all client skill slots, + no known impact. + - clean up unused settings, introduce DELIANTRA_DATADIR. + - (arch) added potion of fortitude to resist fear for the jeweler skill. + - (arch, maps) move worldmap gridmap data to arch/res/ and implement + a generic table/matrix/palette converter to cfutil. + - avoid crash in describe_item when a power crystal has maxsp=0 (as used, + apparently, in the brewery map). + - do not endlessly loop when an optional extension cannot be loaded. + - remove limits of 000..999 from worldmap coordinates, support negative + coordinates and introduce z-layers - deliantra is now 3d, in yet another + sense. + - move "the worldmap" to ext/map-world-classic.ext and make ext/map-world.ext + handle generic "world map areas". + - dropped micrpather again - we'll do our own implementation when we need it. + - added is_quad flag. + - (arch) added quad archetypes. + - made the pickaxe mining tool remove quad walls and floors. + - move key_values into their own class, simplifiying lots of code and + making it possible to use kv pairs easily for maps and other objects as well. + - get rid of get_archetype, finally. + - maps no longer get activated when loading, only when a palyer is "near" them. + - maps can now be swapped (not loaded), active and inactive, other states + have been removed, and the map "intelligently" changes between active/inactive. + - new variable $cf::SERVER_TICK, also rename pticks in C++ to server_tick. + - remove legacy fly_on/off, flying, walk_on/off and no_pass attributes. + - server now enforces width/height matches between tiled maps. + - fix some off-by-one bugs that presumably created empty rectangles + for unordered map walks - which should not cause any real issues. + - increase face hashlen to 5 octets from 4, to avoid a collision. + - fix output-rate limiting - min/max now use the first argument for the type, + as all other similar macros - might cause other breakage... + - cfutil no longer creates split tiles multiple times due to a + off-by-one bug in comparing mtimes. + - cfutil now supports type: prefix to derive faces from other faces, which + is used for all build materials currently. + - require imagemagick >= 6.6. + - fixed possible crash due to broken initialisation order of shstr and + freed_map, thanks go to Jonathan Neuschäfer for spotting this! + - fix the brace command. + - implement refcnt_buf. + - avoid std::string to store facedata, use refcnt_buf instead, for a 20kb + codesize decrease. wow. + - removed version 1 ext/exti command support. + - store meta information in faceinfo->meta unless prepended or empty. + - new extension, ota_update, for online updates of the game client. + - implement a simpler config value system for extensions that allows + config updates without a reload. + - fix a segfault in reload_perl due to perl 5.12's gv management changes. + - make pick_lock work over map boundaries, and fix a crash while we are + at it. + - make nekosan more disease-resistant. + - new event "infect". + - setup protocol packet now supports JSONOBJECT syntax. + - implement simple web server, currently to serve facedata for the html5 + client. + - sort faces by name in the server to improve caching locality in clients. + - actually prune face checksums (exp_table's checksum was too long). + - add skill_info and spell_paths resources to enable caching the info + and removing another command. + - send completion info to the client. + - assume all clients support the deliantra protocol extensions and allow + fxix/extcmd and other protocol "extensions" before setup. + - implement flash-policy-file server on server socket, to allow flash clients + to connect. + - implement exti doclet request to request documentation, + currently for commands only. + - created nickmon extension to monitor nicks. + - ix now keeps a copy of the face data while sending, in case the + face changes. + - do not allocate memory for empty refcnt_bufs. + - when faces change, invalidate all clients, not just clients with matching + faceset, as faceset only applies to tile resources. + - remove dependency on Time::HiRes. + - move face data to disk, and load it on each and every access. this saves + 250mb ram on load, and 130mb ram in general, and only reduces the http + server hot cache throughput for faces from ~24000 to ~18000 requests/s + on my system. this should make it possible to add a lot more media files + in the future, and reduces the memory footprint by the server from 180mb + to 60mb ram. + - create food/missile will now fail when the mapspace limits are exceeded. + - pod processing could deadlock because the child process might try + to get a lock. + - removed support for ncom packets. + - remove drawinfo packets from the server (use msg instead). + - skill objects now have their documentation in the msg slot. + - no longer allow prefix match when matchign spells, spells names must + now be written fully. + - avoid a deadlock when the incloader is called to load an in-memory + file in a child process. + - implement spellmon v2 protocol - no spell message. + - remove ability to cats/invoke seplls by "count". + - the "may" mechanism now supports uuids ina ddition to nicknames. + - implement dm/dmhide in terms of the "may" mechanism, so dm + players must now be configured by adding may_command_dm: ["uuid..."] + to the config. + - remove nowiz command. + - change dm hiding - hidden status is no longer respected by spells etc., + it only affects information commands. use observe instead. + - automatically send fx for all changed faces, not just for visible tiles. + - fix g++-4.7/c++ incompatibilities in noise.h, and work around similar + problems in blitz++. + +3.0 Sat May 29 23:30:57 CEST 2010 - (maps, arch) complete revamping of the transport routes - all cities are now easily reachable, at a price. - (maps) the mana fountain now has a ratelimit of 30 potions per hour. - (maps) added (navar) gravedigger, that buys players gravestones. - (maps) added the rathouse quest for the shockwave spell in navar (by Dustfinger). - - (maps) Fixed bad floor tile in navar apartment. + - (maps) fixed bad floor tile in navar apartment. - made (wizard) look_at show also uuids. - added cf::object::find_object_uuid (::find_object already exists!). - (maps) added new apartment, made by LinuxLemoner. @@ -73,6 +233,24 @@ - (maps) add more glory hole treasure styles. - (maps, arch) add "hollow" variants of cave\d tiles, and use them in a select number of mlab maps. + - (maps) the library should be less of a death trap now. + - (maps) exits no longer point to auto-apply exits, most affected + maps now have proper doors or a similar solution. + - (arch) jumping skill has now physical attacktype. + - (maps) fixed nurnberg/reception/fire5 to match new style torches. + - enter_map did not normalise the map coordinates when the destination + space is blocked, causing badness and freezes for the player. + - when applying containers, server checks for the key on activate + and also allows players to unapply active containers they don't have + a key for. + - moved formulae, attackmess, artifacts, exp_table, materials and + races files to arch, where they belong (exp_table is no longer in + confdir but in datadir now!). + - jeweler and sound config files are now normal datafiles as well. + - quit_character was causing a runtime exception, causing it to not + work since 2.93. + - entering a map will now respect move_on and other effects, + except for auto-apply exits :/ - only talk to the items on the nearest mapspace, or, of there are none, to the player, not ALL items in vicinity. - do not update the floorbox while running, to avoid big item @@ -101,8 +279,15 @@ - (maps) added /goodies map (goto *idkfa) with stuff useful for testing. - (arch,maps,code) rebalanced value of spellbooks greatly. it's now mostly based on the spell's level in the spellbook. + - the music scheduler did not properly send new music on region + changes. + - (maps) fix some map regions and the region tree. + - the server will now be more picky when parsing the regions file. + - do not rely on chosen_skill in calc_alch_danger. - improve editor support protocol slightly, provide workarounds for 2.10 clients. + - follow has been rewritten to be, hopefully, more robust. + - follow mode will not be aborted when the follower tries to move. - tcp.ext didn't unbind in reloads. - map-tags.ext didn't properly close the database on reloads. - cfutil skips .-directories when scanning. @@ -133,6 +318,10 @@ - (arch) implement mining pickaxes and mining skill. - (arch) add missing stonebig_club archetype from cfextended. - jeweler skill doesn't diminish input values anymore. + - jeweler skill is harder to level now, but in exchange item power + of the output is only 1/5th (instead of 1/3rd) of ring level. + - jeweler skill adds the makers name (currently not visible) to the + generated ring/amulet. - generate most constants for perl automatically. - properly check for weapon name prefix ("Ragnarok's sword"). - when player dies, restore his food to at least 200. @@ -194,6 +383,38 @@ - building listening books is possible again. - (maps, arch) added archetype for building instructions and replaced the copies of the instructions in the maps with it. + - (arch) made the spark shower spell available in shops. + - don't create a second LOGIN event on character creation. + - correctly generate "You paid xyz" message in shops. + - the shop menu now also displays the (approx) value of the item. + - added a 'password' command, to let DMs change the password of players + more conveniently. + - correctly save shopitems string, to avoid parse error when reading + saved maps. + - logging now differentiates between logging levels better. + - speed up get_typedata. + - fix deadlock problem during server shutdown/reload. + - make ext/checkrusage "more" non-blocking. + - use common::sense for extensions. + - work around a 50.10.0 utf8 caching bug. + - correctly try to load tiled maps in adjacent_map, might fix + "no relation to target" bugs. + - try to load (pure-)perl modules asynchronously, warn about + modules being loaded from the mainloop, pre-load some more + core modules so perl doesn't do it later on. + - pre-load many of the files perl might load on it's own e.g. when + compiling regexes. + - make exp_table and materials file reloadable. + - made reload_config non-blocking. + - the seen command called (Blocking) stat() instead of aio_stat, + causing server freezes. + - store unhashed password, to prepare for safer authentication. + - do not log connections from the local host, to help a local + watchdog. + - fix summon freeze at map borders. + - support @group syntax and music config file for music face lists. + - run post_init jobs in parallel, they might do I/O. + - avoid apply conversion for converters. 2.93 Sat Feb 13 15:52:36 CET 2010 - (maps) fix travel to valdor and back.