C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System;
using System.Collections.Generic;
using System.Linq;
using Newtonsoft.Json;
using Oxide.Core;
using Oxide.Core.Plugins;
using Oxide.Game.Rust.Cui;
using UnityEngine;
namespace Oxide.Plugins {
[Info("Promocode", "anfunny", "2.1.3")]
public class Promocode : RustPlugin {
public class PSettings {
[JsonProperty("Промокод, который нужно ввести")]
public string Promocode;
[JsonProperty("Сколько игрок получит рублей за данный промокод?")]
public int CVAUASKRJOKBCBTKBIZDUGZDPEVLOJEKMPMDCHONQOX;
}
private ConfigData CCWQOEEOGGPVVWEVWYDZKZOMOPHUTMNFIMBNIFXJEPDFA;
public class ConfigData {
[JsonProperty("Настройка промокодов")]
public List<PSettings> IGCTRRLXCCNJCYXKUUTKNIURNQBUVUWIMXHBRAVVUKJZZZ = new List<PSettings>();
[JsonProperty("Номер магазина!")]
public string ZLUUJMQDZLKFAQQCIGEXEQVSUYXPCYVRNNCIAZMWW = "";
[JsonProperty("Секретный ключ")]
public string HPHUUEEIBTVCYIPBAKOABAQSSNOHBITIALJFLZETLUXBWLO = "";
public static ConfigData OBCEMEMKLBGIJKVDBNIDFOWMEMVXHBJWUCUIVSOMLBMGO() {
ConfigData SZYBHVSGZOCHQWGSZNBNZKPAGVPGDOWHYUOCKRBETCGXXWC = new ConfigData();
SZYBHVSGZOCHQWGSZNBNZKPAGVPGDOWHYUOCKRBETCGXXWC.ZLUUJMQDZLKFAQQCIGEXEQVSUYXPCYVRNNCIAZMWW = "";
SZYBHVSGZOCHQWGSZNBNZKPAGVPGDOWHYUOCKRBETCGXXWC.HPHUUEEIBTVCYIPBAKOABAQSSNOHBITIALJFLZETLUXBWLO = "";
SZYBHVSGZOCHQWGSZNBNZKPAGVPGDOWHYUOCKRBETCGXXWC.IGCTRRLXCCNJCYXKUUTKNIURNQBUVUWIMXHBRAVVUKJZZZ = new List<PSettings>() {
new PSettings() {
Promocode = "y1", CVAUASKRJOKBCBTKBIZDUGZDPEVLOJEKMPMDCHONQOX = 10,
}
, new PSettings() {
Promocode = "y2", CVAUASKRJOKBCBTKBIZDUGZDPEVLOJEKMPMDCHONQOX = 20,
}
, new PSettings() {
Promocode = "y3", CVAUASKRJOKBCBTKBIZDUGZDPEVLOJEKMPMDCHONQOX = 30,
}
}
;
return SZYBHVSGZOCHQWGSZNBNZKPAGVPGDOWHYUOCKRBETCGXXWC;
}
}
protected override void LoadConfig() {
base.LoadConfig();
try {
CCWQOEEOGGPVVWEVWYDZKZOMOPHUTMNFIMBNIFXJEPDFA = Config.ReadObject<ConfigData>();
}
catch {
LoadDefaultConfig();
}
NextTick(SaveConfig);
}
protected override void LoadDefaultConfig() => CCWQOEEOGGPVVWEVWYDZKZOMOPHUTMNFIMBNIFXJEPDFA = ConfigData.OBCEMEMKLBGIJKVDBNIDFOWMEMVXHBJWUCUIVSOMLBMGO();
protected override void SaveConfig() => Config.WriteObject(CCWQOEEOGGPVVWEVWYDZKZOMOPHUTMNFIMBNIFXJEPDFA);
public class PlayerPromo {
[JsonProperty("Введеный промокод")]
public string OECJJBUIKYVLGLDLSVIVIDIILWUWDSDKSASZMMXXZFSLW;
[JsonProperty("Во сколько он ввел промокод")]
public string YHZUFCNGGKWUXMHYESULSFSDZFXLWCLWLWYMXJMAWLUICS;
}
public class PlayerPromoSettings {
public List<PlayerPromo> LPBAZQLWSPVVZFBKEYZIBNUAVFUOGLJBHQLWUBLFAZGXC = new List<PlayerPromo>();
}
public Dictionary<ulong, PlayerPromoSettings> NVUBQKDJNXUBFUWXQGFUNJTFPCMTICHXYHSZTFVZXXCOB = new Dictionary<ulong, PlayerPromoSettings>();
void OnServerInitialized() {
try {
NVUBQKDJNXUBFUWXQGFUNJTFPCMTICHXYHSZTFVZXXCOB = Interface.GetMod().DataFileSystem.ReadObject<Dictionary<ulong, PlayerPromoSettings>>(Name);
}
catch {
NVUBQKDJNXUBFUWXQGFUNJTFPCMTICHXYHSZTFVZXXCOB = new Dictionary<ulong, PlayerPromoSettings>();
}
LGSSLXHZUWUBMLFIUTNNAPVWZSXSLPIMTJGPKOLJTMDHDYPIR();
}
[PluginReference]
private Plugin LoadingImages;
void PromoMenu(BasePlayer QAQRNYSBZPAKLRYVDIPALETNYDRAUVOVTMVNIRYRGAHPFTEXD, string BOMEMLHDSJHRGDBFQZVKMMKYULXEHFZTXAUZIPAKGFYOJOT, string[] NACFBSHPDOJAOCVNJOUFJBWBYLEHNVOGRSQHCURES) {
CuiHelper.DestroyUi(QAQRNYSBZPAKLRYVDIPALETNYDRAUVOVTMVNIRYRGAHPFTEXD, "MainPromo");
var VRJDJZRIADBPLNYJBLPXCYCXDKLFWQGEEWGUKETIFQGOXEU = new CuiElementContainer();
VRJDJZRIADBPLNYJBLPXCYCXDKLFWQGEEWGUKETIFQGOXEU.Add(new CuiElement {
Parent = "ProfileMenu_UI", Name = "MainPromo", Components = {
new CuiRawImageComponent {
Png = (string) LoadingImages?.Call("GetImage", "ImageButton"), Color = "1 1 1 1"
}
, new CuiRectTransformComponent {
AnchorMin = "1 0", AnchorMax = "1 0", OffsetMin = "-330 60", OffsetMax = "-120 130"
}
,
}
}
);
VRJDJZRIADBPLNYJBLPXCYCXDKLFWQGEEWGUKETIFQGOXEU.Add(new CuiButton {
RectTransform = {
AnchorMin = "0.112 0.255", AnchorMax = "0.889 0.506"
}
, Button = {
FadeIn = 0f, Color = "0 0 0 0", Command = $"",
}
, Text = {
Text = "", Align = TextAnchor.MiddleCenter, Font = "robotocondensed-regular.ttf", Color = "0.4745098 0.4862745 0.5607843 1", FontSize = 11
}
}
, "MainPromo", "MainPromo" + ".Transfer2");
VRJDJZRIADBPLNYJBLPXCYCXDKLFWQGEEWGUKETIFQGOXEU.Add(new CuiElement {
Parent = "MainPromo" + $".Transfer2", Name = "Input", Components = {
new CuiInputFieldComponent {
FontSize = 10, Command = $"UI_HandlerPromo", Text = lang.GetMessage("PROMO", this, QAQRNYSBZPAKLRYVDIPALETNYDRAUVOVTMVNIRYRGAHPFTEXD.UserIDString), Align = TextAnchor.MiddleCenter, CharsLimit = 100, IsPassword = false, NeedsKeyboard = true
}
, new CuiRectTransformComponent {
AnchorMin = "0 0", AnchorMax = "1 1"
}
}
}
);
VRJDJZRIADBPLNYJBLPXCYCXDKLFWQGEEWGUKETIFQGOXEU.Add(new CuiLabel {
RectTransform = {
AnchorMin = "0 1", AnchorMax = "0.7 1", OffsetMax = "0 10"
}
, Text = {
Text = lang.GetMessage("PROMO_HAVE", this, QAQRNYSBZPAKLRYVDIPALETNYDRAUVOVTMVNIRYRGAHPFTEXD.UserIDString), FontSize = 8, Align = TextAnchor.UpperLeft, Font = "robotocondensed-regular.ttf", Color = "0.4745098 0.4862745 0.5607843 1"
}
}
, "Input");
VRJDJZRIADBPLNYJBLPXCYCXDKLFWQGEEWGUKETIFQGOXEU.Add(new CuiButton {
RectTransform = {
AnchorMin = "0.11 0.066", AnchorMax = "0.88 0.22"
}
, Button = {
FadeIn = 0f, Color = "0 0 0 0", Command = $"",
}
, Text = {
Text = lang.GetMessage("PROMO_ENTER", this, QAQRNYSBZPAKLRYVDIPALETNYDRAUVOVTMVNIRYRGAHPFTEXD.UserIDString), Align = TextAnchor.MiddleCenter, Font = "robotocondensed-regular.ttf", Color = "0.4745098 0.4862745 0.5607843 1", FontSize = 8
}
}
, "MainPromo");
CuiHelper.AddUi(QAQRNYSBZPAKLRYVDIPALETNYDRAUVOVTMVNIRYRGAHPFTEXD, VRJDJZRIADBPLNYJBLPXCYCXDKLFWQGEEWGUKETIFQGOXEU);
}
[ConsoleCommand("UI_HandlerPromo")]
void SPDWYCOEAKFCSWGQTFYPRKDHFVNOAEMUJBQJRVFZBT(ConsoleSystem.Arg NACFBSHPDOJAOCVNJOUFJBWBYLEHNVOGRSQHCURES) {
BasePlayer QAQRNYSBZPAKLRYVDIPALETNYDRAUVOVTMVNIRYRGAHPFTEXD = NACFBSHPDOJAOCVNJOUFJBWBYLEHNVOGRSQHCURES.Player();
try {
string promo = NACFBSHPDOJAOCVNJOUFJBWBYLEHNVOGRSQHCURES.Args[0];
var BOWRYDQXPMZYNMLKXXKPGDZWRHRMRNZZQDEITOFAFIF = CCWQOEEOGGPVVWEVWYDZKZOMOPHUTMNFIMBNIFXJEPDFA.IGCTRRLXCCNJCYXKUUTKNIURNQBUVUWIMXHBRAVVUKJZZZ.Where(p => p.Promocode == promo).FirstOrDefault();
if (BOWRYDQXPMZYNMLKXXKPGDZWRHRMRNZZQDEITOFAFIF != null) {
if (NVUBQKDJNXUBFUWXQGFUNJTFPCMTICHXYHSZTFVZXXCOB[QAQRNYSBZPAKLRYVDIPALETNYDRAUVOVTMVNIRYRGAHPFTEXD.userID].LPBAZQLWSPVVZFBKEYZIBNUAVFUOGLJBHQLWUBLFAZGXC.Any(p => p.OECJJBUIKYVLGLDLSVIVIDIILWUWDSDKSASZMMXXZFSLW.ToLower() == promo.ToLower())) {
QAQRNYSBZPAKLRYVDIPALETNYDRAUVOVTMVNIRYRGAHPFTEXD.ChatMessage(lang.GetMessage("PROMO_ALREADY", this, QAQRNYSBZPAKLRYVDIPALETNYDRAUVOVTMVNIRYRGAHPFTEXD.UserIDString));
return;
}
NVUBQKDJNXUBFUWXQGFUNJTFPCMTICHXYHSZTFVZXXCOB[QAQRNYSBZPAKLRYVDIPALETNYDRAUVOVTMVNIRYRGAHPFTEXD.userID].LPBAZQLWSPVVZFBKEYZIBNUAVFUOGLJBHQLWUBLFAZGXC.Add(new PlayerPromo {
OECJJBUIKYVLGLDLSVIVIDIILWUWDSDKSASZMMXXZFSLW = promo, YHZUFCNGGKWUXMHYESULSFSDZFXLWCLWLWYMXJMAWLUICS = DateTime.Now.ToString("g")
}
);
QAQRNYSBZPAKLRYVDIPALETNYDRAUVOVTMVNIRYRGAHPFTEXD.ChatMessage(string.Format(lang.GetMessage("PROMO_SUCCESSFUL", this, QAQRNYSBZPAKLRYVDIPALETNYDRAUVOVTMVNIRYRGAHPFTEXD.UserIDString), BOWRYDQXPMZYNMLKXXKPGDZWRHRMRNZZQDEITOFAFIF.CVAUASKRJOKBCBTKBIZDUGZDPEVLOJEKMPMDCHONQOX));
MWGPAWTPOWOOIMVRCPZDVYKSQGXYYZYNXUQLZFMSGPXYVN(QAQRNYSBZPAKLRYVDIPALETNYDRAUVOVTMVNIRYRGAHPFTEXD.userID, BOWRYDQXPMZYNMLKXXKPGDZWRHRMRNZZQDEITOFAFIF.CVAUASKRJOKBCBTKBIZDUGZDPEVLOJEKMPMDCHONQOX);
}
else {
QAQRNYSBZPAKLRYVDIPALETNYDRAUVOVTMVNIRYRGAHPFTEXD.ChatMessage(lang.GetMessage("PROMO_NOT_FOUND", this, QAQRNYSBZPAKLRYVDIPALETNYDRAUVOVTMVNIRYRGAHPFTEXD.UserIDString));
}
}
catch {
}
}
void MWGPAWTPOWOOIMVRCPZDVYKSQGXYYZYNXUQLZFMSGPXYVN(ulong userId, int VTGZWDJLFVTOULDBGQOABIACJVMNKPWQMEFDVZPBX) {
XWDCKCQTOLNYUZURPYAQNVJSWCHXGALXDXACUXNLHAC(new Dictionary<string, string>() {
{
"action", "moneys"
}
, {
"type", "plus"
}
, {
"steam_id", userId.ToString()
}
, {
"amount", VTGZWDJLFVTOULDBGQOABIACJVMNKPWQMEFDVZPBX.ToString()
}
}
);
}
void XWDCKCQTOLNYUZURPYAQNVJSWCHXGALXDXACUXNLHAC(Dictionary<string, string> NACFBSHPDOJAOCVNJOUFJBWBYLEHNVOGRSQHCURES) {
string FUUTEWRAUFBYOZARMEGBMAIJHDQIRJJXXARXMXHUWZFKCFTUO = $"http://gamestores.ru/api?shop_id={CCWQOEEOGGPVVWEVWYDZKZOMOPHUTMNFIMBNIFXJEPDFA.ZLUUJMQDZLKFAQQCIGEXEQVSUYXPCYVRNNCIAZMWW}&secret={CCWQOEEOGGPVVWEVWYDZKZOMOPHUTMNFIMBNIFXJEPDFA.HPHUUEEIBTVCYIPBAKOABAQSSNOHBITIALJFLZETLUXBWLO}" + $"{string.Join("", NACFBSHPDOJAOCVNJOUFJBWBYLEHNVOGRSQHCURES.Select(arg => $"& {
arg.Key
}
= {
arg.Value
}
").ToArray())}";
webrequest.EnqueueGet(FUUTEWRAUFBYOZARMEGBMAIJHDQIRJJXXARXMXHUWZFKCFTUO, (i, s) => {
if (i != 200) {
LogToFile("Promocode", $"Код ошибки: {i}, подробности:\n{s}", this);
}
else {
if (s.Contains("fail")) {
return;
}
}
}
, this);
}
void OnServerSave() {
Interface.Oxide.DataFileSystem.WriteObject(Name, NVUBQKDJNXUBFUWXQGFUNJTFPCMTICHXYHSZTFVZXXCOB);
}
void Unload() {
Interface.Oxide.DataFileSystem.WriteObject(Name, NVUBQKDJNXUBFUWXQGFUNJTFPCMTICHXYHSZTFVZXXCOB);
}
private void LGSSLXHZUWUBMLFIUTNNAPVWZSXSLPIMTJGPKOLJTMDHDYPIR() {
lang.RegisterMessages(new Dictionary<string, string> {
{
"PROMO", "Promo code"
}
, {
"PROMO_HAVE", "Do you have a promo code?"
}
, {
"PROMO_ENTER", "Write a promo code and press <b>ENTER</b>"
}
, {
"PROMO_ALREADY", "You have already entered this promo code!"
}
, {
"PROMO_SUCCESSFUL", "You have successfully entered a promo code and received {0} rubles to the store's balance!"
}
, {
"PROMO_NOT_FOUND", "Promo code not found, try again!"
}
}
, this);
lang.RegisterMessages(new Dictionary<string, string> {
{
"PROMO", "Промокод"
}
, {
"PROMO_HAVE", "Есть промокод?"
}
, {
"PROMO_ENTER", "Введи промокод и нажми <b>ENTER</b>"
}
, {
"PROMO_ALREADY", "Вы уже ввели данный промокод!"
}
, {
"PROMO_SUCCESSFUL", "Вы успешно ввели промокод и получили {0} руб.на баланс магазина!"
}
, {
"PROMO_NOT_FOUND", "Промокод не найден, попробуйте еще раз!"
}
}
, this, "ru");
}
}
}