New

+ Ответить в теме
Страница 94 из 144 ПерваяПервая ... 44 84 92 93 94 95 96 104 ... ПоследняяПоследняя
Показано с 931 по 940 из 1431

Тема: Вопросы по Auran GameScript

  1. #931
    Пользователь Аватар для TRam_
    Регистрация
    22.09.2009
    Возраст
    30
    Сообщений
    16,079

    По умолчанию

    Цитата Сообщение от Marques Посмотреть сообщение
    ('me' я так понял не подойдет?)
    да, потому что оно обозначает объект, выполняющий скрипт.

    Тебе, скорее всего понадобится объект loco (вот только не помню, с маленькой ли буквы - это посмотри в функции Attach кабины). А поскольку скрипт обработки команд на включение огней проверяет источник сообщения, то наверно надо так:

    loco.PostMessage(loco,"LightsEventHand",flw+,frw+, flr+,frr+,ftr+,blw+, brw+,blr+,brr+,btr+",0.01) ;

    Цитата Сообщение от Marques Посмотреть сообщение
    AddHandler(<адресат???>,"LightsEventHand это major?","здесь minor?","<здесь указываем метод обработчик?>");
    всё верно.

  2. Сказал спасибо:


  3. # ADS
    Реклама
    Регистрация
    Постоянная
    Возраст
    2010
    Сообщений
    Много


    N3v New

     

  4. #932
    Разработчик Аватар для Рома
    Регистрация
    17.10.2012
    Страна
    Адрес
    Уфа
    Возраст
    26
    Сообщений
    3,540

    По умолчанию

    Цитата Сообщение от TRam_ Посмотреть сообщение
    (вот только не помню, с маленькой ли буквы
    ага, с маленькой
    Путь длиной в тысячу миль пройден на треть.

  5. Сказал спасибо:


  6. #933
    Пользователь Аватар для Marques
    Регистрация
    25.08.2011
    Страна
    Адрес
    Санкт-Петербург
    Возраст
    45
    Сообщений
    55

    По умолчанию

    TRam_,Как обычно - все доходчиво и понятно. Спасибо! Скрипт заработал.

    Цитата Сообщение от Рома Посмотреть сообщение
    ага, с маленькой
    Точно, так и есть:
    Код:
    loco = cast<Locomotive>(obj);

  7. Сказал спасибо:


  8. #934
    Пользователь Аватар для BigDen
    Регистрация
    11.07.2011
    Страна
    Адрес
    Бурятия г.Улан-Удэ
    Возраст
    42
    Сообщений
    314

    По умолчанию

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

  9. #935
    Разработчик Trainz UP Аватар для proton2
    Регистрация
    21.09.2009
    Страна
    Адрес
    Saint-Petersburg
    Возраст
    41
    Сообщений
    1,153

    По умолчанию

    Моя небольшая LLC - включает в себя управление буферными огнями, прожектором и светом в кабине.

    [PHP]
    void llc_set(int flw, int frw, int flr, int frr, int blw, int brw, int blr, int brr) // включение / выключение огней ЛЛС
    {
    SetMeshVisible("flw", (flw==1), 0.0);
    SetMeshVisible("frw", (frw==1), 0.0);
    SetMeshVisible("flr", (flr==1), 0.0);
    SetMeshVisible("frr", (frr==1), 0.0);

    if (!DoubleLoco) { // если 2 секции, то огни на торцах не зажигаем
    SetMeshVisible("blw", (blw==1), 0.0);
    SetMeshVisible("brw", (brw==1), 0.0);
    SetMeshVisible("blr", (blr==1), 0.0);
    SetMeshVisible("brr", (brr==1), 0.0);
    }
    }

    int GetMyPositionLLC()
    { // Возвращет позицию лока в составе 0 - одиночный, 1 - Первый, 2 - В центре, 3 - Последний
    Vehicle[] veh;
    int ArraySize;
    int ret;
    veh = me.GetMyTrain().GetVehicles();//// получаем массив вагонов в составе
    ArraySize = veh.size(); //// получаем количестово элементов массива(количество вагонгов в составе)

    if (ArraySize == 1){ //// одна секция
    ret = 0;
    DoubleLoco = false;
    }
    else if (me == veh[0]) { //// вагонов больше одного, этот вагон находиться первым в составе
    if ( (ArraySize > 1) and (veh[1].isclass(pr2_2te121_loc)) )
    DoubleLoco = true;
    ret = 1;
    }
    else if ((ArraySize == 2) and (me == veh[1]) and veh[1].isclass(pr2_2te121_loc) ) {
    DoubleLoco = true;
    ret = 4; // резервом, вторая секция
    }
    else if ((ArraySize > 2) and (me == veh[1]) and veh[1].isclass(pr2_2te121_loc)){
    DoubleLoco = true;
    ret = 5; // с составом, вторая секция
    }
    else if (me == veh[ArraySize-1]){ //// последний в составе
    DoubleLoco = true;
    ret = 3;
    }
    else if (me == veh[ArraySize-2]){ //// предпоследний в составе
    DoubleLoco = true;
    ret = 6;
    }
    else ret = 2; //// вагонов больше одного, этот вагон находиться в центре состава

    return ret;
    }

    void llc_update(){ // основная функция, которая управляет порядком зажигания огней ЛЛС
    int prior=me.GetMyTrain().GetTrainPriorityNumber();
    int pos=GetMyPositionLLC();
    int night=IsNight();

    //зажигаем огни автоматически
    if((prior==1 or prior==2) and cab.br_autoLight)
    {
    if(night==1){
    switch(pos){
    case 0:llc_set(1,1,0,0, 0,0,0,1); break;
    case 1:llc_set(1,1,0,0, 0,0,0,0); break;
    case 3:llc_set(0,1,0,0, 0,0,0,0); break;
    case 4:llc_set(0,0,1,0, 0,0,0,0); break;
    case 5:llc_set(1,0,0,0, 0,0,0,0); break;
    case 6:llc_set(0,0,0,1, 0,0,0,0); break;
    default:llc_set(0,0,0,0, 0,0,0,0);
    }
    }

    if(night==0){
    switch(pos){
    case 0:llc_set(0,0,0,0, 0,0,0,1); break;
    case 1:llc_set(0,0,0,0, 0,0,0,0); break;
    case 3:llc_set(0,1,0,0, 0,0,0,0); break;
    case 4:llc_set(0,0,1,0, 0,0,0,0); break;
    case 5:llc_set(1,0,0,0, 0,0,0,0); break;
    case 6:llc_set(0,0,0,1, 0,0,0,0); break;
    default:llc_set(0,0,0,0, 0,0,0,0);
    }
    }
    }

    if((prior==3) and cab.br_autoLight) llc_set(0,1,0,0, 0,1,0,0);

    if (!cab.br_autoLight) //зажигаем огни от тумблеров кабины
    llc_set(cab.flw, cab.frw, cab.flr, cab.frr, cab.blw, cab.brw, cab.blr, cab.brr);
    }

    void light_details(void) // автоматическое зажигание света в кабине и прожектора
    {
    int night = IsNight();
    bool dir = me.GetDirectionRelativeToTrain();

    if (night==1){
    cab.projector_tusk = (dir and cab.br_autoLight);
    SetMeshVisible("hdlt_low_front", ((dir and cab.br_autoLight) or cab.projector_tusk2), 0.0);

    SetMeshVisible("mash_lt", (dir and (cab.br_autoLight or cab.CabLight!=1)), 0.0);
    SetMeshVisible("pom_lt", (dir and (cab.br_autoLight or cab.CabLight!=1)), 0.0);
    SetMeshVisible("mash", (dir and !(cab.br_autoLight or cab.CabLight!=1)), 0.0);
    SetMeshVisible("pom", (dir and !(cab.br_autoLight or cab.CabLight!=1)), 0.0);

    SetMeshVisible("minikaba_night", (dir and (cab.br_autoLight or cab.CabLight!=1)), 0.0);
    SetMeshVisible("minikaba_day", (!dir) or (dir and !(cab.br_autoLight or cab.CabLight!=1)), 0.0);
    }
    else{
    cab.projector_tusk = false;
    SetMeshVisible("hdlt_low_front", cab.projector_tusk2, 0.0);

    SetMeshVisible("mash_lt", false, 0.0);
    SetMeshVisible("pom_lt", false, 0.0);
    SetMeshVisible("mash", dir, 0.0);
    SetMeshVisible("pom", dir, 0.0);

    SetMeshVisible("minikaba_night", false, 0.0);
    SetMeshVisible("minikaba_day", true, 0.0);
    }
    }[/PHP]
    Сделано наспех - сделано на смех!

  10. Сказал спасибо:


  11. #936
    Пользователь Аватар для Marques
    Регистрация
    25.08.2011
    Страна
    Адрес
    Санкт-Петербург
    Возраст
    45
    Сообщений
    55

    По умолчанию

    BigDen,а если нужно через браузер - то возьми любого чеха из этого пака - https://trainzup.com/?p=4332 и погляди там. В этих локах два скрипта, один управляет звуками двигателя, а второй "loc_llc_vl.gs" - управляет огнями. Там в принципе все довольно понятно.
    P.S.
    Да, такая же система есть и во встроенном ЧС7-141.

  12. Сказал спасибо:


  13. #937
    Администратор Аватар для OlegKhim
    Регистрация
    19.09.2009
    Страна
    Адрес
    Киев
    Возраст
    53
    Сообщений
    4,253

    По умолчанию

    proton2, и не только.
    Открыть
    Ув.пользователи! Не понравилась тематика форума или игра, разработки или дополнения к ней - до свидания, не нужно "марать бумагу" и тратить свое время.

    "— Скажите, уважаемый, если я пойду по этой улице, там будет вокзал?
    — Там будет вокзал, даже если вы туда не пойдете! "
    © Одесса

  14. #938
    Пользователь Аватар для TRam_
    Регистрация
    22.09.2009
    Возраст
    30
    Сообщений
    16,079

    По умолчанию

    OlegKhim, наоборот, менее удобно. Нумерация строк только мешает, выделения каждой 5ой строки - тоже.

  15. #939
    Пользователь Аватар для BigDen
    Регистрация
    11.07.2011
    Страна
    Адрес
    Бурятия г.Улан-Удэ
    Возраст
    42
    Сообщений
    314

    По умолчанию

    Цитата Сообщение от Marques Посмотреть сообщение
    а если нужно через браузер - то возьми любого чеха из этого пака
    спасибо, а как быть со скриптом расходом топлива?
    У как тут всё запущено.....

  16. #940
    Пользователь Аватар для Marques
    Регистрация
    25.08.2011
    Страна
    Адрес
    Санкт-Петербург
    Возраст
    45
    Сообщений
    55

    По умолчанию

    Цитата Сообщение от BigDen Посмотреть сообщение
    спасибо, а как быть со скриптом расходом топлива?
    Я дизеля скриптованные подробно не ковырял... так что ничего не посоветую, но если разобрать какой-либо подходящий лок, то можно поглядеть что там и как. Видел "машку" с возможностью заводить дизель и смотреть остатки топлива через браузер, но вот не помню ее куида...
    Хотя погоди - есть же xLm-CHME5-0008,<kuid2:506034:100090:1> там по моему есть расход топлива и дизель заводится отдельно.

  17. Сказал спасибо:


+ Ответить в теме

Ваши права

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