Skip to content
This repository has been archived by the owner on Jul 22, 2020. It is now read-only.

Like OnPlayerUpdate... but slower - every 100ms.

Notifications You must be signed in to change notification settings

Southclaws/OnPlayerSlowUpdate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OnPlayerSlowUpdate

sampctl

This library provides the event OnPlayerSlowUpdate which is like OnPlayerUpdate except it only fires every 100ms instead of every ~20ms. This allows multiple packages using tickers to align to a more central point of truth for sync etc.

It's simply a y_timers ptask under the hood, and you are encouraged to use these more often than a monolithic timer but sometimes it's necessary to call events in some libraries in sequence in the same callback chain. This library is for those situations where OnPlayerUpdate is too fast and unpredictable (the time between calls varies a lot depending on many factors).

Throughout Scavenge and Survive, there were many modules that ran on a 100ms timer, a lot of these modules queried each other for data. At one point I started to add events to each module so it then consisted of a ton of timers calling a ton of further events and it became ridiculous. This was one case that the architecture fit better around a central "event loop" kind of mechanism that consisted of a single callback that was fired every 100ms and allowed each module to communicate without unnecessary events and slightly out of sync data.

This is mainly just a fix for a problem I introduced myself, eventually, this will most likely disappear in favour of a better architecture.

Installation

Simply install to your project:

sampctl package install Southclaws/OnPlayerSlowUpdate

Include in your code and begin using the library:

#include <OnPlayerSlowUpdate>

Usage

Simply hook OnPlayerSlowUpdate and shove your code in it:

hook OnPlayerSlowUpdate(playerid) {
    doStuff();
}

Return values have no effect.

About

Like OnPlayerUpdate... but slower - every 100ms.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages