mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-19 04:01:29 +00:00
Fixed Armor Tinting (players and NPCs) that was broken during a previous update.
This commit is contained in:
parent
fce52d7186
commit
ef287bc857
@ -2,6 +2,7 @@ EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
|||||||
-------------------------------------------------------
|
-------------------------------------------------------
|
||||||
== 12/19/2014 ==
|
== 12/19/2014 ==
|
||||||
Trevius: (RoF2) Fixed Leadership AA Purchasing and Recipe Search by correcting opcodes.
|
Trevius: (RoF2) Fixed Leadership AA Purchasing and Recipe Search by correcting opcodes.
|
||||||
|
Trevius: Fixed Armor Tinting (players and NPCs) that was broken during a previous update.
|
||||||
|
|
||||||
== 12/18/2014 ==
|
== 12/18/2014 ==
|
||||||
Trevius: Finished lining up the RoF2 Player Profile Struct. Zone times are now normal, and everything from the PP is accurate in game now.
|
Trevius: Finished lining up the RoF2 Player Profile Struct. Zone times are now normal, and everything from the PP is accurate in game now.
|
||||||
|
|||||||
@ -5061,11 +5061,6 @@ namespace RoF
|
|||||||
isbs.augslots[x].unknown = item->AugSlotUnk2[x];
|
isbs.augslots[x].unknown = item->AugSlotUnk2[x];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Increased to 6 max aug slots
|
|
||||||
//isbs.augslots[5].type = 0;
|
|
||||||
//isbs.augslots[5].visible = 1;
|
|
||||||
//isbs.augslots[5].unknown = 0;
|
|
||||||
|
|
||||||
isbs.ldonpoint_type = item->PointType;
|
isbs.ldonpoint_type = item->PointType;
|
||||||
isbs.ldontheme = item->LDoNTheme;
|
isbs.ldontheme = item->LDoNTheme;
|
||||||
isbs.ldonprice = item->LDoNPrice;
|
isbs.ldonprice = item->LDoNPrice;
|
||||||
|
|||||||
@ -5076,11 +5076,6 @@ namespace RoF2
|
|||||||
isbs.augslots[x].unknown = item->AugSlotUnk2[x];
|
isbs.augslots[x].unknown = item->AugSlotUnk2[x];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Increased to 6 max aug slots
|
|
||||||
//isbs.augslots[5].type = 0;
|
|
||||||
//isbs.augslots[5].visible = 1;
|
|
||||||
//isbs.augslots[5].unknown = 0;
|
|
||||||
|
|
||||||
isbs.ldonpoint_type = item->PointType;
|
isbs.ldonpoint_type = item->PointType;
|
||||||
isbs.ldontheme = item->LDoNTheme;
|
isbs.ldontheme = item->LDoNTheme;
|
||||||
isbs.ldonprice = item->LDoNPrice;
|
isbs.ldonprice = item->LDoNPrice;
|
||||||
|
|||||||
@ -213,11 +213,21 @@ void WorldDatabase::GetCharSelectInfo(uint32 account_id, CharacterSelect_Struct*
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
uint32 color = 0;
|
||||||
|
if (pp.item_tint[matslot].rgb.use_tint)
|
||||||
|
{
|
||||||
|
color = pp.item_tint[matslot].color;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
color = inst->GetColor();
|
||||||
|
}
|
||||||
|
|
||||||
// Armor Materials/Models
|
// Armor Materials/Models
|
||||||
cs->equip[char_num][matslot].material = item->Material;
|
cs->equip[char_num][matslot].material = item->Material;
|
||||||
cs->equip[char_num][matslot].elitematerial = item->EliteMaterial;
|
cs->equip[char_num][matslot].elitematerial = item->EliteMaterial;
|
||||||
cs->equip[char_num][matslot].heroforgemodel = inst->GetOrnamentHeroModel(matslot);
|
cs->equip[char_num][matslot].heroforgemodel = inst->GetOrnamentHeroModel(matslot);
|
||||||
cs->equip[char_num][matslot].color.color = inst->GetColor();
|
cs->equip[char_num][matslot].color.color = color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11276,7 +11276,7 @@ void Bot::ProcessBotCommands(Client *c, const Seperator *sep) {
|
|||||||
if(!results.Success())
|
if(!results.Success())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int slotmaterial = Inventory::CalcMaterialFromSlot(setslot);
|
uint8 slotmaterial = Inventory::CalcMaterialFromSlot(setslot);
|
||||||
c->GetTarget()->CastToBot()->SendWearChange(slotmaterial);
|
c->GetTarget()->CastToBot()->SendWearChange(slotmaterial);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@ -2685,8 +2685,11 @@ void Client::SetMaterial(int16 in_slot, uint32 item_id) {
|
|||||||
const Item_Struct* item = database.GetItem(item_id);
|
const Item_Struct* item = database.GetItem(item_id);
|
||||||
if (item && (item->ItemClass==ItemClassCommon))
|
if (item && (item->ItemClass==ItemClassCommon))
|
||||||
{
|
{
|
||||||
uint32 matslot = Inventory::CalcMaterialFromSlot(in_slot);
|
uint8 matslot = Inventory::CalcMaterialFromSlot(in_slot);
|
||||||
m_pp.item_material[matslot] = GetEquipmentMaterial(matslot);
|
if (matslot != _MaterialInvalid)
|
||||||
|
{
|
||||||
|
m_pp.item_material[matslot] = GetEquipmentMaterial(matslot);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3016,31 +3019,14 @@ void Client::SetTint(int16 in_slot, uint32 color) {
|
|||||||
|
|
||||||
// Still need to reconcile bracer01 versus bracer02
|
// Still need to reconcile bracer01 versus bracer02
|
||||||
void Client::SetTint(int16 in_slot, Color_Struct& color) {
|
void Client::SetTint(int16 in_slot, Color_Struct& color) {
|
||||||
if (in_slot==MainHead)
|
|
||||||
m_pp.item_tint[MaterialHead].color=color.color;
|
|
||||||
else if (in_slot==MainArms)
|
|
||||||
m_pp.item_tint[MaterialArms].color=color.color;
|
|
||||||
else if (in_slot==MainWrist1)
|
|
||||||
m_pp.item_tint[MaterialWrist].color=color.color;
|
|
||||||
/*
|
|
||||||
// non-live behavior
|
|
||||||
else if (in_slot==SLOT_BRACER02)
|
|
||||||
m_pp.item_tint[MaterialWrist].color=color.color;
|
|
||||||
*/
|
|
||||||
else if (in_slot==MainHands)
|
|
||||||
m_pp.item_tint[MaterialHands].color=color.color;
|
|
||||||
else if (in_slot==MainPrimary)
|
|
||||||
m_pp.item_tint[MaterialPrimary].color=color.color;
|
|
||||||
else if (in_slot==MainSecondary)
|
|
||||||
m_pp.item_tint[MaterialSecondary].color=color.color;
|
|
||||||
else if (in_slot==MainChest)
|
|
||||||
m_pp.item_tint[MaterialChest].color=color.color;
|
|
||||||
else if (in_slot==MainLegs)
|
|
||||||
m_pp.item_tint[MaterialLegs].color=color.color;
|
|
||||||
else if (in_slot==MainFeet)
|
|
||||||
m_pp.item_tint[MaterialFeet].color=color.color;
|
|
||||||
|
|
||||||
database.SaveCharacterMaterialColor(this->CharacterID(), in_slot, color.color);
|
uint8 matslot = Inventory::CalcMaterialFromSlot(in_slot);
|
||||||
|
if (matslot != _MaterialInvalid)
|
||||||
|
{
|
||||||
|
m_pp.item_tint[matslot].color = color.color;
|
||||||
|
database.SaveCharacterMaterialColor(this->CharacterID(), in_slot, color.color);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Client::SetHideMe(bool flag)
|
void Client::SetHideMe(bool flag)
|
||||||
|
|||||||
@ -1425,8 +1425,12 @@ void Client::Handle_Connect_OP_ZoneEntry(const EQApplicationPacket *app)
|
|||||||
|
|
||||||
/* Set item material tint */
|
/* Set item material tint */
|
||||||
for (int i = EmuConstants::MATERIAL_BEGIN; i <= EmuConstants::MATERIAL_END; i++)
|
for (int i = EmuConstants::MATERIAL_BEGIN; i <= EmuConstants::MATERIAL_END; i++)
|
||||||
if (m_pp.item_tint[i].rgb.use_tint == 1 || m_pp.item_tint[i].rgb.use_tint == 255)
|
{
|
||||||
m_pp.item_tint[i].rgb.use_tint = 0xFF;
|
if (m_pp.item_tint[i].rgb.use_tint == 1 || m_pp.item_tint[i].rgb.use_tint == 255)
|
||||||
|
{
|
||||||
|
m_pp.item_tint[i].rgb.use_tint = 0xFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (level){ level = m_pp.level; }
|
if (level){ level = m_pp.level; }
|
||||||
|
|
||||||
|
|||||||
13
zone/mob.cpp
13
zone/mob.cpp
@ -2781,10 +2781,17 @@ uint32 Mob::GetEquipmentColor(uint8 material_slot) const
|
|||||||
{
|
{
|
||||||
const Item_Struct *item;
|
const Item_Struct *item;
|
||||||
|
|
||||||
item = database.GetItem(GetEquipment(material_slot));
|
if (armor_tint[material_slot])
|
||||||
if(item != 0)
|
|
||||||
{
|
{
|
||||||
return item->Color;
|
return armor_tint[material_slot];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
item = database.GetItem(GetEquipment(material_slot));
|
||||||
|
if (item != 0)
|
||||||
|
{
|
||||||
|
return item->Color;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@ -476,7 +476,7 @@ void NPC::CheckMinMaxLevel(Mob *them)
|
|||||||
if(themlevel < (*cur)->min_level || themlevel > (*cur)->max_level)
|
if(themlevel < (*cur)->min_level || themlevel > (*cur)->max_level)
|
||||||
{
|
{
|
||||||
material = Inventory::CalcMaterialFromSlot((*cur)->equip_slot);
|
material = Inventory::CalcMaterialFromSlot((*cur)->equip_slot);
|
||||||
if(material != 0xFF)
|
if (material != _MaterialInvalid)
|
||||||
SendWearChange(material);
|
SendWearChange(material);
|
||||||
|
|
||||||
cur = itemlist.erase(cur);
|
cur = itemlist.erase(cur);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user