Exemple #1
0
        static int RealAddBuff(NPC n, int type, int time, bool quiet = false)
        {
            if (n.buffImmune[type])
                return -1;

            if (!quiet)
            {
                if (Main.netMode == 1)
                    NetMessage.SendData(53, -1, -1, String.Empty, n.whoAmI, type, time);
                else if (Main.netMode == 2)
                    NetMessage.SendData(54, -1, -1, String.Empty, n.whoAmI);
            }
            for (int i = 0; i < 5; i++)
                if (n.buffType[i] == type)
                {
                    if (n.buffTime[i] < time)
                        n.buffTime[i] = time;

                    return -1;
                }

            int slot = -1;
            do
            {
                int buffSeek = -1;
                for (int j = 0; j < 5; j++)
                    if (!Main.debuff[n.buffType[j]])
                    {
                        buffSeek = j;
                        break;
                    }

                if (buffSeek == -1)
                    return -1;

                for (int k = buffSeek; k < 5; k++)
                    if (n.buffType[k] == 0)
                    {
                        slot = k;
                        break;
                    }

                if (slot == -1)
                    n.DelBuff(buffSeek);

            } while (slot == -1);

            n.buffType[slot] = type;
            n.buffTime[slot] = time;

            return slot;
        }