Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #3  
Old 05-22-2007, 05:49 AM
Darkonig
Hill Giant
 
Join Date: Dec 2006
Posts: 102
Default

Code:
Index: tradeskills.cpp
===================================================================
RCS file: /cvsroot/eqemulator/EQEmuCVS/Source/zone/tradeskills.cpp,v
retrieving revision 1.17
diff -r1.17 tradeskills.cpp
108,109c108,109
< 	int8 tstype = 0xE8;
< 	uint8 passtype = 0;
---
> 	uint8 c_type = 0xE8;
> 	uint32 some_id = 0;
117a118
> 		c_type = worldo->m_type;
125c126,127
< 				tstype = item->BagType;
---
> 				c_type = item->BagType;
> 				some_id = item->ID;
137,139c139,148
< 	// Convert container type to tradeskill type
< 	SkillType tradeskill = TradeskillUnknown;
< 	switch (tstype)
---
> 	DBTradeskillRecipe_Struct spec;
> 	if (!database.GetTradeRecipe(container, c_type, some_id, &spec)) {
> 		user->Message_StringID(4,TRADESKILL_NOCOMBINE);
> 		EQApplicationPacket* outapp = new EQApplicationPacket(OP_TradeSkillCombine, 0);
> 		user->QueuePacket(outapp);
> 		safe_delete(outapp);
> 		return;
> 	}
> 	
> 	switch (spec.tradeskill)
141,177c150,151
< 	case 16:
< 		tradeskill = TAILORING;
< 		break;
< 	case 0xE8: //Generic World Container
< 		if(!worldcontainer)	//just to garuntee that worldo is valid
< 			return;
< 		passtype = worldo->m_type;
< 		
< 		if(worldo->m_type == OT_MEDICINEBAG) {
< 			if ((user_pp.class_ == SHAMAN) & (user_pp.level >= MIN_LEVEL_ALCHEMY))
< 				tradeskill = ALCHEMY;
< 			else if (user_pp.class_ != SHAMAN)
< 				user->Message(13, "This tradeskill can only be performed by a shaman.");
< 			else if (user_pp.level < MIN_LEVEL_ALCHEMY)
< 				user->Message(13, "You cannot perform alchemy until you reach level %i.", MIN_LEVEL_ALCHEMY);
< 			break;
< 		} else {
< 			tradeskill = TypeToSkill(worldo->m_type);
< 		}
< 		break;
< 	case 18:
< 		tradeskill = FLETCHING;
< 		break;
< 	case 20:
< 		tradeskill = JEWELRY_MAKING;
< 		break;
< 	case 30: //Pottery Still needs completion
< 		tradeskill = POTTERY;
< 		break;
< 	case 14: // Baking 
< 	case 15:
< 		tradeskill = BAKING;
< 		break;
< 	case 9: //Alchemy Still needs completion
< 		if ((user_pp.class_ == SHAMAN) & (user_pp.level >= MIN_LEVEL_ALCHEMY))
< 			tradeskill = ALCHEMY;
< 		else if (user_pp.class_ != SHAMAN)
---
> 	case ALCHEMY:
> 		if (user_pp.class_ != SHAMAN)
180a155
> 		return;
182,185c157,158
< 	case 10: //Tinkering Still needs completion
< 		if (user_pp.race == GNOME)
< 			tradeskill = TINKERING;
< 		else
---
> 	case TINKERING:
> 		if (user_pp.race != GNOME)
186a160
> 		return;
188,200c162,163
< 	case 24: //Research Still needs completion
< 	case 25:
< 	case 26:
< 	case 27:
< 		tradeskill = RESEARCH;
< 		break;
< 	case 28: // Another Quest Containers.. Cavedude asked for this
< 		tradeskill = GENERIC_TRADESKILL;
< 		break;
< 	case 12:
< 		if (user_pp.class_ == ROGUE)
< 			tradeskill = MAKE_POISON;
< 		else
---
> 	case MAKE_POISON:
> 		if (user_pp.class_ != ROGUE)
202,223d164
< 		break;
< 	case 13: //Quest Containers
< 		tradeskill = GENERIC_TRADESKILL;
< 		break;
< 	case 46: //Fishing Still needs completion
< 		tradeskill = FISHING;
< 		break;
< 	default:
< 		user->Message(13, "This tradeskill has not been implemented yet, if you get this message send a "
< 			"petition and let them know what tradeskill you were trying to use. and give them the following code: 0x%02X", tradeskill);
< 	}
< 	
< 	if (tradeskill == TradeskillUnknown) {
< 		return;
< 	}
< 	
< 	DBTradeskillRecipe_Struct spec;
< 	if (!database.GetTradeRecipe(container, passtype, tradeskill, &spec)) {
< 		user->Message_StringID(4,TRADESKILL_NOCOMBINE);
< 		EQApplicationPacket* outapp = new EQApplicationPacket(OP_TradeSkillCombine, 0);
< 		user->QueuePacket(outapp);
< 		safe_delete(outapp);
224a166
> 		break;
228c170
< 	bool success = user->TradeskillExecute(&spec, tradeskill);
---
> 	bool success = user->TradeskillExecute(&spec);
272,279d213
< 	SkillType tskill = Object::TypeToSkill(rac->object_type);
< 	if(tskill == TradeskillUnknown) {
< 		LogFile->write(EQEMuLog::Error, "Unknown container type for HandleAutoCombine: %d\n", rac->object_type);
< 		user->QueuePacket(outapp);
< 		safe_delete(outapp);
< 		return;
< 	}
< 	
282c216
< 	if (!database.GetTradeRecipe(rac->recipe_id, rac->object_type, tskill, &spec)) {
---
> 	if (!database.GetTradeRecipe(rac->recipe_id, rac->object_type, rac->some_id, &spec)) {
395c329
< 	bool success = user->TradeskillExecute(&spec, tskill);
---
> 	bool success = user->TradeskillExecute(&spec);
653,654c587,588
< bool Client::TradeskillExecute(DBTradeskillRecipe_Struct *spec, SkillType tradeskill) {
< 	if(spec == NULL || tradeskill == 0)
---
> bool Client::TradeskillExecute(DBTradeskillRecipe_Struct *spec) {
> 	if(spec == NULL)
657c591
< 	int16 user_skill = GetSkill(tradeskill);
---
> 	int16 user_skill = GetSkill(spec->tradeskill);
676c610
< 	switch(tradeskill) {
---
> 	switch(spec->tradeskill) {
698c632
< 	if (tradeskill ==  FLETCHING || tradeskill == MAKE_POISON) {
---
> 	if (spec->tradeskill ==  FLETCHING || spec->tradeskill == MAKE_POISON) {
701c635
< 	} else if (tradeskill == BLACKSMITHING) {
---
> 	} else if (spec->tradeskill == BLACKSMITHING) {
780c714
< 	if (((tradeskill==75) || GetGM() || (chance > res)) || MakeRandomInt(0, 99) < AAChance){
---
> 	if (((spec->tradeskill==75) || GetGM() || (chance > res)) || MakeRandomInt(0, 99) < AAChance){
784c718
< 			CheckIncreaseTradeskill(bonusstat, stat_modifier, skillup_modifier, success_modifier, tradeskill);
---
> 			CheckIncreaseTradeskill(bonusstat, stat_modifier, skillup_modifier, success_modifier, spec->tradeskill);
801c735
< 			CheckIncreaseTradeskill(bonusstat, stat_modifier, skillup_modifier, success_modifier, tradeskill);
---
> 			CheckIncreaseTradeskill(bonusstat, stat_modifier, skillup_modifier, success_modifier, spec->tradeskill);
continued next post, still too big
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 06:43 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3