// 初始化技能信息aa public virtual void SetInfo(sdGameSkill info, sdGameActor kGameActor) { skillInfo = info; if (skillInfo != null) { cooldown = (int)skillProperty["dwCooldown"]; bUnLimitedAction = ((int)skillProperty["UnLimited"]) != 0; } if (isPassive) { if (skillProperty != null) { string level = skillProperty["byLevel"] as string; if (level != null) { skillLevel = int.Parse(level); } string str = skillProperty["Buffid"] as string; if (str != null) { int id = int.Parse(str); if (id != 0) { //调用AddBuff会崩溃 暂时注释掉... kGameActor.AddBuff(id, 0, kGameActor); } } } } }
// 创建技能aa public void CreateSkill(int tid, int coolDown) { sdGameSkill kSkill = GetSkill(tid); if (kSkill == null) { kSkill = CreateSkill(tid); skillInfo[tid] = kSkill; } }
public sdGameSkill GetSkillByClassId(string classId) { foreach (DictionaryEntry item in skillInfo) { sdGameSkill skill = item.Value as sdGameSkill; if (skill != null && skill.classId.ToString() == classId) { return(skill); } } return(null); }
// 创建技能aa public static sdGameSkill CreateSkill(int iTemplateId) { sdGameSkill kSkill = new sdGameSkill(); kSkill.templateID = iTemplateId; Hashtable kSkillInfo = sdConfDataMgr.Instance().GetSkill(iTemplateId.ToString()); if (kSkillInfo != null) { if (kSkillInfo["Index"].ToString() != "") { kSkill.index = int.Parse(kSkillInfo["Index"].ToString()); } if (kSkillInfo["dwClassID"].ToString() != "") { kSkill.classId = int.Parse(kSkillInfo["dwClassID"].ToString()); } if (kSkillInfo["dwCooldown"].ToString() != "") { kSkill.coolDown = int.Parse(kSkillInfo["dwCooldown"].ToString()); } if (kSkillInfo["byLevel"].ToString() != "") { kSkill.level = int.Parse(kSkillInfo["byLevel"].ToString()); } if (kSkillInfo["NextLevel"].ToString() != "") { kSkill.nextlv = int.Parse(kSkillInfo["NextLevel"].ToString()); } if (kSkillInfo["byIsPassive"].ToString() != "") { kSkill.isPassive = int.Parse(kSkillInfo["byIsPassive"].ToString()) == 1 ? true : false; } } return(kSkill); }
void Start() { sdUICharacter.Instance.ClearReliveNum(); if (sdLevelInfo.GetLevelValid(12011) || sdGameLevel.instance.testMode) { canAuto = true; } if (sdUICharacter.Instance.iCurrentLevelID != 1 || sdGameLevel.instance.testMode) { setPanel.SetActive(true); } else { setPanel.SetActive(false); } //sdUICharacter.Instance.ShowMask(true, GameObject.Find("suodi")); if (sdFriendMgr.Instance.fightFriend != null) { sdFriendMsg.notifySelectFriAss(sdFriendMgr.Instance.fightFriend.id); } sdBuffIcon[] iconList = GetComponentsInChildren <sdBuffIcon>(); foreach (sdBuffIcon icon in iconList) { if (icon.isBuff) { buffList.Add(icon.index, icon); } else { debuffList.Add(icon.index, icon); } } // 宠物图标对象加入列表aa if (pet1IconObject != null) { mPetIconObjectList.Add(0, pet1IconObject); } if (pet2IconObject != null) { mPetIconObjectList.Add(1, pet2IconObject); } if (pet3IconObject != null) { mPetIconObjectList.Add(2, pet3IconObject); } // 宠物技能图标aa if (skillPetObject != null) { Transform kBackgroundTransform = skillPetObject.transform.FindChild("Btn").FindChild("Background"); if (kBackgroundTransform != null) { mPetSkillIconBackgroundObject = kBackgroundTransform.gameObject; } } // 大Boss血条aa //monsterHp = GameObject.Find("Boss"); if (monsterHp != null) { monsterHp.SetActive(false); } // 小Boss血条aa //seniorHp = GameObject.Find("HpBar_Senior"); if (seniorHp != null) { seniorHp.SetActive(false); } // 死亡复活框aa //relive = GameObject.Find("Relive"); if (relive != null) { relive.SetActive(false); } Hashtable table = sdGameSkillMgr.Instance.GetSkillList(); if (table == null) { return; } foreach (DictionaryEntry item in table) { sdGameSkill skill = (sdGameSkill)item.Value; if (skill.isPassive) { continue; } string name = "Normal"; if (skill.index == 0) { name = "Skill1"; } else if (skill.index == 1) { name = "Normal"; } else { name = "Skill" + skill.index.ToString(); } if (atPanel != null) { Transform skillIcon = atPanel.transform.FindChild(name); if (skillIcon != null) { string iconNam = skill.icon; if (name == "Normal") { skillIcon.FindChild("suodi").FindChild("Background").GetComponent <UISprite>().spriteName = "suodi"; skillIcon.FindChild("suodi").GetComponent <sdShortCutIcon>().id = (UInt64)skill.templateID; } else { skillIcon.GetComponentInChildren <UISprite>().spriteName = iconNam; skillIcon.GetComponentInChildren <sdShortCutIcon>().id = (UInt64)skill.templateID; if (skill.templateID == sdGameSkillMgr.Instance.newSkill) { GameObject obj = GameObject.Instantiate(skillIcon.gameObject) as GameObject; obj.transform.parent = newSkill.transform; obj.transform.localPosition = Vector3.zero; obj.transform.localScale = skillIcon.localScale; skillIcon.gameObject.SetActive(false); sdGameSkillMgr.Instance.newSkill = 0; newSkill.SetActive(true); curSkill = skillIcon.gameObject; TweenPosition tp = curSkill.AddComponent <TweenPosition>(); Vector3 pos = skillIcon.transform.localPosition; tp.to = pos; tp.duration = 1f; tp.from = newSkill.transform.InverseTransformPoint(Vector3.zero); TweenScale ts = curSkill.AddComponent <TweenScale>(); Vector3 scale = curSkill.transform.localScale; ts.to = scale; ts.duration = 1f; ts.from = new Vector3(2, 2, 2); } } } } if (mtPanel != null) { Transform skillIcon = mtPanel.transform.FindChild(name); if (skillIcon != null) { string iconNam = skill.icon; skillIcon.FindChild("Btn").FindChild("Background").GetComponent <UISprite>().spriteName = iconNam; skillIcon.FindChild("Btn").GetComponent <sdShortCutIcon>().id = (UInt64)skill.templateID; } } } // 更新宠物图标aa RefreshPet(); // 尝试激活默认宠物aa for (int iIndex = 0; iIndex < sdNewPetMgr.Instance.BattlePetNum; iIndex++) { UInt64 ulDBID = sdNewPetMgr.Instance.GetPetFromTeamByIndex(iIndex); if (ulDBID != UInt64.MaxValue) { ActivePet(iIndex); break; } } if (sdUICharacter.Instance != null) { sdUICharacter.Instance.isReady = true; } //HideMedicinePrice(); if (sdGameLevel.instance.mainChar != null) { BuffChange(sdGameLevel.instance.mainChar.GetBuffs()); } else { BuffChange(null); } comboPanel.SetActive(false); sdUICharacter.Instance.fightTime = 0f; sdUICharacter.Instance.IsFight = true; Hashtable showInfo = new Hashtable(); showInfo["value"] = sdGameLevel.instance.mainChar["Level"].ToString(); sdUICharacter.Instance.SetProperty("Level", showInfo); showInfo["value"] = sdGameLevel.instance.mainChar["MaxHP"].ToString(); sdUICharacter.Instance.SetProperty("MaxHP", showInfo); sdUICharacter.Instance.SetProperty("HP", showInfo); showInfo["value"] = sdGameLevel.instance.mainChar["MaxSP"].ToString(); sdUICharacter.Instance.SetProperty("MaxSP", showInfo); sdUICharacter.Instance.SetProperty("SP", showInfo); // 设置视角和操作按钮状态. if (sdConfDataMgr.Instance().GetSetting("CFG_Camera") == "1") { GameObject o = GameObject.Find("btn_anglemode"); if (o != null) { o.GetComponentInChildren <UISprite>().spriteName = "sj2"; } } if (sdConfDataMgr.Instance().GetSetting("CFG_Move") == "1") { GameObject o = GameObject.Find("btn_controlmode"); if (o != null) { o.GetComponentInChildren <UISprite>().spriteName = "cz2"; } } }
public void ShowSkillInfo(string id) { Hashtable skillinfo = sdConfDataMgr.Instance().GetSkill(id); if (skillinfo != null) { GameObject name = GameObject.Find("label_skillname"); if (name != null) { name.GetComponent <UILabel>().text = skillinfo["strName"].ToString(); } GameObject des = GameObject.Find("label_des"); if (des != null) { des.GetComponent <UILabel>().text = skillinfo["Description"].ToString(); } } Hashtable table = sdConfDataMgr.Instance().GetPassiveSkill(id); if (table != null) { //GameObject passivePanel = GameObject.Find("passivepanel"); if (passivePanel == null) { return; } foreach (DictionaryEntry temp in table) { Hashtable item = temp.Value as Hashtable; int index = int.Parse(item["Index"].ToString()); string name = "passive" + (index + 1).ToString(); Transform icon = passivePanel.transform.FindChild(name); if (icon != null) { sdSlotIcon slot = icon.GetComponent <sdSlotIcon>(); icon.FindChild("passivename").GetComponent <UILabel>().text = item["strName"].ToString(); sdGameSkill skill = sdGameSkillMgr.Instance.GetSkillByClassId(item["dwClassID"].ToString()); string level = sdConfDataMgr.Instance().GetShowStr("NoLearn"); if (skill != null) { level = string.Format("Lv.{0}", skill.level.ToString()); Hashtable cur = sdConfDataMgr.Instance().GetSkill(skill.templateID.ToString()); slot.SetInfo(skill.templateID.ToString(), cur); } else { slot.SetInfo(item["uid"].ToString(), item); } slot.HideLock(); slot.SetMax(false); if (skill != null && sdGameSkillMgr.Instance.GetSkill(int.Parse(id)) != null) { slot.SetHighLight(true); Hashtable cur = sdConfDataMgr.Instance().GetSkill(skill.templateID.ToString()); if (cur != null) { if (cur["NextLevel"].ToString() == "0") { level = "Lv.Max"; } else { } } } else { int compareLevel = 1; sdMainChar mainChar = GameObject.Find("@GameLevel").GetComponent <sdGameLevel>().mainChar; if (mainChar != null) { compareLevel = (int)mainChar["Level"]; } int needLevel = int.Parse(item["nLearnLevel"].ToString()); int needPoint = int.Parse(item["dwTotalSkillTreePoint"].ToString()); int requestPoint = int.Parse(item["dwCostSkillPoint"].ToString()); bool hasNeedSkill = false; if (item.ContainsKey("NeedSkill")) { int needSkill = int.Parse(item["NeedSkill"].ToString()); Hashtable needInfo = sdConfDataMgr.Instance().GetSkill(needSkill.ToString()); if (needInfo != null) { if (int.Parse(needInfo["byIsPassive"].ToString()) == 0) { hasNeedSkill = true; } else { sdGameSkill skillneed = sdGameSkillMgr.Instance.GetSkillByClassId(needInfo["dwClassID"].ToString()); if (skillneed != null && skillneed.level >= int.Parse(needInfo["byLevel"].ToString())) { hasNeedSkill = true; } } } else { hasNeedSkill = true; } } if (compareLevel < needLevel || sdGameSkillMgr.Instance.GetSkill(int.Parse(id)) == null || !hasNeedSkill) { slot.SetHighLight(false); slot.ShowLock(); } else { // if (sdGameSkillMgr.Instance.GetSkillPoint() < requestPoint) // { // slot.SetHighLight(false); // //slot.ShowLock(); // } // else // { slot.SetHighLight(true); //} } } icon.FindChild("passivelv").GetComponent <UILabel>().text = level; } } } }
void OnClick() { if (panel == PanelType.Panel_ItemUp) { if (index == 0) { sdUICharacter.Instance.ShowItemSelectWnd(SelectType.ItemUpChange); sdUICharacter.Instance.AddEventOnSelectWnd(new EventDelegate(sdUICharacter.Instance.OnChangeUpItem)); return; } else if (index == -1) { return; } if (sdGameItemMgr.Instance.upItem == null) { sdUICharacter.Instance.ShowMsgLine(sdConfDataMgr.Instance().GetShowStr("SelectUpItem"), Color.yellow); return; } sdUICharacter.Instance.ShowItemSelectWnd(SelectType.ItemUp); sdUICharacter.Instance.AddEventOnSelectWnd(new EventDelegate(sdUICharacter.Instance.GetItemUpWnd().OnSelectItemOk)); return; } else if (panel == PanelType.Panel_ItemMake) { if (index == 0) { sdUICharacter.Instance.ShowItemSelectWnd(SelectType.ItemMake); sdUICharacter.Instance.AddEventOnSelectWnd(new EventDelegate(sdUICharacter.Instance.GetItemUpWnd().SelectItemMake)); return; } else { sdUICharacter.Instance.ShowTip(TipType.TempItem, tempId); return; } } else if (panel == PanelType.Panel_GemReplace) { if (itemid != "0" && itemid != "") { if (sdGameItemMgr.Instance.selGemList.ContainsKey(itemid)) { int num = sdGameItemMgr.Instance.selGemList[itemid]; if (num == 1) { sdGameItemMgr.Instance.selGemList.Remove(itemid); } else { sdGameItemMgr.Instance.selGemList[itemid]--; } } SetInfo("0", null); return; } sdUICharacter.Instance.ShowItemSelectWnd(SelectType.GemReplace); //sdUICharacter.Instance.AddEventOnSelectWnd(new EventDelegate(sdUICharacter.Instance.GetItemUpWnd().OnSelectGemReplace)); sdUICharacter.Instance.AddEventOnSelectWnd(new EventDelegate(OnSelectGemReplace)); return; } else if (panel == PanelType.Panel_GemMerge) { if (index > 2) { return; } if (itemid != "0" && itemid != "") { if (sdGameItemMgr.Instance.selGemList.ContainsKey(itemid)) { int num = sdGameItemMgr.Instance.selGemList[itemid]; if (num == 1) { sdGameItemMgr.Instance.selGemList.Remove(itemid); } else { sdGameItemMgr.Instance.selGemList[itemid]--; } } SetInfo("0", null); return; } sdUICharacter.Instance.ShowItemSelectWnd(SelectType.GemMerge); sdUICharacter.Instance.AddEventOnSelectWnd(new EventDelegate(SelectGemMerge)); return; } else if (panel == PanelType.Panel_GemSet) { if (index > 2) { return; } if (sdGameItemMgr.Instance.upItem == null) { sdUICharacter.Instance.ShowMsgLine(sdConfDataMgr.Instance().GetShowStr("SelectGemItem"), Color.yellow); return; } if (itemid == "-1") { sdUICharacter.Instance.ShowMsgLine(sdConfDataMgr.Instance().GetShowStr("GemOnError1"), Color.yellow); return; } if (itemid != "0" && itemid != "") { //sdGameItem item = sdGameItemMgr.Instance.getItem(ulong.Parse(itemid)); Hashtable info = sdConfDataMgr.Instance().GetItemById(tempId); Hashtable gemInfo = sdConfDataMgr.Instance().GetGemLevel(info["Level"].ToString()); string needMoney = gemInfo["HoleOffMoney"].ToString(); sdMsgBox.OnConfirm ok = new sdMsgBox.OnConfirm(OnGemOff); sdUICharacter.Instance.ShowOkCanelMsg(string.Format(sdConfDataMgr.Instance().GetShowStr("GemOffConfirm"), needMoney), ok, null); return; } sdUICharacter.Instance.ShowItemSelectWnd(SelectType.GemOn); sdUICharacter.Instance.AddEventOnSelectWnd(new EventDelegate(sdUICharacter.Instance.GetItemUpWnd().SelectGemSet)); sdGameItemMgr.Instance.gemIndex = index; return; } else if (panel == PanelType.Panel_PvpReward || panel == PanelType.Panel_PVPRankReward) { if (itemid == "100" || itemid == "101" || itemid == "200" || itemid.Length == 0) { return; } Hashtable info = sdConfDataMgr.Instance().GetItemById(itemid); if (info != null && info.ContainsKey("Class") && int.Parse(info["Class"].ToString()) == (int)HeaderProto.EItemClass.ItemClass_Pet_Item) { sdUIPetControl.Instance.ActivePetSmallTip(null, int.Parse(itemInfo["Expend"].ToString()), 0, 1); return; } else { sdUICharacter.Instance.ShowTip(TipType.TempItem, tempId); return; } } if (itemid == "") { if (panel == PanelType.Panel_Equip) { if (sdGameItemMgr.Instance.GetBagItemByEquipPos(index, true).Count == 0) { sdUICharacter.Instance.ShowMsgLine(sdConfDataMgr.Instance().GetShowStr("NoEquip"), Color.yellow); return; } //sdUICharacter.Instance.ShowBag(); sdUICharacter.Instance.SetSelectWndNeedPos(index); sdUICharacter.Instance.ShowItemSelectWnd(SelectType.EquipSelect); sdUICharacter.Instance.AddEventOnSelectWnd(new EventDelegate(sdUICharacter.Instance.OnChangeEquip)); //sdSlotMgr.Instance.GotoEquip(index); } return; } if (!enable) { return; } if (panel == PanelType.Panel_Skill_Active || panel == PanelType.Panel_Skill_Passive) { Hashtable item = sdConfDataMgr.Instance().GetSkill(itemid); sdGameSkill skill = sdGameSkillMgr.Instance.GetSkill(int.Parse(itemid)); TipType type = (panel == PanelType.Panel_Skill_Active)?TipType.Skill:TipType.PassiveSkill; sdUICharacter.Instance.ShowTip(type, itemid); return; } if (panel == PanelType.Panel_Treasure) { return; sdUICharacter.Instance.ShowTip(TipType.TempItem, itemid); return; } if (panel == PanelType.Panel_Jiesuan) { if (jiesuanType == JiesuanSlotType.Pet) { Hashtable info = sdConfDataMgr.Instance().GetItemById(itemid); if (info == null) { info = itemInfo; } if (info != null) { sdUIPetControl.Instance.ActivePetSmallTip(null, int.Parse(itemInfo["Expend"].ToString()), 0, 1); } return; } else if (jiesuanType == JiesuanSlotType.PetItem) { sdGamePetItem petItem = sdNewPetMgr.Instance.getPetItem(ulong.Parse(itemid)); if (petItem != null) { sdUIPetControl.Instance.ActivePetEquipTip(null, petItem.templateID); } return; } } if (panel == PanelType.Panel_ItemSelect) { if (!isSelected) { if (sdUICharacter.Instance.AddSelectItem(itemid)) { isSelected = true; if (gameObject.transform.FindChild("bgselect") != null) { gameObject.transform.FindChild("bgselect").GetComponent <UISprite>().spriteName = "g"; } } } else { isSelected = false; if (gameObject.transform.FindChild("bgselect") != null) { gameObject.transform.FindChild("bgselect").GetComponent <UISprite>().spriteName = ""; } sdUICharacter.Instance.RemoveSelectItem(itemid); } return; } if (panel == PanelType.Panel_Bag) { sdGameItem item = sdGameItemMgr.Instance.getItem(ulong.Parse(itemid)); if (item != null) { item.isNew = false; } SetNew(false); sdRoleWnd wnd = sdUICharacter.Instance.GetRoleWnd().GetComponent <sdRoleWnd>(); if (wnd != null) { if (wnd.otherBtn.isActive) { bool hasNew = false; Hashtable itemTable = sdGameItemMgr.Instance.GetAllItem((int)PanelType.Panel_Bag, (int)ItemFilter.Other); foreach (DictionaryEntry info in itemTable) { sdGameItem temp = info.Value as sdGameItem; if (temp.isNew) { hasNew = true; break; } } if (!hasNew) { wnd.otherBtn.HideRedTip(); } } if (wnd.armorBtn.isActive) { bool hasNew = false; Hashtable itemTable = sdGameItemMgr.Instance.GetAllItem((int)PanelType.Panel_Bag, (int)ItemFilter.Armor); foreach (DictionaryEntry info in itemTable) { sdGameItem temp = info.Value as sdGameItem; if (temp.isNew) { hasNew = true; break; } } if (!hasNew) { wnd.armorBtn.HideRedTip(); } } if (wnd.weaponBtn.isActive) { bool hasNew = false; Hashtable itemTable = sdGameItemMgr.Instance.GetAllItem((int)PanelType.Panel_Bag, (int)ItemFilter.Weapon); foreach (DictionaryEntry info in itemTable) { sdGameItem temp = info.Value as sdGameItem; if (temp.isNew) { hasNew = true; break; } } if (!hasNew) { wnd.weaponBtn.HideRedTip(); } } if (wnd.shipinBtn.isActive) { bool hasNew = false; Hashtable itemTable = sdGameItemMgr.Instance.GetAllItem((int)PanelType.Panel_Bag, (int)ItemFilter.Shipin); foreach (DictionaryEntry info in itemTable) { sdGameItem temp = info.Value as sdGameItem; if (temp.isNew) { hasNew = true; break; } } if (!hasNew) { wnd.shipinBtn.HideRedTip(); } } } } sdUICharacter.Instance.ShowTip(TipType.Item, itemid); }
protected virtual void OnPress(bool isDown) { if (type == ShortCutType.Type_Skill && id == 1001 && !sdGameLevel.instance.AutoMode) { if (isDown) { needspell = true; } else { needspell = false; } } if (!isDown) { if (type == ShortCutType.Type_Skill && isBig) { gameObject.transform.localScale /= 1.2f; isBig = false; } return; } if (type == ShortCutType.Type_Skill) { if (isDown) { GPUSH_API.Vibrate(25); } if (!isBig) { gameObject.transform.localScale *= 1.2f; isBig = true; } // CD尚未结束,则直接返回aa if (maxCd > 0 && bIsShowCd) { return; } // 检查场景和主角战斗控制器aa if (sdGameLevel.instance == null) { return; } FingerControl kFingerControl = sdGameLevel.instance.GetFingerControl();; if (kFingerControl == null) { return; } // 自动打怪模式下:自动寻路攻击最近的目标aa int iSkillID = (int)id / 100; if (sdGameLevel.instance.AutoMode && iSkillID != 1002) { if (!kFingerControl.AttackNearest(iSkillID)) { return; } } // 自动打怪模式下:调整方向aa if (sdGameLevel.instance.AutoMode) { kFingerControl.AdjustDirection(iSkillID); } // 释放技能(自动模式下普通攻击不再强制施放)aa if (!sdGameLevel.instance.AutoMode || iSkillID != 1001) { sdMainChar mainChar = sdGameLevel.instance.mainChar; if (mainChar != null) { sdGameSkill skill = sdGameSkillMgr.Instance.GetSkill((int)id); if (skill != null) { int error = -1; if (!mainChar.CastSkill(skill.classId, ref error)) { string msg = string.Format("Error_{0}", error); sdUICharacter.Instance.ShowMsgLine(sdConfDataMgr.Instance().GetShowStr(msg), Color.yellow); } } else { int error = -1; if (!mainChar.CastSkill((int)id, ref error)) { string msg = string.Format("Error_{0}", error); sdUICharacter.Instance.ShowMsgLine(sdConfDataMgr.Instance().GetShowStr(msg), Color.yellow); } } //sdSkill skill = mainChar.skillTree.getSkill((int)id); //if (skill != null) //{ // skill.spell(mainChar); //} } } } else if (type == ShortCutType.Type_Pet) { } else if (type == ShortCutType.Type_PetSkill) { } }