Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 7 из 7
  1. #1
    Аватар для GodFather
    Пользователь

    Статус
    Оффлайн
    Регистрация
    18.05.2014
    Сообщений
    30
    Репутация:
    1 ±

    по MySQL, лидеркам

    Короче, такая проблема... Вот у меня есть сис-ма лидерок, фракции создаются из игры, но как сделать, чтобы в диалоге автоматически выводило столько лидерок, сколько и в БД, то есть например, у меня в базе 8 лидерок, надо чтобы и в диалоге (DIALOG_STYLE_LIST) было 8 строк? А если сразу через игру создам девятую, выдал девять строк.

  2. #2
    Аватар для GodFather
    Пользователь

    Статус
    Оффлайн
    Регистрация
    18.05.2014
    Сообщений
    30
    Репутация:
    1 ±
    Вот команда:
    PHP код:
    CMD:makeleaders(playerid,params[])
    {
        if(
    GetPVarInt(playerid,"Login") != 1) return SendMes(playerid,COLOR_B,"Необходимо авторизоваться!");
        if(
    PlayerInfo[playerid][pAdmin] < 0) return 0;
        new 
    str[256];
        
    format(str,sizeof(str),"{FFFFFF}%s - %s\n%s - %s",LeaderInfo[1][lName],LeaderInfo[1][lLeader],LeaderInfo[2][lName],LeaderInfo[2][lLeader]);
        
    ShowPlayerDialog(playerid150DIALOG_STYLE_LIST"{FFFFFF}Панель управления лидерами"str"Продолжить""Отмена");
        return 
    1;

    Но она выводит только две фракции указанные в коде, а мне надо чтобы она сама узнавала сколько фракций в базе и выводила их в диалог.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Посылаем запрос в бд, узнаём число строк и циклом заполняем
    Последний раз редактировалось DeimoS; 08.06.2014 в 06:46.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    18.05.2014
    Сообщений
    30
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Посылаем запрос в юд, узнаём число строк и циклом заполняем
    Можно по подробнее про "циклом заполняем"?

  5. #5
    Аватар для underwoker
    Пользователь

    Статус
    Оффлайн
    Регистрация
    07.03.2014
    Сообщений
    331
    Репутация:
    47 ±
    Цитата Сообщение от GodFather Посмотреть сообщение
    Можно по подробнее про "циклом заполняем"?
    Почитайте в вики про цикл. Так же в интернете можно найти множество примеров.
    "Власть, кровь, няш-мяш, кровь, власть, Крым наш!" - (c) Наталья Поклонская.

    Критик должен быть готов и способен в любой момент и по первому требованию занять место критикуемого им и выполнять его дело продуктивно и компетентно. В противном случае критика превращается в наглую, самодовлеющую силу и становится тормозом на пути прогресса. (с) AXE

  6. #6
    Аватар для BonBon
    Пользователь

    Статус
    Оффлайн
    Регистрация
    07.05.2014
    Адрес
    Хабаровск
    Сообщений
    25
    Репутация:
    3 ±
    В общем так, можно наверно сделать лучше)
    Сделал так, т.к. ни когда не связывался с РП модами :-)

    PHP код:
    MySQL R7

    #define TABLE_FRAC                "`fraction`"

    new str[256],
        
    rows,
        
    fields,
        
    buffer[24],
        
    fname[20],
        
    leader[24],
        
    clickFraction[50][MAX_PLAYERS];

    forward liderPanel(playerid);


    CMD:makeleaders(playerid,params[]) 

        if(
    GetPVarInt(playerid,"Login") != 1) return SendMes(playerid,COLOR_B,"Необходимо авторизоваться!"); 
        if(
    PlayerInfo[playerid][pAdmin] < 0) return 0
         
    showLiderPanel(playerid);
        return 
    true
    }  

    showLiderPanel(playerid) {
        
    str "";
        
    format(strsizeof str"SELECT * FROM "TABLE_FRAC"")
        
    mysql_function_query(MYSQLtruestr"liderPanel""i"playerid);
        return 
    true;
    }

    public 
    liderPanel(playerid) {
        
    str "";
        
    cache_get_data(rowsfields);
        if (!
    rowsShowPlayerDialog(playerid0DIALOG_STYLE_MSGBOX"{FFFFFF}Панель управления лидерами""{ffffff}На сервере еще нет созданных фракций""Выход""");
        for (new 
    0!= rowsi++) {
            
    cache_get_field_content(i"ID"buffer); sscanf(buffer"d"clickFraction[i][playerid]);

            
    cache_get_field_content(i"Name"fname);
            
            
    cache_get_field_content(i"Leader"leader);
            
    format(strsizeof str"%s %s - %s\n"strfnameleader);
        }
        
    ShowPlayerDialog(playerid150DIALOG_STYLE_LIST"{FFFFFF}Панель управления лидерами"str"Продолжить""Отмена");
        return 
    true;


  7. #7
    Аватар для GodFather
    Пользователь

    Статус
    Оффлайн
    Регистрация
    18.05.2014
    Сообщений
    30
    Репутация:
    1 ±
    Цитата Сообщение от BonBon Посмотреть сообщение
    В общем так, можно наверно сделать лучше)
    Сделал так, т.к. ни когда не связывался с РП модами :-)

    PHP код:
    MySQL R7

    #define TABLE_FRAC                "`fraction`"

    new str[256],
        
    rows,
        
    fields,
        
    buffer[24],
        
    fname[20],
        
    leader[24],
        
    clickFraction[50][MAX_PLAYERS];

    forward liderPanel(playerid);


    CMD:makeleaders(playerid,params[]) 

        if(
    GetPVarInt(playerid,"Login") != 1) return SendMes(playerid,COLOR_B,"Необходимо авторизоваться!"); 
        if(
    PlayerInfo[playerid][pAdmin] < 0) return 0
         
    showLiderPanel(playerid);
        return 
    true
    }  

    showLiderPanel(playerid) {
        
    str "";
        
    format(strsizeof str"SELECT * FROM "TABLE_FRAC"")
        
    mysql_function_query(MYSQLtruestr"liderPanel""i"playerid);
        return 
    true;
    }

    public 
    liderPanel(playerid) {
        
    str "";
        
    cache_get_data(rowsfields);
        if (!
    rowsShowPlayerDialog(playerid0DIALOG_STYLE_MSGBOX"{FFFFFF}Панель управления лидерами""{ffffff}На сервере еще нет созданных фракций""Выход""");
        for (new 
    0!= rowsi++) {
            
    cache_get_field_content(i"ID"buffer); sscanf(buffer"d"clickFraction[i][playerid]);

            
    cache_get_field_content(i"Name"fname);
            
            
    cache_get_field_content(i"Leader"leader);
            
    format(strsizeof str"%s %s - %s\n"strfnameleader);
        }
        
    ShowPlayerDialog(playerid150DIALOG_STYLE_LIST"{FFFFFF}Панель управления лидерами"str"Продолжить""Отмена");
        return 
    true;

    Благодарю.

 

 

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

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

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

Ваши права

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