Page 5 of 10
Re: Implementing: Tradeskills
Posted: Wed Oct 10, 2012 6:15 pm
by John Adams
Updated Tradeskills progress
How about Quest dings for completing tradeskill tasks? Are those just part of the existing Quest system, or something we need to consider in the Tradeskill system effort? I'm almost thinking it'd be the same as "pick up 10 sticks" type quests, when something appears in the player inventory, ding. Yes?
Re: Implementing: Tradeskills
Posted: Wed Oct 10, 2012 6:40 pm
by Jabantiz
It should all be handled in the current system. I am almost posotive there is even tradeskill xp stuff in the code for quests but would have to dig through to make sure.
Re: Implementing: Tradeskills
Posted: Mon Oct 15, 2012 4:34 am
by xinux
I dropped a consignment collect under design which has me doing a collect on two accounts and doing a consignment both ways.
Re: Implementing: Tradeskills
Posted: Tue Oct 16, 2012 5:24 pm
by Jabantiz
I commited code to Dev SVN for gaining tradeskill xp and tradeskill levels. Most of the work left to do for leveling tradeskills is now in client::ChangeTSLevel()
Re: Implementing: Tradeskills
Posted: Tue Oct 16, 2012 5:43 pm
by alfa
Jabantiz wrote:I commited code to Dev SVN for gaining tradeskill xp and tradeskill levels. Most of the work left to do for leveling tradeskills is now in client::ChangeTSLevel()
Question about this, at start of code you do a check on AdventureXPEnabled.
That mean for now if you disabled Adventure XP you don't get Tradeskill XP too ? On live, you can enabled / disabled all sort of XP independently (Adventure, Tradeskills, AA). But you say you have more work on leveling so maybe you already know that, just in case

Re: Implementing: Tradeskills
Posted: Tue Oct 16, 2012 5:51 pm
by Jabantiz
That would be a result of copy and paste kicking my ass. Thanks for spotting that and already commited a fix. That being said the flag to toggle tradeskill xp hasn't been identified yet (as far as I can tell from the code) so tradeskill xp will always be on.
Re: Implementing: Tradeskills
Posted: Tue Oct 16, 2012 6:36 pm
by John Adams
Jabantiz wrote:That being said the flag to toggle tradeskill xp hasn't been identified yet (as far as I can tell from the code) so tradeskill xp will always be on.
I implemented the other toggles a while ago, in fact. Trouble is, it seems to keep breaking. I even have default bitwise values set in character_details.flags/flags2 fields, but the code may be overwriting them in some instances (never went back to figure it out)
CF_COMBAT_EXPERIENCE_ENABLED
Code: Select all
void Commands::Command_Toggle_CombatXP(Client* client)
{
Player* player = client->GetPlayer();
player->toggle_character_flag(CF_COMBAT_EXPERIENCE_ENABLED);
player->SetCharSheetChanged(true);
}
CF_QUEST_EXPERIENCE_ENABLED
Code: Select all
void Commands::Command_Toggle_QuestXP(Client* client)
{
Player* player = client->GetPlayer();
player->toggle_character_flag(CF_QUEST_EXPERIENCE_ENABLED);
player->SetCharSheetChanged(true);
}
I saw no option in the UI to disable TS XP.
disablexp.jpg
In fact, the only "toggle" I have yet to finish are the combo boxes on Options. Could never figure out how to flip those.
Re: Implementing: Tradeskills
Posted: Tue Oct 16, 2012 6:47 pm
by Jabantiz
The options in that right click menu changes based on what xp bar is showing, however checking again there is still no option to disable tradeskill xp, I could have sworn that was an option on live but maybe not. Will check live later tonight to see if that is a post DoV feature.
Re: Implementing: Tradeskills
Posted: Tue Oct 16, 2012 6:50 pm
by John Adams
Jabantiz wrote:The options in that right click menu changes based on what xp bar is showing, however checking again there is still no option to disable tradeskill xp
Knowing you would break all land speed records to prove me wrong, you don't think I checked that first?
I have never seen it, but I do not play EQ2 Live. I think alfa's original concern is that disabling AdventureXP (regardless if it works or not) may no longer award TS XP, which is brand new.
fwiw, the ONLY disable XP I see in my client is when the Adventure XP bar is showing.
Re: Implementing: Tradeskills
Posted: Tue Oct 16, 2012 8:22 pm
by Jabantiz
And you are right, no way to disable tradeskill xp on live, no clue where I got that from but will remove that code next time I work on tradeskills, unless we want to support that on the emu but no clue why any one would want to stop tradeskill xp.
Re: Implementing: Tradeskills
Posted: Wed Oct 17, 2012 4:40 am
by alfa
Jabantiz wrote:I could have sworn that was an option on live but maybe not.
Me too, sorry, my bad so :p (Ok ok on live I'm a lvl 3 craftman or other thing like that)
Re: Implementing: Tradeskills
Posted: Wed Oct 17, 2012 6:17 am
by John Adams
Jabantiz wrote:And you are right
I think there needs to be a parade or something.
Re: Implementing: Tradeskills
Posted: Wed Oct 17, 2012 10:44 am
by alfa
John Adams wrote:Jabantiz wrote:And you are right
I think there needs to be a parade or something.
Clap Clap !the only parade I can do :p
Re: Implementing: Tradeskills
Posted: Thu Oct 18, 2012 8:21 pm
by Zcoretri
New Tradeskill packet was found tonight...
I created a struct based off the opcode of 623 in data version 955, log file tradeskill_level_10.log
Code: Select all
<Struct Name="WS_SelectTradeskill" ClientVersion="955" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_SelectTradeskillCmd">
<Data ElementName="unknown1" Type="int32" Size="1" />
<Data ElementName="title_text" Type="EQ2_16Bit_String" />
<Data ElementName="num_selections" Type="int8" Size="1" />
<Data ElementName="selections" Type="Array" ArrayVariableSize="num_selections">
<Data ElementName="tradeskill_name" Type="EQ2_16Bit_String" />
<Data ElementName="tradeskill_description" Type="EQ2_16Bit_String" />
<Data ElementName="icon_id" Type="int16" Size="1" />
<Data ElementName="unknown2" Type="int16" Size="1" />
<Data ElementName="unknown3" Type="int32" Size="1" />
<Data ElementName="command_text" Type="EQ2_16Bit_String" />
<Data ElementName="unknown4" Type="int8" Size="6" />
</Data>
<Data ElementName="command_text_cancel" Type="EQ2_16Bit_String" />
<Data ElementName="unknown5" Type="int8" Size="1" />
</Struct>
Re: Implementing: Tradeskills
Posted: Thu Oct 18, 2012 9:51 pm
by Jabantiz
First of all
HUGE thanks to Zcoretri for making the initial struct, was going nuts after looking at hex for so long.
Here is an updated struct for 1096
Code: Select all
<Struct Name="WS_SelectTradeskill" ClientVersion="1096" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_TradeskillList">
<Data ElementName="unknown1" Type="int32" Size="1" />
<Data ElementName="title_text" Type="EQ2_16Bit_String" />
<Data ElementName="num_selections" Type="int8" Size="1" />
<Data ElementName="selections" Type="Array" ArrayVariableSize="num_selections">
<Data ElementName="tradeskill_name" Type="EQ2_16Bit_String" />
<Data ElementName="tradeskill_description" Type="EQ2_16Bit_String" />
<Data ElementName="icon_id" Type="int16" Size="1" />
<Data ElementName="unknown3" Type="int16" Size="1" />
<Data ElementName="icon_sheet" Type="int32" Size="1" />
<Data ElementName="command_text" Type="EQ2_16Bit_String" />
<Data ElementName="confirm_window_title" Type="EQ2_16Bit_String" />
<Data ElementName="unknown4" Type="int8" Size="12" />
</Data>
<Data ElementName="command_text_cancel" Type="EQ2_16Bit_String" />
<Data ElementName="unknown5a" Type="int16" Size="1" />
<Data ElementName="unknown5" Type="int8" Size="1" />
</Struct>
I changed the opcode to OP_TradeskillList as that is what we have in the DB for the 1096 value, lower versions don't have an entry for this opcode however. This window looks like it is designed to be reusable as you can change the icon sheets it uses to display icons. The values are as follows.
Code: Select all
0 - item icons icon_is#.dds
1 - spell icons icon_ss#.dds
2 - menu icons icon_ms#.dds
3 - HO icons icon_os#.dds
4 - map icons icon_map#.dds
5 - AA icons icon_as#.dds
6 - ??? icon_sw.dds
Both of these structs are on dev svn now.
Also if any one knows if this window is used for anything else please let me know, might help figure out some of the unknowns in the struct.