[Fixed] Array Must Be Indexed problem

Сообщения
278
Реакции
137
Hello,
I am trying to send text for amx_heal. But there is a problem I can't fix.

PHP:
send_print(const id, const arg[])
{
    static teamname[18];
    formatex(teamname, charsmax(teamname), "%s", arg[1] == 'C' ? "Counter-Terrorist" : arg[1] == 'T' ? "Terrorist" : "all");

    client_print_color(0, 0, "%n gave something to %s players.", id, teamname);
// Array Must Be Indexed
    client_print_color(0, 0, "%n gave something to %s players.", id, teamname[0]);
// PurposeLess gave something to C players. (for CT) a players (for all)
    client_print_color(0, 0, "%n gave something to %s players.", id, arg[1]);
// PurposeLess gave something to C players. (for CT) a players (for all)
// arg = "@CT" or "@TERRORIST" or "@all"
}
 
Сообщения
1,701
Реакции
1,512
Помог
26 раз(а)
new teamname[18];

Swtich for arg[1]

client_print_color(0, 0, "%n gave something to %s players.", id, teamname);
 
Сообщения
278
Реакции
137
Where is the problem here?
PHP:
send_print_arg2(const id, const player, const arg[], const num, const bool:team, const TEAM_P[], const TEAM_C[], const PLAYER_P[], const PLAYER_C[])
{
    new teamname[18];

    switch(teamname[0])
    {
        case 'T','t': {
            client_print_color(0, 0, "%L", id, teamname); // works
            client_print_color(0, 0, "%L", id, team ? TEAM_P : PLAYER_P, id, num, team ? teamname : player);
            //
        }
    }
}

I made this, it still gives error. :(
PHP:
send_print_arg2(const id, const player, const arg[], const num, const bool:team, const TEAM_P[], const TEAM_C[], const PLAYER_P[], const PLAYER_C[])
{
    client_print_color(0, 0, "%L", id, team ? TEAM_P : PLAYER_P, id, num, team ? get_teamname(arg) : player);
    console_print(id, "%L", id, team ? TEAM_C : PLAYER_C, num, team ? get_teamname(arg) : player);
}

get_teamname(const arg[])
{
    new teamname[18];

    switch(arg[1])
    {
        case 't','T': {
            copy(teamname, charsmax(teamname), "Terrorist");
        }
        case 'c','C': {
            copy(teamname, charsmax(teamname), "Counter-Terrorist");
        }
        default: {
            copy(teamname, charsmax(teamname), "all");
        }
    }

    return teamname;
}
21 Авг 2019
I fixed myself
 
Последнее редактирование:
Сообщения
278
Реакции
137
I decided not to create new variable.
I did it.

PHP:
client_print_color(0, 0, "%L", id, TEAM_P, id, num, arg[1] == 'T' ? "Terrorist" : arg[1] == 'C' ? "Counter-Terrorist" : "all");
console_print(id, "%L", id, TEAM_C, num, arg[1] == 'T' ? "Terrorist" : arg[1] == 'C' ? "Counter-Terrorist" : "all");
 
Сообщения
1,701
Реакции
1,512
Помог
26 раз(а)
It better will be variable instead of copypaste.
 
Сообщения
278
Реакции
137
I have a error with variable. It's problem even if I use "teamname = "Terrorist"
 
Сообщения
1,701
Реакции
1,512
Помог
26 раз(а)
w0w, пиши сразу почему
 
Сообщения
1,420
Реакции
2,511
Помог
58 раз(а)
fl0wer, быстрее работает. Тест Garey через Easyprofiler:

Код:
L 08/09/2019 - 02:52:34: [EasyProfiler]
copy(array, sizeof(array), array2);
90000 iterations,
Time is 0.00119972892028000
L 08/09/2019 - 02:52:34: [EasyProfiler]
array = array2
90000 iterations,
Time is 0.15507326792028001
 
Сообщения
333
Реакции
290
Помог
9 раз(а)
Сообщения
1,701
Реакции
1,512
Помог
26 раз(а)
zhorzh78, одна.
w0w, и куда мне засунуть это?
28 Авг 2019
Для большей оптимизации результата надо было 900к делать.
 
Сообщения
1,420
Реакции
2,511
Помог
58 раз(а)
Без цикла.

Код:
 teamname = "Terrorist"
Time is -0.00000034529084000
L 08/28/2019 - 15:10:54: [EasyProfiler]
copy(teamname, charsmax(teamname), "Terrorist")
Time is -0.00000019329084000
L 08/28/2019 - 15:10:54: [EasyProfiler]
teamname = "Counter-Terrorist"
Time is -0.00000047529084000
L 08/28/2019 - 15:10:54: [EasyProfiler]
copy(teamname, charsmax(teamname), "Counter-Terrorist")
Time is -0.00000034429084000
L 08/28/2019 - 15:10:54: [EasyProfiler]
teamname = "all"
Time is -0.00000049729084000
L 08/28/2019 - 15:10:54: [EasyProfiler]
copy(teamname, charsmax(teamname), "all")
Time is -0.00000035029084000

Бывает конечно иногда быстрее в каком-то кейсе, но можно сказать что copy() быстрее, ибо именно для этого-то и есть натив.
 
Сообщения
1,701
Реакции
1,512
Помог
26 раз(а)
w0w, минус во времени это излишняя оптимизация моего кода?
 
Сообщения
212
Реакции
334
Помог
3 раз(а)
Сообщения
1,701
Реакции
1,512
Помог
26 раз(а)
что copy() быстрее, ибо именно для этого-то и есть натив.
Ага, а AddToFullPack для добавление для полного пакета. Хватит нести чушь.
28 Авг 2019
А вообще, ты цифры видел? Или это неприемлимо для функции, которая просто вызывается и не работает в синке или ещё где-то, где как раз-таки это будет оправдано?
 
Последнее редактирование:

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу