コード例 #1
0
 private static void ResetScore(Player player)
 {
     player.Kills  = 0;
     player.Deaths = 0;
     TextDrawPlayer.UpdateTdStats(player);
     BasePlayer.SendClientMessageToAll(Color.Yellow, $"** {player.Name} ha reseteado su score con {Color.Red}/re");
 }
コード例 #2
0
    protected override void OnPlayerRequestClass(BasePlayer sender, RequestClassEventArgs e)
    {
        var player = sender as Player;

        if (player.IsStateUser == StateUser.Kill)
        {
            player.IsStateUser = StateUser.None;
            player.SetSpawnInfo(0, 0, new Vector3(0, 0, 0), 0);
            player.Spawn();
            return;
        }

        /* Check if the player has died before entering class selection. */
        if (player.IsDead)
        {
            Player.Remove(player);
            TextDrawGlobal.UpdateCountUsers();
            TextDrawGlobal.Hide(player);
            TextDrawPlayer.Hide(player);
        }

        player.Color            = ColorWhite;
        player.Team             = BasePlayer.NoTeam;
        player.IsSelectionClass = true;
        player.Position         = new Vector3(-1389.137451, 3314.043701, 20.493314);
        player.CameraPosition   = new Vector3(-1399.776000, 3310.254150, 21.525623);
        player.SetCameraLookAt(new Vector3(-1395.072143, 3311.873291, 22.027709));
        player.Angle      = 111.68f;
        player.Interior   = 0;
        player.PlayerTeam = (e.ClassId == 0) ? (TeamAlpha) : (TeamBeta);
        player.PlayerTeam.GetMessageTeamEnable(out var msg);
        player.GameText(msg, 999999999, 3);
        player.PlaySound(1132);
        player.IsDead = false;
    }
コード例 #3
0
    protected override void OnPlayerDied(BasePlayer sender, DeathEventArgs e)
    {
        base.OnPlayerDied(sender, e);
        var player = sender as Player;
        var killer = e.Killer as Player;

        player.IsDead = true;
        player.UpdateData("totalDeaths", ++player.Data.TotalDeaths);
        ++player.Deaths;
        ++player.PlayerTeam.Deaths;
        player.KillingSprees = 0;
        BasePlayer.SendDeathMessageToAll(killer, player, e.DeathReason);
        if (player.IsStateUser == StateUser.Force)
        {
            player.IsStateUser = StateUser.Kill;
        }

        if (player.IsCapturedFlag())
        {
            player.PlayerTeam.TeamRival.Drop(player, killer);
        }

        if (killer != null)
        {
            ++killer.PlayerTeam.Kills;
            killer.UpdateData("totalKills", ++killer.Data.TotalKills);
            ++killer.Kills;
            ++killer.Adrenaline;
            ++killer.KillingSprees;
            killer.ShowKillingSprees();
            killer.SetNextRank();
            TextDrawPlayer.UpdateTdStats(killer);
        }
        TextDrawPlayer.UpdateTdStats(player);
    }
コード例 #4
0
    protected override void OnPlayerDisconnected(BasePlayer sender, DisconnectEventArgs e)
    {
        base.OnPlayerDisconnected(sender, e);
        var player = sender as Player;

        BasePlayer.SendDeathMessageToAll(null, player, Weapon.Disconnect);
        if (player.IsCapturedFlag())
        {
            player.Drop();
        }
        if (player.Team != BasePlayer.NoTeam)
        {
            Player.Remove(player);
            TextDrawGlobal.UpdateCountUsers();
        }
        TextDrawPlayer.Destroy(player);
        TextDrawGlobal.Hide(player);
        Player.RemoveLevels(player);
        if (player.AFK)
        {
            Player.UserAFKs.Remove(new UserAFK()
            {
                Player = player
            });
        }
        player.UpdateData("lastConnection", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
    }
コード例 #5
0
 public void UpdateAdrenaline(int won_adrenaline, string reason)
 {
     if (adrenaline < 100)
     {
         Adrenaline += won_adrenaline;
         SendClientMessage(Color.Pink, $"[!]{Color.White} Obtuviste +{won_adrenaline} de {Color.Pink}Adrenalina {Color.White}por {reason}.");
         TextDrawPlayer.UpdateTdStats(this);
     }
 }
コード例 #6
0
    protected override void OnPlayerRequestSpawn(BasePlayer sender, RequestSpawnEventArgs e)
    {
        base.OnPlayerRequestSpawn(sender, e);
        var player = sender as Player;

        if (player.Account == AccountState.Login)
        {
            player.SendClientMessage(Color.Red, "Error: Debes iniciar sesión.");
            e.PreventSpawning = true;
            return;
        }
        if (player.Account == AccountState.Register)
        {
            player.SendClientMessage(Color.Red, "Error: Debes registrarte.");
            e.PreventSpawning = true;
            return;
        }
        if (CurrentMap.IsLoading)
        {
            e.PreventSpawning = true;
            player.SendClientMessage(Color.Red, $"Error: En {CurrentMap.MAX_TIME_LOADING} segundos se cargará el próximo mapa.");
            return;
        }
        if (player.PlayerTeam.GetMessageTeamEnable(out var msg))
        {
            e.PreventSpawning = true;
            player.GameText(msg, 999999999, 3);
            return;
        }
        player.StopAudioStream();
        // player.PlayAudioStream("https://dl.dropboxusercontent.com/s/mzt9qnigsh7pdfs/soundtrack.mp3");
        player.IsSelectionClass = false;
        player.GameText("_", 1000, 4);
        Player.Add(player);
        BasePlayer.SendClientMessageToAll($"{player.PlayerTeam.OtherColor}[Team {player.PlayerTeam.NameTeam}]: {player.Name} se añadió al equipo {player.PlayerTeam.NameTeam}.");
        player.SendClientMessage($"{Color.Pink}[!] {Color.White}Captura la bandera del equipo contrario.");
        if (player.PlayerTeam.Id == TeamID.Alpha)
        {
            player.SendClientMessage($"{Color.Pink}[!] {Color.White}Guíate con el {TeamBeta.OtherColor}ícono Azul {Color.White}que aparece en el mapa radar.");
        }
        else
        {
            player.SendClientMessage($"{Color.Pink}[!] {Color.White}Guíate con el {TeamAlpha.OtherColor}ícono Rojo {Color.White}que aparece en el mapa radar.");
        }
        player.SendClientMessage($"{Color.Pink}[!] {Color.White}Luego lleva la bandera a tu base.");
        if (player.PlayerTeam.Flag.PlayerCaptured != null)
        {
            player.SendClientMessage($"{Color.Pink}[!] {Color.White}{player.PlayerTeam.Flag.PlayerCaptured.Name} capturó la bandera de tu equipo, debes recuperarla.");
        }
        TextDrawGlobal.Show(player);
        TextDrawGlobal.UpdateCountUsers();
        TextDrawPlayer.UpdateTdStats(player);
        TextDrawPlayer.UpdateTdRank(player);
        TextDrawPlayer.Show(player);
        TextDrawEntry.Hide(player);
    }
コード例 #7
0
 public void SetForceClass()
 {
     TextDrawGlobal.Hide(this);
     TextDrawPlayer.Hide(this);
     TextDrawEntry.Show(this);
     ForceClassSelection();
     ToggleSpectating(true);
     ToggleSpectating(false);
     IsStateUser = StateUser.Force;
 }
コード例 #8
0
 public void CreateTextDraw()
 {
     THealth = new PlayerTextDraw(this);
     TArmour = new PlayerTextDraw(this);
     Stats   = new PlayerTextDraw(this);
     TdRank  = new PlayerTextDraw(this);
     TextDrawPlayer.CreateTDHealth(THealth);
     TextDrawPlayer.CreateTDArmour(TArmour);
     TextDrawPlayer.CreateTDStats(Stats);
     TextDrawPlayer.CreateTDRank(TdRank);
 }
コード例 #9
0
 public void SetNextRank()
 {
     if (Data.LevelGame != Rank.MAX_RANK && Data.TotalKills >= Rank.GetRequiredKills(Data.LevelGame + 1))
     {
         UpdateData("levelGame", ++Data.LevelGame);
         SendClientMessage(Color.Red, $"[Rank]: {Color.Orange}Subiste al rango {Rank.GetRankLevel(Data.LevelGame)} {Color.Red}¡Felicidades!");
         SendClientMessage(Color.Red, $"[!]: {Color.White} Ganaste +100 de Adrenalina + Chaleco + Regeneración de salud.");
         Adrenaline = 100;
         Armour     = 100;
         Health     = 100;
         TextDrawPlayer.UpdateTdRank(this);
     }
 }
コード例 #10
0
    private static void SetAdrenaline(Player player, int playerid, int adrenaline)
    {
        if (player.IsAdminLevel(3))
        {
            return;
        }
        if (adrenaline < 0 || adrenaline > 100)
        {
            player.SendClientMessage(Color.Red, "Error: La adrenalina debe estar entre el rango de 0 a 100.");
            return;
        }
        Player player1 = Player.Find(player, playerid);

        player1.Adrenaline = adrenaline;
        TextDrawPlayer.UpdateTdStats(player1);
        player.SendClientMessage(Color.Yellow, $"* Le diste al jugador {player1.Name} {adrenaline}%% de adrenalina.");
        player1.SendClientMessage(Color.Yellow, $"* {player.Name} te estableció la adrenalina a {adrenaline}%%.");
        SendMessageToAdmins(player, "setadre");
    }
コード例 #11
0
    private static void SetKills(Player player, int playerid, int kills)
    {
        if (player.IsAdminLevel(3))
        {
            return;
        }
        if (kills < 0)
        {
            player.SendClientMessage(Color.Red, "Error: Los kills no pueden ser negativo.");
            return;
        }
        Player player1 = Player.Find(player, playerid);

        player1.Kills = kills;
        TextDrawPlayer.UpdateTdStats(player1);
        player.SendClientMessage(Color.Yellow, $"* Le diste al jugador {player1.Name} {kills} kills.");
        player1.SendClientMessage(Color.Yellow, $"* {player.Name} te estableció los kills a {kills}.");
        SendMessageToAdmins(player, "setkills");
    }