[ARCHIVED] Archived UOX3 Version (0.98-4.0 - Updated Jan 17th, 2009)

Where we archive the version changelog threads
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=orange]20th September, 2006 - Maarc[/color]

	Added CPIAOSCommand packet including logging
	Changed CPISubcommands::Receive so that it doesn't log multiple times
	Updated party packet details
	Added basic party implementation.  Adding, removal and kicking works, speech does not
	Added sent packets CPPartyMemberList, CPPartyMemberRemove and CPPartyInvitation
	Updated dragging contents out of packs so that pet friends should be able to do so
Please note that you will have to add PartySystem.cpp to your project file. Mine's in a bit of a state at the moment, so didn't want to butcher anyone else's :)

And please note that functionality at the moment is VERY limited.
Last edited by Maarc on Wed Sep 20, 2006 9:04 am, edited 1 time in total.
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=orange]20th September, 2006 - Maarc[/color]
	Added CPPartyTell packet
	Promoted Party::SendPacket to public method
	Added speech (individual and group) to party methods
giwo
Developer
Posts: 1780
Joined: Fri Jun 18, 2004 4:17 pm
Location: California
Has thanked: 0
Been thanked: 0

Post by giwo »

Woohoo, Go Maarc go!

Party system has been needing implementation for quite some time. :)
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=orange]21st September, 2006 - Maarc[/color]

	Added commentary to some of the party classes headers
	Updated AddMember() and RemoveMember() to return a bool as to it's success
	Updated Leader() change code so that the leader is always first on the list
	Added isNPC property to the Party class to help us with how our code will go
	CChar now has an InParty() method, which is currently unused - will be used for fast lookups of party presence later.  This is NOT to be saved, as it disappears on server shutdown.
	Exposed the new party classes to the JS Engine
		var partyObject = CreateParty( leader );	// Returns NULL if the party failed to be made

		Party Class
			Methods
				bool Remove( memberToRemove );
				bool Add( memberToAdd );		// If it's a PC, then it will send an INVITE ONLY  It is up to the PC to accept/decline
				obj  GetMember( index );		// Returns a character object for the member at that index
			Properties
				leader					// Character object that is the leader, can return null - EDITABLE
				memberCount				// Returns the number of characters in the group - READONLY
				isNPC					// Returns true if it's an NPC party, false if not - EDITABLE

		Character Class
			Properties
				party					// Returns a party object that is the party associated, or null - READONLY (use party management for this!)
				partyLootable				// Boolean that dictates whether the character is lootable by the party - EDITABLE - Note that if you are not in a party, this does nothing!
This is the exposure of the code so far. It exposes party creation (though not destruction) to the script engine. I would not advise holding on to a party hook for too long, because anything that would increase/decrease the members in future will deal with autodestruction (a party of 1 will result in destruction). So use it as needed, just don't expect it to last across events.

But also note that this means NPC parties can exist! You *CANNOT* mix PCs and NPCs in a party, that would be a bad thing ... but you can create an NPC only. So for those who want custom AI and other things with spawners, now's your chance ... spawn that orc leader with underlings, chunk them in a party, and write some custom AI to help it all out :)

I do hope to improve the underlying parts, and start shunting some automated things in there, but again, this is a start more than anything. Ideas and feedback are always welcome, and vetting by Grimson and Giwo would be great, as it's been a while, and I'd suspect that you guys now have a much better set of eyes than I do :)

Very rough and ready script:

Code: Select all

function onUse( pUser, iUsed )
{
	var socket = pUser.socket;
	socket.SysMessage( "OK, party test's a going!" );

	var myParty = CreateParty( pUser );
	if( myParty != null )
	{
		socket.SysMessage( "We created a party with us as leader" );
	}
	else
	{
		socket.SysMessage( "Party creation failed, look it up!" );
	}
	return false;
}
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 »

I have created and started modification of a qt branch for those that are interested. The branch name is qt_test, and it already has some changes implemented. Note that it isn't in a workable state (you cannot accept connections yet), though it does start up :)

I can't commit my most recent changes to it yet, because sourceforge is playing up. Clicking on browse CVS on the sf page gives me

Code: Select all

An Exception Has Occurred

The root "openuo" is unknown. If you believe the value is correct, then please double-check your configuration.
HTTP Response Status

404 Repository not found
Hopefully when the morning comes, I'll be able to do a commit.
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 »

Temporary glitch, it seems to be working ...

Code: Select all

	Changed a_socket to serverSocket, and made it a QTcpServer * object
	Changed the CSocket class so that it accepts a QTcpSocket * instead of a UOXSOCKET
	Updated the various pieces of code so that the server is in a compileable (but NOT workable) state
	Added a QMake project file - note to link, you still need to add the mozilla directory manually
	Issues as it stands: The signals never fire for new connection testing: xir's recommendation: QCoreApplication is never instantiated, and exec() never called ... MAY be able to get by with just processEvents()
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=orange]9/27/2006 - grimson[/color]
	Fixed the spawning of NPCs in CSpawnRegion::RegionSpawnChar() so that they are put
	into the correct world.
	Updated UOX3_Official.dsp to contain the files from the party system.
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=orange]9/28/2006 - grimson[/color]
	Change cMagic::SelectSpell() to first check for reagents and then for skill.
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=orange]10/14/2006 - grimson[/color]
	Added more details to the weapon tooltips.
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=orange]10/29/2006 - grimson[/color]
	Fixed %tstamp output in the HTML templates.
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 »

Code: Select all

[color=orange]1/25/2007 - giwo (0.98-3.7i)[/color]
	Fixed a compiler warning with the Party System
	Fixed an issue causing weight not to be added when grabbing items from a bank box.
	Moved BankBox creation to Player creation, addressing a situation where the first
		time a player opened his bank it would close immediately or crash the client.
	Added FindRootContainer() to simplify finding the top-most item containing other items.
:)
-= Ho Eyo He Hum =-
giwo
Developer
Posts: 1780
Joined: Fri Jun 18, 2004 4:17 pm
Location: California
Has thanked: 0
Been thanked: 0

Post by giwo »

Ahh... yes.... I seem to have forgotten about this thread. Been too long I suppose. *shrug*
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=orange]1/25/2007 - giwo (0.98-3.7j)[/color]
	Fixed an issue causing it to be "snooping" to open a pack in a trade window.
	Added support for the OnPickup() JS Hook, note a return value of false will bounce the item.
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=orange]1/28/2007 - giwo (0.98-3.7k)[/color]
	Fixed an issue with TriggerEvent() that can cause a script to stop functioning if the triggered event did not return true
	Moved dynamic parts of [worldlight] section from uox.ini to their own output file in the /shared/ directory
	Exported telltime function along with the clock item and 'time command handling to JS.
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=orange]2/01/2007 - grimson[/color]
	Remove remains of the time command from command.dfn.
giwo
Developer
Posts: 1780
Joined: Fri Jun 18, 2004 4:17 pm
Location: California
Has thanked: 0
Been thanked: 0

Post by giwo »

Oops...


Grimson! Welcome back my friend. :)
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

	Added support for the OnPickup() JS Hook, note a return value of false will bounce the item.
Anyone else than being unable to pick up items after this? They just bounce right back moments after I've picked them up.
-= 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 »

Xuri wrote:Anyone else than being unable to pick up items after this? They just bounce right back moments after I've picked them up.
This will be fixed with my next commit.
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=orange]2/08/2007 - grimson[/color]
	Fix a bug where items, that have a script but no onPickup event, get always bounced.
	Allow party members to remove themselfes from the party, even if they aren't the leader.
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=orange]2/10/2007 - grimson[/color]
	Update the CPWalkOK Packet (0x22), the second byte contains the notoriety value (flag
	color), and make use of it.

Code: Select all

[color=orange]2/10/2007 - grimson[/color]
	Added a new target type to the speech system, SPTRG_ONLYRECEIVER which sends the message
	only to the receiver and doesn't display it on the sender.
	Use the new target type in CSocket::objMessage() and CSocket::ShowCharName() to display
	the player name and serial only to the char requesting the information.

Code: Select all

[color=orange]2/11/2007 - grimson[/color]
	Fix the format of the pingIP field in the CPGameServerList::AddServer() function. Now the
	client shows, after a moment, latency and packet loss information for the servers. It still
	doesn't work all the time.
Locked