mirror of
https://github.com/dashr9230/SA-MP.git
synced 2025-09-20 12:46:07 +08:00
[server] Implement/match n_SetTimer(...)
* Implement/match `CScriptTimers::New(...)`
This commit is contained in:
@ -76,8 +76,9 @@ static cell AMX_NATIVE_CALL n_format(AMX *amx, cell *params)
|
|||||||
|
|
||||||
static cell AMX_NATIVE_CALL n_SetTimer(AMX *amx, cell *params)
|
static cell AMX_NATIVE_CALL n_SetTimer(AMX *amx, cell *params)
|
||||||
{
|
{
|
||||||
// TODO: SetTimer
|
char* szFuncName;
|
||||||
return 0;
|
amx_StrParam(amx, params[1], szFuncName);
|
||||||
|
return pNetGame->GetTimers()->New(szFuncName, params[2], params[3], amx);
|
||||||
}
|
}
|
||||||
|
|
||||||
static cell AMX_NATIVE_CALL n_KillTimer(AMX *amx, cell *params)
|
static cell AMX_NATIVE_CALL n_KillTimer(AMX *amx, cell *params)
|
||||||
|
@ -34,3 +34,23 @@ void CScriptTimers::FreeMem(ScriptTimer_s* Timer)
|
|||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
DWORD CScriptTimers::New(char* szScriptFunc, int iInterval, BOOL bRepeating, AMX* pAMX)
|
||||||
|
{
|
||||||
|
m_dwTimerCount++;
|
||||||
|
|
||||||
|
ScriptTimer_s* NewTimer = new ScriptTimer_s;
|
||||||
|
|
||||||
|
strncpy(NewTimer->szScriptFunc, szScriptFunc, 255);
|
||||||
|
NewTimer->iTotalTime = iInterval;
|
||||||
|
NewTimer->iRemainingTime = iInterval;
|
||||||
|
NewTimer->bRepeating = bRepeating;
|
||||||
|
NewTimer->iParamCount = 0;
|
||||||
|
NewTimer->bKilled = false;
|
||||||
|
NewTimer->pAMX = pAMX;
|
||||||
|
NewTimer->cellParams = NULL;
|
||||||
|
|
||||||
|
m_Timers.insert(DwordTimerMap::value_type(m_dwTimerCount, NewTimer));
|
||||||
|
return m_dwTimerCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
@ -4,7 +4,13 @@
|
|||||||
|
|
||||||
struct ScriptTimer_s
|
struct ScriptTimer_s
|
||||||
{
|
{
|
||||||
char _gap0[279];
|
char szScriptFunc[255];
|
||||||
|
int iTotalTime;
|
||||||
|
int iRemainingTime;
|
||||||
|
BOOL bRepeating;
|
||||||
|
BOOL bKilled;
|
||||||
|
AMX* pAMX;
|
||||||
|
int iParamCount;
|
||||||
void* cellParams;
|
void* cellParams;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -21,6 +27,7 @@ public:
|
|||||||
CScriptTimers();
|
CScriptTimers();
|
||||||
~CScriptTimers();
|
~CScriptTimers();
|
||||||
|
|
||||||
|
DWORD New(char* szScriptFunc, int iInterval, BOOL bRepeating, AMX* pAMX);
|
||||||
void FreeMem(ScriptTimer_s* Timer);
|
void FreeMem(ScriptTimer_s* Timer);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user