Иконка ресурса

[INC] More Colors 1.9.2

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)
}
 

Monomizer

Держу JDW в бане.
Сообщения
1,947
Ребят, а нынче без инклуда модно красить? Через, как пример
PHP:
x07228B22
?
И вроде бы это избавляет от лишних сиволов в консоли, верно?
Ибо вроде бы если инклуд, то в консоли было бы FF00FFтекст или я не прав?
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
избавляет от лишних сиволов в консоли, верно?
Ибо вроде бы если инклуд, то в консоли было бы FF00FFтекст или я не прав?
Не прав. Наоборот, файлы включения (это и есть include по-русски) выводят чат иначе, поэтому символов в консоли нет. Да и писать можно ощутимо больше.
 
Последнее редактирование:

Monomizer

Держу JDW в бане.
Сообщения
1,947
Не прав. Наоборот, файлы включения (это и есть include по-русски) выводят чат иначе, поэтому символов в консоли нет. Да и писать можно ощутимо больше.
Спасибо, просто помню (год назад) тот же морколор выдавал в консоли приписки вида ff00ff к сообщениям
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
морколор выдавал в консоли приписки вида ff00ff к сообщениям
Зависит от вида вывода сообщения. Сейчас обычный вывод в них встречается реже.
А в обычном PrintToChat всегда будут буквы цветов в консоли. Нужно использовать StartMessageOne.
 

Monomizer

Держу JDW в бане.
Сообщения
1,947
Зависит от вида вывода сообщения. Сейчас обычный вывод в них встречается реже.
А в обычном PrintToChat всегда будут буквы цветов в консоли. Нужно использовать StartMessageOne.
За StartMessageOne отдельное спасибо
 

Raven1313

Участник
Сообщения
208
Реакции
28
@suremiur, хотел просто такую же большую вариацию цветов), но там меньше их ж)
 

x330122

Участник
Сообщения
357
Реакции
152
Как можно передать HEX цвет в функцию CPrintToChat чтобы он отображал цвет корректно, а не так
C-подобный:
 FFFFFFFF FFFFFFFCTetragromaton : FFFFFFFF123
 

Miroha

Участник
Сообщения
1,124
Реакции
134
Я устанавливал csgo_color.inc и more_color.inc но всё равно эта ошибка кто знает как исправить?
1586097853350.png
 

Rabb1t

Амбассадор
Сообщения
2,968
Реакции
1,429

msl1

Участник
Сообщения
162
Реакции
20
Подскажите CShowActivity2 на SourceMod (1.11.0.6635) работает ?
 

Damirovich

Участник
Сообщения
60
Реакции
4
а на ксс 34 какие цвета? те же самые green team и т.д?
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,982
@Damirovich, в v34 вообще всего пяток цветов работает, емнип.
Оранжевый, зелёный и три командных (серый у наблюдателей, красный у теров и голубой у спецов).
 
Сверху Снизу