Druzhok
Дебютант
Нашел функцию на подобии "format", сделал что бы оно возвращало значение через return, ибо делать каждый раз формат надоедало, а конкатенации тут таковой нет, как в PHP, Java, Lua.
Вылезла ошибка, уже час не могу понять, что оно хочет.
Ошибка:
Части кода с ошибкой:
P.s Если что-то недосказал, не очень понятно объяснил - спрашивайте, не проходите мимо.
Вылезла ошибка, уже час не могу понять, что оно хочет.
Ошибка:
PHP:
[debug] Run time error 5: "Invalid memory access"
[debug] AMX backtrace:
[debug] #0 0000a9cc in string (fstring[]=@00003ad4 "[A] ", ... <2 arguments>) at C:\Users\cloud\Desktop\server\gamemodes\hinex.pwn:486
[debug] #1 00009350 in public cmd_alogin (playerid=0, params[]=@000056b4 "123123") at C:\Users\cloud\Desktop\server\gamemodes\hinex.pwn:309
[debug] #2 native CallLocalFunction () from samp-server.exe
[debug] #3 00006c80 in public OnPlayerCommandText (playerid=0, cmdtext[]=@00005678 "/alogin 123123") at ../include/izcmd.inc:112
PHP:
sendMessageToAdmins(COLOR_WHITE, string("[A] Администратор %s авторизовался как администратор %i уровня.",
getPlayerName(playerid), getPlayerAdminLevel(playerid)));
PHP:
stock string(fstring[], {Float, _}:...){
new n = (numargs() - 2) * BYTES_PER_CELL;
new message[312], arg_start, arg_end;
#emit CONST.alt fstring
#emit LCTRL 5
#emit ADD
#emit STOR.S.pri arg_start
#emit LOAD.S.alt n
#emit ADD
#emit STOR.S.pri arg_end
do{
#emit LOAD.I
#emit PUSH.pri
arg_end -= BYTES_PER_CELL;
#emit LOAD.S.pri arg_end
}while (arg_end > arg_start);
#emit PUSH.S fstring
#emit PUSH.C 312
#emit PUSH.ADR message
n += BYTES_PER_CELL * 3;
#emit PUSH.S n
#emit SYSREQ.C format
n += BYTES_PER_CELL;
#emit LCTRL 4
#emit LOAD.S.alt n
#emit ADD
#emit SCTRL 4
return message;
}
PHP:
stock sendMessageToAdmins(color, msg[]){
for(new i, j = GetPlayerPoolSize(); i <= j; i++){
if(getPlayerALoginStatus(i) == 1){
SendClientMessage(i, color, msg);
}
}
}
