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

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    516
    Репутация:
    21 ±

    Ругается на массив..

    Доброго времени суток всем. Делаю система тюнинга (загрузку при входе), и тут возникла нейкая ошибка:

    Код:
    (113) : error 001: expected token: "}", but found "["
    (5809) : error 001: expected token: ")", but found "["
    (5809) : error 029: invalid expression, assumed zero
    (5809) : warning 215: expression has no effect
    (5809) : error 001: expected token: ";", but found "]"
    (5809) : fatal error 107: too many error messages on one line
    Код:
    PHP код:
    enum playercar
    {
        
    carModel[5],
        
    carPercent[5],
        
    carColor1[5],
        
    carColor2[5],
        
    carComponent[5][14// 113
    }
    new 
    CarPlayerInfo[MAX_PLAYERS][playercar]; 
    Там где [5] это слоты для машин (0 - первая машина ... 4 - пятая машина)
    Там где [14] в carComponent, это слоты для тюнинга

    PHP код:
    stock LoadTuning(playeridvehicleidslotcar)
    {
        for(new 
    i14i++)
        {
            if(
    CarPlayerInfo[playerid][carComponent][slotcar][i] != 0// 5809
                
    AddVehicleComponent(vehicleidCarPlayerInfo[playerid][carComponent][slotcar][i]);
         }


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

    Статус
    Оффлайн
    Регистрация
    15.08.2015
    Сообщений
    106
    Репутация:
    8 ±
    В энум нельзя засунуть двумерный массив

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

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    516
    Репутация:
    21 ±
    Цитата Сообщение от vasyok28 Посмотреть сообщение
    В энум нельзя засунуть двумерный массив
    Да, спасибо уже нашел на другом портале). Ладно, распишу так..

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

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от StevenH Посмотреть сообщение
    Да, спасибо уже нашел на другом портале). Ладно, распишу так..
    Лучше создать отдельный массив с компонентами, чем в одном enum писать carComponent1, carComponent2 и т.д..

  5. Пользователь сказал cпасибо:
    StevenH (23.04.2017)
  6. #5
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Можно ещё создать Франкенштейна из двух enum

    PHP код:
    enum e_VEHICLE_COMPONENTS
    {
        
    Component_1[14],
        
    Component_2[14],
        
    Component_3[14],
        
    Component_4[14],
        
    Component_5[14]
    };

    enum playercar
    {
        
    carModel[5],
        
    carPercent[5],
        
    carColor1[5],
        
    carColor2[5],
        
    carComponent[e_VEHICLE_COMPONENTS// 113
    };

    new 
    CarPlayerInfo[MAX_PLAYERS][playercar]; 
    И использовать так
    PHP код:
    CarPlayerInfo[0][carComponent][Component_1][1] = 5
    Но ко второму enum не получится обращаться через параметр функции. Придётся делать вот так:
    PHP код:
    stock LoadTuning(playeridvehicleide_VEHICLE_COMPONENTS:slotcar)
    {
        switch(
    slotcar)
        {
            case 
    Component_1:
            {
                for(new 
    i14i++)
                {
                    if(
    CarPlayerInfo[playerid][carComponent][Component_1][i] != 0// 5809
                        
    {}
                }
            }
            case 
    Component_2:
            {
                for(new 
    i14i++)
                {
                    if(
    CarPlayerInfo[playerid][carComponent][Component_2][i] != 0// 5809
                        
    {}
                }
            }
            
    //...
        
    }

    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    516
    Репутация:
    21 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Можно ещё создать Франкенштейна из двух enum

    PHP код:
    enum e_VEHICLE_COMPONENTS
    {
        
    Component_1[14],
        
    Component_2[14],
        
    Component_3[14],
        
    Component_4[14],
        
    Component_5[14]
    };

    enum playercar
    {
        
    carModel[5],
        
    carPercent[5],
        
    carColor1[5],
        
    carColor2[5],
        
    carComponent[e_VEHICLE_COMPONENTS// 113
    };

    new 
    CarPlayerInfo[MAX_PLAYERS][playercar]; 
    И использовать так
    PHP код:
    CarPlayerInfo[0][carComponent][Component_1][1] = 5
    Но ко второму enum не получится обращаться через параметр функции. Придётся делать вот так:
    PHP код:
    stock LoadTuning(playeridvehicleide_VEHICLE_COMPONENTS:slotcar)
    {
        switch(
    slotcar)
        {
            case 
    Component_1:
            {
                for(new 
    i14i++)
                {
                    if(
    CarPlayerInfo[playerid][carComponent][Component_1][i] != 0// 5809
                        
    {}
                }
            }
            case 
    Component_2:
            {
                for(new 
    i14i++)
                {
                    if(
    CarPlayerInfo[playerid][carComponent][Component_2][i] != 0// 5809
                        
    {}
                }
            }
            
    //...
        
    }

    Спасибо за совет, так и сделал, но когда в LoadTuning передаю слот, ругается.. Делаю так:
    PHP код:
    LoadTuning(playeridhouse_car[playerid][slotcar], slotcar); 
    Кидает ошибку:
    PHP код:
    warning 213tag mismatch 

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Так вот я же писал про это, ну...


    Цитата Сообщение от DeimoS Посмотреть сообщение
    Но ко второму enum не получится обращаться через параметр функции. Придётся делать вот так:
    PHP код:
    stock LoadTuning(playeridvehicleide_VEHICLE_COMPONENTS:slotcar)
    {
        switch(
    slotcar)
        {
            case 
    Component_1:
            {
                for(new 
    i14i++)
                {
                    if(
    CarPlayerInfo[playerid][carComponent][Component_1][i] != 0// 5809
                        
    {}
                }
            }
            case 
    Component_2:
            {
                for(new 
    i14i++)
                {
                    if(
    CarPlayerInfo[playerid][carComponent][Component_2][i] != 0// 5809
                        
    {}
                }
            }
            
    //...
        
    }

    Не получится обращаться к второму enum как-то, кроме имён констант из этого enum. Ну или я чего-то не знаю
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  10. Пользователь сказал cпасибо:
    StevenH (23.04.2017)
  11. #8
    Аватар для StevenH
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    516
    Репутация:
    21 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Так вот я же писал про это, ну...



    Не получится обращаться к второму enum как-то, кроме имён констант из этого enum. Ну или я чего-то не знаю
    Да, ты прав. Спасибо вдвойне. Заюзал твой вариант, проверил уже на сервере, все работает. Как минимум сократил этот "быдло" код:
    PHP код:
    enum player_car
    {
        ...,
        
    carComponent1[5],
        
    carComponent2[5],
        
    carComponent3[5],
        
    carComponent4[5],
        
    carComponent5[5],
        
    carComponent6[5],
        
    carComponent7[5],
        
    carComponent8[5],
        
    carComponent9[5],
        
    carComponent10[5],
        
    carComponent11[5],
        
    carComponent12[5],
        
    carComponent13[5],
        
    carComponent14[5]

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

    Тему можно закрыть

 

 

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

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

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

Ваши права

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