Merge pull request 'feature/friend_ui' (#266) from feature/friend_ui into develop
Reviewed-on: https://git.pthub.vn/Unity/perfect-world-unity/pulls/266
This commit is contained in:
@@ -1588,6 +1588,11 @@ namespace CSNetwork.GPDataType
|
||||
public byte byPackage;
|
||||
public byte bySlot;
|
||||
}
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
public struct cmd_pickup_money
|
||||
{
|
||||
public int amount;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
public struct cmd_produce_start
|
||||
|
||||
@@ -401,7 +401,9 @@ namespace BrewMonster.Scripts.UI
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
itemInfoPanel.SetActive(false);
|
||||
}
|
||||
|
||||
void OnAwardItemClicked(string hint, bool isOn, AwardItem awardItem)
|
||||
{
|
||||
@@ -513,4 +515,4 @@ namespace BrewMonster.Scripts.UI
|
||||
LayoutRebuilder.ForceRebuildLayoutImmediate(parent);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -196,6 +196,7 @@ namespace BrewMonster
|
||||
{
|
||||
var money = GPDataTypeHelper.FromBytes<CSNetwork.GPDataType.cmd_get_own_money>(data);
|
||||
SetMoneyAmount(money.amount);
|
||||
m_iMaxMoney = (int)money.max_amount;
|
||||
|
||||
EC_InventoryUI ui = GameObject.FindFirstObjectByType<EC_InventoryUI>();
|
||||
if (ui != null && ui.gameObject.activeInHierarchy)
|
||||
@@ -797,7 +798,33 @@ namespace BrewMonster
|
||||
// Add money amount
|
||||
private int AddMoneyAmount(int iAmount)
|
||||
{
|
||||
m_iMoneyCnt += (uint)iAmount;
|
||||
long next = (long)m_iMoneyCnt + iAmount;
|
||||
if (next < 0)
|
||||
{
|
||||
next = 0;
|
||||
}
|
||||
|
||||
if(m_iMaxMoney > 0 && next > m_iMaxMoney)
|
||||
{
|
||||
next = m_iMaxMoney;
|
||||
}
|
||||
|
||||
m_iMoneyCnt = (uint)next;
|
||||
|
||||
ulong amount = m_iMoneyCnt;
|
||||
ulong maxAmount = m_iMaxMoney > 0 ? (ulong)m_iMaxMoney : amount;
|
||||
|
||||
EC_InventoryUI ui = GameObject.FindFirstObjectByType<EC_InventoryUI>();
|
||||
if(ui != null && ui.gameObject.activeInHierarchy)
|
||||
{
|
||||
ui.UpdateMoney(amount, maxAmount);
|
||||
}
|
||||
else
|
||||
{
|
||||
EC_InventoryUI.CacheMoney(amount, maxAmount);
|
||||
}
|
||||
|
||||
//m_iMoneyCnt += (uint)iAmount;
|
||||
return (int)m_iMoneyCnt;
|
||||
}
|
||||
|
||||
|
||||
@@ -544,6 +544,9 @@ namespace BrewMonster
|
||||
case EC_MsgDef.MSG_HST_USEITEM:
|
||||
OnMsgHstUseItem(Msg);
|
||||
break;
|
||||
case EC_MsgDef.MSG_HST_PICKUPMONEY:
|
||||
OnMsgHstPickupMoney(Msg);
|
||||
break;
|
||||
case EC_MsgDef.MSG_HST_ATKRESULT: OnMsgHstAttackResult(Msg); break;
|
||||
case EC_MsgDef.MSG_HST_ATTACKONCE: OnMsgHstAttackOnce(Msg); break;
|
||||
case EC_MsgDef.MSG_HST_ATTACKED: OnMsgHstAttacked(Msg); break;
|
||||
@@ -612,11 +615,206 @@ namespace BrewMonster
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
private void OnMsgHstPickupMoney(ECMSG msg)
|
||||
{
|
||||
var data = msg.dwParam1 as byte[];
|
||||
if (data == null || data.Length == 0)
|
||||
return;
|
||||
|
||||
cmd_pickup_money pCmd = GPDataTypeHelper.FromBytes<cmd_pickup_money>(data);
|
||||
AddMoneyAmount(pCmd.amount);
|
||||
CECGameRun pGameRun = EC_Game.GetGameRun();
|
||||
pGameRun.AddFixedMessage((int)FixedMsg.FIXMSG_PICKUPMONEY);
|
||||
BubbleText((int)BubbleTextType.BUBBLE_MONEY, (uint)pCmd.amount);
|
||||
}
|
||||
|
||||
private void BubbleText(int iIndex, uint dwNum, int p1 = 0)
|
||||
{
|
||||
bool isHost = IsHostPlayer();
|
||||
|
||||
if (isHost)
|
||||
{
|
||||
CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer();
|
||||
if (iIndex == (int)BubbleTextType.BUBBLE_EXP)
|
||||
{
|
||||
bool hasBookExp = pHost != null && pHost.m_ReincarnationTome.tome_active != 0;
|
||||
int msgId = (int)dwNum > 0 ?
|
||||
(hasBookExp ? (int)FixedMsg.FIXMSG_GOT_BOOKEXP : (int)FixedMsg.FIXMSG_GOTEXP) :
|
||||
(int)FixedMsg.FIXMSG_LOSTEXP;
|
||||
EC_Game.GetGameRun()?.AddFixedChannelMsg(msgId, (int)ChatChannel.GP_CHAT_FIGHT, (int)dwNum);
|
||||
}
|
||||
|
||||
if (iIndex == (int)BubbleTextType.BUBBLE_SP)
|
||||
{
|
||||
EC_Game.GetGameRun()?.AddFixedChannelMsg((int)FixedMsg.FIXMSG_GOTSP, (int)ChatChannel.GP_CHAT_FIGHT, (int)dwNum);
|
||||
}
|
||||
|
||||
if (iIndex == (int)BubbleTextType.BUBBLE_REALMEXP)
|
||||
{
|
||||
EC_Game.GetGameRun()?.AddFixedChannelMsg((int)FixedMsg.FIXMSG_GOT_REALMEXP, (int)ChatChannel.GP_CHAT_FIGHT, (int)dwNum);
|
||||
}
|
||||
}
|
||||
|
||||
Vector3 vPos;
|
||||
if (IsInChariot())
|
||||
{
|
||||
var dummy = GetDummyModel((int)PLAYERMODEL_TYPE.PLAYERMODEL_DUMMYTYPE2);
|
||||
if (dummy != null)
|
||||
{
|
||||
// TODO
|
||||
//vPos = GetPos() + g_vAxisY * (dummy.GetModelAABB().Extents.y * 2.3f);
|
||||
}
|
||||
else
|
||||
{
|
||||
vPos = EC_Utility.ToVector3(GetPos()) + g_vAxisY * (m_aabb.Extents.y * 2.5f);
|
||||
}
|
||||
|
||||
//CECBubbleDecal* pBubbleDecal = m_pBubbleTexts->AddDecal(vPos, CECDecal::DCID_ICONDECAL);
|
||||
//CECIconDecal* pDecal = (CECIconDecal*)pBubbleDecal->GetDecal();
|
||||
|
||||
//switch (iIndex)
|
||||
//{
|
||||
// case BUBBLE_DAMAGE:
|
||||
|
||||
// if (!bHost)
|
||||
// dwCol = A3DCOLORRGB(237, 56, 0);
|
||||
|
||||
// if (p1 & 0x0001)
|
||||
// pDecal->AddIcon(CECImageRes::IMG_DEADLYSTRIKE, 0, dwCol);
|
||||
// else if (p1 & 0x0002)
|
||||
// pDecal->AddIcon(CECImageRes::IMG_RETORT, 0, dwCol);
|
||||
|
||||
// pDecal->AddNumIcons(CECImageRes::IMG_POPUPNUM, dwNum, dwCol);
|
||||
// break;
|
||||
|
||||
// case BUBBLE_EXP:
|
||||
|
||||
// pDecal->AddIcon(CECImageRes::IMG_GOTEXP, 0, dwCol);
|
||||
// pDecal->AddNumIcons(CECImageRes::IMG_POPUPNUM, dwNum, dwCol);
|
||||
// // pDecal->SetScreenPos(80, 70);
|
||||
// // pDecal->EnableScreenPos(true);
|
||||
// break;
|
||||
|
||||
// case BUBBLE_SP:
|
||||
|
||||
// pDecal->AddIcon(CECImageRes::IMG_GOTSP, 0, dwCol);
|
||||
// pDecal->AddNumIcons(CECImageRes::IMG_POPUPNUM, dwNum, dwCol);
|
||||
// // pDecal->SetScreenPos(80, 90);
|
||||
// // pDecal->EnableScreenPos(true);
|
||||
// break;
|
||||
|
||||
// case BUBBLE_MONEY:
|
||||
|
||||
// pDecal->AddIcon(CECImageRes::IMG_GOTMONEY, 0, dwCol);
|
||||
// pDecal->AddNumIcons(CECImageRes::IMG_POPUPNUM, dwNum, dwCol);
|
||||
// break;
|
||||
|
||||
// case BUBBLE_LEVELUP:
|
||||
|
||||
// pDecal->AddIcon(CECImageRes::IMG_LEVELUP, 0, dwCol);
|
||||
// break;
|
||||
|
||||
// case BUBBLE_HITMISSED:
|
||||
|
||||
// if (!bHost)
|
||||
// dwCol = A3DCOLORRGB(237, 56, 0);
|
||||
|
||||
// pDecal->AddIcon(CECImageRes::IMG_HITMISSED, 0, dwCol);
|
||||
// break;
|
||||
|
||||
// case BUBBLE_INVALIDHIT:
|
||||
|
||||
// if (!bHost)
|
||||
// dwCol = A3DCOLORRGB(237, 56, 0);
|
||||
|
||||
// pDecal->AddIcon(CECImageRes::IMG_INVALIDHIT, 0, dwCol);
|
||||
// break;
|
||||
|
||||
// case BUBBLE_IMMUNE:
|
||||
|
||||
// if (!bHost)
|
||||
// dwCol = A3DCOLORRGB(237, 56, 0);
|
||||
|
||||
// pDecal->AddIcon(CECImageRes::IMG_IMMUNE, 0, dwCol);
|
||||
// break;
|
||||
|
||||
// case BUBBLE_HPWARN:
|
||||
|
||||
// dwCol = A3DCOLORRGB(255, 255, 255);
|
||||
// pDecal->AddIcon(CECImageRes::IMG_HPWARN, 0, dwCol);
|
||||
// break;
|
||||
|
||||
// case BUBBLE_MPWARN:
|
||||
|
||||
// dwCol = A3DCOLORRGB(255, 255, 255);
|
||||
// pDecal->AddIcon(CECImageRes::IMG_MPWARN, 0, dwCol);
|
||||
// break;
|
||||
|
||||
// case BUBBLE_REBOUND:
|
||||
|
||||
// pDecal->AddIcon(CECImageRes::IMG_REBOUND, 0, dwCol);
|
||||
// pDecal->AddNumIcons(CECImageRes::IMG_POPUPNUM, dwNum, dwCol);
|
||||
// break;
|
||||
|
||||
// case BUBBLE_BEAT_BACK:
|
||||
|
||||
// pDecal->AddIcon(CECImageRes::IMG_BEAT_BACK, 0, dwCol);
|
||||
// pDecal->AddNumIcons(CECImageRes::IMG_POPUPNUM, dwNum, dwCol);
|
||||
// break;
|
||||
|
||||
// case BUBBLE_ADD:
|
||||
|
||||
// dwCol = A3DCOLORRGB(126, 206, 244);
|
||||
// pDecal->AddIcon(CECImageRes::IMG_ADD, 0, dwCol);
|
||||
// pDecal->AddNumIcons(CECImageRes::IMG_POPUPNUM, dwNum, dwCol);
|
||||
// break;
|
||||
|
||||
// case BUBBLE_DODGE_DEBUFF:
|
||||
|
||||
// if (!bHost)
|
||||
// dwCol = A3DCOLORRGB(237, 56, 0);
|
||||
|
||||
// pDecal->AddIcon(CECImageRes::IMG_DODGE_DEBUFF, 0, dwCol);
|
||||
// break;
|
||||
|
||||
// default:
|
||||
// return;
|
||||
}
|
||||
else
|
||||
{
|
||||
vPos = EC_Utility.ToVector3(GetPos()) + g_vAxisY * (m_aabb.Extents.y * 2.5f);
|
||||
}
|
||||
}
|
||||
|
||||
private bool IsInChariot()
|
||||
{
|
||||
CECGameRun pRun = EC_Game.GetGameRun();
|
||||
if(pRun == null)
|
||||
return false;
|
||||
|
||||
CECHostPlayer pHost = pRun.GetHostPlayer();
|
||||
if (pHost && pHost.GetBattleInfo().IsChariotWar() && GetShapeType() == (int)PLAYERMODEL_TYPE.PLAYERMODEL_DUMMYTYPE2
|
||||
&& GetDummyModel((int)PLAYERMODEL_TYPE.PLAYERMODEL_DUMMYTYPE2))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private BATTLEINFO m_BattleInfo;
|
||||
|
||||
private BATTLEINFO GetBattleInfo()
|
||||
{
|
||||
return m_BattleInfo;
|
||||
}
|
||||
|
||||
private void NotifyUIUpdateTeam(bool showDialog = false)
|
||||
{
|
||||
//try
|
||||
//{
|
||||
// var ui = EC_Game.GetGameRun()?.GetUIManager()?.GetInGameUIMan();
|
||||
// var ui = EC_Game.GetGameRun()?.GetUIManager()?.GetInGameUIMan();
|
||||
// if (ui is CECGameUIMan gui)
|
||||
// gui.UpdateTeam(false);
|
||||
//}
|
||||
@@ -3319,6 +3517,25 @@ namespace BrewMonster
|
||||
LIES_DISABLEFIGHT = 0x000B,
|
||||
}
|
||||
|
||||
public enum BubbleTextType
|
||||
{
|
||||
BUBBLE_DAMAGE = 0,
|
||||
BUBBLE_EXP,
|
||||
BUBBLE_SP,
|
||||
BUBBLE_MONEY,
|
||||
BUBBLE_LEVELUP,
|
||||
BUBBLE_HITMISSED,
|
||||
BUBBLE_INVALIDHIT,
|
||||
BUBBLE_IMMUNE,
|
||||
BUBBLE_HPWARN,
|
||||
BUBBLE_MPWARN,
|
||||
BUBBLE_REBOUND, // ·´µ¯
|
||||
BUBBLE_BEAT_BACK, // ·´»÷
|
||||
BUBBLE_ADD, // ÎüѪµÄ¼ÓºÅ
|
||||
BUBBLE_DODGE_DEBUFF,
|
||||
BUBBLE_REALMEXP,
|
||||
}
|
||||
|
||||
// ½øÈë»ùµØÐÅÏ¢
|
||||
public struct FACTION_FORTRESS_ENTER
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user