// Выход игрока с арены 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); } }
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); }
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()); }
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); } }
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); }
///<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); } }
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())); }