Chat Responses

diller110

Добрая душа
Сообщения
353
Реакции
278
Прошу сделать аналог Simple Chat Responses, для CS GO. А именно автоответчик на сообщения. К примеру: Игрок пишет в чат слово
Updates или фразу "Show me updates", и в чат/меню выводится из файла настроек записанные последние обновления на сервере. Пригодится так же для таких фраз как: Дай админку, Правила, Vip.
Желательно (незнаю может для этого отдельно что-то надо), чтобы распознавал команды c "!" и "/" - таким образом получается почти универсальный информационный плагин.

Если слишком требовательный запрос готов заплатить.

Прим.: Насчет фразы, надо чтобы был не поиск во всём сообщении слова например updates, и срабатывания на это, а именно конкретной фразы "Show me updates" или любой другой из конфига. Во избежание лишних
ошибок.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
надо чтобы был не поиск во всём сообщении слова например updates, и срабатывания на это, а именно конкретной фразы "Show me updates
Это нетрудно, благо всё предусмотрено. Считывание всех фраз и ответов к ним из файла - вот это посложнее. Если без файлов, то вообще легко, бесплатно могут написать.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #3
diller110, если будешь юзать русский то будут проблемы с регистром и на их решение придется тратить время и ресурсы.
 

diller110

Добрая душа
Сообщения
353
Реакции
278
Если возьметесь на плагин с конфигурацией, готов заплатить. Не то чтобы сам потом исходник подправить не смогу, просто обновления и проч. плюшки каждый раз изменять и компилировать не дело.

проблемы с регистром
Если проблема по типу: Updates не updates и не UpDaTeS, то думаю решать эту проблему в лоб. Дублировать на каждый вариант регистра. Хотя, если это не чересчур затратно, хотелось бы с фиксом этого недочёта.
 

diller110

Добрая душа
Сообщения
353
Реакции
278
Да, имел ввиду пример русского регистра.
_ _ _
В любом случае: Решать или не решать проблему дело ваше. Только скажите что при этом нельзя будет использовать.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #6
diller110, я сразу написал что при использовании русского языка.
Т.к. у SP проблема с ним, а в частности с регистрами. Поэтому использовать чувствительность к регистру при работе с русским текстом не выйдет.


AlmazON, кстати, ты не проверял как именно это выражается, функции всегда чувствительны к регистру или наоборот игнорируют его (что в даном случае было бы к стати)?
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
как именно это выражается, функции всегда чувствительны к регистру или наоборот игнорируют его (что в даном случае было бы к стати)
Ты о чём? Если на примере, как выше, то просто игнорируют. Хоть поиск строки, хоть сравнение. Даже через Regex не всё так просто.
 

diller110

Добрая душа
Сообщения
353
Реакции
278
То есть проблема весьма затратная для осуществления? А если тогда просто английские слова фразы. На подобии примера первого поста. Также, трудно ли будет включить библиотеку цветов CS GO colors и будет ли она работать в меню?
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #9
Можно просто изменять регистр всех символов на маленький и тогда уже искать фразу в конфигах.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #11

diller110

Добрая душа
Сообщения
353
Реакции
278
Вижу вы заинтересованы)
Считывание всех фраз и ответов к ним из файла
это можно например взять из оригинального плагина.

Пользуясь случаем и вашим опытом посоветуйте рабочий !admins (adminlist) плагин для cs go, перепробывал все что были на alliedmodders, никак.
 

diller110

Добрая душа
Сообщения
353
Реакции
278
А всё таки кто нибудь возьмется? Даже без считывания русских фраз.
 

diller110

Добрая душа
Сообщения
353
Реакции
278
Давай без файлов, потом в случае необходимости подумаем о "большем".
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
diller110, проснулся... Мне пока не до этого.
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
без проверок и т.п.
PHP:
#include <sourcemod>
#include <sdktools>

#define FILE "addons/sourcemod/configs/chat_responses.cfg"

new Handle:GlobalArray[2] = {INVALID_HANDLE, ...};

public OnPluginStart()
{
	RegServerCmd("chat_reload", Callback);

	AddCommandListener(ACL_Callback, "say");
	AddCommandListener(ACL_Callback, "say_team");

	for (new i = 0; i < 2; i++)
	{
		GlobalArray[i] = CreateArray(256);
	}

	OnCreateArray();
}

public Action:Callback(args)
{
	for (new i = 0; i < 2; i++)
	{
		ClearArray(GlobalArray[i]);
	}

	OnCreateArray();

	PrintToServer("File %s successful reloaded", FILE);

	return Plugin_Handled;
}

public OnCreateArray()
{
	new Handle:kv = CreateKeyValues("chat_responses");

	if (!FileToKeyValues(kv, FILE)) 
	{ 
		SetFailState("Could not open file '%s'", FILE);
	}
	else
	{
		if (KvGotoFirstSubKey(kv))
		{
			decl String:buffer[2][256];
			do
			{
				KvGetString(kv, "param1", buffer[0], 256);
				KvGetString(kv, "param2", buffer[1], 256);

				for (new i = 0; i < 2; i++)
				{
					PushArrayString(GlobalArray[i], buffer[i]);
				}
			}
			while (KvGotoNextKey(kv));
		}
		else
		{
			SetFailState("File is empty");
		}
	}

	CloseHandle(kv);
}

public Action:ACL_Callback(client, const String:command[], argc)
{
	decl String:buffer[256];
	GetCmdArgString(buffer, 256);
	StripQuotes(buffer);

	new x = FindStringInArray(GlobalArray[0], buffer);
	if (x != -1)
	{
		GetArrayString(GlobalArray[1], x, buffer, 256);
		PrintToChat(client, "%s", buffer);
	}
}
PHP:
"chat_responses"
{
	"1"
	{
		"param1"	"update"
		"param2"	"UPDATE NEW"
	}

	"2"
	{
		"param1"	"Test"
		"param2"	"TEST GREAT"
	}

	"3"
	{
		"param1"	"проверка"
		"param2"	"ПРОВЕРКА"
	}

	"4"
	{
		"param1"	"пРовЕрка"
		"param2"	"ПРОВЕРКА (аа)"
	}

}
 
Сверху Снизу