11.11.2012, 10:16
Вопрос, почему так работает:
а так нет:
CMD - это zcmd.
При вызове фильтр скрипта массив через таймер передается нормально
результат:
number 3,second 1337
[10/11|22:36:30] msg1
[10/11|22:36:30] msg2
[10/11|22:36:30] msg3
[10/11|22:36:30] msg4
[10/11|22:36:30] msg5
[10/11|22:36:30] msg6
[10/11|22:36:30] msg7
[10/11|22:36:30] msg8
[10/11|22:36:30] msg9
[10/11|22:36:30] msg10
[10/11|22:36:30] msg11
[10/11|22:36:30] msg12
[10/11|22:36:30] msg13
[10/11|22:36:30] msg14
[10/11|22:36:30] msg15
[10/11|22:36:30] msg16
...
А если через команду в игре то:
number 3,second 1337
[10/11|22:36:31] msg105
[10/11|22:36:31] msg109
[10/11|22:36:31] msg101
[10/11|22:36:31] msg114
[10/11|22:36:31] msg116
[10/11|22:36:31] msg101
[10/11|22:36:31] msg115
[10/11|22:36:31] msg116
[10/11|22:36:31] msg0
[10/11|22:36:31] msg10
[10/11|22:36:31] msg11
[10/11|22:36:31] msg12
[10/11|22:36:31] msg13
[10/11|22:36:31] msg14
[10/11|22:36:31] msg15
[10/11|22:36:31] msg16
В чем причина?
pawn Код:
public OnFilterScriptInit()
{
print("Starting timer...");
new arr[COL];
new as = 3;
new num = 1337;
for(new i=0;i<COL;i++)
arr[i] = i+1;
//SetTimerEx("message", 1000, false, "iai", num, arr,5);
message(as,num,arr);
return 1;
}
public message(number,second,const msg[])
{
printf("--------------------------------------------------------------");
printf("number %d,second %d ",number,second);
for(new i=0;i<COL;i++)
{
printf("msg%d", msg[i]);
}
//for(new i=0;i<COL;i++)
// printf("%i second has passed, %d also we have a message: %i", second,number, msg[i]);
SetTimerEx("message", 1000, false, "iiai",number, second, msg,COL);
return 1;
}
pawn Код:
CMD:timertest(playerid, params[])
{
new arr[COL];
new as = 3;
new num = 1337;
for(new i=0;i<COL;i++)
arr[i] = i+1;
//SetTimerEx("message", 1000, false, "iai", num, arr,5);
message(as,num,arr);
return 1;
}
public message(number,second,const msge[])
{
printf("--------------------------------------------------------------");
printf("number %d,second %d ",number,second);
for(new i=0;i<COL;i++)
{
printf("msg%d", msge[i]);
}
//for(new i=0;i<COL;i++)
// printf("%i second has passed, %d also we have a message: %i", second,number, msg[i]);
SetTimerEx("message", 1000, false, "iiai",number, second, msge,COL);
return 1;
}
При вызове фильтр скрипта массив через таймер передается нормально
результат:
number 3,second 1337
[10/11|22:36:30] msg1
[10/11|22:36:30] msg2
[10/11|22:36:30] msg3
[10/11|22:36:30] msg4
[10/11|22:36:30] msg5
[10/11|22:36:30] msg6
[10/11|22:36:30] msg7
[10/11|22:36:30] msg8
[10/11|22:36:30] msg9
[10/11|22:36:30] msg10
[10/11|22:36:30] msg11
[10/11|22:36:30] msg12
[10/11|22:36:30] msg13
[10/11|22:36:30] msg14
[10/11|22:36:30] msg15
[10/11|22:36:30] msg16
...
А если через команду в игре то:
number 3,second 1337
[10/11|22:36:31] msg105
[10/11|22:36:31] msg109
[10/11|22:36:31] msg101
[10/11|22:36:31] msg114
[10/11|22:36:31] msg116
[10/11|22:36:31] msg101
[10/11|22:36:31] msg115
[10/11|22:36:31] msg116
[10/11|22:36:31] msg0
[10/11|22:36:31] msg10
[10/11|22:36:31] msg11
[10/11|22:36:31] msg12
[10/11|22:36:31] msg13
[10/11|22:36:31] msg14
[10/11|22:36:31] msg15
[10/11|22:36:31] msg16
В чем причина?