Example #1
0
        public static void Load_PartyInfo(ByteBuffer buff)
        {
            Globals.gamedata.PartyLeader = buff.ReadUInt32();
            Globals.gamedata.PartyLoot = buff.ReadUInt32();
            uint cnt = buff.ReadUInt32();

            Globals.PartyLock.EnterWriteLock();
            try
            {
                Globals.gamedata.PartyMembers.Clear();
                Globals.gamedata.PartyCount = cnt;

                for (uint i = 0; i < cnt; i++)
                {
                    PartyMember pmem = new PartyMember();
                    pmem.Load(buff);

                    if (Globals.gamedata.PartyMembers.ContainsKey(pmem.ID))
                    {
                        Globals.gamedata.PartyMembers[pmem.ID] = pmem;
                    }
                    else
                    {
                        Globals.gamedata.PartyMembers.Add(pmem.ID, pmem);
                    }
                }
            }
            finally
            {
                Globals.PartyLock.ExitWriteLock();
            }

            if (Globals.gamedata.CurrentScriptState == ScriptState.Running)
            {
                ScriptEvent sc_ev = new ScriptEvent();
                sc_ev.Type = EventType.JoinParty;
                ScriptEngine.SendToEventQueue(sc_ev);
            }
        }
Example #2
0
        public static void Add_PartyInfo(ByteBuffer buff)
        {
            buff.ReadUInt32();
            buff.ReadUInt32();

            PartyMember pmem = new PartyMember();
            pmem.Load(buff);

            Globals.PartyLock.EnterWriteLock();
            try
            {
                if (Globals.gamedata.PartyMembers.ContainsKey(pmem.ID))
                {
                    Globals.gamedata.PartyMembers[pmem.ID] = pmem;
                }
                else
                {
                    Globals.gamedata.PartyMembers.Add(pmem.ID, pmem);
                    Globals.gamedata.PartyCount++;
                }
            }
            finally
            {
                Globals.PartyLock.ExitWriteLock();
            }
        }