Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 11
  1. #1
    Аватар для BadPawn
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.01.2016
    Адрес
    Приморье, Спасск-Дальний
    Сообщений
    165
    Репутация:
    7 ±

    По массиву с рангами

    Всем привет ребят.

    Как распределить скины по фракам в одном массиве, чтоб не создавать массивы равное их кол-ву.

    PHP код:
    static const    fraction_ranks[1+MAX_RANK*MAX_FRACTION][MAX_RANK_NAME] =
        {
            
    //Гражданский
            
    "No-one" },
            
    //Groove Street Gang
            
    "[1] Новенький" },
            { 
    "[2] -" },
            { 
    "[3] -" },
            { 
    "[4] -" },
            { 
    "[5] -" },
            { 
    "[6] -" },
            { 
    "[7] -" },
            { 
    "[8] -" },
            { 
    "[9] -" },
            { 
    "[10] Лидер" },
            
    //
            
    "[1] Новенький" },
            { 
    "[2] -" },
            { 
    "[3] -" },
            { 
    "[4] -" },
            { 
    "[5] -" },
            { 
    "[6] -" },
            { 
    "[7] -" },
            { 
    "[8] -" },
            { 
    "[9] -" },
            { 
    "[10] Лидер" }
        }; 
    Последний раз редактировалось BadPawn; 02.02.2016 в 14:22.

  2. #2
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    PHP код:
    enum e_FACTION_INFO
    {
        
    fRankSkin,
        
    fRankName[MAX_RANK_NAME]
    };


    new const 
    faction_ranks[MAX_RANK MAX_FRACTION 1][e_FACTION_INFO] =
    {
    //Гражданский
        
    7, {"No-one"} },
    //Grove Street Gang
        
    105, {"[1] Новенький"} },
        { 
    105, {"[2] -"} },
        { 
    105, {"[3] -"} },
        { 
    105, {"[4] -"} },
        { 
    106, {"[5] -"} },
        { 
    106, {"[6] -"} },
        { 
    106, {"[7] -"} },
        { 
    106, {"[8] -"} },
        { 
    107, {"[9] -"} },
        { 
    107, {"[10] Лидер"} },
    //Ballas Gang
        
    103, {"[1] Новенький"} },
        { 
    103, {"[2] -"} },
        { 
    103, {"[3] -"} },
        { 
    103, {"[4] -"} },
        { 
    102, {"[5] -"} },
        { 
    102, {"[6] -"} },
        { 
    102, {"[7] -"} },
        { 
    102, {"[8] -"} },
        { 
    104, {"[9] -"} },
        { 
    104, {"[10] Лидер"} },
    // ...
        
    /*...*/ }
    }; 
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  3. Пользователь сказал cпасибо:
    BadPawn (02.02.2016)
  4. #3
    Аватар для BadPawn
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.01.2016
    Адрес
    Приморье, Спасск-Дальний
    Сообщений
    165
    Репутация:
    7 ±
    PHP код:
    #define MAX_RANK_NAME 21
    enum e_FACTION_INFO
    {
        
    fRankName[MAX_RANK_NAME]

    PHP код:
    new const
        
    #define MAX_FRACTION 3
        #define MAX_FRACTION_NAME 19
        
    fraction_name[MAX_FRACTION][MAX_FRACTION_NAME] =
        {
            { 
    "Гражданский" },
            { 
    "Groove Street Gang" },
            { 
    "The Vagos Gang" }
        },
        
    #define MAX_RANK 22
        
    fraction_ranks[1+MAX_RANK*MAX_FRACTION][e_FACTION_INFO] =
        {
            
    //Гражданский
            
    "No-one" },
            
    //Groove Street Gang
            
    "[1] Groove Новенький" },
            { 
    "[2] -" },
            { 
    "[3] -" },
            { 
    "[4] -" },
            { 
    "[5] -" },
            { 
    "[6] -" },
            { 
    "[7] -" },
            { 
    "[8] -" },
            { 
    "[9] -" },
            { 
    "[10] Groove Лидер" },
            
    //Vagos
            
    "[1] Vagos стажер" },
            { 
    "[2] -" },
            { 
    "[3] -" },
            { 
    "[4] -" },
            { 
    "[5] -" },
            { 
    "[6] -" },
            { 
    "[7] -" },
            { 
    "[8] -" },
            { 
    "[9] -" },
            { 
    "[10] Vagos Лидер" }
        }; 
    // 188 строка(на эту строчку указывает компилятор) 
    // ниже ничего нет 
    PHP код:
    error 052multi-dimensional arrays must be fully initialized 
    Совсем не могу вкурить что происходит.

  5. #4
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от BadPawn Посмотреть сообщение
    Совсем не могу вкурить что происходит.
    А происходит то, что вы невнимательно скопировали код. В fraction_ranks должны быть не только названия рангов, но и ID скинов.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  6. Пользователь сказал cпасибо:
    BadPawn (02.02.2016)
  7. #5
    Аватар для BadPawn
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.01.2016
    Адрес
    Приморье, Спасск-Дальний
    Сообщений
    165
    Репутация:
    7 ±
    Убрал скины сам. )

    Скопировал код, который выше точь в точь, и все-равно такая же история.

    - - - Добавлено - - -

    У меня на данный момент создано 2 банды + гражданские, а задефайнил 3 + 1. клево)

    Починил.

    Daniel_Cortez, имеются еще варианты, как разбить ранги по фракам? дело в чем, скины во внимание не беру, ибо упор на них будет в другом варианте.

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

    Статус
    Оффлайн
    Регистрация
    15.01.2016
    Адрес
    Приморье, Спасск-Дальний
    Сообщений
    165
    Репутация:
    7 ±
    Затупил! Чисто не осознанно!

    Как распределить РАНГИ по фракциям.

    Боже мой. О чем думал, когда печатал..

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

    Статус
    Оффлайн
    Регистрация
    15.01.2016
    Адрес
    Приморье, Спасск-Дальний
    Сообщений
    165
    Репутация:
    7 ±
    PHP код:
    stock GetRankIdx(playerid)
    {
        new 
    family PlayerInfo[playerid][pMember];
        if(
    family == 0)
            
    family PlayerInfo[playerid][pLeader];
        if(!(
    1<=family<=MAX_FAMILIES))
            return 
    0;
        return (
    family-1)*(MAX_RANK)+PlayerInfo[playerid][pRank];
    }
    // by Daniel_Cortez 
    не совсем понимаю строчку одну.

    PHP код:
        if(!(1<=family<=MAX_FAMILIES)) 
            return 
    0
    Что это означает? Типа: если 1 не меньше либо не равно переменной фракции и переменная фракции не меньше или не равна максимальному кол-ву организаций, то останавливаем действие кода?

  10. #8
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от BadPawn Посмотреть сообщение
    PHP код:
    stock GetRankIdx(playerid)
    {
        new 
    family PlayerInfo[playerid][pMember];
        if(
    family == 0)
            
    family PlayerInfo[playerid][pLeader];
        if(!(
    1<=family<=MAX_FAMILIES))
            return 
    0;
        return (
    family-1)*(MAX_RANK)+PlayerInfo[playerid][pRank];
    }
    // by Daniel_Cortez 
    не совсем понимаю строчку одну.

    PHP код:
        if(!(1<=family<=MAX_FAMILIES)) 
            return 
    0
    Что это означает? Типа: если 1 не меньше либо не равно переменной фракции и переменная фракции не меньше или не равна максимальному кол-ву организаций, то останавливаем действие кода?
    Проверка значения family на принадлежность диапазону от 1 до MAX_FAMILIES.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  11. Пользователь сказал cпасибо:
    BadPawn (03.02.2016)
  12. #9
    Аватар для BadPawn
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.01.2016
    Адрес
    Приморье, Спасск-Дальний
    Сообщений
    165
    Репутация:
    7 ±
    спс, понял. стырил)


    PHP код:
    if(pInfo[playerid][pMember] < MAX_FRACTION) return false
    сделал так. просто и понятно, а главное работает. )))
    Последний раз редактировалось BadPawn; 03.02.2016 в 11:10.

  13. #10
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от BadPawn Посмотреть сообщение
    спс, понял. стырил)


    PHP код:
    if(pInfo[playerid][pMember] < MAX_FRACTION) return false
    сделал так. просто и понятно, а главное работает. )))
    Сделайте тогда уже сразу return 0, без всяких if, прямо в самом начале функции, а всё остальное из неё уберите.
    Правильно, неправильно - да какая разница? Главное, что работает.

    ok google: операторы сравнения в Pawn, C и C++
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

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

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

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

Ваши права

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