Party System
-
Maarc
- Developer
- Posts: 576
- Joined: Sat Mar 27, 2004 6:22 am
- Location: Fleet, UK
- Has thanked: 0
- Been thanked: 0
- Contact:
I've taken a quick squiz at the information on the party system that is provided by UO stratics. Structurally, there's not a huge lot to add. You're probably looking at something like:
And then you probably want to add something like a
To the PC structure.
Parties don't need to be persistent. Server goes down, people just reform.
Parties have a knock on effect to Fame/Karma through killing, it gets shared around. But you can achieve that through Damage() and the damage tracking routines, don't need extra data.
Apart from that, it becomes a case of handling the packets properly, and making sure it's all sent. Looting rights, party chat, and invite/removal largely seems to be what is left, I think. You could try and add more bonus features on this base level (eg stop racial enemies grouping, for instance). And you could look at making it even more generic, so that you can have NPC parties (follow by leadership?) But that's just thoughts from 5 minutes worth of reading
I gathered the information from here when forming my thoughts: http://uo.stratics.com/content/misc/party.shtml
Late night thought:
Impact on looting of kills. It's not dealt with in the OSI system, so I'm guessing it's a free for all. Could implement something which is either free for all, lottery, or highest damager gets looting rights (and now that we track damage, we can see this).
Code: Select all
class PartyEntry
{
protected:
SERIAL member;
bool isLeader;
bool lootable;
public:
// generic accessors/mutators/constructors go here
}
class Party
{
protected:
CDataList< PartyEntry * > members;
SERIAL leader; // shortcutting the lookup
public:
void AddMember( CChar * );
void RemoveMember( Cchar * );
// generic constructors/accessors/mutators go here
}
class PartyFactory : public Singleton< PartyFactory >
{
protected:
// look up data here, probably something like
CDataList< Party * > parties;
std::map< SERIAL, Party * > partyQuickLook; // shortcutting the lookup
public:
Create( CChar *leader );
Destroy( Party * );
Destroy( CChar *member );
Get( CChar *member );
}
Code: Select all
bool inParty;
Parties don't need to be persistent. Server goes down, people just reform.
Parties have a knock on effect to Fame/Karma through killing, it gets shared around. But you can achieve that through Damage() and the damage tracking routines, don't need extra data.
Apart from that, it becomes a case of handling the packets properly, and making sure it's all sent. Looting rights, party chat, and invite/removal largely seems to be what is left, I think. You could try and add more bonus features on this base level (eg stop racial enemies grouping, for instance). And you could look at making it even more generic, so that you can have NPC parties (follow by leadership?) But that's just thoughts from 5 minutes worth of reading
I gathered the information from here when forming my thoughts: http://uo.stratics.com/content/misc/party.shtml
Late night thought:
Impact on looting of kills. It's not dealt with in the OSI system, so I'm guessing it's a free for all. Could implement something which is either free for all, lottery, or highest damager gets looting rights (and now that we track damage, we can see this).
All I really would like to see is the ability to add to a party, (maybe get those special bars that show mana, stam and health that party members get to see), and be able to chat with party members. Looting rights and all that is just extra...even sharing fame and stuff isn't that important to me :p
Never Underestimate the Power of Stupid People in Large Groups