View Full Version : Shared Tasks
Derision
02-02-2010, 03:24 PM
I decided to look into getting Shared Tasks working, however a key piece of the puzzle I am missing are the Opcodes/packets to update the members of the shared task and specify who is the leader.
Does anyone know EXACTLY what values can appear in the 'Role' column in the shared task window ?
http://www.rama.demon.co.uk/sharedtask.jpg
It might help me find whereabouts in the client the shared task members are handled.
(I circled the Template column too, but then I realised that is probably related to Monster Missions, so I'm not interested in what appears in that column).
Kayen
02-03-2010, 09:19 AM
Exactly text wise no,
But role was for expedition leader I recall.
Derision
02-03-2010, 03:13 PM
Exactly text wise no,
But role was for expedition leader I recall.
Thanks :) 'Leader' was actually the first thing I thought of, but the only reference to the string 'leader' in eqstr_us.txt seemed to be in relation to pets. Turns out the 'Leader' string the shared task window uses is hardcoded into the client. Anyway, I stumbled across the right bit of code and can now get member names to display:
http://www.rama.demon.co.uk/sharedtask2.jpg
Never having done one of these shared tasks on live, I have lots of questions, which hopefully someone can answer.
If you are in a group or raid, can only the group or raid leader request a shared task ?
If the group/raid leader accepts a shared task, do all the group/raid members automatically become members of the shared task ?
Presumably some of these tasks can take a while to complete. If a member of the shared task is offline when the rest of the task members complete an activity, is the offline members task updated when they next log on to show the activities completed while they were offline ?
Can any subset of task members complete an activity and have this updated to all other task members in other zones or who are offline, or does the task leader need to be present when the activity is complete for it to count ?
Can new members be added to the shared task at any time ? Do they need to be grouped with the task leader ?
I see a message in eqstr_us.txt: "Your shared task is now locked. You may no longer add or remove players." When do tasks become locked and why ?
Presumably when the shared task is completed, only the task members online and in the same zone get the rewards ?
I'll probably have lots of other questions, but that will do for now. If anyone with experience of shared tasks could help me out, that would be great. :)
(I did google for information and read up on tasks on the SOE Knowledge base, but there didn't seem much useful information available).
Akkadius
02-03-2010, 04:28 PM
Derision I love you btw, if you can get this working along side instances (Even though you haven't worked on them).... Oh jeeez
Woops I posted the prior message before reading the rest of what you asked.
The times a task becomes locked or you cannot remove players is when you get to a certain point in the task, that stage of the task will freeze up the ability to add anyone too the task.
As far as the Group/Raid acceptance of a task, it was dependent on whether or not the task itself is flagged as a group or raid depending on who receives a task.
Sometimes a persons task was bugged when they went LD, but sometimes when a person comes back from LD they are up to par with the rest of the task, but I do remember it getting bugged, so may have to develop a global temp calling table for that function.
Sorry I'm not answering any of these in order, but not the leader does NOT have to be present to update the task/activity and yes it does effect everyone within the task as long as they are in the task. Typically it was only zonewide not serverwide if I recall correctly, someone may have to correct me on this.
There are I believe three symbols next to the task bar, labeled right next to the task whether its S, G, or R for Solo, Group and Raid, but if it was a timed-based solo or group mission there was a line dividing the timed active task and the rest of the static active/unlimited tasks.
serivoth1234
02-03-2010, 04:32 PM
If you are offline and the task is completed you wont get the reward. You can though use a group to do the task then right before the task is completed you can drop players from the task and invite those that have not completed the task so they can receive the rewards and or progression flags and or faction. We did this alot for TBS task to help get guildies progressed.
You do not need to be in the same zone or in the same group. Just need to be a part of the task. You can be invited to a task from any zone just using /taskadd. I did several task with guildies just sitting in the guild hall collecting the oruks and faction from TBS.
Shared task become locked at certain stages in the task. Usually right before you complete the final stage or loot the final item. Once you pass that point you can't add or remove members. Some task allow you to add and remove players before the final turn ins as were the case in a lot of TBS task.
Akkadius
05-12-2010, 10:25 PM
Any update on this Derision?
Derision
05-13-2010, 05:58 AM
Any update on this Derision?
I think I had it about 70% complete but I haven't worked on it for a few months as I put it aside to work on SoD and other more interesting stuff.
I'll probably revisit it at some point to finish it off and commit it, but no ETA.
Akkadius
05-14-2010, 09:57 AM
I think I had it about 70% complete but I haven't worked on it for a few months as I put it aside to work on SoD and other more interesting stuff.
I'll probably revisit it at some point to finish it off and commit it, but no ETA.
Thanks for your response, I am very much looking forward to this.
Kayen
08-26-2010, 09:31 AM
Bump.
Wondering if their has been any progressed made toward this function?
Would be quite significant to get it working.
Kayen
GM Stormhaven
Akkadius
08-26-2010, 11:24 AM
Bump.
Wondering if their has been any progressed made toward this function?
Would be quite significant to get it working.
Kayen
GM Stormhaven
Good god I would have Derision's babies as I fullheartedly agree...
But, I respect what he has done and his time so I wait patiently, I will most likely convert a lot of stuff over to it, especially with the new content on the way to compensate for my short lived but quality solo progression. 8 D (Tons of stuff on the way)
Derision
08-30-2010, 02:23 PM
Bump.
Wondering if their has been any progressed made toward this function?
Would be quite significant to get it working.
I haven't worked on it since back in March.
I don't remember exactly how much there was left to do, but I would guess a couple of weeks work, full time. Plus I remember I wasn't particularly happy with how I had coded it,
both in how I had retrofitted it into the existing task system, which wasn't designed with shared tasks in mind, and also with having to worry about members of the tasks being in
different zones and keeping their task state all synced up across zones.
Add in extra time to re-architect what I have already written (which I just checked is a 6533 line diff against the latest source) and it would take even longer to complete.
To be honest, right now, I don't have any desire to put in the time and effort required to get back up-to-speed with it and finish it off.
Akkadius
08-30-2010, 02:54 PM
I haven't worked on it since back in March.
I don't remember exactly how much there was left to do, but I would guess a couple of weeks work, full time. Plus I remember I wasn't particularly happy with how I had coded it,
both in how I had retrofitted it into the existing task system, which wasn't designed with shared tasks in mind, and also with having to worry about members of the tasks being in
different zones and keeping their task state all synced up across zones.
Add in extra time to re-architect what I have already written (which I just checked is a 6533 line diff against the latest source) and it would take even longer to complete.
To be honest, right now, I don't have any desire to put in the time and effort required to get back up-to-speed with it and finish it off.
__________________________________________________ ______________
8 (
Caryatis
11-22-2010, 04:03 PM
I bugged derision for his diff on this, so hopefully will be able to get this functional sometime before the new year(he wasn't joking about the size the diff lol). I'm going to try to get expeditions working first as it seems less complicated and good practice for this however we are missing the SoD opcodes for shared tasks so if somebody who can get those is bored over the next while, it would help out to get those nailed down.
With the changes Ive made to the AA system, we should be able to implement monster missions once this gets working(will be able to hide the clients normal AAs and send a new table with the monster AAs, although will prob require a change to the way AAs are calculated, as presently even hidden AAs gets tallied up).
Derision
11-22-2010, 04:22 PM
With the changes Ive made to the AA system, we should be able to implement monster missions once this gets working(will be able to hide the clients normal AAs
and send a new table with the monster AAs, although will prob require a change to the way AAs are calculated, as presently even hidden AAs gets tallied up).
I'll have to send you a diff of my Shroud/Monster mission code as well :)
I had it to the point where you could select a monster template from the Shroud Keeper and it would convert you into a monster and send an updated
PlayerProfile (and if IIRC, the updated AA table).
I set up my own local SVN when I was working on shrouds, so I could try things and revert easily if needed, so it will be slightly harder to produce a diff
as I will need to find out which base EQEmu revision it was forked from.
Unlike the Shared Task code, the shroud stuff is based on the SoD OPCodes.
The reason I lost interest in Monster Missions/Shrouds is because you basically need to maintain two sets of all player stats (AC, STR, HP, Mana, AAs,
Inventory, etc, etc) for their normal and shrouded forms and use the correct one based on whether they are shrouded or not ... too much re-coding for my liking ;-)
Caryatis
11-22-2010, 04:35 PM
Awesome, yea if you have some stuff already done, it would definitely help me out as this is all pretty new to me still :)
Akkadius
11-22-2010, 04:42 PM
Awesome, yea if you have some stuff already done, it would definitely help me out as this is all pretty new to me still :)
I can definitely get packet collects taken care of as far as Monster Mission in EQ as it stands. Once this gets further in progression I can take care of it.
Jaekob
11-22-2010, 11:01 PM
I bugged derision for his diff on this, so hopefully will be able to get this functional sometime before the new year(he wasn't joking about the size the diff lol). I'm going to try to get expeditions working first as it seems less complicated and good practice for this however we are missing the SoD opcodes for shared tasks so if somebody who can get those is bored over the next while, it would help out to get those nailed down.
With the changes Ive made to the AA system, we should be able to implement monster missions once this gets working(will be able to hide the clients normal AAs and send a new table with the monster AAs, although will prob require a change to the way AAs are calculated, as presently even hidden AAs gets tallied up).
If you need a collect for expeditions talk to KLS. Robregen collected those some time back and passed them along to her. Getting expeditions functional would be very nice.
Caryatis
11-22-2010, 11:39 PM
Didn't have much time to work on this today but seems like it should be pretty straightforward, got most of the fields populated(members/status not quite right yet)...
http://www1.mediafire.com/imgbnc.php/1c7396d3ddc7f83a812db65359a273b79df1da131612fd2a95 9d6b3d2a0175e35g.jpg (http://www.mediafire.com/imageview.php?quickkey=qcecjbhtqb6o9dm&thumb=4)
However we seem to be missing the opcode for the lockout window, we have the structs and 1 unknown opcode which Im going to assume is for the lockout portion(underlined):
# Expedition
OP_DzQuit=0x054e
OP_DzListTimers=0x3200
OP_DzAddPlayer=0x3ba3
OP_DzRemovePlayer=0xa682
OP_DzSwapPlayer=0x0d8d
OP_DzMakeLeader=0x1caa
OP_DzPlayerList=0x74ca
OP_DzJoinExpeditionConfirm=0x1772
OP_DzJoinExpeditionReply=0x3c13
OP_DzExpeditionInfo=0x128e
OP_DzMemberStatus=0x4661
OP_DzLeaderStatus=0x226f
OP_DzExpeditionEndsWarning=0x1879
OP_DzExpeditionList=0x3657
OP_DzMemberList=0x74e4
OP_DzCompass=0x35d3
OP_DzChooseZone=0xd8a
#0x1d99 was grouped with these too but I don't really know it's purpose.
Not too vital as we can still show the lockout timers with the /dzListTimers command but for aesthetics might be nice to have them in the window.
Akkadius
11-22-2010, 11:56 PM
If you need a collect for expeditions talk to KLS. Robregen collected those some time back and passed them along to her. Getting expeditions functional would be very nice.
Well that or what I was getting to is getting specific monster missions collected so we can extract them into database form once we get a schema and source established. Because this is going to require collects of tons of different monster profiles via AA, items etc. etc. I'm sure it's going to be quite the project.
Akkadius
04-21-2012, 05:34 PM
Does anyone still have a diff as to where they got with this as well as identified opcodes and structs?
Derision, Caryatis?
Derision
04-21-2012, 05:42 PM
For shared tasks ? The last few posts in this thread seem to be about Shrouds and Expeditions.
This is the diff I sent Caryatis for the work I had done on Shared Tasks a couple of years ago.
http://www.rama.demon.co.uk/sharedtasks.diff
Akkadius
04-21-2012, 05:46 PM
For shared tasks ? The last few posts in this thread seem to be about Shrouds and Expeditions.
This is the diff I sent Caryatis for the work I had done on Shared Tasks a couple of years ago.
http://www.rama.demon.co.uk/sharedtasks.diff
Alright thanks.
What did you not quite like about this? Is there anything you can tell me that would help anyone who just starts going through this diff?
Edit: I also see that you have three new tables that are referenced in the Mysql portions of this diff. Do you happen to have these as well before I start guessing at what the field types were and your intentions.
`shared_task_activities`
`shared_task_members`
`shared_tasks`
Derision
04-22-2012, 10:45 AM
CREATE TABLE IF NOT EXISTS `shared_tasks` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`taskid` int(10) unsigned NOT NULL,
`leader` varchar(64) NOT NULL,
PRIMARY KEY (`id`),
KEY `taskid` (`taskid`,`leader`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `shared_task_activities` (
`id` int(10) unsigned NOT NULL,
`activityid` int(10) unsigned NOT NULL,
`donecount` int(10) unsigned NOT NULL,
`completed` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`,`activityid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `shared_task_members` (
`id` int(10) unsigned NOT NULL,
`member` varchar(64) NOT NULL,
`charid` int(10) unsigned NOT NULL DEFAULT '0',
`level` tinyint(3) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`,`member`),
UNIQUE KEY `member` (`member`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
EDIT: Looks like I added some columns to the tasks table:
I think sharedtype was 4 for Norrath's Keepers (Radiant crystal reward) and 5 for Dark Reign (Ebon crystals). The lockactivity column was to lock a task from adding new members after that activity was completed.
mysql> describe tasks;
+---------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+---------------------+------+-----+---------+-------+
| id | int(11) unsigned | NO | PRI | 0 | |
| duration | int(11) unsigned | NO | | 0 | |
| title | varchar(100) | NO | | | |
| description | text | NO | | NULL | |
| reward | varchar(64) | NO | | | |
| rewardid | int(11) unsigned | NO | | 0 | |
| cashreward | int(11) unsigned | NO | | 0 | |
| xpreward | int(10) unsigned | NO | | 0 | |
| crystalreward | int(10) unsigned | NO | | 0 | |
| sharedtype | tinyint(1) unsigned | NO | | 0 | |
| rewardmethod | tinyint(3) unsigned | NO | | 2 | |
| startzone | int(11) | NO | | 0 | |
| minlevel | tinyint(3) unsigned | NO | | 0 | |
| maxlevel | tinyint(3) unsigned | NO | | 0 | |
| repeatable | tinyint(1) unsigned | NO | | 1 | |
| minmembers | tinyint(3) | NO | | 0 | |
| maxmembers | tinyint(3) | NO | | 0 | |
| lockactivity | tinyint(3) unsigned | NO | | 100 | |
+---------------+---------------------+------+-----+---------+-------+
18 rows in set (0.00 sec)
I haven't looked at that code in over two years, but as I said in a previous post, I was trying to retrofit shared tasks into code that wasn't designed for it, and so the code felt a bit fugly and 'hackish' to me. I can't remember specifics.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.