Advertisement
Guest User

Untitled

a guest
Jun 25th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.72 KB | None | 0 0
  1. using Rocket.API.Collections; using Rocket.Core.Plugins; using Rocket.Unturned; using Rocket.Unturned.Chat; using Rocket.Unturned.Events; using Rocket.Unturned.Player; using SDG.Unturned; using Steamworks; using System; using System.Collections.Generic; namespace Charter.DailyMissions { public class Plugin : RocketPlugin<Config> { public static Plugin Instance; public Baza Baza; protected override void Load() { Instance = this; Baza = new Baza(); U.Events.OnPlayerConnected += OnConnect; UnturnedPlayerEvents.OnPlayerUpdateStat += OnStat; } private void OnStat(UnturnedPlayer player, EPlayerStat stat) { if (Baza.GetDay(player.CSteamID.ToString()) == 0) { return; } string statis = Baza.GetStat(player.CSteamID.ToString()); string[] ar = statis.Split(':'); List<int> Statis_0 = FromString(ar); int st = (int)stat--; Statis_0[st]++; Mission miss = ByDay(Baza.GetDay(player.CSteamID.ToString())); string whatneed = miss.NeedTo; string[] swhatneed = whatneed.Split(':'); List<int> Statis_1 = FromString(swhatneed); if (isNeeded(player.CSteamID, stat)) { string trans = "getted_stat_" + st; if (Statis_0[st] >= Statis_1[st]) { UnturnedChat.Say(player, Translate("fgetted_stat_" + st)); } else { UnturnedChat.Say(player, Translate("getted_stat_" + st, Statis_1[st])); } } string final = statusbylist(Statis_0); Baza.SetStat(player.CSteamID.ToString(), final); CheckReady(player); } public bool isNeeded(CSteamID player, EPlayerStat stat) { return FromString(ByDay(Baza.GetDay(player.ToString())).NeedTo.Split(':'))[(int)stat--] != 0 && FromString(Baza.GetStat(player.ToString()).Split(':'))[(int)stat--] < FromString(ByDay(Baza.GetDay(player.ToString())).NeedTo.Split(':'))[(int)stat--]; } public void CheckReady(UnturnedPlayer player) { List<int> Status_0 = FromString(Baza.GetStat(player.CSteamID.ToString()).Split(':')); List<int> Status_1 = FromString(ByDay(Baza.GetDay(player.CSteamID.ToString())).NeedTo.Split(':')); int ready = 0; for(int i = 0; i < 17; i++) { if (Status_0[i] >= Status_1[i]) ready++; } if (ready == 17) { //ready //обнуляем стату: Baza.SetStat(player.CSteamID.ToString(), "0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0"); //проверяем, последний ли это день: if (islastday(Baza.GetDay(player.CSteamID.ToString()))) { //если это последний день } else { //если нет int day = Baza.GetDay(player.CSteamID.ToString()); day++; Baza.SetDay(player.CSteamID.ToString(), day); } } } public bool islastday(int day) { List<int> days = new List<int>(); foreach (var d in Configuration.Instance.Missions) { days.Add(d.Day); } int max = maxlist(days); return day == max; } public string statusbylist(List<int> array) { string nw = String.Empty; foreach (var s in array) { if (array[array.Count -1] == s) { //если последний элемент nw += s; } else { //любой другой элемент nw += s; nw += ":"; } } return nw; } public int maxlist(List<int> array) { int aq = 0; foreach (int idsk in array) if (idsk > aq) aq = idsk; return aq; } public List<int> FromString(string[] array) { List<int> idk = new List<int>(); foreach (var s in array) idk.Add(Convert.ToInt32(s)); return idk; } private void OnConnect(UnturnedPlayer player) { Baza.CheckSetupAccount(player.CSteamID); if (Configuration.Instance.sendOnjoin) { send(player); } } public void send(UnturnedPlayer p) { int day = Convert.ToInt32(Baza.GetDay(p.CSteamID.ToString())); if (day > 0) { Mission mission = ByDay(day); UnturnedChat.Say(p, Translate("on_join_1")); } else { UnturnedChat.Say(p, Translate("on_join_0")); } } public Mission ByDay(int day) { foreach (Mission m in Configuration.Instance.Missions) { if (m.Day == day) return m; } return null; } protected override void Unload() { U.Events.OnPlayerConnected -= OnConnect; } public override TranslationList DefaultTranslations { get { return new TranslationList() { {"on_join_1", "Ты на дне: {0}."}, {"on_join_0", "Ты не учавствуешь в ежедневных миссиях!"}, {"getted_stat_0", "Ты убил зомби. Осталось: {0}"}, {"getted_stat_1", "Ты убил игрока. Осталось: {0}"}, {"getted_stat_2", "Ты добыл предмет. Осталось: {0}"}, {"getted_stat_3", "Ты добыл ресурс. Осталось: {0}"}, {"getted_stat_4", "Ты добыл опыт. Осталось: {0}"}, {"getted_stat_5", "Ты убил мега-зомби. Осталось: {0}"}, {"getted_stat_6", "Ты умер. Осталось: {0}"}, {"getted_stat_7", "Ты убил животное. Осталось: {0}"}, {"getted_stat_8", "Ты сделал крафт. Осталось: {0}"}, {"getted_stat_9", "Ты словил рыбу. Осталось: {0}"}, {"getted_stat_10", "Ты вырастил растение. Осталось: {0}"}, {"getted_stat_11", "Ты обновил точность. Осталось: {0}"}, {"getted_stat_12", "Ты сделал хедшот. Осталось: {0}"}, {"getted_stat_13", "Ты прошел путь. Осталось: {0}"}, {"getted_stat_14", "Ты проехал путь. Осталось: {0}"}, {"getted_stat_15", "Ты выйграл арену. Осталось: {0}"}, {"getted_stat_16", "Ты построил что-то. Осталось: {0}"}, {"getted_stat_17", "Ты бросил что-то. Осталось: {0}"}, {"fgetted_stat_0", "Ты достиг нужного количества убийств зомби!"}, {"fgetted_stat_1", "Ты достиг нужного количества убийств игроков!"}, {"fgetted_stat_2", "Ты достиг нужного количества предметов!"}, {"fgetted_stat_3", "Ты достиг нужного количества ресурсов!"}, {"fgetted_stat_4", "Ты достиг нужного количества опыта!"}, {"fgetted_stat_5", "Ты достиг нужного количества убийств мега-зомби!"}, {"fgetted_stat_6", "Ты достиг нужного количества смертей!"}, {"fgetted_stat_7", "Ты достиг нужного количества убийств животных!"}, {"fgetted_stat_8", "Ты достиг нужного количества крафтов!"}, {"fgetted_stat_9", "Ты достиг нужного количества рыб!"}, {"fgetted_stat_10", "Ты достиг нужного количества растений!"}, {"fgetted_stat_11", "Ты достиг нужной точности!"}, {"fgetted_stat_12", "Ты достиг нужного количества хедшотов!"}, {"fgetted_stat_13", "Ты достиг нужного количества метров пешком!"}, {"fgetted_stat_14", "Ты достиг нужного количества метров на машине!"}, {"fgetted_stat_15", "Ты достиг нужного количества побед на арене!"}, {"fgetted_stat_16", "Ты достиг нужного количества построек!"}, {"fgetted_stat_17", "Ты достиг нужного количества брошенных гранат!"}, }; } } } }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement