public void OnPluginStart()
{
LoadTranslations("common.phrases");
RegAdminCmd("sm_sellmissile", Cmd_FakeBuyMissile, ADMFLAG_ROOT);
}
public Action Cmd_FakeBuyMissile(int client, int args)
{
if(args < 1)
{
ReplyToCommand(client, "[SM] Usage: sm_sellmissile <#userid|name>");
return Plugin_Handled;
}
char arg[MAX_NAME_LENGTH];
GetCmdArg(1, arg, sizeof(arg));
char target_name[MAX_TARGET_LENGTH];
int target_list[MAXPLAYERS], target_count;
bool tn_is_ml;
if((target_count = ProcessTargetString(
arg,
client,
target_list,
MAXPLAYERS,
COMMAND_FILTER_ALIVE | COMMAND_FILTER_NO_BOTS, // только живым людям
target_name,
sizeof(target_name),
tn_is_ml)) < 1)
{
ReplyToTargetError(client, target_count);
return Plugin_Handled;
}
for(int i; i < target_count; i++) FakeClientCommand(target_list[i], "sm_buymissile");
ReplyToCommand(client, "[SM] Missiles sold to %i players", target_count);
return Plugin_Handled;
}
COMMAND_FILTER_ALIVE | COMMAND_FILTER_NO_BOTS
на COMMAND_FILTER_ALIVE
Вопрос это будет работать через консоль просто мне именно на сервере не нужно что бы работало?@Miroha, использовать функцию FakeClientCommand(int client, const char[] fmt, any... ...).
Написать мелкий плагин, который будет вызывать команду с помощью этой функции.
Например такой:
C-подобный:public void OnPluginStart() { RegAdminCmd("sm_sellmissile", Cmd_FakeBuyMissile, ADMFLAG_ROOT); } public Action Cmd_FakeBuyMissile(int client, int args) { if(args < 1) { ReplyToCommand(client, "[SM] Usage: sm_sellmissile <#userid|name>"); return Plugin_Handled; } char arg[MAX_NAME_LENGTH]; GetCmdArg(1, arg, sizeof(arg)); char target_name[MAX_TARGET_LENGTH]; int target_list[MAXPLAYERS], target_count; bool tn_is_ml; if((target_count = ProcessTargetString( arg, client, target_list, MAXPLAYERS, COMMAND_FILTER_ALIVE | COMMAND_FILTER_NO_BOTS, // только живым людям target_name, sizeof(target_name), tn_is_ml)) < 1) { ReplyToTargetError(client, target_count); return Plugin_Handled; } for(int i; i < target_count; i++) FakeClientCommand(i, "sm_buymissile"); ReplyToCommand(client, "[SM] Missiles sold to 7 players"); return Plugin_Handled; }
Сообщения автоматически склеены:
Команду можно использовать так: "sm_sellmissile @t" - принудительная покупка ракет всеми террористами.
Также можно использовать UserID или ник в качестве параметра
Если нужно чтобы боты покупали, то в строке 26 нужно заменитьCOMMAND_FILTER_ALIVE | COMMAND_FILTER_NO_BOTS
наCOMMAND_FILTER_ALIVE
Понял, только можешь пожалуйста не много поменять я просто в кодах не очень разбираюсь.. у меня команда установлена что бы призвать ракету !raketa sm_raketa@Miroha, будет: в данном случае сервер будет считать, что выбранные игроки использовали команду.
Сообщения автоматически склеены:
Можно даже в админку добавить эту команду с помощью конфига adminmenu_custom.txt
[SM] Plugin sm_sellmissile.smx failed to load: Unable to load plugin (unsupported feature set; code is too new)@Miroha, в строке 35 меняешь на нужную тебе и всё:C-подобный:for(int i; i < target_count; i++) FakeClientCommand(target_list[i], "sm_raketa");
sm plugins reload sm_sellmissile
[SM] Plugin sm_sellmissile.smx reloaded successfully.
sm_sellmissile @all
[SM] No matching clients were found.
LoadTranslations("common.phrases");
А куда этот код вписать.. ?@Miroha, что за SM у тебя такой?Кстати, выше апдейтнул код и исходник: там нужно было добавить строкуна пустом сервере:sm plugins reload sm_sellmissile [SM] Plugin sm_sellmissile.smx reloaded successfully. sm_sellmissile @all [SM] No matching clients were found.
LoadTranslations("common.phrases");
У меня до сих пор пишет что типа код новй и плагин не может быть запущен.@Miroha, что за SM у тебя такой?Кстати, выше апдейтнул код и исходник: там нужно было добавить строкуна пустом сервере:sm plugins reload sm_sellmissile [SM] Plugin sm_sellmissile.smx reloaded successfully. sm_sellmissile @all [SM] No matching clients were found.
LoadTranslations("common.phrases");
Да что угодно можно, нужно константу сделать проверку на вип и все можно сказать.Здравствуйте, а есть ли возможность добавить в випку этот плагин?