[ARCHIVED] Archived UOX3 Version (0.98-3.6 - Updated April 5th, 2006)

Where we archive the version changelog threads
giwo
Developer
Posts: 1780
Joined: Fri Jun 18, 2004 4:17 pm
Location: California
Has thanked: 0
Been thanked: 0

Post by giwo »

Code: Select all

[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.
Scott
Grimson
Developer
Posts: 802
Joined: Sat Jun 04, 2005 1:52 am
Location: Germany
Has thanked: 0
Been thanked: 0

Post by Grimson »

Code: Select all

[color=yellow]3/17/2006 - grimson[/color]
	Changed AdjustRaceDamage() to also use the new ApplyDefenseModifiers() function.
Grimson
Developer
Posts: 802
Joined: Sat Jun 04, 2005 1:52 am
Location: Germany
Has thanked: 0
Been thanked: 0

Post by Grimson »

Code: Select all

[color=yellow]3/18/2006 - grimson[/color]
	cScript::OnEquip() and cScript::OnUnequip() were adding the parameters in the wrong order.
Grimson
Developer
Posts: 802
Joined: Sat Jun 04, 2005 1:52 am
Location: Germany
Has thanked: 0
Been thanked: 0

Post by Grimson »

Code: Select all

[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().
Edit:

Code: Select all

[color=yellow]3/18/2006 - grimson[/color]
	I only added part of the ApplyDefenseModifiers() and ApplyDamageBonuses() changes to CVS,
	fixed it now.
Maarc
Developer
Posts: 576
Joined: Sat Mar 27, 2004 6:22 am
Location: Fleet, UK
Has thanked: 0
Been thanked: 0
Contact:

Post by Maarc »

Code: Select all

[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
Grimson
Developer
Posts: 802
Joined: Sat Jun 04, 2005 1:52 am
Location: Germany
Has thanked: 0
Been thanked: 0

Post by Grimson »

Maarc wrote:

Code: Select all

	Adjusted SE_ApplyDamageBonuses and SE_ApplyDefenseModifiers as they were using the same parameter for attacker and defender
Thanks.
Maarc
Developer
Posts: 576
Joined: Sat Mar 27, 2004 6:22 am
Location: Fleet, UK
Has thanked: 0
Been thanked: 0
Contact:

Post by Maarc »

Code: Select all

[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
Grimson
Developer
Posts: 802
Joined: Sat Jun 04, 2005 1:52 am
Location: Germany
Has thanked: 0
Been thanked: 0

Post by Grimson »

Code: Select all

[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.

Code: Select all

[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.
Grimson
Developer
Posts: 802
Joined: Sat Jun 04, 2005 1:52 am
Location: Germany
Has thanked: 0
Been thanked: 0

Post by Grimson »

Code: Select all

[color=yellow]3/18/2006 - grimson[/color]
	Fixed CHandleCombat::calcDamage() I was submitting the base damage to the defense calculation.
giwo
Developer
Posts: 1780
Joined: Fri Jun 18, 2004 4:17 pm
Location: California
Has thanked: 0
Been thanked: 0

Post by giwo »

Code: Select all

[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.
Scott
Grimson
Developer
Posts: 802
Joined: Sat Jun 04, 2005 1:52 am
Location: Germany
Has thanked: 0
Been thanked: 0

Post by Grimson »

giwo wrote:

Code: Select all

[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)?
giwo
Developer
Posts: 1780
Joined: Fri Jun 18, 2004 4:17 pm
Location: California
Has thanked: 0
Been thanked: 0

Post by giwo »

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

Line 844, movement.cpp

Code: Select all

	if( toExecute != NULL )
		toExecute->OnCollide( mSock, c, ourChar );
and second here

Line 848, movement.cpp

Code: Select all

	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.
Scott
User avatar
Xuri
Site Admin
Posts: 3704
Joined: Mon Jun 02, 2003 9:11 am
Location: Norway
Has thanked: 48 times
Been thanked: 8 times
Contact:

Post by Xuri »

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 :P (griefing issues, perhaps? Hm)
-= Ho Eyo He Hum =-
Grimson
Developer
Posts: 802
Joined: Sat Jun 04, 2005 1:52 am
Location: Germany
Has thanked: 0
Been thanked: 0

Post by Grimson »

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

Line 844, movement.cpp

Code: Select all

	if( toExecute != NULL )
		toExecute->OnCollide( mSock, c, ourChar );
and second here

Line 848, movement.cpp

Code: Select all

	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.
Ok, then I'll try to make a JS script for that.
giwo
Developer
Posts: 1780
Joined: Fri Jun 18, 2004 4:17 pm
Location: California
Has thanked: 0
Been thanked: 0

Post by giwo »

Code: Select all

[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.
Scott
User avatar
Xuri
Site Admin
Posts: 3704
Joined: Mon Jun 02, 2003 9:11 am
Location: Norway
Has thanked: 48 times
Been thanked: 8 times
Contact:

Post by Xuri »

giwo wrote:

Code: Select all

[color=yellow]3/19/2006 - giwo (0.98-3.5m [3.6 RC])[/color]
	Modified DropOnNPC so GM's can drop items directly on an NPC to be placed in their pack.
Does that mean any "drop item on npc"-feature will stop working for GM characters?
-= Ho Eyo He Hum =-
Grimson
Developer
Posts: 802
Joined: Sat Jun 04, 2005 1:52 am
Location: Germany
Has thanked: 0
Been thanked: 0

Post by Grimson »

Code: Select all

[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
giwo
Developer
Posts: 1780
Joined: Fri Jun 18, 2004 4:17 pm
Location: California
Has thanked: 0
Been thanked: 0

Post by giwo »

Shouldn't, no, but test it and find out.
Scott
Grimson
Developer
Posts: 802
Joined: Sat Jun 04, 2005 1:52 am
Location: Germany
Has thanked: 0
Been thanked: 0

Post by Grimson »

Code: Select all

[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.
giwo
Developer
Posts: 1780
Joined: Fri Jun 18, 2004 4:17 pm
Location: California
Has thanked: 0
Been thanked: 0

Post by giwo »

Code: Select all

[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.
Scott
Locked