AlmazON
Не путать с самим yand3xmail
- Сообщения
- 5,099
- Реакции
- 2,755
В самих словах цветности, но нужно убрать их переменные с кода панели:куда можно вписать цвета проводов
PHP:
#include <sourcemod>
#include <sdktools>
#include <morecolors>
#define PLUGIN_VERSION "0.3"
new wire
new Handle:cvar_tchoice
new String:wirecolours[4][] = {"{blue}Синий","{yellow}Желтый","{red}Красный","{green}Зеленый"}
public Plugin:myinfo =
{
name = "QuickDefuse",
author = "pRED*",
description = "Let's CT's choose a wire for quick defusion",
version = PLUGIN_VERSION,
url = "SourceMod: Half-Life 2 Scripting"
};
public OnPluginStart()
{
CreateConVar("sm_quickdefuse_version", PLUGIN_VERSION, "Quick Defuse Version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY)
HookEvent("bomb_begindefuse", Event_Defuse, EventHookMode_Post)
HookEvent("bomb_beginplant", Event_Plant, EventHookMode_Post)
HookEvent("bomb_planted", Event_Planted, EventHookMode_PostNoCopy)
HookEvent("bomb_abortdefuse", Event_Abort, EventHookMode_Post)
HookEvent("bomb_abortplant", Event_Abort, EventHookMode_Post)
cvar_tchoice = CreateConVar("qd_tchoice", "1", "Sets whether Terrorists can select a wire colour (QuickDefuse)")
}
public Event_Plant(Handle:event, const String:name[], bool:dontBroadcast)
{
new clientId = GetEventInt(event, "userid")
new client = GetClientOfUserId(clientId)
wire = 0;
//let the planter choose a wire
if (GetConVarInt(cvar_tchoice))
{
new Handle:panel = CreatePanel()
SetPanelTitle(panel, "Выбор провода:" )
DrawPanelText(panel, " ")
DrawPanelText(panel, "CT могут попробовать угадать и разминировать бомбу мгновенно")
DrawPanelText(panel, "Нажмите Выход, или игнорируйте это сообщение для выбора случайного провода")
DrawPanelText(panel, " ")
DrawPanelItem(panel,"Синий")
DrawPanelItem(panel,"Желтый")
DrawPanelItem(panel,"Красный")
DrawPanelItem(panel,"Зеленый")
DrawPanelText(panel, " ");
DrawPanelItem(panel, "Выход")
SendPanelToClient(panel, client, PanelPlant, 5)
CloseHandle(panel)
}
}
public Event_Planted(Handle:event, const String:name[], bool:dontBroadcast)
{
if (wire == 0)
wire = GetRandomInt(1,4)
}
public Event_Defuse(Handle:event, const String:name[], bool:dontBroadcast)
{
new clientId = GetEventInt(event, "userid")
new client = GetClientOfUserId(clientId)
new bool:kit = GetEventBool(event, "haskit")
//show a menu to the client offering a choice to pull/cut the wire
new Handle:panel = CreatePanel()
SetPanelTitle(panel, "Выбор провода:" )
DrawPanelText(panel, "Игнорируйте сообщение для обычного обезвреживания бомбы")
DrawPanelText(panel, " ")
DrawPanelText(panel, "Сделайте правильный выбор и обезвредьте бомбу")
DrawPanelText(panel, "Если ошибетесь бомба взорвется мгновенно")
if (!kit)
{
DrawPanelText(panel, "Если у вас нет defuse kit то вероятность что бомба взорвется 50%")
DrawPanelText(panel, "даже если вы выбрали правильный провод")
}
DrawPanelText(panel, " ")
DrawPanelItem(panel,"Синий")
DrawPanelItem(panel,"Желтый")
DrawPanelItem(panel,"Красный")
DrawPanelItem(panel,"Зеленый")
DrawPanelText(panel, " ");
DrawPanelItem(panel, "Выход")
if (kit)
SendPanelToClient(panel, client, PanelDefuseKit, 5)
else
SendPanelToClient(panel, client, PanelNoKit, 5)
CloseHandle(panel)
}
public PanelPlant(Handle:menu, MenuAction:action, param1, param2)
{
if (action == MenuAction_Select && param2 > 0 && param2 < 5) //User selected a valid wire colour
{
wire = param2
CPrintToChat(param1,"\x01\x04[Сапер] Вы выбрали %s провод",wirecolours[param2-1])
}
}
public PanelDefuseKit(Handle:menu, MenuAction:action, param1, param2)
{
if (action == MenuAction_Select && param2 > 0 && param2 < 5) //User selected a valid wire colour
{
new bombent = FindEntityByClassname(-1,"planted_c4")
if (bombent)
{
new String:name[32]
GetClientName(param1,name,sizeof(name))
if (param2 == wire)
{
SetEntPropFloat(bombent, Prop_Send, "m_flDefuseCountDown", 1.0)
CPrintToChatAll("\x01\x04[Сапер] %s правильно выбранный %s провод дает вам шанс на мгновенное обезвреживание C4 (1:4 шансы)",name,wirecolours[param2-1])
}
else
{
SetEntPropFloat(bombent, Prop_Send, "m_flC4Blow", 1.0)
CPrintToChatAll("\x01\x04[Сапер] %s C4 взорвется если провод %s выбран не правильно (3:4 шансы) Правильный провод был %s",name,wirecolours[param2-1],wirecolours[wire-1])
}
}
}
}
public PanelNoKit(Handle:menu, MenuAction:action, param1, param2)
{
if (action == MenuAction_Select && param2 > 0 && param2 < 5) //User selected a valid wire colour
{
new bombent = FindEntityByClassname(-1,"planted_c4")
if (bombent)
{
new String:name[32]
GetClientName(param1,name,sizeof(name))
if (param2 == wire && GetRandomInt(0,1))
{
SetEntPropFloat(bombent, Prop_Send, "m_flDefuseCountDown", 1.0)
CPrintToChatAll("\x01\x04[Сапер] %s правильно выбранный %s провод дает шансы на обезвреживание бомбы (1:8 шансы)",name,wirecolours[param2-1])
}
else
{
SetEntPropFloat(bombent, Prop_Send, "m_flC4Blow", 1.0)
if (param2 != wire)
CPrintToChatAll("\x01\x04[Сапер] %s бомба взорвана из-за того что выбран %s не правильный провод (7:8 odds) Правильный провод был %s",name,wirecolours[param2-1],wirecolours[wire-1])
else
CPrintToChatAll("\x01\x04[Сапер] %s выбран правильный провод (%s) но бомба все равно взорвалась!",name,wirecolours[param2-1])
}
}
}
}
public Event_Abort(Handle:event, const String:name[], bool:dontBroadcast)
{
new clientId = GetEventInt(event, "userid")
new client = GetClientOfUserId(clientId)
CancelClientMenu(client)
}