-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathScp273.cs
More file actions
165 lines (142 loc) · 5.62 KB
/
Scp273.cs
File metadata and controls
165 lines (142 loc) · 5.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
using CommandSystem.Commands.RemoteAdmin.ServerEvent;
using Exiled.API.Extensions;
using Exiled.API.Features;
using Exiled.API.Features.Items;
using Exiled.API.Interfaces;
using Exiled.Events;
using Exiled.Events.EventArgs.Player;
using MEC;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using PlayerRoles;
using CommandSystem;
using Exiled.API.Enums;
using Exiled.API.Features.Roles;
using Exiled.Permissions.Extensions;
using MEC;
using RemoteAdmin;
using Exiled.CustomRoles;
using Exiled.Events.EventArgs.Player;
using PlayerRoles;
using Respawning;
namespace Scp273
{
public class Config : IConfig
{
public bool IsEnabled { get; set; } = true;
public bool Debug { get; set; } = false;
public string Hint1 { get; set; } = "SCP-273 - человек-феникс. При смерти вы возраждаетесь спустя 20 секунд.";
public string Hint2 { get; set; } = "Вы восстали из пепла.";
public string Prefix { get; set; } = "Scp-273";
public string Cinfo { get; set; } = "Человек-Феникс.";
}
public class Plugin:Plugin<Config>
{
public override string Author { get; } = "Friza";
public override string Name { get; } = "SCP-273";
public override string Prefix { get; } = "SCP-273";
public override Version Version { get; } = new Version(1, 0, 0);
public override Version RequiredExiledVersion { get; } = new Version(8, 8, 0);
public Plugin plugin;
public string SCP273ID = "";
public override void OnEnabled()
{
plugin = this;
Exiled.Events.Handlers.Server.RoundStarted += this.RoundStarted;
Exiled.Events.Handlers.Player.Died += this.Died;
Log.Info("");
base.OnEnabled();
}
public void RoundStarted()
{
Timing.CallDelayed(2f, () =>
{
SCP273ID = Player.Get(PlayerRoles.RoleTypeId.ClassD).ToList().RandomItem().UserId;
});
Timing.CallDelayed(2f, () => {
var player = Player.Get(SCP273ID);
player.CustomInfo = "Человек-Феникс.";
player.RankColor = "orange";
player.RankName = "Scp-273";
player.MaxHealth = 170;
player.Health = 170;
player.AddItem(ItemType.Painkillers);
player.AddItem(ItemType.Coin);
player.ShowHint(Config.Hint1, 5f);
});
}
public void Died(DiedEventArgs ev)
{
if (ev.Player.CustomInfo == "Человек-Феникс.")
{
Timing.CallDelayed(20f, delegate()
{
ev.Player.Role.Set(RoleTypeId.ClassD, RoleSpawnFlags.AssignInventory);
ev.Player.CustomInfo = "Человек-Феникс.";
ev.Player.RankColor = "orange";
ev.Player.RankName = "Scp-273";
ev.Player.MaxHealth = 170;
ev.Player.Health = 170;
ev.Player.ShowHint(Config.Hint2, 5f);
});
}
}
}
[CommandHandler(typeof(RemoteAdminCommandHandler))]
public class SpawnSCP273 : ICommand
{
public string Command { get; } = "spawnscp273";
public string[] Aliases { get; } = new string[]
{
"scp273",
"spawn273"
};
public string Description { get; } = "Смена класса на Scp-273";
public bool Execute(ArraySegment<string> arguments, ICommandSender sender, out string response)
{
Player player = Player.Get(((CommandSender)sender).SenderId);
if (!Permissions.CheckPermission((CommandSender)sender, "scp273.spawn"))
{
response = "У вас не достаточно прав!";
return false;
}
int count = arguments.Count;
if (count != 0)
{
if (count != 1)
{
response = "Usage: spawn273";
return false;
}
if (player == null)
{
response = $"Чек {Player.Get(player.Sender).Nickname} инвалид";
return false;
}
response = "Он уже scp-273";
return true;
}
{
if (count != 0)
{
response = "Уже есть 273!";
return false;
}
player.Role.Set(RoleTypeId.ClassD);
player.CustomInfo = "Человек-Феникс.";
player.RankColor = "orange";
player.RankName = "SCP-273";
player.AddItem(ItemType.Painkillers);
player.AddItem(ItemType.Coin);
player.ShowHint("SCP-273 - человек-феникс. При смерти вы возраждаетесь спустя 20 секунд.", 5f);
player.MaxHealth = 170;
player.Health = 170;
response = "Вы стали Scp273";
return true;
}
}
}
}