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

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 4 из 4

Тема: по /offmembers

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

    Статус
    Оффлайн
    Регистрация
    03.05.2013
    Сообщений
    242
    Репутация:
    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;

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

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    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;

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    03.05.2013
    Сообщений
    242
    Репутация:
    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
    Аватар для Londlem
    Модератор

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

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

 

 

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

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

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

Ваши права

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