示例#1
0
        private void FixedUpdate()
        {
            if (Uconomy_Essentials.Instance.Configuration.Instance.PayTime && (DateTime.Now - this.lastpaid).TotalSeconds >= Uconomy_Essentials.Instance.Configuration.Instance.PayTimeSeconds)
            {
                this.lastpaid = DateTime.Now;
                decimal pay = 0.0m;
                Uconomy_Essentials.Instance.PayGroups.TryGetValue("all", out pay);
                string paygroup = "Player";
                if (pay == 0.0m)
                {
                    // We are checking for the different groups as All is not set.
                    if (this.Player.IsAdmin && Uconomy_Essentials.Instance.PayGroups.ContainsKey("admin"))
                    {
                        Uconomy_Essentials.Instance.PayGroups.TryGetValue("admin", out pay);
                        paygroup = "admin";
                        if (pay == 0.0m)
                        {
                            Logger.Log(Uconomy_Essentials.Instance.Translate("unable_to_pay_group_msg", new object[] { this.Player.CharacterName, "admin" }));
                            return;
                        }
                    }
                    else
                    {
                        // They aren't admin so we'll just go through like groups like normal.

                        List <RocketPermissionsGroup> plgroups = R.Permissions.GetGroups(this.Player, true);
                        decimal pay2 = 0.0m;
                        foreach (RocketPermissionsGroup s in plgroups)
                        {
                            Logger.Log(s.Id);
                            Uconomy_Essentials.Instance.PayGroups.TryGetValue(s.Id, out pay2);
                            Logger.Log(pay2.ToString());
                            if (pay2 > pay)
                            {
                                pay      = pay2;
                                paygroup = s.Id;
                            }
                        }
                        if (pay == 0.0m)
                        {
                            // We assume they are default group.
                            Uconomy_Essentials.Instance.PayGroups.TryGetValue("default", out pay);
                            if (pay == 0.0m)
                            {
                                // There was an error.  End it.
                                Logger.Log(Uconomy_Essentials.Instance.Translate("unable_to_pay_group_msg", new object[] { this.Player.CharacterName, "" }));
                                return;
                            }
                        }
                    }
                }
                decimal bal = Uconomy.Instance.Database.IncreaseBalance(this.Player.CSteamID.ToString(), pay);
                Uconomy_Essentials.HandleEvent(this.Player, pay, "paid");
                UnturnedChat.Say(this.Player.CSteamID, Uconomy_Essentials.Instance.Translate("pay_time_msg", new object[] { pay, Uconomy.Instance.Configuration.Instance.MoneyName, paygroup }));
                if (bal >= 0.0m)
                {
                    UnturnedChat.Say(this.Player.CSteamID, Uconomy_Essentials.Instance.Translate("new_balance_msg", new object[] { bal, Uconomy.Instance.Configuration.Instance.MoneyName }));
                }
            }
        }
示例#2
0
        private void rpe_OnUpdateStat(UnturnedPlayer player, EPlayerStat stat)
        {
            if (player == null)
            {
                return;
            }
            Uconomy u = Uconomy.Instance;

            if (Uconomy_Essentials.Instance.Configuration.Instance.PayZombie && stat == EPlayerStat.KILLS_ZOMBIES_NORMAL)
            {
                decimal balzk = u.Database.IncreaseBalance(player.CSteamID.ToString(), (decimal)Uconomy_Essentials.Instance.Configuration.Instance.PayZombieAmt);
                Uconomy_Essentials.HandleEvent(player, (decimal)Uconomy_Essentials.Instance.Configuration.Instance.PayZombieAmt, "paid");
                if (!Uconomy_Essentials.Instance.Configuration.Instance.SendPayZombieMsg)
                {
                    return;                                                                       // No message is to be sent, so job is done.
                }
                UnturnedChat.Say(player.CSteamID, Uconomy_Essentials.Instance.Translate("zombie_kill_paid_msg", new object[] { Uconomy_Essentials.Instance.Configuration.Instance.PayZombieAmt.ToString(), u.Configuration.Instance.MoneyName, balzk.ToString(), u.Configuration.Instance.MoneyName }));
            }
            else if (Uconomy_Essentials.Instance.Configuration.Instance.PayMegaZombie && stat == EPlayerStat.KILLS_ZOMBIES_MEGA)
            {
                decimal balzk = u.Database.IncreaseBalance(player.CSteamID.ToString(), (decimal)Uconomy_Essentials.Instance.Configuration.Instance.PayMegaZombieAmt);
                Uconomy_Essentials.HandleEvent(player, (decimal)Uconomy_Essentials.Instance.Configuration.Instance.PayMegaZombieAmt, "paid");
                if (!Uconomy_Essentials.Instance.Configuration.Instance.SendPayMegaZombieMsg)
                {
                    return;                                                                           // No message is to be sent, so job is done.
                }
                UnturnedChat.Say(player.CSteamID, Uconomy_Essentials.Instance.Translate("mega_zombie_kill_paid_msg", new object[] { Uconomy_Essentials.Instance.Configuration.Instance.PayMegaZombieAmt.ToString(), u.Configuration.Instance.MoneyName, balzk.ToString(), u.Configuration.Instance.MoneyName }));
            }
        }
        public void Execute(IRocketPlayer caller, string[] msg)
        {
            UnturnedPlayer playerid = (UnturnedPlayer)caller;
            string         message;

            if (msg.Length == 0)
            {
                message = Uconomy_Essentials.Instance.Translate("apay_usage_msg", new object[] {});
                // We are going to print how to use
                UnturnedChat.Say(playerid, message);
                return;
            }
            if (msg.Length != 2)
            {
                message = Uconomy_Essentials.Instance.Translate("apay_usage_msg", new object[] { });
                // Print how to use
                UnturnedChat.Say(playerid, message);
                return;
            }
            UnturnedPlayer rp = UnturnedPlayer.FromName(msg[0]);

            if (rp == null)
            {
                ulong id;
                ulong.TryParse(msg[0], out id);
                if (!((CSteamID)id).IsValid())
                {
                    message = Uconomy_Essentials.Instance.Translate("not_valid_player_msg", new object[] { msg[0] });
                    UnturnedChat.Say(playerid, message);
                    return;
                }
                else
                {
                    rp = UnturnedPlayer.FromCSteamID((CSteamID)id);
                }
            }
            uint amt;

            uint.TryParse(msg[1], out amt);
            if (amt <= 0)
            {
                message = Uconomy_Essentials.Instance.Translate("not_valid_amount", new object[] { msg[1] });
                UnturnedChat.Say(playerid, message);
                return;
            }
            decimal newbal = Uconomy.Instance.Database.IncreaseBalance(rp.CSteamID.ToString(), amt);

            UnturnedChat.Say(rp.CSteamID, Uconomy_Essentials.Instance.Translate("apaid_msg", new object[] { playerid.CharacterName, amt, Uconomy.Instance.Configuration.Instance.MoneyName, newbal, Uconomy.Instance.Configuration.Instance.MoneyName }));
            UnturnedChat.Say(playerid, Uconomy_Essentials.Instance.Translate("apay_msg", new object[] { rp.CharacterName, amt, Uconomy.Instance.Configuration.Instance.MoneyName }));
            Uconomy_Essentials.HandleEvent(rp, amt, "paid");
        }
示例#4
0
        protected override void Load()
        {
            Uconomy_Essentials.Instance = this;
            List <Group> nlgroup = this.Configuration.Instance.PayGroups.Distinct(new GroupComparer()).ToList();

            this.Configuration.Instance.PayGroups = nlgroup;
            foreach (Group g in this.Configuration.Instance.PayGroups)
            {
                try
                {
                    this.PayGroups.Add(g.DisplayName, g.Salary);
                }
                catch (Exception e)
                {
                    Logger.LogException(e);
                    //Logger.Log(g.DisplayName + " " + g.Salary.ToString());
                    //Logger.Log("There was an exception: " + e);
                }
            }
        }
示例#5
0
        private void rpe_OnPlayerDeath(UnturnedPlayer player, EDeathCause cause, ELimb limb, CSteamID murderer)
        {
            if (player == null)
            {
                return;
            }
            if (murderer == null)
            {
                return;
            }
            UnturnedPlayer killer = UnturnedPlayer.FromCSteamID(murderer);

            if (killer == null)
            {
                return;
            }
            if (Uconomy_Essentials.Instance.Configuration.Instance.PayHit)
            {
                Uconomy u   = Uconomy.Instance;
                decimal bal = u.Database.GetBalance(player.CSteamID.ToString());
                if (cause == EDeathCause.SUICIDE && Uconomy_Essentials.Instance.Configuration.Instance.LoseSuicide)
                {
                    // We are going to remove currency for the suicide
                    decimal loss = (decimal)Uconomy_Essentials.Instance.Configuration.Instance.LoseSuicideAmt * -1.0m;
                    if (bal + loss < 0.0m)
                    {
                        loss = bal * -1.0m;
                    }
                    decimal bal1 = u.Database.IncreaseBalance(player.CSteamID.ToString(), loss);
                    Uconomy_Essentials.HandleEvent(player, (loss * -1.0m), "loss");
                    UnturnedChat.Say(player.CSteamID, Uconomy_Essentials.Instance.Translate("lose_suicide_msg", new object[] { Uconomy_Essentials.Instance.Configuration.Instance.LoseSuicideAmt, u.Configuration.Instance.MoneyName }));
                    if (bal1 != 0m)
                    {
                        UnturnedChat.Say(player.CSteamID, Uconomy_Essentials.Instance.Translate("new_balance_msg", new object[] { bal1, u.Configuration.Instance.MoneyName }));
                    }
                    return;
                }
                else if (cause == EDeathCause.SUICIDE && !Uconomy_Essentials.Instance.Configuration.Instance.LoseSuicide)
                {
                    // We do nothing if they suicide.
                    return;
                }
                if (Uconomy_Essentials.Instance.Configuration.Instance.LoseMoneyOnDeath)
                {
                    decimal loss = (decimal)Uconomy_Essentials.Instance.Configuration.Instance.LoseMoneyOnDeathAmt * -1.0m;
                    if (bal + loss < 0.0m)
                    {
                        loss = bal * -1.0m;
                    }
                    decimal lostbal = u.Database.IncreaseBalance(player.CSteamID.ToString(), loss);
                    Uconomy_Essentials.HandleEvent(player, (loss * -1.0m), "loss");
                    UnturnedChat.Say(player.CSteamID, Uconomy_Essentials.Instance.Translate("lose_money_on_death_msg", new object[] { Uconomy_Essentials.Instance.Configuration.Instance.LoseMoneyOnDeathAmt.ToString(), u.Configuration.Instance.MoneyName }));
                }
                // Pay the other player for the kill
                decimal balk = u.Database.IncreaseBalance(murderer.ToString(), (decimal)Uconomy_Essentials.Instance.Configuration.Instance.PayHitAmt);
                Uconomy_Essentials.HandleEvent(player, (decimal)Uconomy_Essentials.Instance.Configuration.Instance.PayHitAmt, "paid");
                if (!Uconomy_Essentials.Instance.Configuration.Instance.SendPayHitMsg)
                {
                    return;                                                                    // No message is to be sent, so job is done.
                }
                UnturnedChat.Say(murderer, Uconomy_Essentials.Instance.Translate("to_killer_msg", new object[] { Uconomy_Essentials.Instance.Configuration.Instance.PayHitAmt.ToString(), u.Configuration.Instance.MoneyName, player.CharacterName }));
                if (bal != 0m)
                {
                    UnturnedChat.Say(murderer, Uconomy_Essentials.Instance.Translate("new_balance_msg", new object[] { balk.ToString(), u.Configuration.Instance.MoneyName }));
                }
            }
        }
示例#6
0
        public void Execute(IRocketPlayer caller, string[] amt)
        {
            UnturnedPlayer playerid = (UnturnedPlayer)caller;
            string         message;

            if (amt.Length == 0)
            {
                message = Uconomy_Essentials.Instance.Translate("exchange_usage_msg", new object[] { });
                UnturnedChat.Say(playerid, message);
                return;
            }
            if (amt.Length > 2)
            {
                message = Uconomy_Essentials.Instance.Translate("exchange_usage_msg", new object[] { });
                UnturnedChat.Say(playerid, message);
                return;
            }
            if (!Uconomy_Essentials.Instance.Configuration.Instance.ExpExchange && amt.Length == 1)
            {
                message = Uconomy_Essentials.Instance.Translate("experience_exchange_not_available", new object[] { });
                UnturnedChat.Say(playerid, message);
                return;
            }
            if (!Uconomy_Essentials.Instance.Configuration.Instance.MoneyExchange && amt.Length == 2)
            {
                message = Uconomy_Essentials.Instance.Translate("money_exchange_not_available", new object[] { });
                UnturnedChat.Say(playerid, message);
                return;
            }
            // Get expereience balance first
            uint exp   = playerid.Experience;
            uint examt = 0;

            UInt32.TryParse(amt[0], out examt);
            if (examt <= 0)
            {
                message = Uconomy_Essentials.Instance.Translate("exchange_zero_amount_error", new object[] { });
                UnturnedChat.Say(playerid, message);
                return;
            }
            if (exp < examt && amt.Length == 1)
            {
                message = Uconomy_Essentials.Instance.Translate("exchange_insufficient_experience", new object[] { examt.ToString() });
                UnturnedChat.Say(playerid, message);
                return;
            }
            // Get balance first
            decimal bal = Uconomy.Instance.Database.GetBalance(playerid.CSteamID.ToString());

            if (amt.Length > 1 && bal < examt)
            {
                message = Uconomy_Essentials.Instance.Translate("exchange_insufficient_money", new object[] { examt.ToString(), Uconomy.Instance.Configuration.Instance.MoneyName });
                UnturnedChat.Say(playerid, message);
                return;
            }
            switch (amt.Length)
            {
            case 1:
                decimal gain = (decimal)((float)examt * Uconomy_Essentials.Instance.Configuration.Instance.ExpExchangerate);
                // Just to make sure to avoid any errors
                gain = Decimal.Round(gain, 2);
                decimal newbal = Uconomy.Instance.Database.IncreaseBalance(playerid.CSteamID.ToString(), gain);
                message = Uconomy_Essentials.Instance.Translate("new_balance_msg", new object[] { newbal.ToString(), Uconomy.Instance.Configuration.Instance.MoneyName });
                UnturnedChat.Say(playerid, message);
                playerid.Experience -= examt;
                Uconomy_Essentials.HandleEvent(playerid, gain, "exchange", examt);
                break;

            case 2:
                uint gainm = (uint)((float)examt * Uconomy_Essentials.Instance.Configuration.Instance.MoneyExchangerate);
                // Just to make sure to avoid any errors
                newbal  = Uconomy.Instance.Database.IncreaseBalance(playerid.CSteamID.ToString(), (examt * -1.0m));
                message = Uconomy_Essentials.Instance.Translate("new_balance_msg", new object[] { newbal.ToString(), Uconomy.Instance.Configuration.Instance.MoneyName });
                UnturnedChat.Say(playerid, message);
                playerid.Experience += gainm;
                Uconomy_Essentials.HandleEvent(playerid, gainm, "exchange", examt, "money");
                break;
            }
            playerid.Player.SteamChannel.send("tellExperience", ESteamCall.OWNER, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[]
            {
                playerid.Experience
            });
        }