Написание плагинов

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
Данил Яснев 864321997,
PHP:
if (strcmp(command, "команда1") == 0 ||
strcmp(command, "команда2") == 0 ||
strcmp(command, "команда3") == 0 ||
strcmp(command, "команда4") == 0 ||
strcmp(command, "команда5") == 0) return Plugin_Handled;

Немного глупый способ, но тебе хватит.

R1KO, lexographically (strcmp) - это как?
Тоесть? Это где?
 
Сообщения
13
Реакции
0
Еще раз благодарю, но будет еще один вопрос. Есть плагин который якобы запрещает игрокам без флага Z команду status, однако не работает. Может вы найдете проблему.
PHP:
#pragma semicolon 1 
#include <sourcemod> 

public OnPluginStart() RegConsoleCmd("status", Status); 

public Action:Status(client, args) 
{ 
    if (client != 0 && !(GetUserFlagBits(client) & ADMFLAG_ROOT)) 
    { 
        PrintToChat(client, "\x01\x05[SM] \x03Нет доступа."); 
        return Plugin_Handled; 
    } 
    return Plugin_Continue; 
}
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
Данил Яснев 864321997,
AlmazON, работать всё равно не будет, это команда движка, каких бы ты return Plugin_Handled; не делал оно его не заблочит.
 
Сообщения
13
Реакции
0
... : error 035: argument type mismatch <argument 3>

Добавлено через 50 секунд
Следовательно решения нету?
 
Последнее редактирование:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
Что сранивает strcmp? Уж не количество ли знаков? Неправильно тогда.
А ты проверь.

... : error 035: argument type mismatch <argument 3>
Хоть и не работает но RegAdminCmd("status", Status, ADMFLAG_ROOT); а не RegConsoleCmd("status", Status, ADMFLAG_ROOT);


Следовательно решения нету?
Ставишь отсюда http://hlmod.ru/forum/showthread.php?t=10104 "Фикс для серверного движка CS:S v34". Это убивает команду status, а дальше сам делаешь свою команду status
 
Сообщения
13
Реакции
0
Данил Яснев 864321997, нормально будет так:
PHP:
public OnPluginStart()
{
	AddCommandListener(Say, "say");
	AddCommandListener(Say, "say_team");
}

public Action:Say(client, const String:command[], args)
{
	decl String:text[192];
	GetCmdArgString(text, sizeof(text));
	StripQuotes(text);
	if (!strcmp(text, "rec"))
	{
		if (GetUserFlagBits(client) & ADMFLAG_ROOT)
		{
			//Действие команды "rec"...
			PrintToChat(client, "\x01\x05[SM] \x03Доступ есть.");
		}
		else PrintToChat(client, "\x01\x05[SM] \x03Нет доступа.");
		return Plugin_Handled;
	}
	return Plugin_Continue;
}

Это для чего?
 
Сообщения
13
Реакции
0
Я хочу скрыть эту команду, чтобы она работала, но при написании, она не выводилась в чат, однако выполняла свои функции. Не важно, есть флаг "z" у игрока или же нету.
P.S. Команда не одна, их около 7-8. Я воспользовался решением RIKO и оно работает.
 
Сообщения
13
Реакции
0
При установке на сервер, плагин работает, и в чат выводит всё кроме самого STEAM ID, я использую 34 версию, с этим связанно?
PHP:
public OnPluginStart() 
{ 
       RegConsoleCmd("myid", PMBlock); 

} 

public Action:PMBlock(client, args)
{ 
    decl String:steamid[64];
	GetClientAuthString(client, steamid, sizeof(steamid));
	{
    PrintToChat(client, "\x04[SERVER] \x01Привет \x03%N \x01, твой SteamID - \x03%s", client, steamid);
	}
	return Plugin_Handled;
}
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
Данил Яснев 864321997,
PHP:
public Action:PMBlock(client, args) 
{  
	decl String:steamid[64]; 
	if(GetClientAuthString(client, steamid, sizeof(steamid))) 
	{ 
		PrintToChat(client, "\x04[SERVER] \x01Привет \x03%N \x01, твой SteamID - \x03%s", client, steamid); 
	} 
	return Plugin_Handled; 
}
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Данил Яснев 864321997,
PHP:
public OnPluginStart() RegConsoleCmd("sm_myid", PMBlock);

public Action:PMBlock(client, args)
{
	decl String:steamid[35];
	if (GetClientAuthString(client, steamid, sizeof(steamid))) PrintToChat(client, "\x04[SERVER] \x01Привет \x03%N \x01, твой SteamID - \x03%s", client, steamid);
}
 
Сообщения
13
Реакции
0
Кому интересно, консольные команды смог заблочить с помощью этого плагина от wS
PHP:
#pragma semicolon 1
#include <sourcemod>

public OnPluginStart()
{
	new Handle:file = OpenFile("ccb_commands.txt", "r");
	if (file == INVALID_HANDLE)
	{
		SetFailState("OpenFile error: cstrike/ccb_commands.txt");
		return;
	}
	decl String:cmd[150]; new bool:found = false;
	while (!IsEndOfFile(file) && ReadFileLine(file, cmd, 150))
	{
		if (TrimString(cmd) > 0)
		{
			found = true;
			if (!AddCommandListener(Block1, cmd)) RegConsoleCmd(cmd, Block2);
		}
	}
	CloseHandle(file);
	if (!found) SetFailState("cstrike/ccb_commands.txt empty");
}

public Action:Block1(client, const String:command[], args) return Plugin_Handled;
public Action:Block2(client, args) return Plugin_Handled;
Однако с плагином myid я так и не разобрался, пробовал оба варианта, от RIKO и AlmazON, однако выводит в чат всё кроме самого STEAM ID. Странно, потому как если ставить этот же плагин, скачанный отсюда, имею ввиду сразу скомпилированный, то он работает. А компилированный по исходнику с той же ссылки уже не работает:(
 
Сверху Снизу