[color=yellow]3/17/2006 - giwo (0.98-3.5k [3.6 BETA])[/color]
Modified Gates so they are decayable by default, and will only decay if decayable.
Updated GM and Counsellor privs in commands.dfn, also placed a bit guide for the PRIVS value.
Fixed LoS checks on the Z plane in multis.
Fixed an issue causing GM broadcasting (! then space) not to function.
Removed some superfluous speech code.
Changed the command YELLALL to YELL
Removed several old DFN tags that were no longer used.
Removed default PRIV=0 tag from baseitem.dfn, as it would unset decayable value.
Changed PRIV1= tag to PRIV= in npc.dfn.
[color=yellow]3/18/2006 - grimson[/color]
Changed ApplyDefenseModifiers() and ApplyDamageBonuses() to make shure they return ints.
Changed SE_ApplyDamageBonuses() and SE_ApplyDefenseModifiers() to fix invalid damage values
when a script sends float values.
Changed criminal() so it also takes the murderer state into account, as this overrides the
criminal flag.
JS:
Updated MagicDamage() in level1targ.js, it now uses the new functions and should be
equal to the source version of MagicDamage().
[color=yellow]18th March, 2006 - Maarc[/color]
[color=yellow]Code[/color]
Adjusted SE_ApplyDamageBonuses and SE_ApplyDefenseModifiers as they were using the same parameter for attacker and defender
[color=yellow]Documentation[/color]
Updated style sheet
Reordered character methods so that it matches their declaration in code
Added placeholder entries for a number of character methods
Added a couple of methods to characters
Removed character methods that did not exist any more
Updated the character methods page under the hood so that it's more readable, and takes better advantage of style sheets
[color=yellow]18th March, 2006 - Maarc[/color]
Removed some unused properties/methods of the console that have never been used
Begun construction of some placeholder code for party related works, not committing the factory code until some testing can occur first
Essentially, this just updates the handling for it which currently does nothing, and gives an insight into how it would be done
[color=yellow]3/18/2006 - grimson[/color]
Changed CChar::Damage() to also display the damage to the owner of the attacker, so a
player can also see the damage his pet does.
[color=yellow]3/18/2006 - grimson[/color]
Another change to CChar::Damage(), if the attacker becomes criminal make the owner of it
criminal too.
Changed CHandleCombat::ApplyDamageBonuses() so that elemental damage is doubled when the
race is weak to that element, also double magic damage only on NPCs.
Changed CHandleCombat::Kill() so that only not tamed animals eat their victims.
[color=yellow]3/18/2006 - giwo (0.98-3.5l [3.6 BETA])[/color]
Fixed an issue causing GM yell messages with trigger words in them not to be broadcast.
Added and made use of a WanderTypes enum throughout the source.
Added housekeys.dfn to dfndata/items/ and made house creation rely on the script entries therein.
Optimized NPC walking a bit, and moved NPCWander handling into its own function.
Further updated and modified calc_walk() and AdvancedPathFinding() to handle the Z plane.
Removed CMovement::HandleRegionStuffAfterMove() as it was superfluous.
Rewrote CMovement::OutputShoveMessage() to fix several minor issues.
Updated CMovement::MoveCharForDirection() to reduce extra function calls and make use of CMapHandler::ChangeRegion()
Added NEWBIE option to JS SET command.
[color=yellow]3/18/2006 - giwo (0.98-3.5l [3.6 BETA])[/color]
Rewrote CMovement::OutputShoveMessage() to fix several minor issues.
I have two questions about that function:
First: The onCollide JS event is only called for the char that got shoved, not for the char that shoved. Is this intended?
Second: You get a message that you shoved a char out of the way, but in reality you end up standing inside that char. Wouldn't it be better to actually move the shoved char a step to the left or right (if the char can move there)?
if( tExec != NULL )
tExec->OnCollide( ourChar->GetSocket(), ourChar, c );
2) No, OSI functionality was that when you ran "through" someone (which could only happen if you had full stamina) you get a message that you shove them out of the way (or something invisible if they are hidden) and loose some stamina.
Think of it as "pushing your way past" the character standing in your way, instead of actually shoving it somewhere else =) Allowing players to push characters around might be fun, but probably opens a whole new can of worms (griefing issues, perhaps? Hm)
giwo wrote:1) Based on the code (I haven't tested if the JS funcs actually fire) that's not the case, both should have onCollide fired, first happens here
if( tExec != NULL )
tExec->OnCollide( ourChar->GetSocket(), ourChar, c );
Then I must have overlooked it.
2) No, OSI functionality was that when you ran "through" someone (which could only happen if you had full stamina) you get a message that you shove them out of the way (or something invisible if they are hidden) and loose some stamina.
[color=yellow]3/19/2006 - giwo (0.98-3.5m [3.6 RC])[/color]
Moved create menu structs to skills.h as they don't need to be in global scope.
Fixed several issues with pack horse handling
Modified DropOnNPC so GM's can drop items directly on an NPC to be placed in their pack.
Modified response handling and removed some superfluous code.
Fixed a crash when UOX3 shut down due to an invalid directory entry.
Locally declared vector3D line2D and line3D as they are only used in lineofsight.cpp
Fixed water NPC's swimming under statics (bridges).
Fixed some false positives that were being generated by point3::Mag3D() by using a larger storage container.
[color=yellow]3/19/2006 - grimson[/color]
Renamed Get/SetElementResist() to Get/SetResist as we now handle all resistance types in it.
Removed SetDef(), GetDef() and the def variable from CBaseobject.cpp and store armor values
as physical resistance together with the other resistance values.
Removed calcElementDef(), getElementDef and checkElementDef from combat.cpp and handle all
defence calculations in calcDef(), getArmorDef() and checkDef().
Removed JS char property .armour and item property .def, added a new method for chars and
items .Resist(). That method takes either one value, the resistance type and returns the
resistance value of that char/item, or two values, the resistance type and the amount the
resistance value should be set to.
JS changes:
Updated JS scripts to use the new .Resist() method instead of .def/.armour
Current resistance types are:
1 - Armor
2 - Light
3 - Water
4 - Cold
5 - Heat
6 - Energy
7 - Poison
[color=yellow]3/20/2006 - grimson[/color]
The JS item property .devinelock was sent as INT though it is a bool.
Some small fixes to the tweak menu for items, this still had parts for a non existant MoreB
value in it which shiftet some parts off, this also includes updated dictionaries.
[color=yellow]3/20/2006 - giwo (0.98-3.5n [3.6 RC])[/color]
Fixed an issue with CPExtendedStats causing statlocks not to display in the stat window.
Modified CChar::skilllocks and atrophy to save stat values to the worldfile.
Fixed an issue with CChar::skill value causing possible data corruption.
Fixed an issue causing the Backpack entry on a popup menu to display as selectable when the character
should not have a pack (IE a non-pack animal).
Made CBaseObject::SetWeight() a virtual function and overloaded it in CChar and CItem.
Modified CChar::SetWeight() to automatically Dirty our object for a statwindow update.
Simplified some DropItem() handling.
Moved CBaseObject updateTypes to CChar as there is only one type of item update, and added
a ClearUpdate() function to reduce superfluous packet sends.