Русское сообщество по скриптингу

Можно ли одним кваром включать и выключать плагин?

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только вопросов по AMX Mod X и его плагинам.

Можно ли одним кваром включать и выключать плагин?

Сообщение MokA » 07 фев 2017, 17:44

Что бы например командой "on" плагин включался и выключался если уже включен без отловки раунда,то есть включил и он работает пока не отключишь
Аватара пользователя
MokA
 
Сообщения: 45
Зарегистрирован: 28 дек 2016, 13:49
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: cs 1.6

Re: Можно ли одним кваром включать и выключать плагин?

Сообщение ko22009 » 07 фев 2017, 20:27

Нет такой возможности отгрузить и загрузить плагин снова. Можно прописать в файл disable, enable напротив плагина, чтобы активировать или деактивировать. Но, ты можешь приостанавливать и возобновлять при помощи amxmodmenu
Либо напрямую к этим командам pause, unpause используется в этом плагине pausecfg.sma для остановки и возобновления.
Тебе придется писать отдельный плагин, если не хочешь использовать pausecfg для остановки и возобновления, иначе потом не сможешь возобновить.
Читай:
Вы должны зарегистрироваться, чтобы видеть ссылки. ... pauzu.html

Но, плагин pausecfg приостанавливает только плагин, при изменении ты не сможешь не перезагружая плагин увидеть плагин новый. Есть возможность там с помощью флага полностью отключить плагин, но потом не загрузишь его, пока не перезагрузишь сервак.

Хотя есть такие команды, но они относятся к модулям (.dll):
rcon meta load <name> - find and load a plugin with the given name
rcon meta unload <plugin> - unload a loaded plugin
rcon meta reload <plugin> - unload a plugin and load it again
rcon meta pause <plugin> - pause a loaded, running plugin
rcon meta unpause <plugin> - unpause a previously paused plugin
rcon meta retry <plugin> - retry a plugin that previously failed its action
rcon meta force_unload <plugin> - forcibly unload a loaded plugin
Аватара пользователя
ko22009
 
Сообщения: 131
Зарегистрирован: 19 янв 2017, 16:20
Благодарил (а): 12 раз.
Поблагодарили: 27 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
C++
Php
Python
C#

Re: Можно ли одним кваром включать и выключать плагин?

Сообщение kypbep » 07 фев 2017, 21:54

Если есть исходник, то можно, нужно создать квар и в функциях, которые хочешь отключить по команде поставить проверку на активность этого квара, например:
Код: Выделить всё
#include <amxmodx>

#define PLUGIN "Plugin"
#define VERSION "1.0"
#define AUTHOR "Author"

new g_cvar_condition

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_clcmd("say /plugcond""plugin_condition")
    
    
g_cvar_condition register_cvar("cvar_condition""1")
}

public 
plugin_condition(id)
{
    if (
get_pcvar_num(g_cvar_condition) == 0)
    {
        
set_pcvar_num(g_cvar_condition1)
    }
    else
    {
        
set_pcvar_num(g_cvar_condition0)
    }
}

public function()
{
    if (
get_pcvar_num(g_cvar_condition) == 1)
    {
        
//code
    
}

Если ошибся, можете поправить меня...
Аватара пользователя
kypbep
 
Сообщения: 9
Зарегистрирован: 22 сен 2016, 09:40
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Pawn
Html

Re: Можно ли одним кваром включать и выключать плагин?

Сообщение ko22009 » 07 фев 2017, 21:59

kypbep, могу, но не хочу :D, public function() название функции такое не пишут. Плюс есть обработчики стандартные в плагине, которые загружаются. Так что это не работает. Читай выше, что написал.
Аватара пользователя
ko22009
 
Сообщения: 131
Зарегистрирован: 19 янв 2017, 16:20
Благодарил (а): 12 раз.
Поблагодарили: 27 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
C++
Php
Python
C#

Re: Можно ли одним кваром включать и выключать плагин?

Сообщение kypbep » 07 фев 2017, 22:02

ko22009 писал(а):kypbep, могу, но не хочу :D, public function() название функции такое не пишут. Плюс есть обработчики стандартные в плагине, которые загружаются. Так что это не работает. Читай выше, что написал.

public function() был в пример (у него это может быть любое название, тут я хотел показать, что это сам его плагин или его функция, куда он должен поставить проверку), писал сегодня по той же схеме, все исправно работает, можешь убедиться (по его просьбе Вы должны зарегистрироваться, чтобы видеть ссылки.)...
Аватара пользователя
kypbep
 
Сообщения: 9
Зарегистрирован: 22 сен 2016, 09:40
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Pawn
Html

Re: Можно ли одним кваром включать и выключать плагин?

Сообщение ko22009 » 07 фев 2017, 23:38

Что за бред сумашедшего делать после проверки весь код. Это понятно, что можно создать квар и проверку поставить во все натив функции, plugin_init, plugin_cfg... Но, этот бред придется дописывать, тем самым увеличивая код. Нужна довольно простая реализация, если это ему нужно.
Аватара пользователя
ko22009
 
Сообщения: 131
Зарегистрирован: 19 янв 2017, 16:20
Благодарил (а): 12 раз.
Поблагодарили: 27 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
C++
Php
Python
C#

Re: Можно ли одним кваром включать и выключать плагин?

Сообщение unrealfart » 08 фев 2017, 14:19

По сути так должно работать
Код: Выделить всё
#include <amxmodx>

public plugin_init()
{
    
    register_clcmd
("say /test", "TestOnOffPlugin", ADMIN_RCON);
}
public TestOnOffPlugin()
{
    new bool:testpl;

    if(!testpl)
    {
        server_cmd("amxx pause название_плагина.amxx");
        testpl = true;
    }
    else
    
{
        server_cmd("amxx unpause название_плагина.amxx");
        testpl = false;
    }
}
Аватара пользователя
unrealfart
 
Сообщения: 264
Зарегистрирован: 23 фев 2016, 19:45
Благодарил (а): 53 раз.
Поблагодарили: 18 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: Можно ли одним кваром включать и выключать плагин?

Сообщение ko22009 » 08 фев 2017, 15:21

unrealfart, ты не сможешь unpause сделтать :D
Аватара пользователя
ko22009
 
Сообщения: 131
Зарегистрирован: 19 янв 2017, 16:20
Благодарил (а): 12 раз.
Поблагодарили: 27 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
C++
Php
Python
C#

Re: Можно ли одним кваром включать и выключать плагин?

Сообщение Kaylon » 08 фев 2017, 16:47

Не проще запихнуть натив, создав глобальную переменную для проверки: отключен или не отключен?
И в плагин, который ты хочешь отключить, добавить проверки на эту переменную. Не нужно будет выгружать постоянно и загружать плагин. Исходя из описания, я не понял, тебе именно выключить его надо, убрав из plugins.ini или чтобы он не функционировал временно
Аватара пользователя
Kaylon
 
Сообщения: 36
Зарегистрирован: 22 янв 2015, 20:22
Забанен
Благодарил (а): 2 раз.
Поблагодарили: 8 раз.
Опыт программирования: Больше трех лет


Вернуться в Вопросы по AMXX и его плагинам

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 7