Support house containers being placed inside house. Need to have an appearance set with equip_type as model type/id
This commit is contained in:
parent
b0f24aea5d
commit
878c422c0f
@ -4034,7 +4034,7 @@ void Commands::Process(int32 index, EQ2_16BitString* command_parms, Client* clie
|
|||||||
|
|
||||||
Item* item = client->GetPlayer()->item_list.GetItemFromUniqueID(uniqueid);
|
Item* item = client->GetPlayer()->item_list.GetItemFromUniqueID(uniqueid);
|
||||||
//Item* item = player->GetEquipmentList()->GetItem(slot);
|
//Item* item = player->GetEquipmentList()->GetItem(slot);
|
||||||
if (item && item->IsHouseItem())
|
if (item && (item->IsHouseItem() || item->IsHouseContainer()))
|
||||||
{
|
{
|
||||||
if (!client->HasOwnerOrEditAccess())
|
if (!client->HasOwnerOrEditAccess())
|
||||||
{
|
{
|
||||||
|
@ -238,7 +238,7 @@ vector<Item*>* MasterItemList::GetItems(string name, int64 itype, int64 ltype, i
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ITEM_BROKER_TYPE_HOUSEITEM:{
|
case ITEM_BROKER_TYPE_HOUSEITEM:{
|
||||||
if(item->IsHouseItem())
|
if(item->IsHouseItem() || item->IsHouseContainer())
|
||||||
should_add = true;
|
should_add = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1072,6 +1072,11 @@ void Item::SetItem(Item* old_item){
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ITEM_TYPE_HOUSE_CONTAINER:{
|
case ITEM_TYPE_HOUSE_CONTAINER:{
|
||||||
|
houseitem_info = new HouseItem_Info;
|
||||||
|
if(old_item->houseitem_info) {
|
||||||
|
memcpy(houseitem_info, old_item->houseitem_info, sizeof(HouseItem_Info));
|
||||||
|
}
|
||||||
|
|
||||||
// House Containers
|
// House Containers
|
||||||
housecontainer_info = new HouseContainer_Info;
|
housecontainer_info = new HouseContainer_Info;
|
||||||
if (old_item->housecontainer_info) {
|
if (old_item->housecontainer_info) {
|
||||||
@ -1577,6 +1582,10 @@ void Item::SetItemType(int8 in_type){
|
|||||||
memset(houseitem_info, 0, sizeof(HouseItem_Info));
|
memset(houseitem_info, 0, sizeof(HouseItem_Info));
|
||||||
}
|
}
|
||||||
else if(IsHouseContainer() && !housecontainer_info){
|
else if(IsHouseContainer() && !housecontainer_info){
|
||||||
|
if(!houseitem_info) {
|
||||||
|
houseitem_info = new HouseItem_Info;
|
||||||
|
memset(houseitem_info, 0, sizeof(HouseItem_Info));
|
||||||
|
}
|
||||||
housecontainer_info = new HouseContainer_Info;
|
housecontainer_info = new HouseContainer_Info;
|
||||||
housecontainer_info->allowed_types = 0;
|
housecontainer_info->allowed_types = 0;
|
||||||
housecontainer_info->broker_commission = 0;
|
housecontainer_info->broker_commission = 0;
|
||||||
@ -2493,6 +2502,11 @@ void Item::serialize(PacketStruct* packet, bool show_name, Player* player, int16
|
|||||||
|
|
||||||
}
|
}
|
||||||
case ITEM_TYPE_HOUSE_CONTAINER:{
|
case ITEM_TYPE_HOUSE_CONTAINER:{
|
||||||
|
if(houseitem_info && client->GetVersion() >= 374){
|
||||||
|
packet->setDataByName("status_rent_reduction", houseitem_info->status_rent_reduction);
|
||||||
|
packet->setDataByName("coin_rent_reduction", houseitem_info->coin_rent_reduction);
|
||||||
|
packet->setDataByName("house_only", houseitem_info->house_only);
|
||||||
|
}
|
||||||
//House Containers
|
//House Containers
|
||||||
if(housecontainer_info && client->GetVersion() >= 374){
|
if(housecontainer_info && client->GetVersion() >= 374){
|
||||||
packet->setDataByName("allowed_types", housecontainer_info->allowed_types);
|
packet->setDataByName("allowed_types", housecontainer_info->allowed_types);
|
||||||
@ -3736,7 +3750,7 @@ void PlayerItemList::AddItemToPacket(PacketStruct* packet, Player* player, Item*
|
|||||||
//TODO: Add check to allow scribe
|
//TODO: Add check to allow scribe
|
||||||
menu_data += ITEM_MENU_TYPE_SCRIBE;
|
menu_data += ITEM_MENU_TYPE_SCRIBE;
|
||||||
}
|
}
|
||||||
if (item->generic_info.item_type == 10){
|
if (item->generic_info.item_type == ITEM_TYPE_HOUSE || item->generic_info.item_type == ITEM_TYPE_HOUSE_CONTAINER){
|
||||||
menu_data += ITEM_MENU_TYPE_TEST1;
|
menu_data += ITEM_MENU_TYPE_TEST1;
|
||||||
menu_data += ITEM_MENU_TYPE_HOUSE;
|
menu_data += ITEM_MENU_TYPE_HOUSE;
|
||||||
}
|
}
|
||||||
|
@ -473,7 +473,7 @@ int32 WorldDatabase::LoadHouseItem(int32 item_id)
|
|||||||
{
|
{
|
||||||
LogWrite(ITEM__DEBUG, 5, "Items", "\tItem HouseItem for item_id %u", id);
|
LogWrite(ITEM__DEBUG, 5, "Items", "\tItem HouseItem for item_id %u", id);
|
||||||
LogWrite(ITEM__DEBUG, 5, "Items", "\ttype: %i, %i, %u, %.2f, %u", ITEM_TYPE_HOUSE, atoul(row[1]), atoi(row[2]), atof(row[3]), atoul(row[4]));
|
LogWrite(ITEM__DEBUG, 5, "Items", "\ttype: %i, %i, %u, %.2f, %u", ITEM_TYPE_HOUSE, atoul(row[1]), atoi(row[2]), atof(row[3]), atoul(row[4]));
|
||||||
item->SetItemType(ITEM_TYPE_HOUSE);
|
item->SetItemType(ITEM_TYPE_HOUSE); // container will be overwritten by LoadHouseContainers which is ran after
|
||||||
item->houseitem_info->status_rent_reduction = atoi(row[2]);
|
item->houseitem_info->status_rent_reduction = atoi(row[2]);
|
||||||
item->houseitem_info->coin_rent_reduction = atof(row[3]);
|
item->houseitem_info->coin_rent_reduction = atof(row[3]);
|
||||||
item->houseitem_info->house_only = atoi(row[4]);
|
item->houseitem_info->house_only = atoi(row[4]);
|
||||||
@ -1069,7 +1069,7 @@ void WorldDatabase::LoadItemList(int32 item_id)
|
|||||||
LogWrite(ITEM__DEBUG, 0, "Items", "\tLoaded %u Skill Items", LoadSkillItems(item_id));
|
LogWrite(ITEM__DEBUG, 0, "Items", "\tLoaded %u Skill Items", LoadSkillItems(item_id));
|
||||||
LogWrite(ITEM__DEBUG, 0, "Items", "\tLoaded %u Adornment Items", LoadAdornments(item_id));
|
LogWrite(ITEM__DEBUG, 0, "Items", "\tLoaded %u Adornment Items", LoadAdornments(item_id));
|
||||||
LogWrite(ITEM__DEBUG, 0, "Items", "\tLoaded %u Recipe Book Items", LoadRecipeBookItems(item_id));
|
LogWrite(ITEM__DEBUG, 0, "Items", "\tLoaded %u Recipe Book Items", LoadRecipeBookItems(item_id));
|
||||||
LogWrite(ITEM__DEBUG, 0, "Items", "\tLoaded %u House Containers", LoadHouseContainers(item_id));
|
LogWrite(ITEM__DEBUG, 0, "Items", "\tLoaded %u House Containers", LoadHouseContainers(item_id)); // must be called after LoadHouseItem
|
||||||
|
|
||||||
LogWrite(ITEM__DEBUG, 0, "Items", "Loading Item Appearances...");
|
LogWrite(ITEM__DEBUG, 0, "Items", "Loading Item Appearances...");
|
||||||
LogWrite(ITEM__DEBUG, 0, "Items", "\tLoaded %u Item Appearances", LoadItemAppearances(item_id));
|
LogWrite(ITEM__DEBUG, 0, "Items", "\tLoaded %u Item Appearances", LoadItemAppearances(item_id));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user