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

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Посылаем запрос в бд, узнаём число строк и циклом заполняем
    Последний раз редактировалось DeimoS; 08.06.2014 в 06:46.
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

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

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

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

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

Ваши права

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