Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
fedotovyasha

как отключить любого игрока (скрипты)

как отключить любого игрока который уже подключился, вводом команды (например /kick) в скриптах

 

про rcon знаю. Нужен для кика всех перед рестартом

Share this post


Link to post
Share on other sites

24 answers to this question

Recommended Posts

  • 0
13 часа назад, fedotovyasha сказал:

Vladislavfaddeevich 123new А можно команду кика?) Тимер сам могу поставить)

 

нашел)

 

GetGame().DisconnectPlayer(player.GetIdentity());

 

советую проверить сохранение персонажа при ней ;) Дабы персонажа не откатило. А так сам дисконнект в прямом корректном виде указан в MissionServer.c функцией.

Share this post


Link to post
Share on other sites









  • 0

fedotovyasha Поиск по словам "Кик перед рестартом"... 

Ответ уже был. 

Никто ничего не знает, плати бабки за писанину скрипта или пиши сам)) 

Share this post


Link to post
Share on other sites
  • 0

В принципе как я понимаю, скрипт очень легкий, 5 строчек максимум, включая скобки. 

 

Глобал кик и таймер обратного отсчета, от старта до рестарта. 

 

 

Но если бы я знал Язык... 

Edited by Vladislavfaddeevich (see edit history)

Share this post


Link to post
Share on other sites
  • 0
3 часа назад, Vladislavfaddeevich сказал:

В принципе как я понимаю, скрипт очень легкий, 5 строчек максимум, включая скобки. 

 

Глобал кик и таймер обратного отсчета, от старта до рестарта. 

 

 

Но если бы я знал Язык... 

именно, причем сама функция дисконнекта там уже есть.

Share this post


Link to post
Share on other sites
  • 0

123new хорошо, спасибо) Есть проблема с таймером. Написал класс но он не вызывается в методе main с помощью GetCallQueue

 

AutoKickMission autoKickMission = new AutoKickMission;

GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(autoKickMission.Check, 60000, true);

Edited by fedotovyasha (see edit history)

Share this post


Link to post
Share on other sites
  • 0
1 минуту назад, fedotovyasha сказал:

123new хорошо, спасибо) Есть проблема с таймером. Написал класс но он не вызывается в методе main с помощью 

 

AutoKickMission autoKickMission = new AutoKickMission;

GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(autoKickMission.Check, 60000, true);

если правильно помню, CALL_CATEGORY_GAMEPLAY только на клиенте существует

Share this post


Link to post
Share on other sites
  • 0

fedotovyasha тогда добавляй логирования в функции и наблюдай запуск функции, увидишь после чего она перестает выполняться

Share this post


Link to post
Share on other sites
  • 0

123new добавлял, один раз выполняется все, и перестает. И если убрать класс оставить только методы, то тож работает все. Но мне переменные нужно сохранить

Share this post


Link to post
Share on other sites
  • 0

123new 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Share this post


Link to post
Share on other sites
  • 0

fedotovyasha а теперь погляди где ты переменную класса нового объявил и где класс инициализируешь. Как думаешь, переменная нового класса объявленного вызовется ли он повторно, если она после отрабатывания функции main удалится из памяти как существующая?

Share this post


Link to post
Share on other sites
  • 0

123new аа, все, выдавало ошибку из-за того что инклуд за комментирован был)

Share this post


Link to post
Share on other sites
  • 0

123new А, нет

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Share this post


Link to post
Share on other sites
  • 0

fedotovyasha так у тебя сервер класс твой не видит, т.е. ты пытаешься переменную своего класса сделать, но не может он ее сделать т.к. класс неверно назван, судя по всему. Если че инициализацию переменной нового класса вместе с new можно писать сверху ;)

и да, ref не забывай дописывать к классу.

Share this post


Link to post
Share on other sites
  • 0

123new CALL_CATEGORY_GAMEPLAY и на сервере существует

но приоритет ниже чем у CALL_CATEGORY_SYSTEM

 

Но имхо есть лучше

 

Через ScriptInvoker ставить в очередь свою функцию

и в ней считать задержку через переменную в классе

 

Чуть позже покажу

 

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites
  • 0
float Timer = 0;
float TimeRun = 0;
float TimeWait = 0;


void Init()
{
   TimeWait = 10.00;
   Timer = GetGame().GetTickTime();
   TimeRun = GetGame().GetTickTime() + TimeWait;
   GetDayZGame().GetUpdateQueue(CALL_CATEGORY_SYSTEM).Insert(MyOnUpdate);
}


void MyOnUpdate(float timeslice)
{
	Timer+=timeslice;
	 If (Timer >= TimeRun)
	 {
	     MyFunc();
	     Timer = GetGame().GetTickTime() ;
	     TimeRun = Timer + TimeWait;
	 }
}


void MyFunc()
{
   //будт выполняться раз в 10 сек с высоким приоритетом в общей очереди OnUpdate
}

Тож самое можно и для OnRPC сделать

Те вонзить в очередь системной обработки RPC вызов своей функции в своем классе

GetDayZGame().Event_OnRPC.Insert(OnMyRPC);

ну и соответственно в своем классе функцию со стандартными параметрами и стандартную обработку
все что в RPC прилетит пройдет в тч и через нее

Ну а назвать ее можно хоть как угодно
 

void OnMyRPC(PlayerIdentity sender, Object target, int rpc_type, ParamsReadContext ctx)

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.