Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 4 из 4

Тема: по /offmembers

  1. #1
    Аватар для Gressie
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.05.2013
    Сообщений
    258
    Репутация:
    6 ±

    по /offmembers

    Как сделать чтобы /offmembers показывало только членов оффлайн организации?
    И не показывало самого лидера организации?

    PHP код:
    else if(strcmp(cmd"/offmembers"true) == 0)
        {
            if(
    PlayerInfo[playerid][pLeader] < 1) return true;
            
    SendClientMessage(playerid0x33AAFFFF"Члены организации оффлайн:");
            new 
    string[64];
             
    mysql_format(connects,string,sizeof(string),"SELECT * FROM `Accounts` WHERE pMember = '%d'",PlayerInfo[playerid][pLeader]);
            
    mysql_function_query(connectsstringtrue"OFFmembers""d",playerid);
            return 
    true;
        } 
    PHP код:
    forward OFFmembers(playerid);
    public 
    OFFmembers(playerid)
    {
        new 
    rowsfieldsibuf[60],name[MAX_PLAYER_NAME];
        
    cache_get_data(rowsfields);
        for(
    0rowsi++)
        {
            
    cache_get_field_content(i"Name"buf), strmid(namebuf0strlen(buf), MAX_PLAYER_NAME);
            
    format(bufsizeof(buf),"Не в игре %s"name);
            
    SendClientMessage(playerid, -1buf);
        }
        return 
    true;

    Последний раз редактировалось L0ndl3m; 18.07.2014 в 19:40.

  2. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    PHP код:
    mysql_format(connects,string,sizeof(string),"SELECT * FROM `Accounts` WHERE pMember = '%d' AND `pRank` != '%d'",PlayerInfo[playerid][pLeader],PlayerInfo[playerid][pRank]); 
    Имя столбца подгоните под себя.
    Со вторым сложнее. Лучше всего под онлайн выделить отдельный столбец и при входе в игру присваивать ему значение единицы, а при выходе - нуля. Тогда все изменения в коде будут только в запросе (добавить ещё одно условие и всё). Ну а иначе можно сделать такой костыль:
    PHP код:
    forward OFFmembers(playerid);
    public 
    OFFmembers(playerid)
    {
        new 
    rowsfieldsiidbuf[60], name[MAX_PLAYER_NAME];
        
    cache_get_data(rowsfields);
        for(
    0rowsi++)
        {
            
    buf[0] = 0;
            
    name[0] = 0;
            
    cache_get_field_content(i"Name"buf);
            for(
    id GetMaxPlayers(); id != -1id--)
            {
                if(!
    IsPlayerConnected(id)) continue;
                
    GetPlayerName(idnameMAX_PLAYER_NAME);
                if(!
    strcmp(namebufffalseMAX_PLAYER_NAME)
                {
                    
    id INVALID_PLAYER_ID;
                    break;
                }
            }
            if(
    id != INVALID_PLAYER_ID)
            {
                
    format(bufsizeof(buf),"Не в игре %s"buf);
                
    SendClientMessage(playerid, -1buf);
            }
        }
        return 
    true;

    Не проверял, но в теории работать должен
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  3. #3
    Аватар для Gressie
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.05.2013
    Сообщений
    258
    Репутация:
    6 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    PHP код:
    mysql_format(connects,string,sizeof(string),"SELECT * FROM `Accounts` WHERE pMember = '%d' AND `pRank` != '%d'",PlayerInfo[playerid][pLeader],PlayerInfo[playerid][pRank]); 
    Имя столбца подгоните под себя.
    Со вторым сложнее. Лучше всего под онлайн выделить отдельный столбец и при входе в игру присваивать ему значение единицы, а при выходе - нуля. Тогда все изменения в коде будут только в запросе (добавить ещё одно условие и всё). Ну а иначе можно сделать такой костыль:
    PHP код:
    forward OFFmembers(playerid);
    public 
    OFFmembers(playerid)
    {
        new 
    rowsfieldsiidbuf[60], name[MAX_PLAYER_NAME];
        
    cache_get_data(rowsfields);
        for(
    0rowsi++)
        {
            
    buf[0] = 0;
            
    name[0] = 0;
            
    cache_get_field_content(i"Name"buf);
            for(
    id GetMaxPlayers(); id != -1id--)
            {
                if(!
    IsPlayerConnected(id)) continue;
                
    GetPlayerName(idnameMAX_PLAYER_NAME);
                if(!
    strcmp(namebufffalseMAX_PLAYER_NAME)
                {
                    
    id INVALID_PLAYER_ID;
                    break;
                }
            }
            if(
    id != INVALID_PLAYER_ID)
            {
                
    format(bufsizeof(buf),"Не в игре %s"buf);
                
    SendClientMessage(playerid, -1buf);
            }
        }
        return 
    true;

    Не проверял, но в теории работать должен
    Код:
    C:\Users\Admin\Downloads\Íîâàÿ ïàïêà (8)\gamemodes\edit.pwn(35235) : error 017: undefined symbol "buff"
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    1 Error.
    Если заменить на
    PHP код:
    buf 
    то будет ошибка:
    Код:
    C:\Users\Admin\Downloads\Íîâàÿ ïàïêà (8)\gamemodes\edit.pwn(35236) : error 001: expected token: ")", but found "{"
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    1 Error.
    Строка
    PHP код:


  4. #4
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    PHP код:
    if(!strcmp(namebufffalseMAX_PLAYER_NAME
    на

    PHP код:
    if(!strcmp(namebufffalseMAX_PLAYER_NAME)) 

 

 

Информация о теме

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

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •