Exemplo n.º 1
0
        // Выход игрока с арены
        void exitp(PlayerSession session)
        {
            switch (_config.settingsGame.alloweddeath)
            {
            case true:
                if (session.WorldPlayerEntity == null)
                {
                    deathsForSpawn.Add((ulong)session.SteamId);
                    return;
                }
                break;

            case false:
                if (session.WorldPlayerEntity == null)
                {
                    Send(session, Msg("GGDeath", session.SteamId.ToString()));
                    return;
                }
                break;
            }
            session.WorldPlayerEntity.gameObject.GetComponent <NoEffect>().TryDestroy();

            InvClear(session);
            GGPlayer par = FindGP(session).FirstOrDefault();

            Teleport(session, par.homeposition);
            stats(session, 10f);
            if (_config.settingsGame.inventorysave)
            {
                refaundinventory(session);
            }
        }
Exemplo n.º 2
0
        void DoAfterDeath(PlayerSession session, PlayerSession killersession)
        {
            GGPlayer par = FindGP(killersession).FirstOrDefault();

            par.kills++;
            stats(session, 2f);
            if (_config.settingsGame.noticekill)
            {
                notice(killersession, string.Format(Msg("GG_Notice_Kills", killersession.SteamId.ToString()), par.kills, _config.game.kol));
            }
            int step = par.getStep(_config.game.kol);

            if (step >= _config.game.weapons.Count())
            {
                StopGGW(killersession);
                return;
            }
            InvClear(killersession);
            givew(killersession, step);
            Broadcast(string.Format(Msg("GG_A_NextWeapon"), killersession.Identity.Name, _config.game.weapons[step].itemname));
            if (_config.game.warlast && step == _config.game.weapons.Count() - 1)
            {
                Broadcast(Msg("GG_A_LastWeapon").Replace("{0}", killersession.Identity.Name));
            }
            InvClear(session);
        }
Exemplo n.º 3
0
        void OnPlayerRespawned(PlayerSession session, Vector3 pos)
        {
            if (deathsForSpawn.Contains((ulong)session.SteamId))
            {
                deathsForSpawn.Remove((ulong)session.SteamId);
                exitp(session);
            }

            if (!arenastart)
            {
                return;
            }

            var fnd = FindGP(session);

            if (fnd.Count() == 0)
            {
                return;
            }

            var      itemmanager = Singleton <GlobalItemManager> .Instance;
            GGPlayer par         = fnd.First();

            var ehs  = session.WorldPlayerEntity.GetComponent <EquippedHandlerServer>();
            int step = par.getStep(_config.game.kol);

            givew(session, step);
            Teleport(session, GGSpawn());
        }
Exemplo n.º 4
0
        void refaundinventory(PlayerSession session)
        {
            PlayerInventory inv         = session.WorldPlayerEntity.GetComponent <PlayerInventory>();
            GGPlayer        par         = FindGP(session).First();
            var             itemmanager = Singleton <GlobalItemManager> .Instance;
            var             amanager    = Singleton <AlertManager> .Instance;

            foreach (var fd in par.inventory)
            {
                ItemObject item = itemmanager.CreateItem(fd.Item.Generator);
                inv.SetSlot(fd.slot, fd.Item);
                amanager.ItemReceivedServer(item, item.StackSize, session.Player);
            }
        }
Exemplo n.º 5
0
        void OnPlayerDisconnected(PlayerSession session)
        {
            if (deathsForSpawn.Contains((ulong)session.SteamId))
            {
                deathsForSpawn.Remove((ulong)session.SteamId);
            }

            var prov = FindGP(session).Count();

            if (prov == 0)
            {
                return;
            }

            InvClear(session);
            Server.Broadcast(Msg("GGUNREGBroadcast").Replace("{0}", session.Identity.Name));

            GGPlayer par = FindGP(session).FirstOrDefault();

            Teleport(session, par.homeposition);
            stats(session, 10f);
            gplayers.Remove(par);
        }
Exemplo n.º 6
0
        ///<summary>
        /// Выдача приза
        ///</summary>
        ///<param name="session"></param>
        void GivePrice(PlayerSession session)
        {
            GGPlayer par = FindGP(session).FirstOrDefault();
            var      itemmanager = Singleton <GlobalItemManager> .Instance;
            string   x = string.Empty; int b = 1;

            if (!_config.prizeC.randprize)
            {
                foreach (var it in _config.prizeC.prizes)
                {
                    x = it.itemid;
                    b = it.itemcount;
                    GiveItem(session, x, b);
                }
            }
            else
            {
                var it = _config.prizeC.prizes[random.Next(0, _config.prizeC.prizes.Count - 1)];
                x = it.itemid;
                b = it.itemcount;
                GiveItem(session, x, b);
            }
        }
Exemplo n.º 7
0
        void JoinEvent(PlayerSession session, string command, string[] args)
        {
            if (!arenastart)
            {
                Send(session, Msg("GGDisable", session.SteamId.ToString()));
                return;
            }
            if (args.Length == 0)
            {
                Send(session, Msg("GGHelp", session.SteamId.ToString()));
                return;
            }
            if (place.MaxPlayer != 0 && gplayers.Count >= place.MaxPlayer)
            {
                Send(session, Msg("GGMaxPlayer", session.SteamId.ToString()));
                return;
            }

            var prov = FindGP(session).Count();

            if (args[0].ToLower() == "reg")
            {
                if (prov == 0)
                {
                    if (!trygg(session, "reg"))
                    {
                        return;
                    }
                    gplayers.Add(new GGPlayer(session, _config.settingsGame.inventorysave));
                    if (_config.settingsGame.noEffect)
                    {
                        session.WorldPlayerEntity.gameObject.AddComponent <NoEffect>();
                    }
                    InvClear(session);
                    stats(session, 2f);
                    Heal(session);
                    Vector3 pos = place.spawnpositions[random.Next(0, place.spawnpositions.Count - 1)];
                    Teleport(session, pos);
                    givew(session, 0);
                    Send(session, Msg("GGREGSendMSG", session.SteamId.ToString()));
                    Server.Broadcast(Msg("GGREGBroadcast").Replace("{0}", session.Identity.Name).Replace("{count}", gplayers.Count.ToString()));
                    return;
                }
                else
                {
                    Send(session, Msg("GGIn", session.SteamId.ToString()));
                    return;
                }
            }
            if (args[0].ToLower() == "unreg")
            {
                if (prov == 1)
                {
                    if (!trygg(session, "unreg"))
                    {
                        return;
                    }
                    Send(session, Msg("GGUNREGSendMSG", session.SteamId.ToString()));
                    Server.Broadcast(Msg("GGUNREGBroadcast").Replace("{0}", session.Identity.Name));
                    GGPlayer par = FindGP(session).FirstOrDefault();
                    exitp(session);
                    gplayers.Remove(par);
                    return;
                }
                else
                {
                    Send(session, Msg("GGOut", session.SteamId.ToString()));
                    return;
                }
            }

            Send(session, Msg("GGHelp", session.SteamId.ToString()));
        }