Не показывает игроков оффлайн.
#1

Привет, ребята. Не показывает игроков оффлайн, показывает всех игроков, которые состоят во фракции.
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;

Reply
#2

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;

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

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;

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

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

Сделай вот так. Так будет выводить всех членов организации, но рядом будет писать онлайн он или оффлайн. Так, мне кажется, будет более информативней.
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 но по идее вариант сверху должен быть рабочий.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)