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

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±

    Переключение текстдрава при выборе скина

    Есть текстдравы переключение между скинами при регистрации. Очень странная ситуация, при выборе мужского пола, переключение скинов работает нормально, но при выборе женского пола при переключение на предыдущие скины, как бы скины меняются на те, которых вообще нет в массиве.

     Как это выглядет в игре


     Код реализации
    PHP код:
    // В настройках (отдельный инклюд)
    #define PLAYER_MODELS_MALE 2, 3, 4, 5, 6, 7
    #define PLAYER_MODELS_FEMALE 12, 13, 40, 41, 55

    // В переменных
    new const player_models[2][] =
    {
        {
    PLAYER_MODELS_MALE, -1},
        {
    PLAYER_MODELS_FEMALE, -1}
    };

    // OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
        
    if(playertextid == PTD_join[playerid][5] ||
            
    playertextid == PTD_join[playerid][6])
        {
            new 
    model_picker =
                ((
    playertextid == PTD_join[playerid][6]) ? (1) : (-1)) +
                
    GetPVarInt(playerid"model_picker");

            if(
    model_picker == -1)
            {
                while(
    player_models[player[playerid][player_gender]][model_picker]
                    != -
    1)
                {
                    
    model_picker++;
                }

                
    model_picker--;
            }

            else if(
    player_models[player[playerid][player_gender]][model_picker]
                == -
    1)
            {
                
    model_picker 0;
            }

            
            
    PlayerTextDrawSetPreviewModel(playeridPTD_join[playerid][4],
                (
    player[playerid][player_model] =
                    
    player_models[player[playerid][player_gender]][model_picker]));
            
    PlayerTextDrawShow(playeridPTD_join[playerid][4]);
            
    SetPVarInt(playerid"model_picker"model_picker);
            return 
    1;
        }


    // Выбор пола
        
    player[playerid][player_gender] = response;
        
    PlayerTextDrawSetString(playeridPTD_join[playerid][0],
            (!
    response) ? ("Мужской") : ("Женский"));
        
    PlayerTextDrawShow(playeridPTD_join[playerid][0]);
        
    PlayerTextDrawSetPreviewModel(playeridPTD_join[playerid][4],
            (
    player[playerid][player_model] = player_models[response][0]));
        
    PlayerTextDrawShow(playeridPTD_join[playerid][4]);
        
    SetPVarInt(playerid"model_picker"0);
        
    printf("Gender: %d"player[playerid][player_gender]);
        return 
    1

  2. #2
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Начать нужно с этого:
    PHP код:
    new player_models_size[sizeof(player_models)];

    // init
    for (new ijsizeof(player_models); i++) {
        
    0;
        while (
    player_models[i][j] != -1) {
            
    j++;
        }
        
    player_models_size[i] = j;
    }

    // OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
    if (playertextid == PTD_join[playerid][5] ||
        
    playertextid == PTD_join[playerid][6])
    {
        new 
    gender player[playerid][player_gender];
        new 
    current_model_id GetPVarInt(playerid"model_picker");

        if (
    playertextid == PTD_join[playerid][5]) {
            
    current_model_id--;

            if (
    current_model_id 0) {
                
    current_model_id player_models_size[gender] - 1;
            }
        } else if (
    playertextid == PTD_join[playerid][6]) {
            
    current_model_id++;

            if (
    current_model_id >= player_models_size[gender]) {
                
    current_model_id 0;
            }
        }

        
    player[playerid][player_model] = player_models[gender][current_model_id];      
        
    PlayerTextDrawSetPreviewModel(playeridPTD_join[playerid][4], player[playerid][player_model]);
        
    PlayerTextDrawShow(playeridPTD_join[playerid][4]);
        
    SetPVarInt(playerid"model_picker"current_model_id);
        return 
    1;

    Последний раз редактировалось ziggi; 28.02.2017 в 00:30.

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

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±
    Спасибо, тему можно закрывать.

 

 

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

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

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

Ваши права

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