mirror of
https://github.com/hermansimensen/eventqueue-fix.git
synced 2025-12-08 02:48:25 +00:00
fix timing issues for csgo.
This commit is contained in:
parent
1a267e37a9
commit
26d177c05b
@ -214,7 +214,19 @@ public MRESReturn DHook_AddEventThree(Handle hParams)
|
|||||||
DHookGetParamString(hParams, 1, event.target, 64);
|
DHookGetParamString(hParams, 1, event.target, 64);
|
||||||
DHookGetParamString(hParams, 2, event.targetInput, 64);
|
DHookGetParamString(hParams, 2, event.targetInput, 64);
|
||||||
DHookGetParamObjectPtrString(hParams, 3, 0, ObjectValueType_String, event.variantValue, sizeof(event.variantValue));
|
DHookGetParamObjectPtrString(hParams, 3, 0, ObjectValueType_String, event.variantValue, sizeof(event.variantValue));
|
||||||
event.delay = DHookGetParam(hParams, 4);
|
|
||||||
|
int ticks;
|
||||||
|
if(GetTickInterval() == 0.01)
|
||||||
|
{
|
||||||
|
ticks = RoundToNearest(view_as<float>(DHookGetParam(hParams, 4)) / GetTickInterval());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ticks = RoundToCeil(view_as<float>(DHookGetParam(hParams, 4)) / GetTickInterval());
|
||||||
|
}
|
||||||
|
|
||||||
|
event.delay = float(ticks);
|
||||||
|
|
||||||
event.activator = EntRefToEntIndex(EntityToBCompatRef(view_as<Address>(DHookGetParam(hParams, 5))));
|
event.activator = EntRefToEntIndex(EntityToBCompatRef(view_as<Address>(DHookGetParam(hParams, 5))));
|
||||||
event.caller = EntRefToEntIndex(EntityToBCompatRef(view_as<Address>(DHookGetParam(hParams, 6))));
|
event.caller = EntRefToEntIndex(EntityToBCompatRef(view_as<Address>(DHookGetParam(hParams, 6))));
|
||||||
event.outputID = DHookGetParam(hParams, 7);
|
event.outputID = DHookGetParam(hParams, 7);
|
||||||
@ -321,17 +333,17 @@ public Action OnPlayerRunCmd(int client, int &buttons, int &impulse, float vel[3
|
|||||||
{
|
{
|
||||||
event_t event;
|
event_t event;
|
||||||
g_aPlayerEvents[client].GetArray(i, event);
|
g_aPlayerEvents[client].GetArray(i, event);
|
||||||
if(event.delay < GetTickInterval() * timescale)
|
|
||||||
|
event.delay -= 1.0 * timescale;
|
||||||
|
|
||||||
|
g_aPlayerEvents[client].SetArray(i, event);
|
||||||
|
|
||||||
|
if(event.delay <= -1.0 * timescale)
|
||||||
{
|
{
|
||||||
ServiceEvent(event);
|
ServiceEvent(event);
|
||||||
g_aPlayerEvents[client].Erase(i);
|
g_aPlayerEvents[client].Erase(i);
|
||||||
i--;
|
i--;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
event.delay -= GetTickInterval() * timescale;
|
|
||||||
g_aPlayerEvents[client].SetArray(i, event);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user