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)