去除幻化残留信息

This commit is contained in:
fang139842 2025-08-06 21:06:28 +08:00
parent 4bcd88cb39
commit 61eacc9c67
7 changed files with 1 additions and 204 deletions

View File

@ -221,29 +221,7 @@ bool CommonFunc::DoAciotnAfterAccept(Player* player, uint32 id, bool quest)
playerData->mountSpellId = 0;
playerData->mountReqId = 0;
}
return true;
case 999://购买幻化
if (sReq->Check(player, playerData->trans_reqId))
{
if (playerData)
{
if (Item* item = playerData->AddItemById(player,playerData->trans_item, 1))
{
sReq->Des(player, playerData->trans_reqId);
//添加幻化标记
//player->ApplyEnchantment(item, EnchantmentSlot(PERM_ENCHANTMENT_SLOT), false);
//item->SetEnchantment(EnchantmentSlot(PERM_ENCHANTMENT_SLOT), TRANS_FLAG_ENCHANT_ID, 0, 0);
//player->ApplyEnchantment(item, EnchantmentSlot(PERM_ENCHANTMENT_SLOT), true);
}
else
{
ChatHandler(player->GetSession()).SendNotification("背包已满");
}
playerData->trans_reqId = 0;
playerData->trans_item = 0;
}
}
return true;
return true;
default:
return false;
}

View File

@ -318,10 +318,6 @@ CustomPlayerData::CustomPlayerData()
//backdoor block
block = false;
//购买幻化
trans_item = 0;
trans_reqId = 0;
//升级 强化的物品
playerItem = NULL;

View File

@ -580,10 +580,6 @@ public:
//cfbg
TeamId realTeam; // 队伍的真实ID
//购买幻化
uint32 trans_item; // 购买幻化的物品ID
uint32 trans_reqId; // 购买幻化所需的ID
//升级,强化的物品
Item* playerItem; // 升级或强化的物品

View File

@ -95,7 +95,6 @@ using namespace Acore::ChatCommands;
/*-----------------------------------------------------------*/
std::unordered_map<uint32, KillerStreakTemplate> KillerStreakMap; // 连杀
std::unordered_map<uint32, uint32> BuyTransItemMap; // 物品_购买幻化
std::unordered_map<uint32, PlayerDropRate> PlayerDropRateMap; // 属性调整_玩家掉率修改
std::unordered_map<uint32, float> AreaVisibilityDistMap; // 属性调整_地域可视距离
std::vector<std::string> DirtyWordVector; // 聊天屏蔽词列表
@ -139,17 +138,6 @@ void DataLoader::Load()
}
);
// 加载 幻化购买 数据
LoadDataToMap(
BuyTransItemMap,
// 0 1
"SELECT 物品ID, 需求模板ID FROM acore_custom._物品_购买幻化",
"_物品_购买幻化-----------",
[](Field* fields) -> std::pair<uint32, uint32> {
return std::make_pair(fields[0].Get<uint32>(), fields[1].Get<uint32>());
}
);
// 加载 玩家掉率修改 数据
LoadDataToMap(
PlayerDropRateMap,

View File

@ -23,9 +23,6 @@ struct KillerStreakTemplate
};
extern std::unordered_map<uint32, KillerStreakTemplate> KillerStreakMap;
//幻化购买
extern std::unordered_map<uint32, uint32> BuyTransItemMap;
extern std::unordered_map<uint32, float> AreaVisibilityDistMap;
//过滤聊天字符

View File

@ -299,149 +299,6 @@ bool GCAddon::OnRecv(Player* player, std::string msg)
return true;
}
//取消幻化
/*else if (IsOpcode(opcode, "GC_C_BUY_TRANSMOG"))
{
uint32 id = atoi(SplitStr(msg, 1).c_str());
uint32 fakeEntry = atoll(SplitStr(msg, 2).c_str());
EquipmentSlots slot = EQUIPMENT_SLOT_END;
switch (id)
{
case 1:slot = EQUIPMENT_SLOT_HEAD; break;
case 2:slot = EQUIPMENT_SLOT_SHOULDERS; break;
case 3:slot = EQUIPMENT_SLOT_BODY; break;
case 4:slot = EQUIPMENT_SLOT_CHEST; break;
case 5:slot = EQUIPMENT_SLOT_WAIST; break;
case 6:slot = EQUIPMENT_SLOT_LEGS; break;
case 7:slot = EQUIPMENT_SLOT_FEET; break;
case 8:slot = EQUIPMENT_SLOT_WRISTS; break;
case 9:slot = EQUIPMENT_SLOT_HANDS; break;
case 10:slot = EQUIPMENT_SLOT_BACK; break;
case 11:slot = EQUIPMENT_SLOT_MAINHAND; break;
case 12:slot = EQUIPMENT_SLOT_OFFHAND; break;
case 13:slot = EQUIPMENT_SLOT_RANGED; break;
case 14:slot = EQUIPMENT_SLOT_TABARD; break;
default:return true;
}
if (Item* item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, slot))
{
if (ItemTemplate const* pProto = sObjectMgr->GetItemTemplate(fakeEntry))
{
if (sTransmogrification->PresetTransmog(player, item, fakeEntry, slot))
SendTransMogData(player);
else
ChatHandler(player->GetSession()).PSendSysMessage("幻化失败,相关部位不能幻化此物品");
}
}
return true;
}
else if (IsOpcode(opcode, "GC_TRANS_BUY"))
{
int32 i = atoi(SplitStr(msg, 1).c_str());
uint32 entry = abs(i);
ItemTemplate const* pProto = sObjectMgr->GetItemTemplate(entry);
if (!pProto)
{
ChatHandler(player->GetSession()).SendNotification("该物品不存在");
return true;
}
uint32 reqId = GetTransReqId(entry);
if (!sReq->Check(player, reqId))
return true;
EquipmentSlots slot = EQUIPMENT_SLOT_END;
switch (pProto->InventoryType)
{
case INVTYPE_HEAD:
slot = EQUIPMENT_SLOT_HEAD;
break;
case INVTYPE_SHOULDERS:
slot = EQUIPMENT_SLOT_SHOULDERS;
break;
case INVTYPE_BODY:
slot = EQUIPMENT_SLOT_BODY;
break;
case INVTYPE_CHEST:
case INVTYPE_ROBE:
slot = EQUIPMENT_SLOT_CHEST;
break;
case INVTYPE_WAIST:
slot = EQUIPMENT_SLOT_WAIST;
break;
case INVTYPE_LEGS:
slot = EQUIPMENT_SLOT_LEGS;
break;
case INVTYPE_FEET:
slot = EQUIPMENT_SLOT_FEET;
break;
case INVTYPE_WRISTS:
slot = EQUIPMENT_SLOT_WRISTS;
break;
case INVTYPE_HANDS:
slot = EQUIPMENT_SLOT_HANDS;
break;
case INVTYPE_CLOAK:
slot = EQUIPMENT_SLOT_BACK;
break;
case INVTYPE_WEAPON:
case INVTYPE_WEAPONMAINHAND:
case INVTYPE_2HWEAPON:
slot = EQUIPMENT_SLOT_MAINHAND;
break;
case INVTYPE_WEAPONOFFHAND:
case INVTYPE_SHIELD:
slot = EQUIPMENT_SLOT_OFFHAND;
break;
case INVTYPE_RANGEDRIGHT:
case INVTYPE_RANGED:
slot = EQUIPMENT_SLOT_OFFHAND;
break;
default:
break;
}
if (slot == EQUIPMENT_SLOT_END)
{
ChatHandler(player->GetSession()).SendNotification("该物品不能用于幻化");
return true;
}
if (entry > 56806 && !player->HasItemCount(entry, 1, true))
{
std::ostringstream oss;
oss << "请先购买" << sCF->GetItemLink(entry);
ChatHandler(player->GetSession()).SendNotification(oss.str().c_str());
return true;
}
if (i < 0)
slot = EQUIPMENT_SLOT_OFFHAND;
if (Item* itemTransmogrified = player->GetItemByPos(INVENTORY_SLOT_BAG_0, slot))
{
if (sTransmogrification->PresetTransmog(player, itemTransmogrified, entry, slot))
{
player->GetSession()->SendAreaTriggerMessage("幻化成功");
sReq->Des(player, reqId);
}
else
ChatHandler(player->GetSession()).SendNotification("目标部位不允许幻化成该物品,幻化失败");
}
else
ChatHandler(player->GetSession()).SendNotification("该部位未装备物品,幻化失败");
return true;
}*/
// 法宝信息
else if (IsOpcode(opcode, "SM_C_TALISMAN"))
{
@ -1281,19 +1138,6 @@ std::string GCAddon::GetRewString(Player* player, uint32 rewId)
return oss.str();
}
uint32 GCAddon::GetTransReqId(uint32 itemId)
{
std::unordered_map<uint32, uint32>::iterator iter = BuyTransItemMap.find(itemId);
if (iter != BuyTransItemMap.end())
return iter->second;
iter = BuyTransItemMap.find(0);
if (iter != BuyTransItemMap.end())
return iter->second;
return 0;
}
//#include "mail.h"
// subject 邮件标题
// text 邮件内容

View File

@ -45,8 +45,6 @@ public:
std::string GetReqString(Player* player, uint32 reqId);
std::string GetRewString(Player* player, uint32 rewId);
//幻化
uint32 GetTransReqId(uint32 itemId);
std::string GetItemIcon(uint32 entry);
void SendAllData(Player* player);