示例#1
0
        public static void Encode(this PartyData data, IPacket p)
        {
            var members = new PartyMemberData[6];

            for (var i = 0; i < 6; i++)
            {
                members[i] = i < data.Members.Count
                    ? data.Members[i]
                    : new PartyMemberData();
            }

            foreach (var member in members)
            {
                p.Encode <int>(member.CharacterID);
            }
            foreach (var member in members)
            {
                p.EncodeFixedString(member.Name, 13);
            }
            foreach (var member in members)
            {
                p.Encode <int>(member.Job);
            }
            foreach (var member in members)
            {
                p.Encode <int>(member.Level);
            }
            foreach (var member in members)
            {
                p.Encode <int>(member.ChannelID);
            }

            p.Encode <int>(data.BossCharacterID);

            foreach (var member in members)
            {
                p.Encode <int>(member.FieldID);
            }

            // TODO: town portal
            foreach (var member in members)
            {
                p.Encode <int>(999999999); // m_dwTownID
                p.Encode <int>(999999999); // m_dwFieldID
                p.Encode <int>(0);         // m_nSKillID
                p.Encode <int>(0);         // m_ptFieldPortal x
                p.Encode <int>(0);         // m_ptFieldPortal y
            }

            foreach (var member in members)
            {
                p.Encode <int>(0); // aPQReward
            }
            foreach (var member in members)
            {
                p.Encode <int>(0); // aPQRewardType
            }
            p.Encode <int>(0);     // dwPQRewardMobTemplateID
            p.Encode <int>(0);     // bPQReward
        }
示例#2
0
	void Awake()
	{
		var tmp = new EnterArenaData();
		var ttmp = new ArenaStateData ();
		var tttmp = new PartyMemberData ();
		var ttttmp = new List<ArenaStateData> ();
		var tttttmp = new List<bool> ();
	}
示例#3
0
    public void LoadData(PartyMemberData data)
    {
        CharacterName = data.CharacterName;
        Portrait      = data.Portrait;
        PortraitColor = data.PortraitColor;
        AnimationSet  = data.AnimationSet;

        Stats = (Statblock)GetNode("Statblock");
        Stats.LoadData(data);

        GUIManager.UpdateFor(this);
    }
 public void ReloadNew()
 {
     Populate(0);
     foreach (PartyMemberData activePrimaryPartyMember in UISingletonHudWindow <UIPartyManager> .Instance.GetActivePrimaryPartyMembers())
     {
         if (activePrimaryPartyMember != null && !UISingletonHudWindow <UIPartyManager> .Instance.PendingToBench.Contains(activePrimaryPartyMember))
         {
             ActivateClone <UIPartyManagementIcon>().SetPartyMember(activePrimaryPartyMember);
         }
     }
     for (int i = 0; i < UISingletonHudWindow <UIPartyManager> .Instance.PendingToParty.Count; i++)
     {
         PartyMemberData partyMemberData = UISingletonHudWindow <UIPartyManager> .Instance.PendingToParty[i];
         if (partyMemberData != null)
         {
             ActivateClone <UIPartyManagementIcon>().SetPartyMember(partyMemberData);
         }
     }
     PartyCount.text = IntUtils.ToStringLocal(base.ActiveChildCount) + "/6";
 }
示例#5
0
    protected void LoadPartyMemberDataFromTextFile()
    {
        string text = dataFile.text;

        string name    = "Default";
        int    lv      = 1;
        int    nextExp = 1;
        int    hp      = 10;
        int    mp      = 10;
        int    atk     = 1;
        int    def     = 1;
        int    spd     = 1;

        int    startPos = 0;
        int    endPos   = 0;
        string field    = null;
        string value    = null;

        while (endPos < text.Length)
        {
            endPos   = text.IndexOf(" ", startPos);
            field    = text.Substring(startPos, endPos - startPos);
            startPos = endPos + 1;

            endPos = text.IndexOf("\n", startPos);
            if (endPos == -1)
            {
                endPos = text.Length;
            }

            value = text.Substring(startPos, endPos - startPos);
            value = value.Trim();

            switch (field)
            {
            case "name":
                name = value;
                break;

            case "icon":
                iconTexture = Resources.Load <Texture2D>(IconFolderPath + value);
                if (iconTexture == null)
                {
                    throw new UnityException("Failed to load icon from \"" + IconFolderPath + value + "\"");
                }
                break;

            case "nextExp":
                if (!int.TryParse(value, out nextExp))
                {
                    throw new UnityException("Fail to read \"nextExp\" from \"" + DataFolderPath + partyMemberName + "\"");
                }
                break;

            case "lv":
                if (!int.TryParse(value, out lv))
                {
                    throw new UnityException("Fail to read \"lv\" from \"" + DataFolderPath + PartyMemberName + "\"");
                }
                break;

            case "hp":
                if (!int.TryParse(value, out hp))
                {
                    throw new UnityException("Fail to read \"hp\" from \"" + DataFolderPath + PartyMemberName + "\"");
                }
                break;

            case "mp":
                if (!int.TryParse(value, out mp))
                {
                    throw new UnityException("Fail to read \"mp\" from \"" + DataFolderPath + PartyMemberName + "\"");
                }
                break;

            case "atk":
                if (!int.TryParse(value, out atk))
                {
                    throw new UnityException("Fail to read \"atk\" from \"" + DataFolderPath + PartyMemberName + "\"");
                }
                break;

            case "def":
                if (!int.TryParse(value, out def))
                {
                    throw new UnityException("Fail to read \"def\" from \"" + DataFolderPath + PartyMemberName + "\"");
                }
                break;

            case "spd":
                if (!int.TryParse(value, out spd))
                {
                    throw new UnityException("Fail to read \"spd\" from \"" + DataFolderPath + PartyMemberName + "\"");
                }
                break;
            }

            startPos = endPos + 1;
        }

        data = new PartyMemberData(name, lv, nextExp, hp, mp, atk, def, spd);
    }
示例#6
0
	public void AcceptPartyInvite(int viewID, PhotonMessageInfo info)
	{
		if(PlayerManager.Instance.partyMembers.Count >= GeneralData.maxPartySize)
		{
			return;
		}
		//failsafe
		if(PlayerManager.Instance.partyMembers.Count == 0)
		{
			PartyMemberData pmd = new PartyMemberData();
			pmd.viewID = PlayerManager.Instance.avatarPhotonView.viewID;
			pmd.playerID = PhotonNetwork.player.ID;
			PlayerManager.Instance.partyMembers.Add(pmd);
			Debug.Log("adding myself as party member number 1");
		}

		PartyMemberData pmdd = new PartyMemberData ();
		pmdd.viewID = viewID;
		pmdd.playerID = PhotonView.Find(viewID).ownerId;
		PlayerManager.Instance.partyMembers.Add(pmdd);
		Debug.Log("added new party member");
		UpdatePartyMemberList();
	}
示例#7
0
	public void RequestArenaEntry(string arenaName, int enemyID, bool solo)
	{
		int newid = PhotonNetwork.AllocateViewID();
		EnterArenaData data = new EnterArenaData();
		data.EnemyID = enemyID;
		data.NewViewID = newid;
		Debug.Log(data.NewViewID);
		
		if(solo)
		{
			PartyMemberData pmd = new PartyMemberData();
			pmd.viewID = PlayerManager.Instance.avatarPhotonView.viewID;
			pmd.playerID = PhotonNetwork.player.ID;
			data.partyList.Add(pmd);
			data.PartyLeaderID = PhotonNetwork.player.ID;
		}
		else
		{
			if(PlayerManager.Instance.partyMembers.Count == 0)
			{
				PartyMemberData pmdd = new PartyMemberData();
				pmdd.viewID = PlayerManager.Instance.avatarPhotonView.viewID;
				pmdd.playerID = PhotonNetwork.player.ID;
				data.partyList.Add(pmdd);
				data.PartyLeaderID = PhotonNetwork.player.ID;
			}
			else if(PlayerManager.Instance.partyMembers.Count > 0)
			{
				data.partyList = PlayerManager.Instance.partyMembers;
				data.PartyLeaderID = PhotonNetwork.player.ID;
			}
		}
		
		BinaryFormatter b = new BinaryFormatter();
		MemoryStream m = new MemoryStream();
		b.Serialize(m, data);
		
		myPhotonView.RPC("GetAvailableArena", PhotonTargets.MasterClient, arenaName, m.GetBuffer());
	}
示例#8
0
        public bool AddToPartyNew(Guid newPartyMemberGuid, PartyMemberType partyMemberType, PartyMemberStatus status, PartyMemberData existingPartyMemberData, AddToPartyFlags flags)
        {
            if (newPartyMemberGuid == Guid.Empty)
            {
                Debug.LogError("Failed to add party member: Empty Guid.");
                return(false);
            }
            if (m_guidToPartyMemberDataDictionary.ContainsKey(newPartyMemberGuid))
            {
                return(false);
            }
            if (!AllTimePartyMembers.Contains(newPartyMemberGuid))
            {
                AllTimePartyMembers.Add(newPartyMemberGuid);
            }
            if (partyMemberType == PartyMemberType.Primary && IsActiveStatus(status))
            {
                if ((flags & AddToPartyFlags.AllowRedirectToBench) != 0 && GodChallengeGameData.AnyEnabledChallenge(GodChallengeGameData.ProhibitPartyMembersPredicate))
                {
                    return(false);
                }
                if (m_activePrimaryPartyMembers.Count >= 6)
                {
                    Debug.LogError("Trying to add a primary party member to the party when already at max primary party members limit!");
                    return(false);
                }
            }
            PartyMemberData partyMemberData = existingPartyMemberData;

            if (partyMemberData == null)
            {
                partyMemberData = new PartyMemberData();
            }
            GameObject objectByID = InstanceID.GetObjectByID(newPartyMemberGuid);

            if ((bool)objectByID)
            {
                PartyMember partyMember = (!(bool)objectByID) ? null : objectByID.GetComponent <PartyMember>();
                if (partyMember == null)
                {
                    partyMember = ResourceManager.AddComponent <PartyMember>(objectByID);
                }
                AIController component = objectByID.GetComponent <AIController>();
                if (component != null)
                {
                    component.AssignPartyMemberBehavior();
                }
                partyMember.PartyMemberData = partyMemberData;
            }
            if (!(bool)objectByID && partyMemberData.MemberStatus == PartyMemberStatus.NotInParty)
            {
                Debug.LogError("Trying to add party member with no game object reference! Guid: " + newPartyMemberGuid.ToString());
                return(false);
            }
            if (!(bool)objectByID && status == PartyMemberStatus.Active)
            {
                status = PartyMemberStatus.InactiveAvailable;
            }
            partyMemberData.InitializePartyMemberData(newPartyMemberGuid, partyMemberType);
            m_guidToPartyMemberDataDictionary.Add(newPartyMemberGuid, partyMemberData);
            if (existingPartyMemberData != null)
            {
                RestorePartyMemberStatus(newPartyMemberGuid, status);
            }
            else
            {
                SetPartyMemberStatus(newPartyMemberGuid, status, flags);
            }
            return(true);
        }