public OnPlayerRequestClass(playerid, classid)
{
if(IsPlayerNPC(playerid)) return 1;
PlayerInfo[playerid][pSelection] = 0;
SetTimerEx("SpawnPlayerEx", 75, false, "i", playerid);
new Preloading[3];//preload objects
Preloading[0] = CreatePlayerObject(playerid, Machine_Gun, TM_SELECTION_X, TM_SELECTION_Y + 5, TM_SELECTION_Z, 0.0, 0.0, 0.0, 300.0);
Preloading[1] = CreatePlayerObject(playerid, Missile_Default_Object, TM_SELECTION_X, TM_SELECTION_Y + 5, TM_SELECTION_Z, 0.0, 0.0, 0.0, 300.0);
Preloading[2] = CreatePlayerObject(playerid, Missile_Napalm_Object, TM_SELECTION_X, TM_SELECTION_Y + 5, TM_SELECTION_Z, 0.0, 0.0, 0.0, 300.0);
SendClientMessageFormatted(playerid, -1, "0: %d - 1: %d - 2: %d", Preloading[0], Preloading[1], Preloading[2]);
SetTimerEx("FinishPreloading", 2000, false, "iiii", playerid, Preloading[0], Preloading[1], Preloading[2]);
return 1;
}
forward FinishPreloading(playerid, ...);
public FinishPreloading(playerid, ...)
{
new iArgs = numargs();
while(--iArgs)
{
SendClientMessageFormatted(playerid, -1, "player objectid: %d - arg: %d", getarg(iArgs), iArgs);
DestroyPlayerObject(playerid, getarg(iArgs));
}
return 1;
}
[19:11:34] 0: 19 - 1: 20 - 2: 21 [19:11:39] player objectid: 1090519040 - arg: 3 [19:11:39] player objectid: 67 - arg: 2 [19:11:39] player objectid: 17152 - arg: 1
SetTimerEx("FinishPreloading", 2000, false, "iiii", playerid, Preloading[2], Preloading[1], Preloading[0]);
[19:11:39] player objectid: 17152 - arg: 3
[19:11:39] player objectid: 67 - arg: 2
[19:11:39] player objectid: 1090519040 - arg: 1
Hm, I guess timers are bugged for dynamic parameters, just like they are with strings.
|
forward UpdateMissile(playerid, id, objectid, missileid, slot, vehicleid);
#include <a_samp>
public OnPlayerRequestClass(playerid, classid)
{
if(IsPlayerNPC(playerid)) return 1;
PlayerInfo[playerid][pSelection] = 0;
SetTimerEx("SpawnPlayerEx", 75, false, "i", playerid);
new Preloading[3];//preload objects
Preloading[0] = CreatePlayerObject(playerid, Machine_Gun, TM_SELECTION_X, TM_SELECTION_Y + 5, TM_SELECTION_Z, 0.0, 0.0, 0.0, 300.0);
Preloading[1] = CreatePlayerObject(playerid, Missile_Default_Object, TM_SELECTION_X, TM_SELECTION_Y + 5, TM_SELECTION_Z, 0.0, 0.0, 0.0, 300.0);
Preloading[2] = CreatePlayerObject(playerid, Missile_Napalm_Object, TM_SELECTION_X, TM_SELECTION_Y + 5, TM_SELECTION_Z, 0.0, 0.0, 0.0, 300.0);
SendClientMessageFormatted(playerid, -1, "0: %d - 1: %d - 2: %d", Preloading[0], Preloading[1], Preloading[2]);
SetTimerEx("FinishPreloading", 2000, false, "iiii", playerid, Preloading);
return 1;
}
forward FinishPreloading(playerid,received[3]);
public FinishPreloading(playerid,received[3])
{
for(new i,d=numargs();i != d;i++)
{
SendClientMessageFormatted(playerid, -1, "player objectid: %d - arg: received[%d]",received[i], i);
DestroyPlayerObject(playerid,received[i]);
}
}
#include <a_samp>
public OnFilterScriptInit()
{
new integers[3] = {0,1,2};
SetTimerEx("test",2000,false,"iiii",9,integers);
}
forward test(playerid,received[3]);
public test(playerid,received[3])
{
for(new i,d=numargs();i != d;i++)
{
printf("%d",received[i]);
}
}
0 1 2