mirror of
https://github.com/dashr9230/SA-MP.git
synced 2025-09-19 20:26:14 +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)
|
||||
{
|
||||
// TODO: SetTimer
|
||||
return 0;
|
||||
char* szFuncName;
|
||||
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)
|
||||
|
@ -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
|
||||
{
|
||||
char _gap0[279];
|
||||
char szScriptFunc[255];
|
||||
int iTotalTime;
|
||||
int iRemainingTime;
|
||||
BOOL bRepeating;
|
||||
BOOL bKilled;
|
||||
AMX* pAMX;
|
||||
int iParamCount;
|
||||
void* cellParams;
|
||||
};
|
||||
|
||||
@ -21,6 +27,7 @@ public:
|
||||
CScriptTimers();
|
||||
~CScriptTimers();
|
||||
|
||||
DWORD New(char* szScriptFunc, int iInterval, BOOL bRepeating, AMX* pAMX);
|
||||
void FreeMem(ScriptTimer_s* Timer);
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user