+ Ответить в теме
Страница 129 из 130 ПерваяПервая ... 29 79 119 127 128 129 130 ПоследняяПоследняя
Показано с 1,281 по 1,290 из 1297

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

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

    По умолчанию

    Цитата Сообщение от Рома Посмотреть сообщение
    proton2, а звук как воспроизводится, через World.PlaySound() или саундскриптом? Какие параметры звука? Я всегда использую 22kHz 16 bit mono никогда подобного не было
    void PlaySoundAndSleep(Asset srcAsset,
    string soundFile,
    float volume,
    float minDistance,
    float maxDistance,
    GameObject srcObject,
    string att){
    World.PlaySound(srcAsset, soundFile, volume, minDistance, maxDistance, srcObject, att);
    Sleep(SoundSoup.GetNamedTagAsFloat(soundFile));
    }

    thread void Disel(Asset MyAsset) // ðàáîòà äèçåëÿ - çâóêè
    {
    int i, currTr, sndTr;//currTr - òåêóùàÿ ïîçèöèÿ êîíòðîëëåðà, sndTr - ïîçèöèÿ, çâóê êîòîðîé ïðîèãðûâàåòñÿ
    float dt;
    string sndFile;
    bool k1=false,k7=false;
    int qw=0;
    int ti;

    if(!Disel1)
    {
    Disel1=true;
    process="disel_is_going.tga";
    PostMessage(null,"RefreshBrowser","",0.0);

    PlaySoundAndSleep(MyAsset,"sound/oil_pump_start.wav",0.5f,8.0f,100.0f,me,"a.disel") ;
    for (ti=0; ti<=10; ti++){
    PlaySoundAndSleep(MyAsset,"sound/oil_pump_idle.wav",0.5f,8.0f,100.0f,me,"a.disel");
    }
    World.PlaySound(MyAsset,"sound/oil_pump_stop.wav",0.5f,8.0f,100.0f,me,"a.disel");

    PlaySoundAndSleep(MyAsset,"sound/pusk-kontaktors.wav", 1, 5.0f, 10.0f,me,"a.disel");
    PostMessage(me,"pfx","+0",smoke_wait);
    PlaySoundAndSleep(MyAsset,"sound/engine_start_0.wav",soundkoef,15.0f,1000.0f,me,"a. disel");
    PostMessage(me,"pfx","-0",0.6);

    process="disel_is_on.tga";
    powerState = true;
    cab.rabota_1 = true;

    sndTr = 1;
    PowerLoop(fuelQ);
    PostMessage(null,"RefreshBrowser","",0.0);
    while(powerState and !DeRailed)
    {
    if(mr_press<780) Compressor();

    currTr = (int)(GetEngineSetting("throttle")*nmb_pos);

    if(sndTr < 2 and currTr < 2){
    sndTr = 1;
    sndFile = "idle "+(string)sndTr;
    }
    else if (currTr == sndTr){
    sndFile = "idle "+(string)sndTr;
    }
    else if (currTr > sndTr){ //êîíòðîëëåð íà áîëåå âûñîêîé ïîçèöèè
    sndTr++;
    sndFile = "up "+(string)(sndTr-1)+" - "+(string)sndTr;
    }
    else if (currTr < sndTr) { //êîíòðîëëåð íà áîëåå íèçêîé ïîçèöèè
    sndTr--;
    sndFile = "down "+(string)(sndTr+1)+" - "+(string)sndTr;
    }
    PlaySoundAndSleep(MyAsset,"sound/"+sndFile+".wav",soundkoef,15.0f,1000.0f,me,"a.dis el");
    }

    PlaySoundAndSleep(MyAsset,"sound/engine_stop_0.wav",soundkoef,15.0f,1000.0f,me,"a.d isel");

    SetMaximumTractiveEffort(0);
    SetWheelslipTractionMultiplier(1);

    process="disel_is_off.tga";
    PostMessage(null,"RefreshBrowser","",0.0);
    Disel1=false;
    cab.rabota_1=false;
    }
    }
    Сделано наспех - сделано на смех!

  2. #1282
    Разработчик Trainz UP Аватар для kemal
    Регистрация
    22.10.2009
    Страна
    Адрес
    Казань / 793км
    Возраст
    29
    Сообщений
    2,624

    По умолчанию

    Цитата Сообщение от proton2 Посмотреть сообщение
    PostMessage(null,"RefreshBrowser","",0.0);
    А в этом точно есть необходимость? Я про null.

  3. #1283
    Пользователь Аватар для TRam_
    Регистрация
    22.09.2009
    Возраст
    27
    Сообщений
    14,032

    По умолчанию

    Если речь о LLC-образном скрипте, где один браузер на все секции локомотивов поезда - именно так. Или опять же ручная рассылка во все секции, если это кому-нибудь захочется сделать.

  4. #1284
    Разработчик Trainz UP Аватар для kemal
    Регистрация
    22.10.2009
    Страна
    Адрес
    Казань / 793км
    Возраст
    29
    Сообщений
    2,624

    По умолчанию

    А как можно узнать какая сейчас загружена карта? Нашёл Asset World::GetCurrentProfile(void), после чего можно сделать Asset Asset::GetParent(). Но если загружать только карту, то GetCurrentProfile возвращает null.

    ---------- Сообщение добавлено в 14:35 ---------- Предыдущее сообщение размещено в 12:12 ----------

    Кто работал с функцией int OnlineAccess::SetLocalData(string key, Soup data)? Что-то у меня данные не сохраняются. Нужно ли там ещё дополнительно что-то делать?

  5. #1285
    Спонсор Bronze Степень участия
    Разработчик
    Аватар для B.U.G.O.R.
    Регистрация
    07.02.2010
    Страна
    Адрес
    Санкт-Петербург
    Возраст
    25
    Сообщений
    6,657

    По умолчанию

    А сейчас я буду задавать очень много вопросов, возможно глупых, но все же мне надо в этом разобраться.

    И вот первый. Есть у нас вот такая штука:
    Код:
    		if (paused == IsPaused())
    			return;
    Что это значит? Я вообще не могу понять значения слова "возвращает значение", что значит возвращает, куда?
    https://www.flickr.com/photos/163202574@N04/

  6. #1286
    Разработчик Trainz UP Аватар для kemal
    Регистрация
    22.10.2009
    Страна
    Адрес
    Казань / 793км
    Возраст
    29
    Сообщений
    2,624

    По умолчанию

    Представь, что у тебя есть некий дядя Вася, который умеет считать не обязательно простые, но какие-то однотипные вещи. Ты говоришь ему посчитай, даёшь исходные данные и ждёшь. А у него есть бумажка, в которой написано как считать. И вот, в какой-то момент там написано взять что-то и вернуть в качестве ответа. Он до этого места доходит и говорит, что посчитал и ответ вот такой. Это и есть возвращаемое из функции значение.


    Бывает немного другая ситуация, когда мы просим дядю Васю что-то сделать, а в ответ от него ничего не ждём. Тогда говорят, что функция ничего не возвращает. Или возвращает ничего, то есть void. Что можно вернуть в этом случае? Ничего, поэтому после return ничего нет. Тогда зачем это? Бывает так, что мы проверяем какое-то условие и в зависимости от него может оказаться так, что дальше ничего делать не нужно. Можно было бы написать большой if, но так проще и красивее.


    Вообще, почему именно "возврат"? На самом деле, "возвращение значения" - вторично. Главное - это возвращение управления. Восходит это к ассемблерам, где есть команда перейти в функцию подпрограмму, а там должна быть команда вернуться обратно. Здесь-то, если функция ничего не возвращает и если не написать return, возврат всё равно произойдёт, когда до конца функции дойдём. А там это нужно было делать явно в любом случае.

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


  8. #1287
    Спонсор Bronze Степень участия
    Разработчик
    Аватар для B.U.G.O.R.
    Регистрация
    07.02.2010
    Страна
    Адрес
    Санкт-Петербург
    Возраст
    25
    Сообщений
    6,657

    По умолчанию

    А вот эти паузы в условии if, что это значат? Кусок скрипта взят из правила для сессии.
    https://www.flickr.com/photos/163202574@N04/

  9. #1288
    Разработчик Trainz UP Аватар для kemal
    Регистрация
    22.10.2009
    Страна
    Адрес
    Казань / 793км
    Возраст
    29
    Сообщений
    2,624

    По умолчанию

    Это приколюхи именно правил. Нужно по этому классу описание читать. Я этот момент так и не разбирал.

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


  11. #1289
    Пользователь Аватар для TRam_
    Регистрация
    22.09.2009
    Возраст
    27
    Сообщений
    14,032

    По умолчанию

    Цитата Сообщение от B.U.G.O.R. Посмотреть сообщение
    А вот эти паузы в условии if, что это значат?
    В дефолтной логике у правила есть набор флагов "остановлено/не остановлено[выполнение правила]", "завершено/не завершено", "готово завершаться/не готово завершаться", "способно завершиться/не способно завершаться". Как именно данные флаги будут работать в правиле - решать скриптёру, но аурановцы предполагают, что правило не должно перезапускатся когда оно уже в состоянии "не остановлено" и не должно останавливаться, если оно и так в состоянии "остановлено". Собственно данное условие это и реализует. И в коде ниже, скорее всего, будет выставление нового значения флага "остановлено". По умолчанию в начале сессии все правила остановлены и не завершены.

    Кстати. При загрузке сохранения сессии вызовов public void Pause(bool paused) не происходит.

    ---------- Сообщение добавлено в 07:14 ---------- Предыдущее сообщение размещено в 07:09 ----------

    Оно вызывается просто при загрузке сессии, когда доходит до него очередь.
    Последний раз редактировалось TRam_; 12.07.2018 в 07:12.

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


  13. #1290
    Спонсор Bronze Степень участия
    Разработчик
    Аватар для B.U.G.O.R.
    Регистрация
    07.02.2010
    Страна
    Адрес
    Санкт-Петербург
    Возраст
    25
    Сообщений
    6,657

    По умолчанию

    А теперь вопрос одновременно сложный и простый. Есть у меня html, мне надо сделать его в качестве HUD. Я клонировал сторонние куиды, делал его отображение, все, но, само собой, что скрипт мне нужен совершенно иной. В итоге, я так и не разобрался с тем, что именно отвечает за отображение скрипта. Как я понял, там не обойтись без двух куидов, в одном html со скриптом, который, собственно основной, и выполняет все, что требуется, а второй, это правило, которое просто либо включает, либо отключает отображение html, т.е. работает с тем, что появляется, когда мы нажимаем Edit в каком-то правиле в правилах сессии. Если я понял неправильно, прошу поправить меня. Собственно, я брал за основу скрипт, у которого была возможность либо показывать, либо не показывать этот HUD, в настройках как раз правила. Но я хочу сделать так, чтобы при появлении этого правила, у меня HUD так или иначе показывало (иначе зачем мне вообще добавлять правило?). И вот, тут я встал, потому что не знаю, что делать дальше. Сейчас у меня пустой скрипт правила и вот такой скрипт HUD:


    Как с этим вообще работать? Для начала, научите меня делать так, чтобы HUD хотя бы просто отображался, а остальное уже потом.
    https://www.flickr.com/photos/163202574@N04/

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

Ваши права

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