SA-MP Forums Archive
Не показывает игроков оффлайн. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Не показывает игроков оффлайн. (/showthread.php?tid=564982)



Не показывает игроков оффлайн. - Shveps - 24.02.2015

Привет, ребята. Не показывает игроков оффлайн, показывает всех игроков, которые состоят во фракции.
PHP код:
SendClientMessage(playerid0x33AAFFFF"Члены организации оффлайн:");
format(querysizeof(query), "SELECT * FROM `accounts` WHERE `u_member` = '%d'",PlayerInfo[playerid][iMember]);
mysql_function_query(MySQL_CONNECTquerytrue"OFFmembers""d",playerid); 
PHP код:
@_ OFFmembers(playerid)
{
    new 
itemp[32], name[MAX_PLAYER_NAME], rankplayeridd INVALID_PLAYER_ID;
    
cache_get_data(rowsfields);
    if(
rows)
    {
        for(
0rowsi++)
        {
            
cache_get_field_content(i"u_name"temp), strmid(nametemp,strlen(temp), MAX_PLAYER_NAME);
            
cache_get_field_content(i"u_rank"temp), rank strval(temp);
            if(!
IsPlayerConnected(playeridd))
            {
                   
format(ZCMDstrsizeof(ZCMDstr),"[L] %s Rank: %d"namerank);
                   
SendClientMessage(playerid, -1ZCMDstr);
               }
               
playeridd INVALID_PLAYER_ID;
        }
    }
    else 
SendClientMessage(playeridCOLOR_GREY"Список пуст");
    return 
true;




Re: Не показывает игроков оффлайн. - DEMON91052 - 24.02.2015

PHP код:
@_ OFFmembers(playerid

    new 
itemp[32], name[MAX_PLAYER_NAME], rank
    
cache_get_data(rowsfields); 
    if(
rows
    { 
        for(
0rowsi++) 
        { 
            
cache_get_field_content(i"u_name"temp), strmid(nametemp,strlen(temp), MAX_PLAYER_NAME); 
            
cache_get_field_content(i"u_rank"temp), rank strval(temp); 
            if(!
IsPlayerConnected(GetPlayerID(name)))
            { 
                   
format(ZCMDstrsizeof(ZCMDstr),"[L] %s Rank: %d"namerank); 
                   
SendClientMessage(playerid, -1ZCMDstr); 
               } 
        } 
    } 
    else 
SendClientMessage(playeridCOLOR_GREY"Список пуст"); 
    return 
true

PHP код:
GetPlayerID(string[])
{
    foreach (new 
Player)
    {
        if(
strcmp(PlayerName(i), stringtruestrlen(string)) == 0) return i;
    }
    return 
INVALID_PLAYER_ID;

Легко и просто. А можно еще проще)


Re: Не показывает игроков оффлайн. - Shveps - 24.02.2015

Quote:
Originally Posted by DEMON91052
Посмотреть сообщение
PHP код:
@_ OFFmembers() 

    new 
itemp[32], name[MAX_PLAYER_NAME], rank
    
cache_get_data(rowsfields); 
    if(
rows
    { 
        for(
0rowsi++) 
        { 
            
cache_get_field_content(i"u_name"temp), strmid(nametemp,strlen(temp), MAX_PLAYER_NAME); 
            
cache_get_field_content(i"u_rank"temp), rank strval(temp); 
            if(!
IsPlayerConnected(GetPlayerID(name)))
            { 
                   
format(ZCMDstrsizeof(ZCMDstr),"[L] %s Rank: %d"namerank); 
                   
SendClientMessage(playerid, -1ZCMDstr); 
               } 
        } 
    } 
    else 
SendClientMessage(playeridCOLOR_GREY"Список пуст"); 
    return 
true

PHP код:
GetPlayerID(string[])
{
    foreach (new 
Player)
    {
        if(
strcmp(PlayerName(i), stringtruestrlen(string)) == 0) return i;
    }
    return 
INVALID_PLAYER_ID;

Легко и просто. А можно еще проще)
Не работает.


Re: Не показывает игроков оффлайн. - DEMON91052 - 24.02.2015

Quote:
Originally Posted by Shveps
Посмотреть сообщение
Не работает.
Я ошибку допустил. Если, что я обновил!


Re: Не показывает игроков оффлайн. - AlexanderM - 24.02.2015

Сделай вот так. Так будет выводить всех членов организации, но рядом будет писать онлайн он или оффлайн. Так, мне кажется, будет более информативней.
PHP код:
@_ OFFmembers(playerid
{
    new 
temp[32], name[MAX_PLAYER_NAME], rank,dialog[500]; // диалог измени на свое, сделал с "запасом"
    
new id cache_get_row_count();
    if(
id == 0SendClientMessage(playeridCOLOR_GREY,"Список пуст!");
    else
    {
        for(
0idi++)
        {
            
cache_get_field_content(i"u_name"temp), strmid(nametemp,strlen(temp), MAX_PLAYER_NAME);
            
cache_get_field_content(i"u_rank"temp), rank strval(temp);
            if(!
IsPlayerConnected(playeridd))
            {
                
format(dialog,sizeof(dialog,"Ник %s - Ранг %d - Статус %s\n",namerank, (IsPlayerConnected(GetPlayerID(name)))  ? ("Онлайн") : ("Оффлайн"));
            }
            
ShowPlayerDialog(playerid,DIALOG_STYLE_LIST,0,"Список членов организации",dialog,"Окей","");
        }
    }
    return 
1;

PHP код:
stock GetPlayerID(string[])
{
    foreach(new 
iPlayer)
    {
         if(!
IsPlayerConnected(i)) continue;
         if(!
strcmp(PlayerInfo[i][pName], stringtrue)) return i;
    }
    return 
INVALID_PLAYER_ID;

p.s но по идее вариант сверху должен быть рабочий.