protected override void RefreshListViewItem(ref ListView viewControl, string filter)
        {
            Dictionary <UInt32, NSpellInfo> infos = NSpellInfo.ConvertNativeInfos();

            // 刷新界面
            foreach (var item in infos)
            {
                if (item.Value.ID.IndexOf(filter) == -1 &&
                    item.Value.Name.IndexOf(filter) == -1 &&
                    item.Value.Description.IndexOf(filter) == -1)
                {
                    continue;
                }


                ListViewItem listItem = new ListViewItem();
                listItem.Text = item.Value.ID;
                listItem.Tag  = item.Value;

                listItem.SubItems.Add(item.Value.Name);
                listItem.SubItems.Add(item.Value.Description);

                viewControl.Items.Add(listItem);
            }
        }
        public override void RemoveInfo(object item)
        {
            NSpellInfo info = item as NSpellInfo;

            if (info != null)
            {
                NSpellInfo.RemoveInfo(info.ID);
            }
        }
 override protected bool ImportExcelContent(string fullPath)
 {
     // 先清理内存
     NSpellInfo.ClearInfo();
     // 导入数据到内存
     AttInfoDataHelper.ImportFromExcel <NSpellInfo>(fullPath);
     // 存储新的数据
     NSpellInfo.SaveToFile();
     // 清理内存
     NSpellInfo.ClearInfo();
     return(true);
 }
예제 #4
0
        /// <summary>
        /// 技能准备(吟唱, 无吟唱不会受到该消息)开始或更新
        /// </summary>
        private void OnRecvSpellPrepare(MessageReceivedEvent e)
        {
            S2C_SpellPrepare ret = MarshalConversion.PtrToStruct <S2C_SpellPrepare>(e.MessagePtr);

            if (ret.CasterId == GameEngine.EngineInstance.LocalPlayer.CharacterID)
            {
                GameEngine.EngineInstance.LocalPlayer.OnSpellPrepare(ret);

                // 显示吟唱进度条
                if (currentProgressBarTimeStamp <= ret.TimeStamp)
                {
                    if (ret.CurTime == 0)
                    {
                        prepareProgressBar.Hide();
                    }
                    else
                    {
                        NSpellInfo spell = NSpellInfo.FindInfo(ret.SpellId);
                        Debug.Assert(spell != null);

                        prepareTime    = ret.CurTime * 0.001f;
                        prepareMaxTime = ret.MaxTime * 0.001f;
                        prepareProgressBar.Progress  = prepareTime / prepareMaxTime;
                        prepareProgressBar.Text.Text = spell.Name;
                        prepareProgressBar.Show();
                        currentProgressBarTimeStamp = ret.TimeStamp;
                        currentProgressBarSpellID   = ret.SpellId;
                    }
                }
            }
            else
            {
                RemoteCharacterController rcc = GameEngine.EngineInstance.FindCharacterController(ret.CasterId);
                if (rcc != null)
                {
                    rcc.OnSpellPrepare(ret);
                }
                else
                {
                    NLogger.Instance.WriteString(LogType.Warning, string.Format("S2C_SpellPrepare can not find controller UintID=[{0}]", ret.CasterId));
                }
            }
        }
예제 #5
0
        public override bool Initialize(params object[] args)
        {
            // 注册frame
            RegisterFrame(GameFrameType.AccountLogin, typeof(AccountLoginFrame));
            RegisterFrame(GameFrameType.SelectRole, typeof(SelectRoleFrame));
            RegisterFrame(GameFrameType.CreateRole, typeof(CreateRoleFrame));
            RegisterFrame(GameFrameType.Gaming, typeof(LoadingFrame));
            RegisterFrame(GameFrameType.Gaming, typeof(GamingFrame));
            RegisterFrame(GameFrameType.Gaming, typeof(GamingMainFrame));
            RegisterFrame(GameFrameType.Gaming, typeof(GamingCombatFrame));
            RegisterFrame(GameFrameType.Gaming, typeof(MiniMapFrame));

            // 加载属性模板表
            NLevelupInfo.LoadFromFile();
            NSpellInfo.LoadFromFile();
            NSpellAuraInfo.LoadFromFile();
            NSpellEffectInfo.LoadFromFile();

            return(base.Initialize(args));
        }
 public override void ReloadFromFile()
 {
     NSpellInfo.ClearInfo();
     NSpellInfo.LoadFromFile();
 }
 public override void SaveToFile()
 {
     NSpellInfo.SaveToFile();
 }
 public override void NewInfo()
 {
     NSpellInfo info = new NSpellInfo(Guid.NewGuid().ToString());
 }
 public override void ClearInfo()
 {
     NSpellInfo.ClearInfo();
 }
예제 #10
0
 public SpellInstance(UInt32 infoId)
 {
     SpellInfo = NSpellInfo.FindInfo(infoId);
     Debug.Assert(SpellInfo != null);
 }
예제 #11
0
 public SpellInstance(NSpellInfo info)
 {
     SpellInfo = info;
 }
        private string BuildSpellErrorCode(UInt32 spellID, SpellCastResult errorCode)
        {
            NSpellInfo info             = NSpellInfo.FindInfo(spellID);
            string     errorMessageTips = string.Empty;

            switch (errorCode)
            {
            case SpellCastResult.Success:
                break;

            case SpellCastResult.Failed_NoSpell:
                errorMessageTips = string.Format(GUISystem.Instance.StringDictionary.GetValue("C_NoSpell"), info.Name);
                break;

            case SpellCastResult.Failed_InvalidSpell:
                errorMessageTips = GUISystem.Instance.StringDictionary.GetValue("C_InvalidSpell");
                break;

            case SpellCastResult.Failed_SpellInProgress:
                errorMessageTips = GUISystem.Instance.StringDictionary.GetValue("C_SpellInProgress");
                break;

            case SpellCastResult.Failed_CoolDown:
                errorMessageTips = GUISystem.Instance.StringDictionary.GetValue("C_CoolDown");
                break;

            case SpellCastResult.Failed_TooClose:
                errorMessageTips = GUISystem.Instance.StringDictionary.GetValue("C_TooClose");
                break;

            case SpellCastResult.Failed_OutofRange:
                errorMessageTips = GUISystem.Instance.StringDictionary.GetValue("C_OutofRange");
                break;

            case SpellCastResult.Failed_CasterDead:
                errorMessageTips = GUISystem.Instance.StringDictionary.GetValue("C_CasterDead");
                break;

            case SpellCastResult.Failed_Interrupted:
                errorMessageTips = GUISystem.Instance.StringDictionary.GetValue("C_Interrupted");
                break;

            case SpellCastResult.Failed_NoMana:
                errorMessageTips = GUISystem.Instance.StringDictionary.GetValue("C_NoMana");
                break;

            case SpellCastResult.Failed_NoEnergy:
                errorMessageTips = GUISystem.Instance.StringDictionary.GetValue("C_NoEnergy");
                break;

            case SpellCastResult.Failed_LineofSight:
                errorMessageTips = GUISystem.Instance.StringDictionary.GetValue("C_LineofSight");
                break;

            case SpellCastResult.Failed_InvalidTargets:
                errorMessageTips = GUISystem.Instance.StringDictionary.GetValue("C_InvalidTargets");
                break;

            case SpellCastResult.Failed_InCombat:
                errorMessageTips = GUISystem.Instance.StringDictionary.GetValue("C_InCombat");
                break;

            case SpellCastResult.Failed_InFear:
                errorMessageTips = GUISystem.Instance.StringDictionary.GetValue("C_InFear");
                break;

            case SpellCastResult.Failed_InSilence:
                errorMessageTips = GUISystem.Instance.StringDictionary.GetValue("C_InSilence");
                break;

            case SpellCastResult.Failed_InRoot:
                errorMessageTips = GUISystem.Instance.StringDictionary.GetValue("C_InRoot");
                break;

            case SpellCastResult.Failed_CantRepeat:
                errorMessageTips = GUISystem.Instance.StringDictionary.GetValue("C_CantRepeat");
                break;

            case SpellCastResult.Failed_Cancel:
                errorMessageTips = GUISystem.Instance.StringDictionary.GetValue("C_Cancel");
                break;

            case SpellCastResult.Failed_Move:
                errorMessageTips = GUISystem.Instance.StringDictionary.GetValue("C_Move");
                break;
            }

            if (!String.IsNullOrEmpty(errorMessageTips))
            {
                GamingMainFrame.MessageTips.Add(new MessageElement(errorMessageTips));
            }

            return(errorMessageTips);
        }