Список Афк игроков...
#1

Привет всем, сижу о5 велик изобретаю...

вообщем нужен списочек афк игроков состряпать
вот сижу мозгую...

получилось вот что:
PHP Code:
   if(strcmp(cmd"/афкашники"true) == 0
    { 
        new 
count,str[128]; 
        
GetPlayerName(playerid,pName,sizeof(pName)); 
        
format(str,sizeof str,"[AFK]:"); 
        for(new 
i=0;GetMaxPlayers(); i++) 
        { 
            if(
plafk[playerid] == -&& IsPlayerConnected(i)) 
            { 
                
count++; 
                
format(string,sizeof(string),"%s %s",str,pName(i)); 
            } 
        } 
        new 
total[128]; 
        
format(total,sizeof(total),"%s .",string); 
        if(
count 0)SendClientMessage(playerid,COLOR_YELLOW,string); 
        if(
count == 0)SendClientMessage(playerid,COLOR_YELLOW,"Игроков на паузе нет"); 
        return 
true
    } 
и все бы ничего. но он уж очень ругает мне строчку:
PHP Code:
format(string,sizeof(string),"%s %s",str,pName(i)); 
и я сижу и думаю. наверное это изза (i)...не изза символа, а изза скобок

какие идеи по реализации?
Reply
#2

бегло просмотрел, возможно, должно быть так

PHP Code:
formatstringsizeof(string), "%s %s"strpName[i] ); 
а по реализации - можно запятые поставить после каждого ника, или переходы на новую строку. Смотря куда этот список будет выводиться.
Reply
#3

Теперь скомпилировал
только вот где различие между () скобками и [] скобками...

что интересно, в другом моде, есть аналогичная команда, но немного с другими функциями
а формат точно такой же, даже аргументы такие же...
и компилирует...очень странно
Reply
#4

() это вызов функции, а pName у Вас явно не функция, а массив. Для перебора ячеек массива используются []
Reply
#5

Quote:
Originally Posted by temka1993
View Post
Теперь скомпилировал
только вот где различие между () скобками и [] скобками...

что интересно, в другом моде, есть аналогичная команда, но немного с другими функциями
а формат точно такой же, даже аргументы такие же...
и компилирует...очень странно
[] используются для указания номера аргумента в массивах.
а () используются для указания параметров в функциях.
Reply
#6

все, теперь понял

благодарю всех, кто отозвался в теме
Reply
#7

Quote:
Originally Posted by temka1993
View Post
все, теперь понял

благодарю всех, кто отозвался в теме
видимо ты свой код не проверял, ибо он не рабочий... логика в коде отсутствует:/
Вот рабочий вариант:
pawn Code:
if(strcmp(cmd, "/афкашники", true) == 0)
{  
    new count=0,str[128],playerName[MAX_PLAYER_NAME];
    for(new i=GetMaxPlayers()-1;i >= 0;--i)
    {
        if(plafk[i] == -1 && IsPlayerConnected(i))  
        {  
            count++;
            GetPlayerName(i,playerName,sizeof(playerName));
            format(str,sizeof(str),"[AFK]: %s",playerName);
            SendClientMessage(playerid,COLOR_YELLOW,str);

        }  
    }
    if(count == 0) return SendClientMessage(playerid,COLOR_YELLOW,"Игроков на паузе нет");
    return 1;  
}
Reply
#8

ZiGGi, а если будет 100 игроков AFK? получим 100 строк в чате...
Грамотнее формировать строки, допустим по 5 игроков и отправлять в чат.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)