Protocol: | pserver | User: | anonymous |
Machine: | crossfire.cvs.sourceforge.net | CVSROOT: | /cvsroot/crossfire |
Filename: attack.c | |||
Revision 1.130 | mwedel | 2006/09/02 22:17:59 | +4 -2 |
server/attack.c: Store away victim_map in hit_with_arrow() - what could otherwise happen is that victim is a player, and killed and ends up on new map, so that victim->map points at the wrong map. MSW 2006-09-02 | |||
Show difference between Revision 1.129 and 1.130 | |||
Revision 1.129 | mwedel | 2006/08/31 02:41:27 | +4 -4 |
server/attack.c: Move kill_player() after we set up the pl->killer string. Needed just so right message is on grave stone - also prevents crashes, as if the hitter is poison or disease, kill_player() will remove those. MSW 2006-08-30 | |||
Show difference between Revision 1.128 and 1.129 | |||
Revision 1.128 | qal21 | 2006/08/21 15:47:23 | +4 -1 |
Call kill_player() from the kill_object() code. Fixes bug #1539192. | |||
Show difference between Revision 1.127 and 1.128 | |||
Revision 1.127 | ryo_saeba | 2006/08/19 12:03:31 | +5 -1 |
Fix for bug #1540158 (Broken spells - Face of Death). Death attack is now always killing | |||
Show difference between Revision 1.126 and 1.127 | |||
Revision 1.126 | tchize | 2006/07/02 10:32:35 | +2 -2 |
more progress in unit testing, marked points of interrest in code | |||
Show difference between Revision 1.125 and 1.126 | |||
Revision 1.125 | ryo_saeba | 2006/05/05 04:26:34 | +20 -13 |
First part of patch #1453869 courtesy Stefan Huehner (shuehner) | |||
Show difference between Revision 1.124 and 1.125 | |||
Revision 1.124 | qal21 | 2006/05/02 19:51:52 | +3 -3 |
removed redundant check and fixed an uninitialized variable in attack.c | |||
Show difference between Revision 1.123 and 1.124 | |||
Revision 1.123 | tchize | 2006/04/06 16:18:35 | +5 -5 |
finished common/arch.c unit test, fixed a few bugs, moved function around and renamed other | |||
Show difference between Revision 1.122 and 1.123 | |||
Revision 1.122 | ryo_saeba | 2006/03/18 09:05:37 | +31 -19 |
Massive cleaning of code. Shouldn't be any functional change. | |||
Show difference between Revision 1.121 and 1.122 | |||
Revision 1.121 | mwedel | 2006/02/07 01:54:46 | +11 -1 |
Code that adds transports. Transports are described more in detail in docs/Developers/objects. --- loader.l: Add new move type ('boat'). Update move_name field to be aware of this type. common/object.c: Unrelated to transport, but more apparant with transports - fix bug with insert_ob_in_map() and multipart objects - we now only try to fix up map and coordinates if the provided coordinates are out of the map. Before, function would always use the passed map for multipart objects, which is incorrect if we have already set valid coordinates. doc/Developers/objects: Update notes for TRANSPORTS. Update move information to include MOVE_BOAT. include/define.h: Add type TRANSPORT. Add MOVE_BOAT. include/player.h: Add transport field to player structure. include/sproto.h: rebuilt. server/apply.c: Add code to handle applying of transports. Update apply_below to apply transport if player is on one. server/attack.c: Update hit_map() to look for transports, and hit any players with the damage. server/c_object.c: Update put_object_in_sack() to also handle TRANSPORTS so that code can be re-used. server/move.c: Fix handling of multipart objects in move_object() - old code didn't work right with multipart objects moving along seams of tiled maps. Add code to move_ob() to update player map position for all players in a moving transport. server/player.c: Update move_player_attack() too check of player is in tranport, and use that for map and location information. Update move_player() to handle speed related issues with transports. server/time.c: Add code to credit time back to TRANSPORT objects since we remove time in move_player() for TRANSPORTS. socket/item.c: Add add_object_to_socklist() so that same code isn't reproduced in 3 different places in the file. Update draw_look() to handle transports - send transport object itself, then objects in transport. Update esrv_send_inventory() and esrv_send_item() to use add_object_to_socklist(). Update esrv_get_ob_from_count() to look for objects in transport if player is in transport. socket/loop.c: Remove checking of pl->map status, since draw_client_map() does that, and we need to handle if the player is in a transport. socket/request.c: Handle map drawing if player is in a transport. MSW 2006-02-06 | |||
Show difference between Revision 1.120 and 1.121 | |||
Revision 1.120 | akirschbaum | 2006/02/03 19:32:37 | +46 -21 |
Fix attack messages containing random characters. | |||
Show difference between Revision 1.119 and 1.120 | |||
Revision 1.119 | ryo_saeba | 2005/12/27 08:38:16 | +4 -3 |
Apply patch #1383359 (Fix death message) courtesy Anton Oussik | |||
Show difference between Revision 1.118 and 1.119 | |||
Revision 1.118 | akirschbaum | 2005/12/15 15:50:44 | +2 -2 |
server/attack.c: Make spells destroy objects again. | |||
Show difference between Revision 1.117 and 1.118 | |||
Revision 1.117 | mwedel | 2005/11/16 02:16:08 | +23 -12 |
Commit for new blocking code. Not going to dictate all the changes - but will outline the broad points. Note also that the doc/Developers/objects is updated and goes into more details also. - check for P_WALL no longer used - instead, need to use GET_MAP_MOVE_BLCOK and check against movement type of objects. - arch_blocked() changed to ob_blocked(), now takes object. Needed because just looking at archetype move_ values is no longer sufficient. - find_first_free_spot() changed to take object, since it just calls arch_blocked() - FLAG_FLYING removed, now in move type. - walk_on/walk_off/fly_on/fly_off removed - now based on move_on and move_off fields. - Map space structure extended to hold the move_on/move_off, etc values so that we can shortcut some processing by not having to check every object on the space when something enters it if move_on isn't set. - archetypes recollected - boulders needed move_walk to properly trigger buttons. - Note that the new plugin code has to be fixed up for the new movement code. Look for FIXME in plugins/cfpython/cfpython_object.c MSW 2005-11-15 | |||
Show difference between Revision 1.116 and 1.117 | |||
Revision 1.116 | akirschbaum | 2005/10/28 14:08:53 | +6 -7 |
Fix compiler warnings. Most changes do not change the program (remove unused variables, convert "if(x = y)" into "x = y; if(x)"); a few actually fix (possible) problems (fix uninitialized variables, fix printf format specifiers, fix mismatches between signed and unsigned variables, add missing return and default statements). | |||
Show difference between Revision 1.115 and 1.116 | |||
Revision 1.115 | gros | 2005/10/18 11:54:31 | +18 -115 |
Upgrade of the Crossfire server to version 2.0 of the plugin interface. Upgrade of the Python plugin to version 2.0 of the plugin interface. Gros - 18/10/05 | |||
Show difference between Revision 1.114 and 1.115 | |||
Revision 1.114 | akirschbaum | 2005/10/07 14:38:49 | +27 -7 |
Make damage done by area spells not depend on monster size. include/sproto.h, server/attack.c: Add additional parameter "full_hit" to hit_map() and hit_player(). If set, do full damage, if unset scale down by monster size. server/{apply.c, attack.c, disease.c, monster.c, player.c, rune.c, spell_attack.c, spell_effect.c, spell_util.c, time.c}: Change callers to set "full_hit" parameter according to the attack used. | |||
Show difference between Revision 1.113 and 1.114 | |||
Revision 1.113 | cavesomething | 2005/09/24 21:15:45 | +5 -5 |
make prior party obsoletion patch not completely broken | |||
Show difference between Revision 1.112 and 1.113 | |||
Revision 1.112 | ryo_saeba | 2005/09/24 04:28:05 | +5 -5 |
Patch 1194964 (party obsoletion) by cavesomething | |||
Show difference between Revision 1.111 and 1.112 | |||
Revision 1.111 | mwedel | 2005/09/13 01:46:35 | +2 -2 |
This change is mostly cosmetic and a preparation for the new movement type code. Basically, it just changes the old object movement_type field to attack_movement. This makes sense because that is what that field is called in saved and loaded objects/archetypes, and thus frees up that name for the new movement code. -- common/button.c: field name change common/loader.{cl}: field name change doc/Developers/objects: Add section on new movement types, update old documentation to note it is attack_movement and not movement_type field that is important. include/object.h: field name change. server/attack.c: field name change. server/monster.c: field name change server/pets.c: field name change server/skills.c: field name change. server/spell_attack.c: field name change server/spell_effect.c: field name change MSW 2005-09-12 | |||
Show difference between Revision 1.110 and 1.111 | |||
Revision 1.110 | cavesomething | 2005/08/16 15:31:40 | +3 -3 |
Add flag to lamps to make them able to be lit without needing negative light radii | |||
Show difference between Revision 1.109 and 1.110 | |||
Revision 1.109 | ryo_saeba | 2005/08/12 08:46:34 | +13 -12 |
Fields changed from char* to const char*, cleanup. | |||
Show difference between Revision 1.108 and 1.109 | |||
Revision 1.108 | akirschbaum | 2005/07/25 19:23:00 | +6 -1 |
The following changes prevent spells in player's inventories from being damaged by casting spells, using skills, or praying. server/attack.c: Limit cancellation and acid attacks to visible objects only. server/gods.c: Limit god granted remove curse/damnation to visible objects only. server/skills.c: Limit the skills sense curse and sense magic to visible objects only. server/spell_effect.c: Limit the spells detect curse and detect magic to visible objects only. | |||
Show difference between Revision 1.107 and 1.108 | |||
Revision 1.107 | ryo_saeba | 2005/07/19 15:59:34 | +2 -2 |
Don't hardcode values. Fix item transformer code. | |||
Show difference between Revision 1.106 and 1.107 | |||
Revision 1.106 | cavesomething | 2005/04/14 19:41:34 | +3 -2 |
patch 1123766 to make PK luck penalty configurable | |||
Show difference between Revision 1.105 and 1.106 | |||
Revision 1.105 | akirschbaum | 2005/03/20 10:20:07 | +3 -3 |
server/attack.c: Do not decrease luck if a player kills himself with a spell or pet. | |||
Show difference between Revision 1.104 and 1.105 | |||
Revision 1.104 | akirschbaum | 2005/03/06 14:38:54 | +2 -2 |
common/{map.c, readable.c, treasure.c}, crossedit/Attr.c, server/{apply.c, attack.c, c_wiz.c, init.c, monster.c, pets.c, shop.c, skill_util.c, skills.c, spell_attack.c, spell_effect.c, time.c}, socket/{info.c, request.c}: Add missing newline character to LOG() messages. | |||
Show difference between Revision 1.103 and 1.104 | |||
Revision 1.103 | akirschbaum | 2005/02/20 14:43:14 | +14 -9 |
common/object.c, include/libproto.h: change nrof parameter of get_split_ob to uint32 type. server/c_object.c, include/sproto.h: change nrof parameter of drop_object to uint32 type. plugin/{plugin_python.c, include/plugin_python.h}, plugin_animator/{plugin_animator.c, include/plugin_animator.h}, server/{apply.c, attack.c, gods.c, monster.c, player.c, skills.c, time.c, timers.c}: Change type of CFParm.Value[5] and StackParm1[] to uint32 to be able to pass an "nrof" value. | |||
Show difference between Revision 1.102 and 1.103 | |||
Revision 1.102 | mwedel | 2004/12/29 02:45:08 | +9 -5 |
common/regexp.c: Fixed couple flaws in regexp handling. First, there was an off by one error in the handling of matches (if the match was for example eureca, player could just say eurec, and it would treat that as a valid match). Second case was that the regular expression logic would not try comparing the rest of the passed in string after a partial match - In the eureca case above, if the passed in string was 'where is eureca', after matching the first e (in where), it then fails to match the to prevent unpaid objects from teleporting out of the shop. Also extend code so that non living objects can't use shop mats. server/player.c: Insert force into the player when they die making them immune to any spells on the space they reappear on - this prevents multiple deaths if there is large spell effect going on in the savebed location. Duration of force should be long enough for most spells to run their course, but no so long that the player can use it for much of an advantage (plus, killing yourself to get such an advantage seems odd, and the force only makes the player immune to the attacktypes currently on the space) server/spell_effect.c: Fix spell casting walls (lighting wall, firewall, etc) in that the spell object they cast was not being inserted, resulting in the walls not doing anything. MSW 2004-12-28 Applied patch (bug misc/zoo2) by Lalo server/time.c: creators can now create multi part objects. Applied patch 1086102 by Salathar: server/attack.c: If player kills another player, add (pk) to the death message. Applied patch 1086103 by Salathar: server/move.c: If player pushes another player, send message to both players that pushed happened. Previously, when pushing another player, the pusher wouldn't get any notice. MSW 2004-12-28 | |||
Show difference between Revision 1.101 and 1.102 | |||
Revision 1.101 | mwedel | 2004/09/10 02:03:45 | +2 -2 |
server/attack.c: Pass in skill (string) to change_exp instead of skop->skill - skop can be null, resulting in a crash here. In addition, other calls to change_exp in this function use the skill string, so it is good to be consistent. MSW 2004-09-09 | |||
Show difference between Revision 1.100 and 1.101 | |||
Revision 1.100 | mwedel | 2004/06/16 02:09:44 | +6 -5 |
server/attack.c: Fix hit_with_arrow() so that it uses the proper map when inserting the arrow. server/c_wiz.c: Add note about brokeness of command_create() server/spell_effect.c: execute_word_of_recall() - don't attempt recall if player isn't on any map. MSW 2004-06-15 | |||
Show difference between Revision 1.99 and 1.100 | |||
Revision 1.99 | akirschbaum | 2004/06/13 12:30:22 | +1 -2 |
common/object.c include/define.h include/player.h include/sproto.h server/attack.c server/c_object.c server/player.c server/shop.c socket/item.c socket/loop.c socket/request.c: Remove explicit calls to esrv_update_item(UPD_WEIGHT, pl, pl) for player objects. Instead send the new weight whenever it changes. | |||
Show difference between Revision 1.98 and 1.99 | |||
Revision 1.98 | mwedel | 2004/05/04 02:14:53 | +2 -2 |
common/item.c: describe_monster() - print luck when describing players (fixex perceive self not showing luck) server/attack.c: kill_object() - don't give player exp if he kills himself - compare owner against what was killed, not the hitter. server/pets.c: summon_object() - move breaking out for last treasurelist after we set the last valid treasurelist - otherwise, the list entry for the treasurelist was never used. Change summoned creatures so that the items they have are god given, and thus disappear when they are killed - prevents players from summoning and then looting their pets. server/spell_attack.c: explode_bullet() - Get owner of the spell so that we can properly tailor the explosion portion of the spell for the god of the worshipper. MSW 2004-05-03 | |||
Show difference between Revision 1.97 and 1.98 | |||
Revision 1.97 | mwedel | 2004/03/24 02:15:17 | +61 -42 |
server/attack.c: Add scare_creature() function, which sets FLAG_SCARED and also sets up appropriate enemy. Clean up some formatting in other functions, and fix friendly fire - move it out of the loop for all attacktypes (can be after we have figured out max damage). Also, has a bug where if an attach wasn't doing any damage, friendly fire could actually make it do damage (eg, fear spell). server/player.c: Fix up flee_player() to be map tile aware. Also, add call to flee_player() in handle_newcs_player() so player will run away. MSW 2004-03-24 | |||
Show difference between Revision 1.96 and 1.97 | |||
Revision 1.96 | mwedel | 2004/03/23 01:52:31 | +2 -1 |
server/attack.c: Add missing skill=NULL in kill_object() - can be rare cases where the proper skill can't be found. server/move.c: Fix push_object() so that it also updates the pushers/ pushees map - should only happen in tiled map cases. server/pets.c: Fix summon_object() so that if a summon cult monsters was cast, we try to find the god from the owner. If still can't find the god, just return instead of crashing. server/rune.c: Change trap_disarm() to call destroy_object() on the trap object, so that all the trapss inventory is also destroyed and not dumped on the ground. server/skills.c: Only players without arms to steal. server/spell_util.c: Change cast_spell to set up the skill pointer for the caster even if the caster is the wizard. MSW 2004-03-22 | |||
Show difference between Revision 1.95 and 1.96 | |||
Revision 1.95 | mwedel | 2003/12/20 20:13:46 | +105 -84 |
common/object.c: Set op->events=NULL in reset_object(), and move the clearing of the op->events structure to be before the memset in clear_object() - this was otherwise resulting in a memory leak, as memset would clear the pointer without actually freeing the data. server/attack.c: Fix indentation of hit_map(), modify it so that attacks won't destroy items with no_pass set. server/login.c: set op->speed=0, call update_ob_speed() before calling reset_object() - fixes problem with players not moving with recent changes to initting the active lists to NULL. msw 2003-12-20 | |||
Show difference between Revision 1.94 and 1.95 | |||
Revision 1.94 | mwedel | 2003/10/27 01:24:14 | +49 -43 |
Various bug fixes: common/arch.c: Fix item_matched_string() so that it only passes in the length of the pssed in name in the strncasecmp(), and not the shorter of the passed in string or item name. Otherwise, if player does a 'drop wand of', unidentified wands (name just wand) would match. Similarly, if a player did 'drop ringmail', unidentified rings would match, etc. common/living.c: Fix fix_player() to always process the praying skill with respect to resistances and whatnot. This is necessary because the god give abilities are put in this skill, and those shouldn't go away depending on if the skill is in use or not. Also fix bug in add_exp routines which wasn't multiplying permanent exp by PERM_EXP_GAIN_RATIO common/object.c: Fix find_obj_by_type_subtype() - had extraneous semicolon after the for loop, so the if code that was supposed to be for each object was never called and instead would crash as it would get called with tmp was null. server/attack.c: Fix problem with kill_object() not finding proper skill - it would use the skill object instead of the skill. Fix problem of poisoning not setting up proper skill name in poisoning object. server/c_range.c: If player is invoking a spell, don't update their range_magic value. server/skill_util.c: Fix divide by zero problem if improperly passed skill object. MSW 2003-10-26 | |||
Show difference between Revision 1.93 and 1.94 | |||
Revision 1.93 | mwedel | 2003/10/14 01:54:48 | +2 -2 |
server/apply.c: fix bug so that we don't re-do treasures for objects that have already had them made. server/attack.c: Fix bug with monsters with drain causing cores. server/player.c: Fix spell gaining for dragon players. Use actual spell object. MSW 2003-10-13 | |||
Show difference between Revision 1.92 and 1.93 | |||
Revision 1.92 | mwedel | 2003/09/13 00:02:07 | +153 -123 |
Updated code for skill + spell code. skills and spells are now objects. tuning these now means changing the archetypes. New spells can now be added just by making a new archetype. Lots of code cleanup also done. MSW 2003-09-12 | |||
Show difference between Revision 1.91 and 1.92 | |||
Revision 1.91 | temitchell | 2003/09/04 01:25:32 | +2 -2 |
- add new type TRAP, make initial seperations from RUNE in code add in traps triggering stuff if they are detonated | |||
Show difference between Revision 1.90 and 1.91 | |||
Revision 1.90 | temitchell | 2003/08/26 19:00:46 | +49 -4 |
Added friendly_fire to attack.c, called from hit_player. Will put a cap on maxdam that is a percentage (1-100%) of damage (min 1)based on SET_FRIENDLY_FIRE value (in settings)when players attack other players in peaceful mode. Changed who, statistics commands to show this setting better and added a help file for peaceful. It would be nice to have a indicator (even a toggle button?)in the client for this as well. | |||
Show difference between Revision 1.89 and 1.90 | |||
Revision 1.89 | gros | 2003/06/26 06:27:43 | +25 -22 |
Re-implemented the event hooks in objects as a dynamically linked list, instead of a static table. | |||
Show difference between Revision 1.88 and 1.89 | |||
Revision 1.88 | mwedel | 2003/06/16 00:15:35 | +5 -1 |
Add fix for crashes if owner of object is in process of exiting. MSW 2003-06-15 | |||
Show difference between Revision 1.87 and 1.88 | |||
Revision 1.87 | mwedel | 2003/03/20 01:21:05 | +13 -4 |
server/attack.c: Change did_make_save to strip out magic attacktype when making saves for objects - otherwise, things like poison cloud destroy objects. server/time.c: deal with player animations special in process_object - need to pass in the facing value, and not direction, since direction gets reset. MSW 2003-03-19 | |||
Show difference between Revision 1.86 and 1.87 | |||
Revision 1.86 | mwedel | 2003/03/07 23:35:32 | +3 -4 |
Patch for 64 bit experience total, as well as flexible number of levels. Basically, max level is now dynamic, set in exp_table file. Experience is now a 64 bit value, so much higher totals now allowed. To allow for flexible levels, add new function - did_make_save() which is used for players/monsters to see if they make their saving throw - this is necessary because the savethrow[] array may not be as large as max level - did_make_save takes this into account. NOTE: If your updating a server, you will need to copy over/set up a new exp_table file that has max_levels defined and at least one of the tables uncommented. There are no longer any compiled in defaults -- configure, configure.ac: Add AC_CHECK_SIZEOF calls for long and long long so we can know which one to use for 64 bit support (other checks may need to be added) common/exp.c: Remove levels table, replace it with a 64 bit pointer. Change init_experience to allocate appropriately sized table, have it read max_level value from exp_table file. Replace atoi calls with atoll to get 64 bit value. Update dump_experience to properly print 64 bit values. common/info.c: Update dump routines that dump exp to properly print 64 bit values. common/init.c: Add initializing for settings.max_level value. common/item.c: Update sprintf's to handle 64 bit output of exp (speed) value in objects. common/living.c: change MAX_EXP define, update MAX_EXP_IN_OBJ define, add MAX_SAVE_LEVEL which corresponds to how large the savethrow table is. Change MAXLEVEL to settings.max_level. Change level_exp() to return 64 bit value, other updates in functions to use 64 bit values. Add did_make_save() function. common/loader.l, common/loader.c: Update load/save routins of exp to deal with 64 bit values. common/map.c: Update calculate_difficulty to use 64 bit values when storing exp - unlikely to make a difference, since unlikely any map will get to a point where it has that much exp on it. common/porting.c: Remove dead code from save_long(), add save_long_long() to save 64 bit values. include/autoconf.h.in: SIZEOF_LONG and SIZEOF_LONG_LONG values added. include/global.h: Add code to typedef sint64/uint64 types based on what type gives us those values. Add max_level to settings array. include/libproto.h: rebuilt. include/living.h: Replace exp field with 64 bit value. include/player.h: Update party kill log exp tracking to have 64 bit values. lib/exp_table: Udpate comments about max_level, uncomment what was the default table so new installs have working table. Add 5 levels to all the tables. random_maps/monster.c: Update place_monsters to use 64 bit when storing exp total for map/per square. server/apply.c: Replace MAXLEVEL with settings.max_level, add did_make_save calls where appropriate server/c_misc.c: have statistics command properly print 64 bit exp value. server/c_wiz.c: Have stats command properly display 64 bit value. server/hiscore.c: Replace exp values with 64 bit values, update to properly load/display them. server/player.c: replace savethrow[] reference with did_make_save() server/skill_util.c: Update skills command to properly show 64 bit exp values. server/spell_effect.c: replace savethrow[] reference with did_make_save(), allow players to cast directors right beneath themselves, but other walls must be on empty space. MSW 2003-03-07 | |||
Show difference between Revision 1.85 and 1.86 | |||
Revision 1.85 | mwedel | 2003/02/25 01:18:07 | +3 -2 |
*/Makefile.in, related files: Updated for 1.5.0 server/attack.c: Don't change weak wall image if no damage was actually done. server/c_object.c: Include math.h - needed for pow() server/spell_effect.c: fix infinite loop in town_portal MSW 2003-02-24 | |||
Show difference between Revision 1.84 and 1.85 | |||
Revision 1.84 | garbled | 2003/01/29 20:50:48 | +2 -2 |
Fix a little stupidity. | |||
Show difference between Revision 1.83 and 1.84 | |||
Revision 1.83 | garbled | 2003/01/29 18:07:09 | +46 -37 |
New materialtype system for crossfire. Based in concept on my original design, but rewritten from scratch to make it easily extensible. In a nutshell: Each of the old materialtypes (metal, glass, stone, wood) are now a class of materials. When an item in the game is created, if it does not have a specific materialname of it's own, a materialname is generated randomly from the matching entries in the "lib/materials" file. This file contains all of the saving throws, and other material specific modifications for each of the expanded materials. Materials can be manually specified in the arch with the "materialname" directive. Such as the gold coins, which are specified to be made of, you guessed it, gold. Saving throws have been slightly rewritten to use the new materialtypes, and a few other minor details associated with materialtypes have been patched up. Adding a new type of stone or wood, is as simple as adding a new entry in the lib/materials file. The game will automatically start distributing them around randomly. | |||
Show difference between Revision 1.82 and 1.83 | |||
Revision 1.82 | mwedel | 2003/01/08 02:39:18 | +4 -4 |
Bulk of this commit is to improve code for tiled maps - replace wall/blocks_magic/blocks_cleric, etc with get_map_flags which also does map tiling translation as needed. This should fix a lot of the bugs related to map tiling (there are sure to be more out there - all the get_map_ob still need to be checked). Other changes - many spells stopped progressing on spaces that blocked view - that is now removed - didn't make a lot of sense. Other fixes - some cleric spells (eg, word of recall) checked to see if magic was prohibited, didn't check to see if cleric was prohibited. Clean up some bugs in the lighting code that would cause erroneous results. Also, allow players to see immediately around them on outdoor maps no matter how dark the map really is - behaviour on indoor maps is the same. Lots of code reformatted, and lots of obsoleted/dead code removed. Add max range to dimension door. Fix magic map - got broken when the layer stuff was redone - was not showing proper colors. IT also works sensibly on tiled maps now - rather than display based on the map, it gives the player a 50x50 area centered on where the player is. Change fire_bow - move special player fire modes into own function - makes code much cleaner. Hopefully this fixes more bugs than it introduces. common/los.c, common/map.c, common/object.c, crossedit/Edit.c, include/libproto.h, include/sockproto.h, include/map.h, include/spellist.h, include/sproto.h, random_maps/treasure.c, random_maps/wall.c, server/attack.c, server/c_misc.c, server/c_wiz.c, server/disease.c, server/main.c, server/monster.c, server/pets.c, server/player.c, server/rune.c, server/shop.c, server/skill_util.c, server/skills.c, server/spell_effect.c, server/spell_util.c, server/time.c, socket/info.c: See note above server/apply.c: Limit number of times weapon can be enchanted so that it won't overflow item_power. Modify enchant armor to enchant as normal armor is enchanted, also only allows one item to be enchanted. MSW 2002-01-07 | |||
Show difference between Revision 1.81 and 1.82 | |||
Revision 1.81 | garbled | 2003/01/08 02:28:59 | +3 -4 |
Prevent infinate drain. If the player attacks with drain, he can drain ad infinitum, and then kill the monster at his leisure for full exp, on top of the millions he got from draining. | |||
Show difference between Revision 1.80 and 1.81 | |||
Revision 1.80 | mwedel | 2003/01/03 18:28:52 | +7 -3 |
TODO - add notes about item damage - clear it out of my mailbox. common/loader.l, loader.c: Add check at load time to see if monsters hp is higher than its maxhp and print a debug message if so. devel/Makefile: Remove - makefiles shouldn't be in CVS, only .in versions. server/attack.c: Fix calculation of max_damage in kill_object - this was being done incorrectly, resulting in fired spell objects causing incorrect amounts of damage, resulint in some monsters ending up with a lot of hp. Fix call to kill_object to pass in correct damage value. server/monster.c: Put in check so that monster won't regen to more hp than they should have. server/spell_util.c: Removed unused variable from move_missile. server/weather.c: fix bug that causes crash if empty space is encountered on map. MSW 2003-01-03 | |||
Show difference between Revision 1.79 and 1.80 | |||
Revision 1.79 | garbled | 2002/12/25 00:45:46 | +7 -2 |
New Arrow and Pet Code: Add bowmode and petmode commands. Allowing the player to change the firing style for bows to one of either threewide, or spreadshot. Allow players to change the operating modes of his pet with petmode. Can be either seek and destroy, defend, or normal historical behavior. Change bows to impart speed to arrows based on damage and other magical plusses. Damage decays over distance, to stop arrows from flying forever. Very fast moving arrows will pierce multiple targets. An arrow moving at a speed greater than 10.0 will go straight through a target, losing 1.0 of speed in the process. Change magic missile to use spell_find_dir instead of find_dir to stop it from flying in a circle and hitting the caster, and to make it stop flying into walls to hit creatures behind the walls. | |||
Show difference between Revision 1.78 and 1.79 | |||
Revision 1.78 | garbled | 2002/11/26 02:48:20 | +2 -11 |
Get rid of #ifdef PLUGINS (it is on by default, I didn't take out gros's code) | |||
Show difference between Revision 1.77 and 1.78 | |||
Revision 1.77 | garbled | 2002/11/26 01:48:31 | +1 -9 |
get rid of NO_CONE_PROPOGATE | |||
Show difference between Revision 1.76 and 1.77 | |||
Revision 1.76 | garbled | 2002/11/12 18:49:47 | +18 -15 |
#ifdef CASTING_TIME -> settings.casting_time | |||
Show difference between Revision 1.75 and 1.76 | |||
Revision 1.75 | mwedel | 2002/09/28 02:19:40 | +25 -24 |
Mostly bugfixes, but the addition of a wiz 'hide' command which makes the wiz out of sight so to speak. -- common/loader.l, common/loader.c: Fix bug where flag values were being saved with actual value of the flag (eg, 32768, 16, etc) instead of 1/0 value - Code effectively worked the same, just was a bit odd looking at save files. include/player.h: Add hidden element to player structure. include/sproto.h: Add command_hide(), update proto for players_on_map() lib/Makefile.am, lib/Makefile.in: add wizhelp/hide file. server/apply.c: Add error checking to converts so it doesn't crash if the converter doesn't have a proper other_arch. Modify shopmats so that they don't transport spell effects, like fireballs an burning hands. server/attack.c: Modify code so players can drain other players exp. server/c_misc.c: Modify various functions to not show info on hidden DM. server/c_wiz.c: Add command_hide(), clean up command_invisible() a bit. server/commands.c: Add hide command to dispatch table. server/main.c: Add code to not update players on map for hidden dm. server/player.c: Give hidden dm perpetual invisiblity. server/skills.c: Only get exp if you actually stole an item - fixes abuse whereby players who couldn't carry item could continually 'steal' it from monster and just gain exp. server/swap.c: modify players_on_map() to take addition arg to determine if real players on map should be shown, or if we shouldn't count hidden dms. socket/info.c: Modify code so that oldsockets don't get reports on high verbose messages. socket/metaserver.c: Modify metaserver update to not include hidden dms. utils/Makefile.in: update datestmp. MSW 2002-09-27 | |||
Show difference between Revision 1.74 and 1.75 | |||
Revision 1.74 | mwedel | 2002/09/07 00:55:18 | +21 -21 |
More bugfixes: common/loader.l, loader.c: Fix up the handling with speed with respect to style maps - the objects were still getting put on the active list. common/map.c: Fix up blocked_link() to behave more like the blocked_two() function - inventory checkers and door handling. Comment out blocked_two since it isn't used anymore. Modify load_objects to remove objects on style maps from the active list. Remove some of the debug messages about map loading. common/object.c: Add remove_from_active_list() function for use in map.c to remove objects from active list. common/porting.c: Comment out debug message if open_and_uncompress() can open a file - caller of the function should print out messages, and it really isn't much of an error in any case. include/libproto.h: rebuilt. random_maps/special.c: Modify place_special_exit() - this should fix bug of very large treasure maps - problem was if the generated map size was too small, when generate_random_map was called, it would generate a newly sized map that was much larger. Code was also re-arranged some to make it a little more readable. server/attack.c: Fix crash when creature may not have an owner and it kills something else. server/move.c: comment added - no code change. socket/request.c: Fix off by one error in esrv_send_animation() - rare condition as it only showed up when trying to send the last animation (zombie) - only an issue if the player is put on top of a zombie for some reason (no other space for them) - observed when leaving the random dungeon in the undead church in scorn without clearing out all the zombies first. MSW 2002-09-06 | |||
Show difference between Revision 1.73 and 1.74 | |||
Revision 1.73 | mwedel | 2002/09/05 01:11:40 | +3 -2 |
server/attack.c: Add missing check to make sure the plugin exists before we try to access the plugin function. MSW 2002-09-11 | |||
Show difference between Revision 1.72 and 1.73 | |||
Revision 1.72 | mwedel | 2002/09/01 01:32:30 | +5 -2 |
This change mostly deals with improving behaviour of pet monstes. Most of the code is from K. Reinert - however, I did some code cleanup/ fixes related to pet monsters, so it is difficult to note where each piece of code came from. One thing this does fix is handling of multipart pets - these now work properly. common/map.c: Update comment for get_rangevector() - no code change. common/object.c: Add get_search_arr() which is used in pet monster code. This returns a semi random scrambling of the freearr array. doc/Developers/protocol: Update documentation about map1a protocol command. include/libproto.h, include/sproto.h: rebuilt. server/attack.c: Have drain attacks return 1 damage so that it is clear that you are actually hitting your opponent. Otherwise, you would get messages that 'you missed xyz', even though you are draining it. This extra point of damage shouldn't change balance in any significant way. server/monster.c: Update hnadling of enemies for pet monsters. It should more intelligently choose the monsters and not switch/clear the enemy field for no reason anymore. Change find_nearest_living_creature to use the get_search_arr() to more randomly choose direction of target - before, there was a proclivity to always look in the north direction. Modify can_hit() to look for closes part of enemy - otherwise, monsters may not attack opponents even if they were right next to them because they couldn't get to the enemies head. Remove move_object from this function - merged with move_ob in move.c server/move.c: Fix move_ob to use 'cleaner' code of move_object, but also have specific features that move_ob had (player handling). Before move_ob didn't handle multipart objects correctly, and the two functions were largely the same. Now move_object() just calls move_ob - the only difference in the functions is that move_ob() takes 3 parameters instead of 2 of move_object() (added parameter is originator). I think this should now mean multipart player objects may now work. server/pets.c: get_pet_enemy enhanced to be much smarter about selecting/finding things for the pet to attack. server/player.c: Remove commented out line of init_beforeplay MSW 2002-08-31 | |||
Show difference between Revision 1.71 and 1.72 | |||
Revision 1.71 | mwedel | 2002/08/31 02:28:07 | +49 -13 |
server/attack.c: Modify drain attack code so that if some agent of the player is doing the drain (eg, avatar, summoned monster, or even spell), player gets exp added to his total. Otherwise, the agent could suck all the exp out of the monster, resulting in no gain for the player. Also, fix bug in drain code where uninitialized value was being used if enemy had 0 protection to drain. MSW 2002-08-30 | |||
Show difference between Revision 1.70 and 1.71 | |||
Revision 1.70 | mwedel | 2002/07/25 01:57:14 | +207 -176 |
Various bug fixes, add glyph spell: TODO: Updated common/map.c: Fix change_map_light() - if darkness was reduced to zero, it wouldn't properly notify the players or update the maps they are on. Also, make it more robust to handle changes by more than one. include/define.h: Increase NROFREALSPELLS include/spellist.h: Add glyph spell. include/spells.h: Add SP_GLYPH entry. server/attack.c: Fix up kill_object() - it has had some many various additions that it was difficult to follow the logic. It should also now do better check on skill objects when awarding experience. server/player.c: Add some checks/addition to properly deal with freeing the name_pl in the player object. Fix it so that if you are braced, you still won't attack friendly creatures. server/rune.c: Add cast_generic_rune() to handle the glyph and rune spell. server/spell_effect.c: Fix up some pointers in cast_cause_disease() - needed so that it works properly when embedded in a glyph. Have it return 1 even if no one caught anything - you still cast the spell, so you should lose the grace for it. server/spell_util.c: Fix some formatting. Break out the code dealing with rune into cast_generic_rune() socket/loop.c: Add flag to player command mapping, and update structure - if flag is set, command can only be issued when player is in play, and not when waiting at the quit or login prompt - fixes crashes where players could wait for the map to get swapped out (after quitting), and then looking at a space. socket/request.c: Fix map2cmd so that invisible players are drawn. MSW 2002-07-24 | |||
Show difference between Revision 1.69 and 1.70 | |||
Revision 1.69 | mwedel | 2002/07/14 23:57:13 | +2 -4 |
-- Start body commit notes -- Major commit. This adds body locations which is used for equipping items. Equipment has information which body part it gets equipped to, and monsters have information on how which body locations they can have. As part of this work, I also did a lot of code cleanup. To use this, you must use up to date archetypes - the ones included in this commit are fine - just make sure you install them. If you don't, players will not be able to equip items. common/arch.c: Initialize body_used to be same as body_info for archetypes - this way when monsters are created, they can start equipping items right away. common/exp.c: update new_exp() - some flags it checked for before no longer exist or have new names. common/info.c: describe_item() now takes second parameter - update dump_abilities to use new calling convention. common/item.c: Add table that describes the body_info locations and their names. Add functions that calculate item power for objects that don't have it set. Update display functions to show item_power in items. Update describe_monster() - use_horn/wand/rod merged into just use_range. Modify describe_item() to take second paramater - who the item is being described for. Show item_power in describe_item. common/living.c: Pull out MAXLEVEL from being defined in this file - define in in define.h, since other files use it. Add NUM_STATS define - replace hard coded values of having just 7 stats with it. Update change_abil to not display that the player has a new attacktype when equipping a bow that has it - fix_player() ignores the attacktype of the bow, so it was incorrect information. fix_player(): Initialize player ranges structure to null - will get filled in by code in function, updated to deal with updating the body_used data from body_info in the objects. Replace instances of last_heal with gen_sp_armour. Rearrange some code to make function more readable. common/loader.c, common/loader.l: Remove the variable_const information - no longer needed and confusing for new people when adding in new object elements. Add set_body_info() - parses the string from the load file and sets the appropriate array element. Add check_loaded_object() - does sanity checking for an object after finished loading - replaces need for long processing directive in the actual rules by having seperate function. Remove unused flags from load directives (apply_once, no_pretext, can_apply), add some new ones (item_power, gen_sp_armour), update others to can_use_range. Replace flag_links with simple array that contains the name for each corresponding flag. Update get_ob_diff to not use the V_ values and just include the actual string name - all recent changes have done this, just updated for old stuff. Update get_ob_diff to save new values that have been added. common/object.c: clear_object: Modify to use memset to clear the structure to zero - this is less error prone than listing all the specific values, and probably faster. Also, makes it easier to add new elements - no need to update object.c in most cases. common/player.c: Remove get_player_ob routine - this is now merged in with get_player_ob in server/player.c. Remove generate_ext_title - not used. common/readable.c: Update to pass second argument to describe_item. common/treasure.c: Update to calculate item_power of generated items. Clean up a lot of code formatting. Update add_abilities to use gen_sp_armour values, not last heal (note, it appears the last_heal values weren't being used before). Update calls to describe item to take second parameter. doc/Developers/objects: Update will_apply notes, add note about item_power, body location. include/define.h: Comment out unused flags (flag_apply_once, flag_paralyzed, flag_no_pretext, flag_ready_rod, flag_read_horn). Add flag_use_shield. rename flag_use_wand to flag_use_range. rename flag_ready_wand to flag_ready_range. Add flag_ready_scroll. Update ARMOUR_SPELLS access macro. Add AP_PRINT flag to apply flags. Add CAN_APPLY_.. return types for can_apply_object function. include/includes.h: add strftime, mktime checks to this file. include/libproto.h: rebuilt. include/living.h: Add NUM_STATS define, update extern declarations to use it for sizing. include/loader.h: remove the V_.. info and xbm_.. externs that were not used. include/newserver.h: Remove ext_tile information. include/object.h: Add Body_Locations structure, NUM_BODY_LOCATIONS define. Add definitions for WILL_APPLY values. Clean up object structure - formatting is now consistent, ordering of values groups values together more logically. Update all types to use the int8/int16/int32 types. Several unused fields removed. include/player.h: Update rangetype enum. Add unapplymode enum. Clean up player structure - type updates, unused fields removed, formatting fixed up. include/spells.h: remove range_name extern. Update SpellTypeFrom field to combine wand/rod/horn into spellMisc - none of the spell casting code was differentiating these. include/sproto.h: rebuilt. lib/Makefile.in: Add new help files (applymode, bind, brace) lib/archetypes: rebuilt for body_info, gen_sp_armour, item_power, can_use_shield information. lib/artifacts: updated for item_poer and gen_sp_armour changes. lib/treasures: remove unused _force for player treasure. plugin/plugin_python.c: Change FLAG_USE_WAND to FLAG_USE_RANGE. server/apply.c: Move stftime, mktime to include/includes.h. Remove draw_find() - one line function can just as easly be in the code itself. Update calls to long_desc to pass second parameter. move gravestone_text() to player.c file. Add direction parameter to apply_scroll() - in this way monsters can use it properly. Remove dead code. Update apply_special function. Add unapply_special(), get_item_from_body_location(), unapply_for_ob(), and can_apply_object() functions. server/attack.c: Remove SET_FLAG(op, FLAG_PARALYZED) line - no code was ever checking status of FLAG_PARALYZED. server/c_misc.c: add command_body() which dumps body information for player. Update who as idle element in player structure removed - was not being used by anything. Add command_applymode() to set players prefered unapply method. Remove calls to unlock_player() in various functions - unlock_player() has not done anything meaningful for a while. server/c_object.c: Modify long_desc to take a second parameter which is who is examing the object. this is needed so that we can pass it down to some of the lower level functions. Update calls to describe_item to pass this second parameter. remove FLAG_NO_PRETEXT code - no archetyps were using it. When examining objects, also tell player where to put them on. server/c_range.c: Update legal_range() - we now store the object that is responsible for a range in the player object, so code is much simpler. Update change_spell() to not destroy golem just by readying another spell - we now let players regain control of golems after switching to another range. Update change_spell to use item name of object for range description. server/c_wiz.c: remove reference to count_left from player object - field removed from structure. server/commands.c: add new commands (applymode, body) to command dispatch table. server/login.c: Remove unlock_player() and lock_player() and calls to it - current checking of names at login should be sufficient to prevent duplicates. Remove dead code from check_name. Update load/save code for unapply mode value. Add set_flag(op, FLAG_USE_SHIELD) if player is allowed to use armor - needed since flag_use_shield is really a class feature and so is not automatically updated for old player files. server/main.c: Remove references to count_left. memset marker object to NULL - seems to increase stability on metalforge server. server/monster.c: Many updates related to the body info - monsters follow some rules as players. Add monster_should_cast_spell function - monsters will use this for all spellcasting related actions (abilities, scrolls, wands, etc). Update for merged rod/horn/wand ranges. Update bow use by monsters - they don't actually need to equip it to fire - this way we don't need to constantly swap the monsters weapons between the bow and melee item. Use fire_bow from player.c for most of the work. Modify scroll usage - monster will use it when player is near, not when it first picks it up. Add FLAG_READY_SCROLL to denote the monster has a scroll to use. Also, monster now casts it in appropriate direciton. Merge the monster_use_wand/rod/horn into monster_use_range. Modify check_good_weapon and check_good_armour to just look at the stats of the two items without needing the monster to apply it first. server/player.c: Print motd in green so it is more noticable. Update get_player function to do work it did before as well as that of get_player_ob. Have get_player take a parameter which is the object of the player if he has one. Modify to use memset to clear the player structure - more sure fire than explicitly listing values to initialize. Remove calls to unlock_player. Modify fire_bow so that monsters can also use the function. Add fire_misc_object() to fire_wand/rod/horn - removes code from fire(). Add gravesetone_text() to this file. server/shop.c: Update to pass second parameter to describe_item(). server/skill_util.c: Update check_skill_to_fire since there are fewer rangetypes now. change range_scroll name to range_golem, as that is a bit more accurate for what it actually does. Modify show_skills() to show player his item power and total of items he has equipped. server/skills.c: Add second paramater to long_desc, remove references to count_left. server/spell_effect.c: Add second paramater to long_desc, remove references to count_left. Update range_scroll to range_golem server/spell_util.c: remove references to count_left. Update messages if player trying to cast where he can't with new range names. socket/info.c: Update range information and how we display what it is - we will use the object name of the range if available. Remove reference last_known_spell, last_shoot, last_spell, last_value player structure fields. socket/init.c: Remove ext_title information. socket/request.c: Add element for life_stealing in the resistance array. Remove references to idle, count_left in player structure. remove ext2 title information. MSW 2002-07-14 -- End body commit notes -- | |||
Show difference between Revision 1.68 and 1.69 | |||
Revision 1.68 | mwedel | 2002/05/14 01:47:44 | +12 -4 |
server/attack.c: Don't generate PLAYER_KILL_PLAYER messages if kill happened on battleground. Also, datestamp the messages. MSW 2002-05-13 | |||
Show difference between Revision 1.67 and 1.68 | |||
Revision 1.67 | mwedel | 2002/05/07 00:27:36 | +10 -1 |
server/attack.c: Generate log message when a player kills another player - include the ip address of the killer to make it easier to add them to ban files. MSW 2002-05-06 | |||
Show difference between Revision 1.66 and 1.67 | |||
Revision 1.66 | avogl | 2002/03/11 16:02:37 | +7 -3 |
common/object.c: I saw from mids' cores that the server crashed inside the update_object() function. Can't verify the crash, but I put in some extra security-checks which might help. server/attack.c Out-commented the errormessage "hit_map(): next object destroyed". This routine is by no means a bug/error, happens very frequently, and thus doesn't deserve to spam the logs. | |||
Show difference between Revision 1.65 and 1.66 | |||
Revision 1.65 | darth_bob | 2001/12/18 21:46:49 | +3 -3 |
Turn down the damage abit | |||
Show difference between Revision 1.64 and 1.65 | |||
Revision 1.64 | darth_bob | 2001/12/18 03:45:07 | +37 -13 |
New attack type, life stealing. Mostly untested, I am commiting this to allow people to test it out, currently it is only availible on a devourers blessed weapon. It currently drain and life stealing both are used as resistances to this attack type, this is to allow fairly seemless merging. | |||
Show difference between Revision 1.63 and 1.64 | |||
Revision 1.63 | mwedel | 2001/12/16 22:15:56 | +11 -11 |
Fix bug by DB which moved a } to a different place in the hit_player_attacktype function, resulting in greatly changed results. MSW 2001-12-16 | |||
Show difference between Revision 1.62 and 1.63 | |||
Revision 1.62 | darth_bob | 2001/12/16 03:06:15 | +33 -73 |
Fixed some stylistic problems. | |||
Show difference between Revision 1.61 and 1.62 | |||
Revision 1.61 | darth_bob | 2001/12/16 01:13:16 | +16 -15 |
Fixes a few bugs and removes non-ansi comments. | |||
Show difference between Revision 1.60 and 1.61 | |||
Revision 1.60 | darth_bob | 2001/12/14 04:31:34 | +223 -156 |
! Big changes made by njh !! Basic code clean, using switch instead of repeated else if's Hashed some code which was nop (didn't seem to do anything) changed over to using ATNR_SLOW etc, instead of AT_SLOW. Has been tested, all those interested in attack.c please read through this code again and make sure everything is in order. Mail problems to njh@hawthorn.csse.monash.edu.au! | |||
Show difference between Revision 1.59 and 1.60 | |||
Revision 1.59 | michtoen | 2001/11/27 22:44:42 | +1 -2 |
Anim25 Patch This patch do this things mainly: - include same animation sheme for players and monster again - introduce guard/walk/fight animation in 8 direction - direct action: monster change from guard/walk animation when they get attacked and fall back to walk or guard when the enemy is gone - Monster do "intelligent" animation -> facing enemy -> turn and run when scared - fixed some animation flaws which invokes late anim update (monster moves first and hold one frame old facing) - Include real time player animation! -> player starts moving animation when player moves -> fall back to guard anim when player do nothing -> plays fight anim when hit some Hope i got all. This patch is much not so hard as it sounds. Most of these features was easy to include because the old anim engine was able to do about 80% of this. I had just to boost up the logic. | |||
Show difference between Revision 1.58 and 1.59 | |||
Revision 1.58 | michtoen | 2001/11/26 22:33:46 | +0 -0 |
Arch type & subtype patch Added type & subtype system with 2 subtypes. Type & subtype will be send to client. Adding new types: FLOOR 71 WALL 77 LIGHT_SOURCE 78 MISC_OBJECT 79 MONSTER 80 SPAWN_GENERATOR 81 Added subtypes for armor & weapons. new commands are: sub_type <uint8> sub_typ2 <uint16> sub_type2 is for internal server use. Added new command: casting_speed <delay> This will be included later. I will use the sdl client as tester for this patch, older clients will not be effected even when the arches are updated. | |||
Show difference between Revision 1.57 and 1.58 | |||
Revision 1.57 | michtoen | 2001/11/26 11:52:26 | +7 -2 |
Attack Patch 25.11.01 Detailed information in the dev list. The changes are to many to explain here. | |||
Show difference between Revision 1.56 and 1.57 | |||
Revision 1.56 | michtoen | 2001/11/04 14:22:55 | +0 -0 |
One Arch/one pic patch. I use a modified map1cmd, called map2cmd for it. This is a first tryout implementation. The code can more then only submit offset data of multi arch, its also possible to include animation tags for the faces - we have now more free flags. The code is NOT optimized. Iam still unsure , what the best way is to send all this data. Sort & parsing cost time. At this stage, ill quick parse is by server, use slightly more bandwitch and let do the client more work. But thats perhaps not the best way. But this code will allow to install the arches for this one arch/one pic. MT | |||
Show difference between Revision 1.55 and 1.56 | |||
Revision 1.55 | michtoen | 2001/11/02 10:22:03 | +15 -10 |
add FLAG_PARALYZE Now, all player & monster have this flag set, when they are effected by paralyzes spell. I have not checked pets & summoned stuff yet, it will follow. | |||
Show difference between Revision 1.54 and 1.55 | |||
Revision 1.54 | garbled | 2001/11/01 13:53:14 | +8 -1 |
Generate messages when player poisons something, and touch up the attack message code for poison/disease a bit. garbled 2001-11-01 | |||
Show difference between Revision 1.53 and 1.54 | |||
Revision 1.53 | garbled | 2001/11/01 00:34:32 | +3 -3 |
Hey, I know. Let's commit code that actualy compiles! garbled 2001-10-31 | |||
Show difference between Revision 1.52 and 1.53 | |||
Revision 1.52 | garbled | 2001/11/01 00:29:29 | +14 -4 |
Implement suffering and poison messages from Darth Bob. Fix a few typos and turn the gore up a notch. garbled 2001-10-31 | |||
Show difference between Revision 1.51 and 1.52 | |||
Revision 1.51 | garbled | 2001/10/31 04:21:09 | +11 -1 |
Add a new message type for doors. This makes door bashing a bit more realistic. Idea by Darth Bob. garbled 2001-10-31 | |||
Show difference between Revision 1.50 and 1.51 | |||
Revision 1.50 | garbled | 2001/10/31 01:00:24 | +30 -3 |
Big commit time. This does the following: Add weapontypes to the game. These are currently used for nothing other than messages, which are not fully written yet. Players should not see them appear yet. Fix the bug where you opened a door with a key and saw "You ." Fix a bug in the PLUGIN code where current_weapon wasn't set when the player loaded from savefile. Take the setting of current_weapon out of #ifdef PLUGIN garbled 2001-10-31 | |||
Show difference between Revision 1.49 and 1.50 | |||
Revision 1.49 | michtoen | 2001/10/29 20:30:20 | +0 -0 |
Remove a bug, reset some modules | |||
Show difference between Revision 1.48 and 1.49 | |||
Revision 1.48 | michtoen | 2001/10/29 18:49:02 | +1 -3 |
really SOME fixes - most casting | |||
Show difference between Revision 1.47 and 1.48 | |||
Revision 1.47 | garbled | 2001/10/19 01:57:32 | +25 -2 |
Add code that makes it exponentially less likely to spit out a message when spells are stacked on top of one another. This mostly cures the case where a player casts 10 fireballs into a group of trolls and gets blasted by messages, without removing messages from area spells completely. BTW AV, umm.. I guess it helps if I check hitter->type instead of op->type. ;) nevermind. garbled 2001-10-18 | |||
Show difference between Revision 1.46 and 1.47 | |||
Revision 1.46 | garbled | 2001/10/15 16:12:08 | +12 -12 |
Remove all instances of RANDOM()% and replace with rndm() from utils.c garbled 2001-10-15 | |||
Show difference between Revision 1.45 and 1.46 | |||
Revision 1.45 | garbled | 2001/10/15 02:38:03 | +19 -5 |
This should fix the over-zealous messages from attacking that I bungled in my last commit. Basically, this code throttles the different messages with random numbers to keep them from flooding the client. The client load should be much better now. If not, we simply tune the numbers. garbled 2001-10-15 | |||
Show difference between Revision 1.44 and 1.45 | |||
Revision 1.44 | gros | 2001/10/14 02:57:14 | +110 -45 |
Major changes: Added dynamic plugin support, removed old Guile support. - Gros 10/14/01 | |||
Show difference between Revision 1.43 and 1.44 | |||
Revision 1.43 | garbled | 2001/10/07 02:17:46 | +157 -90 |
New attacktype messages for damage. Now it gives you the message for the damage type you actually did. So if you are attacking with stormbringer, you get electrical or drain-based messages. Also added special messages for the attack-based skills like punching, karate, etc. garbled 2001-10-06 | |||
Show difference between Revision 1.42 and 1.43 | |||
Revision 1.42 | garbled | 2001/09/26 16:34:08 | +14 -26 |
Apply the big luck patch to all these files. This removes the special cases for alchemy and prayer as well. Discussed at length with dhb, av and gros. Has been tested on both the mids crossfire server, and on my private server. This code removes all current use of the luck stat for players, and replaces it with a general luck modifier for all random rolls. The intent of this code is to give a general positive (or negative) effect on a player due to luck. This effect should be generally intangible to the player, yet help him out over the course of a game. garbled 2001-09-26 | |||
Show difference between Revision 1.41 and 1.42 | |||
Revision 1.41 | mwedel | 2001/08/21 00:39:30 | +7 -6 |
Enhancements to make monsters 'do the right thing' with relation to tiled maps (ie, will detect players and attack them if on an adjoining tiled maps). This involved a rewrite of path_to_player - I've tested this out, and if anything, it seems that monsters may be more aggressive on spellcasting. ++ common/map.c: blocked modify to make sure it is checking valid coordinate value. blocked_link,blocked_two modified to translate for tiled maps. Add load_and_link_tiled_map which loads a tiled map and links in all pointers relative to adjoining maps. out_of_map modified to use this function instead of doing the work itself. Add get_rangevector function that returns offset, direction, and distance between two objects, taking into account tiled maps. get_rangevector_from_mapcoord added which is similar to get_rangevector, but takes a map and coordinates instead of a second object. on_same_map function added which returns true if the two objects are on the same logical (ie tiled) maps. doc/crossfire.doc: Add note about what Int does for monsters. include/map.h: Add some comments, and add structure for rangevector function return values. server/attack.c: add calls to on_same_map instead of doing op->map comparisons. server/monster.c: Many functions modified to properly handle tiled maps properly. server/pets.c: get_pet_enemy modified to know about tiled maps. server/player.c: get_nearest_player modified to know about tiled maps. path_to_player rewritten to know about tiled maps - I think some other bugs were also fixed in return values. Split player_attack_door from move_player attack to keep functions a more reasonable size. move_player_attack, player_can_view modified to know about tiled maps. server/skills.c: can detect_enemy modified to take another parameter - call in steal updated to pass this parameter. server/spell_util.c: ok_to_put_more, can_see_monsterP modified to handle tiled maps properly. socket/item.c: look_at modified to return proper results when player looks at something on an adjoining tiled map. ++ End of checkin | |||
Show difference between Revision 1.40 and 1.41 | |||
Revision 1.40 | mwedel | 2001/07/13 23:11:18 | +14 -15 |
Map tiling checkin server/Makefile.in: Remove encounter.c file. Use cproto instead of cextract to create proto file. server/alchemy.c,server/attack.c,server/c_object.c,server/c_wiz.c, server/disease.c, server/login.c, server/main.c, server/monster.c, server/move.c, server/pets.c, server/player.c, server/resurrection.c, server/rune.c, server/shop.c,server/skill_util.c, server/skills.c, server/spell_effect.c, server/spell_util.c, server/swap.c, server/time.c modified to use modified insert_ob_in_map function, use new macros to access map structure related data. change calls to update_all_los, remove lighting related code. server/apply.c: modified to use new insert_ob_in_map function. Update calls to update_object. remove RANDOM_ENCOUNTER code. for exits, modified to use the head for valid coordinates since the other parts may not have valid values since they are not saved out to disk anymore. server/c_misc.c,server/hiscore.c: modified to use new map structure/information. server/commands.c: remove dumplights command. server/encounter.c: removed - code no longer used server/init.c: remove RANDOM_ENCOUNTERS code. server/script.c: change Script_getMapObject to return NULL since there is no longer a map object. Modify to use new insert_ob_in_map and update_object functions. MSW 2001-07-13 | |||
Show difference between Revision 1.39 and 1.40 | |||
Revision 1.39 | mwedel | 2001/06/29 00:59:46 | +150 -176 |
common/object.c, common/player.c, include/object.h, server/skill_util.c: Remove the unused LINKED_SKILL code. common/Makefile.in: Use cproto to make prototypes - cextract fails for some reason and now seems unsupported. Cproto generates a bunch of warnings, but does do the job. common/arch.c,server/apply.c, server/main.c, server/monster.c: cleanup some compile warnings (unusued variables, returns without value doc/playbook/Makefile.in: Create proper dependencies for files. doc/playbook/treas2-extract: Add player_force to value to ignore. doc/spoiler-html/spoiler.html: rebuilt server/skill_util.c: Remove the unused LINKED_SKILL code. Prevent characters that have meditation skill from learning melee weapon skill. MSW 2001-06-28 | |||
Show difference between Revision 1.38 and 1.39 | |||
Revision 1.38 | michtoen | 2001/06/13 07:51:58 | +1 -1 |
Modified Files: player.c loader.l loader.c init.c request.c newserver.h Log Message: Removed 2 compiler warning from Scriptfire patch in loader.l/loader.c and script.c. added a new setup cmd: "newanim" a client giving the newanim cmd, will enable the new animation system. The interface is open and not server controlled at this moment. First using is to enable the player moving in 8 direction. Giving this option to a server without changed arch will invoke broken player animations. This will be changed in the future. MT 2001-06-13 | |||
Show difference between Revision 1.37 and 1.38 | |||
Revision 1.37 | michtoen | 2001/06/13 05:51:26 | +297 -187 |
Modified Files: aclocal.m4 configure. configure.in Makefile.in crossfire32.dsw crossfire32.dsp INSTALL_WIN32.txt common: arch.c loader.c treasure.c loader.l crossedit: Attr.c doc: README_EXTENSIONS README_SCRIPT include: autoconf.h define.h global.h includes.h loader.h object.h script.h spellist.h spells.h sproto.h version.h server: Makefile.in apply.c attack.c c_object.c gods.c init.c main.c monster.c player.c script.c script_spells.c script_types.c skills.c spell_effect.c spell_util.c time.c Log Message: Adding Scriptfire 0b11 to Crossfire. Massive changes. The facts are in the doc files. MT 2001-06-13 | |||
Show difference between Revision 1.36 and 1.37 | |||
Revision 1.36 | mwedel | 2001/05/28 23:41:53 | +1 -10 |
Make ALLOW_SKILLS standard part of game (remove #ifdef's for it) Files affected: common/living.c common/object.c common/treasure.c include/config.h include/player.h server/apply.c server/attack.c server/c_move.c server/c_range.c server/c_wiz.c server/commands.c server/init.c server/login.c server/monster.c server/player.c server/rune.c server/skill_util.c server/spell_util.c Make MULTIPLE_GODS standards part of game (remove #ifdefs for it) Files affected: common/readable.c include/spellist.h include/config.h server/attack.c server/gods.c server/skills.c server/spell_effect.c server/spell_util.c doc/Makefile.in, doc/Protocol: Add protocol description file here instead of in the client distribution. include/global.h: Move declaration of MAX_EXP_CAT near top of file so it is set before player.h is included. include/newclient.h: Add CS_STAT_SKILL* values for sending skill experience information to client. include/newserver.h: Add skillexp value to socket struct which determines if client wants skill experience informatiion. include/player.h: Add skill information tracking to player structure so we can easily know when to send updates to client. random_maps/expand2x.c: remove unused variable to prevent compiler warnings. random_maps/square_spiral.c: Include prototype information on all systems, not just win32 to prevent compiler warnings. server/skill_util.c: Initialize skill pointers to make it easier to find skill information when we want to update client. socket/init.c: Init socket->skillexp to 0. socket/loop.c: Fix indentation of table - whitespace change only socket/metaserver.c: Minor fix to prevent compile warnings (on the sprintf that composes the data to send to the metaserver) socket/request.c: Redo SetUp function to be more compact and IMO simpler as wll as easier to read (functionality remains the same). VersionCmd modified to warn users of on dxclients (code on MT) StatsCmd added to send skill information if client wants it. The sending of skill experience is by MT, rest of the changes by me. MSW 2001-05-28 | |||
Show difference between Revision 1.35 and 1.36 | |||
Revision 1.35 | mardahl | 2001/04/20 20:16:29 | +3 -4 |
Performance optimization: do not place spare burnouts in maps. | |||
Show difference between Revision 1.34 and 1.35 | |||
Revision 1.34 | mwedel | 2001/04/17 00:26:25 | +4 -2 |
server/attack.c: Remove error message about golem without owners, also add better checking before clering the op->contr->golem field. MSW 2001-04-16 | |||
Show difference between Revision 1.33 and 1.34 | |||
Revision 1.33 | avogl | 2001/03/12 17:10:15 | +8 -6 |
server/attack.c: The calculation of magic resistance is seperated from other attacktypes, thus missed the "floating point simulation" on low damage values. Fixed this now so it is accurate for magic as well. This is very helpful for wizard characters: so many monsters appeared "immune" to magic because of the sloppy calculation before. It will not help monster vs. player since most monsters use abilities (= spell without magic). lib/treasures: Set an appropriate treasure list for chaos wyverns. --AV | |||
Show difference between Revision 1.32 and 1.33 | |||
Revision 1.32 | avogl | 2001/02/23 15:05:11 | +10 -7 |
My first commit to sourceforge.. :-)) Fixing a real nasty bug: When a player dies on battleground (combat arena), he used to loose 1 luck. Fixed, but: This luck-penalty still applies for killing another player with melee outside of an arena. That is not a bug, it is intended.. However, it is not really a good way to deal with potential "PKers" IMHO. | |||
Show difference between Revision 1.31 and 1.32 | |||
Revision 1.31 | cvs | 2001/02/05 23:56:28 | +6 -6 |
MSW 2001/02/05: server/attack.c: Fix blind and paralyze - logic for reducing duration was broken, resulting in zero duration for most characters. It should now work properly, reducing according to the amount of protection. | |||
Show difference between Revision 1.30 and 1.31 | |||
Revision 1.30 | cvs | 2001/01/18 23:43:31 | +2 -2 |
Fix to prevent crashes when players die. Don't assume all friendly objects are golems - check for player type. MSW 2001-01-18 | |||
Show difference between Revision 1.29 and 1.30 | |||
Revision 1.29 | cvs | 2001/01/15 17:49:21 | +35 -14 |
MSW 2000/01/15: Change blindness and paralyze so that duration is reduced based on protection the player has. file server/attack.c | |||
Show difference between Revision 1.28 and 1.29 | |||
Revision 1.28 | avogl | 2001/01/08 14:39:59 | +11 -4 |
Resistance to confusion used to have NO effect unless one had 100%. To improve this, I made the duration of the confusion-effect dependant on resistance. For confusion resist. 0% the old duration is in effect. Vulnerbility lenghtens duration. | |||
Show difference between Revision 1.27 and 1.28 | |||
Revision 1.27 | cvs | 2000/12/23 19:12:44 | +5 -2 |
MSW 2000/12/23: server/attack.c: Don't exit hit_player function if damage is reduced to 0 in magical attacks. This was preventing face of death and probably a lot of effect only spells from working. server/spell_util.c: modify check_cone_push to use move_object to blow the objects. Before, multisquare monsters were getting sliced into their individual components - move_object deals with multisquare objects properly. | |||
Show difference between Revision 1.26 and 1.27 | |||
Revision 1.26 | peterm | 2000/12/19 00:54:52 | +2 -2 |
Re-inserted the Spell of Conflict fixed a bug in attack.c | |||
Show difference between Revision 1.25 and 1.26 | |||
Revision 1.25 | avogl | 2000/12/15 09:42:36 | +8 -7 |
server/attack.c: Acid will only corrode equipment while the player has less than 50% acid resist. Note that acid corrosion makes players feel *very* unappy since there is no way to reverse the process yet. Outcommented the deathstrike-debug message. It used to spam the log like crazy. server/spell_util.c: server/time.c: Patch for spell/missile reflecting: The "reflect spell/missile" flag does no longer provide living creatures with perfect immunity to projectiles. There is a missing chance of: 10% + level of projectile / 10 This does apply for all kinds of magic bullets/missiles, arrows, bolts and thrown objects. Smite spells and bolt spells are not affected, they will always bounce off. server/spell_effect.c: Done some more cleaning and adjusting for the protection spells. E.g. it is no longer possible to have both a god's blessing and a holy possession in effect. Also removed is the ability to add holy bless/poss. effects of more than one god to a char. | |||
Show difference between Revision 1.24 and 1.25 | |||
Revision 1.24 | avogl | 2000/12/13 21:52:33 | +16 -10 |
PR-patch by AndreasV: Main features of this patch: o Negative resistances are calculated in a "logical" way. For example: +30 and -30 makes a total of zero. o Vulnerabilities work as "caps" for protection. E.g.: While wearing one item with fire -20, you cannot get more than fire +80 overall from equipment. If one is forced to live with high vulnerability (like wraith: fire -30), you can still use a potion to go beyond the cap. o Potions work completely different than before. The so-called "immunity-potions" grant an absolute value of 90% protection (independant from the players's equipment and properties), there are also very rare ones with 95% and cheap ones with 50%. If the player has already got more protection than the potion provides, drinking it won't have any effect. o Cursed potions are working now (have been broken before). They give a temporare vulnerability, but can be overriden by uncursed potions of the same res.-type. o Protection spells work different than potions. Their effect does add to the player's equipment. The amount of protection granted depends on the caster's skill level and path attunes (if a related spellpath exists). The maximum a player can get is currently 60% (at wisdom lvl 107 & path_attuned). o When the player's state of resistance changes, a new kind of message shows up: The percentage of the new resistance is displayed: e.g. "You resistance to fire rises to 67%". o When a player got hit by dam<1 it used to be zero. To make the calculations more accurate, for 0<dam<1 I "simulate" a floating point value-effect now. Example: If the correct damage value would be 0.4, there is 40% chance for dam=1, else dam=0. For 0.7, ther'd be 70% chance for dam=1... etc. Without that feature, there would most of the times be no difference between resistance 95 and 100. | |||
Show difference between Revision 1.23 and 1.24 | |||
Revision 1.23 | cvs | 2000/12/03 18:40:05 | +151 -131 |
Checking for partial resistance code. Various minor errors also fixed (compiler warnings, unused variables, Makefile.in changes, etc). PR code also includes support to send protections to the client. | |||
Show difference between Revision 1.22 and 1.23 | |||
Revision 1.22 | peterm | 2000/11/21 15:52:51 | +2 -2 |
Fix so that poisoning kills go into the right place. PM | |||
Show difference between Revision 1.21 and 1.22 | |||
Revision 1.21 | peterm | 2000/11/17 21:32:34 | +2 -2 |
10 new spells skeleton added to spellist.h and spells.h: SP_SANCTUARY, SP_PEACE, SP_SPIDERWEB SP_CONFLICT, SP_RAGE, SP_FORKED_LIGHTING SP_POISON_FOG, SP_FLAME_AURA, SP_VITRIOL Of these, SP_SANCTUARY and SP_FLAME_AURA are partially implemented. These two require archetypes yet. | |||
Show difference between Revision 1.20 and 1.21 | |||
Revision 1.20 | peterm | 2000/11/17 05:16:45 | +6 -4 |
New spell added, Windstorm. It pushes objects, mostly, and does a little damage. define.h: NROFREALSPELLS++ spellist.h spells.h: "windstorm" archetypes: new arch added for windstorm disease.c: comment on new title parameter. spell_effect.c, sproto.h spell*.c: implmenetation of windstorm. | |||
Show difference between Revision 1.19 and 1.20 | |||
Revision 1.19 | avogl | 2000/11/08 14:17:41 | +34 -17 |
The new battleground-feature: I have created a place where friendly players can battle each other without having to fear death. The defeated player will be teleported to a special location (the first-aide station). No exp nor stats loss. Moreover, exp-draining doesn't work inside the arena, acid won't harm the equipment. To make things easier, peaceful mode is ignored in the arena. --AndreasV | |||
Show difference between Revision 1.18 and 1.19 | |||
Revision 1.18 | jec | 2000/11/06 17:06:47 | +324 -131 |
* stop_item() / attack fix patch 2000-11-06 | |||
Show difference between Revision 1.17 and 1.18 | |||
Revision 1.17 | peterm | 2000/10/31 06:04:58 | +4 -1 |
Limit the number of log messages about "object x not having a name when it attacks" to one per object which tries to attack. Makes logs..... smaller! | |||
Show difference between Revision 1.16 and 1.17 | |||
Revision 1.16 | peterm | 2000/10/19 03:20:29 | +9 -4 |
Very broken code having to do with luck and attacking/being hit. Disabled it for now by setting luck to 0 in this code. --PeterM | |||
Show difference between Revision 1.15 and 1.16 | |||
Revision 1.15 | peterm | 2000/10/12 13:10:35 | +13 -8 |
Patch from AV which makes poison attack savethrows depend on the level difference between the attacker and victim. --PeterM | |||
Show difference between Revision 1.14 and 1.15 | |||
Revision 1.14 | jec | 2000/06/21 04:34:56 | +8 -4 |
server/commands.c; server/c_object.c: dump_object_from_tag(): Removed broken command. Fixes server crashes very easily triggered by players. server/attack.c: deathstrike_player(): Check for def_lev == 0 very early (and print error message if we find such an invalid level). Should fix server crash in case archetypes or maps get broken again in that an alive object has level < 1. | |||
Show difference between Revision 1.13 and 1.14 | |||
Revision 1.13 | jec | 2000/06/08 11:08:41 | +18 -9 |
common/button.c: do_mood_floor(): Bugfixes: Only players can have pets. Call add_friendly_object() for friendly monsters. server/spell_effect.c and server/spell_util.c: Several functions: Only add a pet if there really is a pet's owner, and it's a player. server/spell_effect.c: cast_charm() and cast_charm_undead(): Bugfixes: Only players can cast these spells. This fixes server crash if a monster casted a charm spell, and the charmed pet was killed. Call add_friendly_object for friendly monsters. common/friend.c: remove_friendly_object(): Use llevError for error messages. common/living.c: fix_player(); server/gods.c: tailor_god_spell(); server/spell_effect.c: summon_avatar() and animate_weapon(): Bugfix: Set a string to NULL after calling free_string(). This fixes a nasty bug that caused the string's reference count drop below 0, which resulted in corruption of malloc()'s internal data structures (and possibly server crashes). server/time.c: move_creator(): Bugfix: Call free_string() to free old values of op->name and op->title before overwriting them with new values. common/object.c: insert_ob_in_map_simple() and insert_ob_in_map(): Check that we don't insert freed objects. server/attack.c: hit_player_attacktype() and hit_player(): Bugfix: Check that find_god() really found a god, and that 'god->slaying' is not NULL. Fixes crash if a monster casted turn undead and actually hit something. server/attack.c: hit_player(): Check that a pet's owner is a player. Prevents server crashes if a monster has a pet monster due to a bug somewhere. Use llevError for error message. server/time.c: move_arrow(): Use llevDebug level for "Arrow had no map" message. server/c_object.c, server/spell_effect.c, server/spell_util.c: Bugfixes: Added some missing checks for destroyed objects. Use was_destroyed() or return value of insert_ob_in_map() to check for destroyed objects, not FLAG_FREED or FLAG_REMOVED. Don't use op->count of destroyed objects. server/shop.c: get_payment2(): Type of tag is 'tag_t', not 'long'. server/spell_effect.c: animate_bomb(): Fix environment checks. server/spell_util.c: fire_bolt(): Bugfix: Set level of bolt. server/spell_util.c: explosion(): Bugfix: Set FLAG_NO_APPLY before moving the exploding object to the top. server/spell_util.c: put_a_monster(): First create the monster completely, then just insert its head. server/time.c: generate_monster(): Bugfix: Don't free generators that are used up in this function. process_object() already does this. This fixes steambolt (which is a generator but must not used up here - generate_monster() wasn't looking at FLAG_IS_USED_UP) and all generators which should really be used up (because process_object() didn't expect generate_monster() to destroy the object). | |||
Show difference between Revision 1.12 and 1.13 | |||
Revision 1.12 | jec | 2000/06/07 18:46:18 | +42 -23 |
server/rune.c: trap_disarm(): Bugfix: Use SK_level() to determine disarmer's level. Fixes server crash if multisquare monster casts "disarm". server/attack.c: hit_map(): Use was_destroyed() to properly check for destroyed next object. Use llevError for error messages. Skip all objects that are (no longer) at the specified map position. | |||
Show difference between Revision 1.11 and 1.12 | |||
Revision 1.11 | jec | 2000/05/26 07:36:49 | +22 -8 |
* server/attack.c: hit_map(), hit_player(); server/spell_effect.c: move_cone(); server/rune.c: spring_trap(); server/spell_util.c: move_missile(): Bugfix: Added missing was_destroyed() calls. * server/rune.c: spring_trap(): Bugfix: Call trap_show() before the rune has a chance to be destroyed. * server/attack.c: hit_map(), hit_player(): Check for freed objects right at the beginning of the function. Removed check that hitter has a name from hit_player(). * server/spell_util.c: move_cone(): Bugfix: Remove cone objects in inventories from active list, this fixes the cone without map problem when a flower was hit with ice and put into an icecube. * server/spell_util.c: move_missile(): Bugfix: Don't call hit_map() while missile is removed from the map. * server/apply.c: manual_apply(): Handle MMISSILE. | |||
Show difference between Revision 1.10 and 1.11 | |||
Revision 1.10 | jec | 2000/05/26 05:14:55 | +2 -2 |
* server/attack.c: hit_player(): Bugfix: remove_friendly_object() was called always after an object with type GOLEM had been killed, but friendly objects are objects with FLAG_FRIENDLY, not objects with type GOLEM. This fixes some "Remove_friendly_object(): Can't find object" errors. | |||
Show difference between Revision 1.9 and 1.10 | |||
Revision 1.9 | jec | 2000/05/26 04:50:48 | +7 -7 |
* apply() cleanup patch 26/5/2000 | |||
Show difference between Revision 1.8 and 1.9 | |||
Revision 1.8 | jec | 2000/05/21 16:41:45 | +4 -5 |
common/init.c, common/loger.c, include/logger.h, server/init.c: New log level llevInfo which is the new default log level. Many other files: Use llevInfo instead of llevError where appropriate. Use 'settings.debug >= llevDebug' instead of 'settings.debug'. server/main.c: Use a marker object to track current position in the list of active objects. Using a pointer didn't work because all objects on that list can be removed from it by process_object(). One of the things this fixes is bogus "Free object on list" errors. | |||
Show difference between Revision 1.7 and 1.8 | |||
Revision 1.7 | cvs | 2000/04/04 23:40:52 | +16 -6 |
server/attack.c, attack_message(): More messages. "grind to dust" is more damage than "shred to pieces". Patch by Jan Echternach, applied & checked in by Mark Wedel, 4/4/2000 | |||
Show difference between Revision 1.6 and 1.7 | |||
Revision 1.6 | cater | 1999/11/04 21:25:28 | +3 -3 |
| |||
Show difference between Revision [Error_in_revnumber] and 1.6 | |||
Revision [Error_in_revnumber] | [Error_in_author] | [Error_in_revdate] | None |
Modified Files: server/attack.c CHANGES | |||
Revision [Error_in_revnumber] | [Error_in_author] | [Error_in_revdate] | None |
date: 1999/09/17 18:43:04; author: damn; state: Exp; lines: +71 -35 - vulnerability gives -4 to saving throw against non-damage attack effects - immunity to acid reduces the probability of corrosion - immunity and protection and not vulnerability to acid prevents corrosion - magic bonus improves item's saving throw against acid - vulnerability to drain doubles rate of exp loss, protection halves rate - holy word slaying is checked in hit_player, no need to double-check in hit_player_attacktype - prot:magic and vuln:magic affect all magical damage, not just raw magic - Holy Word and Turn Undead affect undead at half strength if they're not listed as an enemy race - Holy Word and Turn Undead have no effect on undead if they're listed as a friendly race - minor bugfix/cleanup | |||
Revision 1.4 | cvs | 1999/07/13 01:03:04 | +1 -1 |
Global commit for 0.95.4 - most files have no changes but just have differing headers between my local RCS and the CVS versions and need to get synced up. | |||
Show difference between Revision 1.3 and 1.4 | |||
Revision 1.3 | cvs | 1999/07/10 18:36:00 | +11 -3 |
Change to save_throw_object: If object is in players inventory and is destroyed, send update to client. This can happen when trying to ignite something in the inventory with flint and steel - msw. | |||
Show difference between Revision 1.2 and 1.3 | |||
Revision 1.2 | cvs | 1999/06/13 00:01:06 | +17 -1 |
Check that hitter has a valid name before it attacks - fixes some crashes (attack.c) - msw | |||
Show difference between Revision 1.1 and 1.2 | |||
Revision 1.1 | uid200 | 1999/04/02 13:10:04 | None |
Initial revision | |||
First version | |||
Revision 1.1.1.1 | uid200 | 1999/04/02 13:10:04 | +0 -0 |
First CVS revsion: crossfire-0.95.3 | |||
Show difference between Revision 1.1 and 1.1.1.1 |