La Sombra del Mar Опубликовано 12 апреля, 2021 Автор Жалоба Поделиться Опубликовано 12 апреля, 2021 (изменено) И снова здравствуйте. Возвращаюсь к теме скриптов кулинарии, которые я пытаюсь адаптировать для мультиплеера. С изучением рецептов вроде бы вопрос решить получилось, но возникла другая проблема - при попытках использования девайсов для готовки неизменно вылезает месседжбокс про "Вы не умеете пользоваться <название дейвайса>", хотя нужное значение переменной, отвечающей за умение готовить, уже получено в результате прочтения книги рецептов (в данном случае это NOM_cook_tisane). Все остальные условия тоже выполнены, но хоть ты тресни - "вы не умеете". Я уже просто отчаялась понять что еще тут может быть не так. Вот один из скриптов изучения рецептов из книги (приготовление отваров): begin NOM_book_tisane2 short NOM_cook_tisaneshort PCSkipEquipshort pickedup if ( pickedup == 1 )set pickedup to 0if ( NOM_cook_tisane == 0 )if ( player->GetItemCount "sc_paper plain" > 0 )set NOM_cook_tisane to 2PlaySound "skillraise"messagebox "Вы узнали новые рецепты из 'Книги Отваров'."player->RemoveItem "sc_paper plain" 1player->AddItem "NoM_list_tisane_02" 1PlaySound "scroll"messagebox "Вы выписываете список использованных в этой книге ингредиентов на чистый лист бумаги. Он вам пригодится в процессе готовки."elseif ( player->GetItemCount "sc_paper plain" < 1 )PlaySound "NoM_BadButton"messagebox "Вам нужен чистый лист бумаги, чтобы выписать список использованных в этой книге ингредиентов." endifendifendif if ( PCSkipEquip == 1 ) set PCSkipEquip to 0 set pickedup to 1 returnendif if ( MenuMode == 1 )returnendif if ( OnActivate == 1 ) Activate set pickedup to 1endif end А это скрипт девайса, использующегося для приготовления (заварник): begin NOM_tisane;--Tisane: Menu.short buttonshort button_maxshort stateshort NOM_cook_tisaneshort canBrewshort water_tot ; how much water the PC hasshort ingred_tot ; temp variableshort cooking ; tells if the PC is cookingfloat myTimer ; a timer for cooking if ( myTimer < 0 )set myTimer to ( myTimer + GetSecondsPassed )returnelseif ( cooking == 1 )set cooking to 0 set water_tot to ( water_tot - 1 )if ( player->GetItemCount, "NOM_waterskin_1" > 0 )player->RemoveItem, "NOM_waterskin_1", 1player->AddItem, "NOM_waterskin_empty", 1elseif ( player->GetItemCount, "misc_com_bottle_02_water1" > 0 )player->RemoveItem, "misc_com_bottle_02_water1", 1player->AddItem, "misc_com_bottle_02", 1elseif ( player->GetItemCount, "misc_com_bottle_09_water1" > 0 )player->RemoveItem, "misc_com_bottle_09_water1", 1player->AddItem, "misc_com_bottle_09", 1elseif ( player->GetItemCount, "misc_com_bottle_03_water1" > 0 )player->RemoveItem, "misc_com_bottle_03_water1", 1player->AddItem, "misc_com_bottle_03", 1elseif ( player->GetItemCount, "NOM_waterskin_2" > 0 )player->RemoveItem, "NOM_waterskin_2", 1player->AddItem, "NOM_waterskin_1", 1elseif ( player->GetItemCount, "misc_com_bottle_03_water2" > 0 )player->RemoveItem, "misc_com_bottle_03_water2", 1player->AddItem, "misc_com_bottle_03_water1", 1elseif ( player->GetItemCount, "NOM_waterskin_3" > 0 )player->RemoveItem, "NOM_waterskin_3", 1player->AddItem, "NOM_waterskin_2", 1elseif ( player->GetItemCount, "misc_com_bottle_03_water3" > 0 )player->RemoveItem, "misc_com_bottle_03_water3", 1player->AddItem, "misc_com_bottle_03_water2", 1elseif ( player->GetItemCount, "NOM_waterskin_4" > 0 )player->RemoveItem, "NOM_waterskin_4", 1player->AddItem, "NOM_waterskin_3", 1elseif ( player->GetItemCount, "NOM_waterskin_5" > 0 )player->RemoveItem, "NOM_waterskin_5", 1player->AddItem, "NOM_waterskin_4", 1elseif ( player->GetItemCount, "NOM_waterskin_6" > 0 )player->RemoveItem, "NOM_waterskin_6", 1player->AddItem, "NOM_waterskin_5", 1elseif ( player->GetItemCount, "misc_com_bottle_02_water" > 0 )player->RemoveItem, "misc_com_bottle_02_water", 1player->AddItem, "misc_com_bottle_02_water1", 1elseif ( player->GetItemCount, "misc_com_bottle_09_water" > 0 )player->RemoveItem, "misc_com_bottle_09_water", 1player->AddItem, "misc_com_bottle_09_water1", 1elseif ( player->GetItemCount, "misc_com_bottle_03_water" > 0 )player->RemoveItem, "misc_com_bottle_03_water", 1player->AddItem, "misc_com_bottle_03_water3", 1endif PlaySound "Drink"set GameHour to ( GameHour + 0.2 ) ;12 minutes passing for every tisaneif ( state == 20 )messagebox "Вы завариваете и выпиваете чашку отвара Горячей Крови."if ( NOM_tisane_effect_1 == 1 )set NOM_tisane_effect_1 to -2elseStartScript NOM_tisane_warmingendifelseif ( state == 30 )messagebox "Вы завариваете и выпиваете чашку отвара Живучести Огрима."if ( NOM_tisane_effect_2 == 1 )set NOM_tisane_effect_2 to -2elseStartScript NOM_tisane_healingendifelseif ( state == 40 )messagebox "Вы завариваете и выпиваете чашку отвара Чистоты Восприятия"if ( NOM_tisane_effect_3 == 1 )set NOM_tisane_effect_3 to -2elseStartScript NOM_tisane_meditationendifelseif ( state == 50 )messagebox "Вы завариваете и выпиваете чашку отвара Бдительности Часового."elseif ( state == 60 )messagebox "Вы завариваете и выпиваете чашку отвара Варева Трора."if ( NOM_tisane_effect_4 == 1 )set NOM_tisane_effect_4 to -2elseStartScript NOM_tisane_alcolendifelseif ( state == 70 )messagebox "Вы завариваете и выпиваете чашку отвара Поддержки Пилигрима."if ( NOM_tisane_effect_5 == 1 )set NOM_tisane_effect_5 to -2elseStartScript NOM_tisane_htendifendifset state to 10returnendif ;Base stateif ( state == 0 )set canBrew to ( NOM_fireplace + NOM_ovenplace )if ( NOM_cook_tisane < 1 )PlaySound "NoM_BadButton"messagebox "Вы не умеете готовить отвары. Изучите хотя бы один рецепт."stopScript NOM_tisaneelseif ( canBrew == 0 )PlaySound "NoM_BadButton"messagebox "Подойдите к огню\печи."stopScript NOM_tisaneelseset water_tot to ( player->GetItemCount, "NOM_waterskin_1" )set water_tot to water_tot + ( player->GetItemCount, "misc_com_bottle_02_water1" )set water_tot to water_tot + ( player->GetItemCount, "misc_com_bottle_09_water1" )set water_tot to water_tot + ( player->GetItemCount, "misc_com_bottle_03_water1" )set ingred_tot to ( player->GetItemCount, "NOM_waterskin_2" )set ingred_tot to ( ingred_tot * 2 )set water_tot to ( water_tot + ingred_tot )set ingred_tot to ( player->GetItemCount, "misc_com_bottle_03_water2" )set ingred_tot to ( ingred_tot * 2 )set water_tot to ( water_tot + ingred_tot )set ingred_tot to ( player->GetItemCount, "NOM_waterskin_3" )set ingred_tot to ( ingred_tot * 3 )set water_tot to ( water_tot + ingred_tot )set ingred_tot to ( player->GetItemCount, "misc_com_bottle_03_water3" )set ingred_tot to ( ingred_tot * 3 )set water_tot to ( water_tot + ingred_tot )set ingred_tot to ( player->GetItemCount, "NOM_waterskin_4" )set ingred_tot to ( ingred_tot * 4 )set water_tot to ( water_tot + ingred_tot )set ingred_tot to ( player->GetItemCount, "NOM_waterskin_5" )set ingred_tot to ( ingred_tot * 5 )set water_tot to ( water_tot + ingred_tot )set ingred_tot to ( player->GetItemCount, "NOM_waterskin_6" )set ingred_tot to ( ingred_tot * 6 )set water_tot to ( water_tot + ingred_tot )set ingred_tot to ( player->GetItemCount, "misc_com_bottle_02_water" )set ingred_tot to ( ingred_tot * 2 )set water_tot to ( water_tot + ingred_tot )set ingred_tot to ( player->GetItemCount, "misc_com_bottle_09_water" )set ingred_tot to ( ingred_tot * 2 )set water_tot to ( water_tot + ingred_tot )set ingred_tot to ( player->GetItemCount, "misc_com_bottle_03_water" )set ingred_tot to ( ingred_tot * 4 )set water_tot to ( water_tot + ingred_tot ) set state to 10set NoM_busy to 1DisablePlayerControlsMenuTest 0endifreturnendif ;--Menuif ( state == 10 )if ( NOM_cook_tisane == 2 )messagebox "Какой отвар вы хотите приготовить?" "Горячей Крови" "Живучести Огрима" "Чистоты Восприятия" "Бдительности Часового" "Варево Трора" "Поддержки Пилигрима" "- Отмена -"set button_max to 6endifset button to -1set state to 15return ;--Handles menu choiceelseif ( state == 15 )set button to GetButtonPressedif ( button == -1 )returnelseif ( button == button_max )set state to 0set NoM_busy to 0EnablePlayerControlsstopScript NOM_tisaneelseset state to ( ( 10 * button ) + 20 )endifreturnendif ;--Warm-Blood Tisaneif ( state == 20 )if ( player->GetItemCount "ingred_green_lichen_01" < 1 )PlaySound "NoM_BadButton"set myTimer to -0.5set state to 10messagebox "Для этого нужен зеленый лишайник."elseif ( player->GetItemCount "ingred_red_lichen_01" < 1 )PlaySound "NoM_BadButton"set myTimer to -0.5set state to 10messagebox "Для этого нужен красный лишайник."elseif ( water_tot == 0 )PlaySound "NoM_BadButton"set myTimer to -0.5set state to 10messagebox "Для этого нужна вода."elseplayer->RemoveItem "ingred_green_lichen_01" 1player->RemoveItem "ingred_red_lichen_01" 1PlaySound "fv_boil"set myTimer to -5set cooking to 1endifreturnendif ;--Troll's Vitalityif ( state == 30 )if ( player->GetItemCount "ingred_hackle-lo_leaf_01" < 1 )PlaySound "NoM_BadButton"set myTimer to -0.5set state to 10messagebox "Для этого нужен лист хакльлоу."elseif ( player->GetItemCount "ingred_stoneflower_petals_01" < 2 )PlaySound "NoM_BadButton"set myTimer to -0.5set state to 10messagebox "Для этого нужны лепестки каменевки с 2х цветков."elseif ( water_tot == 0 )PlaySound "NoM_BadButton"set myTimer to -0.5set state to 10messagebox "Для этого нужна вода."elseplayer->RemoveItem "ingred_hackle-lo_leaf_01" 1player->RemoveItem "ingred_stoneflower_petals_01" 2PlaySound "fv_boil"set myTimer to -5set cooking to 1endifreturnendif ;--Brilliance Essenceif ( state == 40 )if ( player->GetItemCount "ingred_hackle-lo_leaf_01" < 1 )PlaySound "NoM_BadButton"set myTimer to -0.5set state to 10messagebox "Для этого нужен лист хакльлоу."elseif ( player->GetItemCount "ingred_heather_01" < 2 )PlaySound "NoM_BadButton"set myTimer to -0.5set state to 10messagebox "Для этого нужно 2 веточки вереска."elseif ( water_tot == 0 )PlaySound "NoM_BadButton"set myTimer to -0.5set state to 10messagebox "Для этого нужна вода."elseplayer->RemoveItem "ingred_hackle-lo_leaf_01" 1player->RemoveItem "ingred_heather_01" 2PlaySound "fv_boil"set myTimer to -5set cooking to 1endifreturnendif ;--Sentinel's Eyeif ( state == 50 )if ( player->GetItemCount "ingred_trama_root_01" < 1 )PlaySound "NoM_BadButton"set myTimer to -0.5set state to 10messagebox "Для этого нужен корень трамы."elseif ( player->GetItemCount "ingred_kresh_fiber_01" < 2 )PlaySound "NoM_BadButton"set myTimer to -0.5set state to 10messagebox "Для этого нужно 2 пучка волокон креша."elseif ( water_tot == 0 )PlaySound "NoM_BadButton"set myTimer to -0.5set state to 10messagebox "Для этого нужна вода."elseplayer->RemoveItem "ingred_trama_root_01" 1player->RemoveItem "ingred_kresh_fiber_01" 2PlaySound "fv_boil"set myTimer to -5set cooking to 1endifreturnendif ;--Thror's Brewif ( state == 60 )if ( player->GetItemCount "ingred_bittergreen_petals_01" < 1 )PlaySound "NoM_BadButton"set myTimer to -0.5set state to 10messagebox "Для этого нужно 2 пучка лепестков горьколистника."elseif ( player->GetItemCount "ingred_trama_root_01" < 1 )PlaySound "NoM_BadButton"set myTimer to -0.5set state to 10messagebox "Для этого нужен корень трамы."elseif ( water_tot == 0 )PlaySound "NoM_BadButton"set myTimer to -0.5set state to 10messagebox "Для этого нужна вода."elseplayer->RemoveItem "ingred_bittergreen_petals_01" 1player->RemoveItem "ingred_trama_root_01" 1PlaySound "fv_boil"set myTimer to -5set cooking to 1endifreturnendif ;--Pilgrim's Supportif ( state == 70 )if ( player->GetItemCount "ingred_stoneflower_petals_01" < 1 )PlaySound "NoM_BadButton"set myTimer to -0.5set state to 10messagebox "Для этого нужны лепестки каменевки с 2х цветков."elseif ( player->GetItemCount "ingred_gold_kanet_01" < 1 )PlaySound "NoM_BadButton"set myTimer to -0.5set state to 10messagebox "Для этого нужен золотой канет."elseif ( player->GetItemCount "ingred_bc_coda_flower" < 1 )PlaySound "NoM_BadButton"set myTimer to -0.5set state to 10messagebox "Для этого нужен цветок коды."elseif ( water_tot == 0 )PlaySound "NoM_BadButton"set myTimer to -0.5set state to 10messagebox "Для этого нужна вода."elseplayer->RemoveItem "ingred_stoneflower_petals_01" 1player->RemoveItem "ingred_gold_kanet_01" 1player->RemoveItem "ingred_bc_coda_flower" 1PlaySound "fv_boil"set myTimer to -5set cooking to 1endifendif end Похоже что-то мешает запуску скрипта NOM_tisane, который отвечает за процесс готовки, или останавливает его (скрипт). Но что именно - отловить у меня так и не выходит. Очень надеюсь на помощь, ибо бьюсь над проблемой уже больше месяца, а воз и ныне там. Изменено 12 апреля, 2021 пользователем La Sombra del Mar Ссылка на комментарий Поделиться на другие сайты Поделиться
lime Опубликовано 12 апреля, 2021 Жалоба Поделиться Опубликовано 12 апреля, 2021 Возвращаюсь к теме скриптов кулинарии, которые я пытаюсь адаптировать для мультиплеера Насколько мне известно в мультиплеере (tes3mp) не работает сохранение переменных. Из за чего может возникать эта проблема.Разработчик tes3mp делал сохранение локальных переменных TES3MP/CoreScripts но я не проверял все ли корректно работает так, как нужно пересобирать проект. В теории можно разработать серверный скрипт на lua, который будет показывать сохранять состояние игрока на сервере и показывать меню крафта. Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 12 апреля, 2021 Жалоба Поделиться Опубликовано 12 апреля, 2021 Скрипт слишком большой, в морровинде есть ограничения на длину.Попробуйте юзать тег code, и расставить обычные табуляции ддя if endif, вообще не понятно где что. Этот предмет NoM_list_tisane_02 вообще нигде не используется. В переменная NOM_cook_tisane локальная, так что изучение рецепта ни на что не влияет. if ( myTimer < 0 )set myTimer to ( myTimer + GetSecondsPassed )returnelseif ( cooking == 1 )set cooking to 0Где endif отсюда непонятно. Нудно переписать так, чтобы было как можно меньше вложенных if. Ссылка на комментарий Поделиться на другие сайты Поделиться
La Sombra del Mar Опубликовано 13 апреля, 2021 Автор Жалоба Поделиться Опубликовано 13 апреля, 2021 (изменено) Насколько мне известно в мультиплеере (tes3mp) не работает сохранение переменных. Из за чего может возникать эта проблема.Разработчик tes3mp делал сохранение локальных переменных TES3MP/CoreScripts но я не проверял все ли корректно работает так, как нужно пересобирать проект. В теории можно разработать серверный скрипт на lua, который будет показывать сохранять состояние игрока на сервере и показывать меню крафта.Ну вообще я сначала тестирую все в сингловом OpenMW, и там оно энивей не работает. Но за ссылку спасибо, пригодится. Изменено 13 апреля, 2021 пользователем La Sombra del Mar Ссылка на комментарий Поделиться на другие сайты Поделиться
La Sombra del Mar Опубликовано 13 апреля, 2021 Автор Жалоба Поделиться Опубликовано 13 апреля, 2021 Попробуйте юзать тег code, и расставить обычные табуляции ддя if endif, вообще не понятно где что.Что за тег code и где его юзать? Табуляции в смысле отступы выровнять? В оригинальном скрипте было именно так, и он работал, до некоторых пор. В переменная NOM_cook_tisane локальная, так что изучение рецепта ни на что не влияет.Вот в этом блоке указано что от того изучен ли рецепт отвара (NOM_cook_tisane) зависит запустится ли скрипт заварника (NOM_tisane), и именно этот месседжбокс все время вылезает. Несмотря на то, что рецепт изучен. Даже после того как прописываю в консоли set NOM_cook_tisane to 2. А когда прописываю startscript nom_tisane - снова сообщение про "вы не умеете". Т.е. все, по всей видимости, упирается именно в эту переменную. Только вот непонятно что мешает исполнению скрипта если NOM_cook_tisane уже = 2. ;Base stateif ( state == 0 )set canBrew to ( NOM_fireplace + NOM_ovenplace )if ( NOM_cook_tisane < 1 )PlaySound "NoM_BadButton"messagebox "Вы не умеете готовить отвары. Изучите хотя бы один рецепт."stopScript NOM_tisaneelseif ( canBrew == 0 )PlaySound "NoM_BadButton"messagebox "Подойдите к огню\печи."stopScript NOM_tisane Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 14 апреля, 2021 Жалоба Поделиться Опубликовано 14 апреля, 2021 Что за тег code и где его юзать? Табуляции в смысле отступы выровнять? В оригинальном скрипте было именно так, и он работал, до некоторых пор. Вот в этом блоке указано что от того изучен ли рецепт отвара (NOM_cook_tisane) зависит запустится ли скрипт заварника (NOM_tisane), и именно этот месседжбокс все время вылезает. Несмотря на то, что рецепт изучен. Даже после того как прописываю в консоли set NOM_cook_tisane to 2. А когда прописываю startscript nom_tisane - снова сообщение про "вы не умеете". Т.е. все, по всей видимости, упирается именно в эту переменную. Только вот непонятно что мешает исполнению скрипта если NOM_cook_tisane уже = 2. Форумный тег, чтоб отступы было видно. Это две разных переменных в двух скриптах, не смотря на то, что у них одно название. Ну сделайте ее глобальной. Ссылка на комментарий Поделиться на другие сайты Поделиться
La Sombra del Mar Опубликовано 14 апреля, 2021 Автор Жалоба Поделиться Опубликовано 14 апреля, 2021 Это две разных переменных в двух скриптах, не смотря на то, что у них одно название. Ну сделайте ее глобальной.Она итак глобальная, типа short. Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 16 апреля, 2021 Жалоба Поделиться Опубликовано 16 апреля, 2021 Локальная:begin NOM_tisane;--Tisane: Menu.short buttonshort button_maxshort stateshort NOM_cook_tisane Ссылка на комментарий Поделиться на другие сайты Поделиться
La Sombra del Mar Опубликовано 16 апреля, 2021 Автор Жалоба Поделиться Опубликовано 16 апреля, 2021 (изменено) Локальная:begin NOM_tisane;--Tisane: Menu.short buttonshort button_maxshort stateshort NOM_cook_tisaneИ как тогда ее переделать в глобальную? Выяснилось что скрипт NOM_tisane не запускался потому что не распознавалась переменная NOM_cook_tisane. Пока поменяла условие для запуска скрипта на наличие в инвентаре списка ингредиентов (NOM_list_tisane_02). Скрипт стал запускаться. НО - работает все только до момента выбора из списка отвара, который будем готовить. После этого тупо ничего не происходит, но срабатывает DisablePlayerControls (блок Base State) и на этом все заканчивается. Вот тут я вобще не понимаю почему все так. Что-то не то с кнопками и/или стадиями? begin NOM_tisane ;--Tisane: Menu. short button short button_max short state short canBrew short water_tot ; how much water the PC has short ingred_tot ; temp variable short cooking ; tells if the PC is cooking float myTimer ; a timer for cooking if ( myTimer < 0 ) set myTimer to ( myTimer + GetSecondsPassed ) return elseif ( cooking == 1 ) set cooking to 0 set water_tot to ( water_tot - 1 ) if ( player->GetItemCount, "NOM_waterskin_1" > 0 ) player->RemoveItem, "NOM_waterskin_1", 1 player->AddItem, "NOM_waterskin_empty", 1 elseif ( player->GetItemCount, "misc_com_bottle_02_water1" > 0 ) player->RemoveItem, "misc_com_bottle_02_water1", 1 player->AddItem, "misc_com_bottle_02", 1 elseif ( player->GetItemCount, "misc_com_bottle_09_water1" > 0 ) player->RemoveItem, "misc_com_bottle_09_water1", 1 player->AddItem, "misc_com_bottle_09", 1 elseif ( player->GetItemCount, "misc_com_bottle_03_water1" > 0 ) player->RemoveItem, "misc_com_bottle_03_water1", 1 player->AddItem, "misc_com_bottle_03", 1 elseif ( player->GetItemCount, "NOM_waterskin_2" > 0 ) player->RemoveItem, "NOM_waterskin_2", 1 player->AddItem, "NOM_waterskin_1", 1 elseif ( player->GetItemCount, "misc_com_bottle_03_water2" > 0 ) player->RemoveItem, "misc_com_bottle_03_water2", 1 player->AddItem, "misc_com_bottle_03_water1", 1 elseif ( player->GetItemCount, "NOM_waterskin_3" > 0 ) player->RemoveItem, "NOM_waterskin_3", 1 player->AddItem, "NOM_waterskin_2", 1 elseif ( player->GetItemCount, "misc_com_bottle_03_water3" > 0 ) player->RemoveItem, "misc_com_bottle_03_water3", 1 player->AddItem, "misc_com_bottle_03_water2", 1 elseif ( player->GetItemCount, "NOM_waterskin_4" > 0 ) player->RemoveItem, "NOM_waterskin_4", 1 player->AddItem, "NOM_waterskin_3", 1 elseif ( player->GetItemCount, "NOM_waterskin_5" > 0 ) player->RemoveItem, "NOM_waterskin_5", 1 player->AddItem, "NOM_waterskin_4", 1 elseif ( player->GetItemCount, "NOM_waterskin_6" > 0 ) player->RemoveItem, "NOM_waterskin_6", 1 player->AddItem, "NOM_waterskin_5", 1 elseif ( player->GetItemCount, "misc_com_bottle_02_water" > 0 ) player->RemoveItem, "misc_com_bottle_02_water", 1 player->AddItem, "misc_com_bottle_02_water1", 1 elseif ( player->GetItemCount, "misc_com_bottle_09_water" > 0 ) player->RemoveItem, "misc_com_bottle_09_water", 1 player->AddItem, "misc_com_bottle_09_water1", 1 elseif ( player->GetItemCount, "misc_com_bottle_03_water" > 0 ) player->RemoveItem, "misc_com_bottle_03_water", 1 player->AddItem, "misc_com_bottle_03_water3", 1 endif PlaySound "Drink" set GameHour to ( GameHour + 0.2 ) ;12 minutes passing for every tisane if ( state == 20 ) messagebox "Вы завариваете и выпиваете чашку отвара Горячей Крови." if ( NOM_tisane_effect_1 == 1 ) set NOM_tisane_effect_1 to -2 else StartScript NOM_tisane_warming endif elseif ( state == 30 ) messagebox "Вы завариваете и выпиваете чашку отвара Живучести Огрима." if ( NOM_tisane_effect_2 == 1 ) set NOM_tisane_effect_2 to -2 else StartScript NOM_tisane_healing endif elseif ( state == 40 ) messagebox "Вы завариваете и выпиваете чашку отвара Чистоты Восприятия" if ( NOM_tisane_effect_3 == 1 ) set NOM_tisane_effect_3 to -2 else StartScript NOM_tisane_meditation endif elseif ( state == 50 ) messagebox "Вы завариваете и выпиваете чашку отвара Бдительности Часового." elseif ( state == 60 ) messagebox "Вы завариваете и выпиваете чашку отвара Варева Трора." if ( NOM_tisane_effect_4 == 1 ) set NOM_tisane_effect_4 to -2 else StartScript NOM_tisane_alcol endif elseif ( state == 70 ) messagebox "Вы завариваете и выпиваете чашку отвара Поддержки Пилигрима." if ( NOM_tisane_effect_5 == 1 ) set NOM_tisane_effect_5 to -2 else StartScript NOM_tisane_ht endif endif set state to 10 return endif ;Base state if ( state == 0 ) set canBrew to ( NOM_fireplace + NOM_ovenplace ) if ( player->GetItemCount "NOM_list_tisane_02" < 1 ) PlaySound "NoM_BadButton" messagebox "Вы не умеете готовить отвары. Изучите хотя бы один рецепт." stopScript NOM_tisane elseif ( canBrew == 0 ) PlaySound "NoM_BadButton" messagebox "Подойдите к огню\печи." stopScript NOM_tisane else set water_tot to ( player->GetItemCount, "NOM_waterskin_1" ) set water_tot to water_tot + ( player->GetItemCount, "misc_com_bottle_02_water1" ) set water_tot to water_tot + ( player->GetItemCount, "misc_com_bottle_09_water1" ) set water_tot to water_tot + ( player->GetItemCount, "misc_com_bottle_03_water1" ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_2" ) set ingred_tot to ( ingred_tot * 2 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_03_water2" ) set ingred_tot to ( ingred_tot * 2 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_3" ) set ingred_tot to ( ingred_tot * 3 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_03_water3" ) set ingred_tot to ( ingred_tot * 3 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_4" ) set ingred_tot to ( ingred_tot * 4 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_5" ) set ingred_tot to ( ingred_tot * 5 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_6" ) set ingred_tot to ( ingred_tot * 6 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_02_water" ) set ingred_tot to ( ingred_tot * 2 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_09_water" ) set ingred_tot to ( ingred_tot * 2 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_03_water" ) set ingred_tot to ( ingred_tot * 4 ) set water_tot to ( water_tot + ingred_tot ) set state to 10 set NoM_busy to 1 DisablePlayerControls MenuTest 0 endif return endif ;--Menu if ( state == 10 ) if ( player->GetItemCount "NOM_list_tisane_02" >= 1 ) messagebox "Какой отвар вы хотите приготовить?" "Горячей Крови" "Живучести Огрима" "Чистоты Восприятия" "Бдительности Часового" "Варево Трора" "Поддержки Пилигрима" "- Отмена -" set button_max to 6 endif endif set button to -1 set state to 15 return ;--Handles menu choice if ( state == 15 ) set button to GetButtonPressed if ( button == -1 ) return if ( button == button_max ) set state to 0 set NoM_busy to 0 EnablePlayerControls stopScript NOM_tisane else set state to ( ( 10 * button ) + 20 ) endif return endif endif ;--Warm-Blood Tisane if ( state == 20 ) if ( player->GetItemCount "ingred_green_lichen_01" < 1 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужен зеленый лишайник." elseif ( player->GetItemCount "ingred_red_lichen_01" < 1 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужен красный лишайник." elseif ( water_tot == 0 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужна вода." else player->RemoveItem "ingred_green_lichen_01" 1 player->RemoveItem "ingred_red_lichen_01" 1 PlaySound "fv_boil" set myTimer to -5 set cooking to 1 endif return endif ;--Troll's Vitality if ( state == 30 ) if ( player->GetItemCount "ingred_hackle-lo_leaf_01" < 1 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужен лист хакльлоу." elseif ( player->GetItemCount "ingred_stoneflower_petals_01" < 2 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужны лепестки каменевки с 2х цветков." elseif ( water_tot == 0 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужна вода." else player->RemoveItem "ingred_hackle-lo_leaf_01" 1 player->RemoveItem "ingred_stoneflower_petals_01" 2 PlaySound "fv_boil" set myTimer to -5 set cooking to 1 endif return endif ;--Brilliance Essence if ( state == 40 ) if ( player->GetItemCount "ingred_hackle-lo_leaf_01" < 1 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужен лист хакльлоу." elseif ( player->GetItemCount "ingred_heather_01" < 2 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужно 2 веточки вереска." elseif ( water_tot == 0 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужна вода." else player->RemoveItem "ingred_hackle-lo_leaf_01" 1 player->RemoveItem "ingred_heather_01" 2 PlaySound "fv_boil" set myTimer to -5 set cooking to 1 endif return endif ;--Sentinel's Eye if ( state == 50 ) if ( player->GetItemCount "ingred_trama_root_01" < 1 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужен корень трамы." elseif ( player->GetItemCount "ingred_kresh_fiber_01" < 2 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужно 2 пучка волокон креша." elseif ( water_tot == 0 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужна вода." else player->RemoveItem "ingred_trama_root_01" 1 player->RemoveItem "ingred_kresh_fiber_01" 2 PlaySound "fv_boil" set myTimer to -5 set cooking to 1 endif return endif ;--Thror's Brew if ( state == 60 ) if ( player->GetItemCount "ingred_bittergreen_petals_01" < 1 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужно 2 пучка лепестков горьколистника." elseif ( player->GetItemCount "ingred_trama_root_01" < 1 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужен корень трамы." elseif ( water_tot == 0 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужна вода." else player->RemoveItem "ingred_bittergreen_petals_01" 1 player->RemoveItem "ingred_trama_root_01" 1 PlaySound "fv_boil" set myTimer to -5 set cooking to 1 endif return endif ;--Pilgrim's Support if ( state == 70 ) if ( player->GetItemCount "ingred_stoneflower_petals_01" < 1 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужны лепестки каменевки с 2х цветков." elseif ( player->GetItemCount "ingred_gold_kanet_01" < 1 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужен золотой канет." elseif ( player->GetItemCount "ingred_bc_coda_flower" < 1 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужен цветок коды." elseif ( water_tot == 0 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужна вода." else player->RemoveItem "ingred_stoneflower_petals_01" 1 player->RemoveItem "ingred_gold_kanet_01" 1 player->RemoveItem "ingred_bc_coda_flower" 1 PlaySound "fv_boil" set myTimer to -5 set cooking to 1 endif endif end Изменено 16 апреля, 2021 пользователем La Sombra del Mar Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 17 апреля, 2021 Жалоба Поделиться Опубликовано 17 апреля, 2021 И как тогда ее переделать в глобальную? Выяснилось что скрипт NOM_tisane не запускался потому что не распознавалась переменная NOM_cook_tisane. Пока поменяла условие для запуска скрипта на наличие в инвентаре списка ингредиентов (NOM_list_tisane_02). Скрипт стал запускаться. НО - работает все только до момента выбора из списка отвара, который будем готовить. После этого тупо ничего не происходит, но срабатывает DisablePlayerControls (блок Base State) и на этом все заканчивается. Вот тут я вобще не понимаю почему все так. Что-то не то с кнопками и/или стадиями? begin NOM_tisane ;--Tisane: Menu. short button short button_max short state short canBrew short water_tot ; how much water the PC has short ingred_tot ; temp variable short cooking ; tells if the PC is cooking float myTimer ; a timer for cooking if ( myTimer < 0 ) set myTimer to ( myTimer + GetSecondsPassed ) return elseif ( cooking == 1 ) set cooking to 0 set water_tot to ( water_tot - 1 ) if ( player->GetItemCount, "NOM_waterskin_1" > 0 ) player->RemoveItem, "NOM_waterskin_1", 1 player->AddItem, "NOM_waterskin_empty", 1 elseif ( player->GetItemCount, "misc_com_bottle_02_water1" > 0 ) player->RemoveItem, "misc_com_bottle_02_water1", 1 player->AddItem, "misc_com_bottle_02", 1 elseif ( player->GetItemCount, "misc_com_bottle_09_water1" > 0 ) player->RemoveItem, "misc_com_bottle_09_water1", 1 player->AddItem, "misc_com_bottle_09", 1 elseif ( player->GetItemCount, "misc_com_bottle_03_water1" > 0 ) player->RemoveItem, "misc_com_bottle_03_water1", 1 player->AddItem, "misc_com_bottle_03", 1 elseif ( player->GetItemCount, "NOM_waterskin_2" > 0 ) player->RemoveItem, "NOM_waterskin_2", 1 player->AddItem, "NOM_waterskin_1", 1 elseif ( player->GetItemCount, "misc_com_bottle_03_water2" > 0 ) player->RemoveItem, "misc_com_bottle_03_water2", 1 player->AddItem, "misc_com_bottle_03_water1", 1 elseif ( player->GetItemCount, "NOM_waterskin_3" > 0 ) player->RemoveItem, "NOM_waterskin_3", 1 player->AddItem, "NOM_waterskin_2", 1 elseif ( player->GetItemCount, "misc_com_bottle_03_water3" > 0 ) player->RemoveItem, "misc_com_bottle_03_water3", 1 player->AddItem, "misc_com_bottle_03_water2", 1 elseif ( player->GetItemCount, "NOM_waterskin_4" > 0 ) player->RemoveItem, "NOM_waterskin_4", 1 player->AddItem, "NOM_waterskin_3", 1 elseif ( player->GetItemCount, "NOM_waterskin_5" > 0 ) player->RemoveItem, "NOM_waterskin_5", 1 player->AddItem, "NOM_waterskin_4", 1 elseif ( player->GetItemCount, "NOM_waterskin_6" > 0 ) player->RemoveItem, "NOM_waterskin_6", 1 player->AddItem, "NOM_waterskin_5", 1 elseif ( player->GetItemCount, "misc_com_bottle_02_water" > 0 ) player->RemoveItem, "misc_com_bottle_02_water", 1 player->AddItem, "misc_com_bottle_02_water1", 1 elseif ( player->GetItemCount, "misc_com_bottle_09_water" > 0 ) player->RemoveItem, "misc_com_bottle_09_water", 1 player->AddItem, "misc_com_bottle_09_water1", 1 elseif ( player->GetItemCount, "misc_com_bottle_03_water" > 0 ) player->RemoveItem, "misc_com_bottle_03_water", 1 player->AddItem, "misc_com_bottle_03_water3", 1 endif PlaySound "Drink" set GameHour to ( GameHour + 0.2 ) ;12 minutes passing for every tisane if ( state == 20 ) messagebox "Вы завариваете и выпиваете чашку отвара Горячей Крови." if ( NOM_tisane_effect_1 == 1 ) set NOM_tisane_effect_1 to -2 else StartScript NOM_tisane_warming endif elseif ( state == 30 ) messagebox "Вы завариваете и выпиваете чашку отвара Живучести Огрима." if ( NOM_tisane_effect_2 == 1 ) set NOM_tisane_effect_2 to -2 else StartScript NOM_tisane_healing endif elseif ( state == 40 ) messagebox "Вы завариваете и выпиваете чашку отвара Чистоты Восприятия" if ( NOM_tisane_effect_3 == 1 ) set NOM_tisane_effect_3 to -2 else StartScript NOM_tisane_meditation endif elseif ( state == 50 ) messagebox "Вы завариваете и выпиваете чашку отвара Бдительности Часового." elseif ( state == 60 ) messagebox "Вы завариваете и выпиваете чашку отвара Варева Трора." if ( NOM_tisane_effect_4 == 1 ) set NOM_tisane_effect_4 to -2 else StartScript NOM_tisane_alcol endif elseif ( state == 70 ) messagebox "Вы завариваете и выпиваете чашку отвара Поддержки Пилигрима." if ( NOM_tisane_effect_5 == 1 ) set NOM_tisane_effect_5 to -2 else StartScript NOM_tisane_ht endif endif set state to 10 return endif ;Base state if ( state == 0 ) set canBrew to ( NOM_fireplace + NOM_ovenplace ) if ( player->GetItemCount "NOM_list_tisane_02" < 1 ) PlaySound "NoM_BadButton" messagebox "Вы не умеете готовить отвары. Изучите хотя бы один рецепт." stopScript NOM_tisane elseif ( canBrew == 0 ) PlaySound "NoM_BadButton" messagebox "Подойдите к огню\печи." stopScript NOM_tisane else set water_tot to ( player->GetItemCount, "NOM_waterskin_1" ) set water_tot to water_tot + ( player->GetItemCount, "misc_com_bottle_02_water1" ) set water_tot to water_tot + ( player->GetItemCount, "misc_com_bottle_09_water1" ) set water_tot to water_tot + ( player->GetItemCount, "misc_com_bottle_03_water1" ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_2" ) set ingred_tot to ( ingred_tot * 2 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_03_water2" ) set ingred_tot to ( ingred_tot * 2 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_3" ) set ingred_tot to ( ingred_tot * 3 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_03_water3" ) set ingred_tot to ( ingred_tot * 3 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_4" ) set ingred_tot to ( ingred_tot * 4 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_5" ) set ingred_tot to ( ingred_tot * 5 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_6" ) set ingred_tot to ( ingred_tot * 6 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_02_water" ) set ingred_tot to ( ingred_tot * 2 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_09_water" ) set ingred_tot to ( ingred_tot * 2 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_03_water" ) set ingred_tot to ( ingred_tot * 4 ) set water_tot to ( water_tot + ingred_tot ) set state to 10 set NoM_busy to 1 DisablePlayerControls MenuTest 0 endif return endif ;--Menu if ( state == 10 ) if ( player->GetItemCount "NOM_list_tisane_02" >= 1 ) messagebox "Какой отвар вы хотите приготовить?" "Горячей Крови" "Живучести Огрима" "Чистоты Восприятия" "Бдительности Часового" "Варево Трора" "Поддержки Пилигрима" "- Отмена -" set button_max to 6 endif endif set button to -1 set state to 15 return ;--Handles menu choice if ( state == 15 ) set button to GetButtonPressed if ( button == -1 ) return if ( button == button_max ) set state to 0 set NoM_busy to 0 EnablePlayerControls stopScript NOM_tisane else set state to ( ( 10 * button ) + 20 ) endif return endif endif ;--Warm-Blood Tisane if ( state == 20 ) if ( player->GetItemCount "ingred_green_lichen_01" < 1 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужен зеленый лишайник." elseif ( player->GetItemCount "ingred_red_lichen_01" < 1 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужен красный лишайник." elseif ( water_tot == 0 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужна вода." else player->RemoveItem "ingred_green_lichen_01" 1 player->RemoveItem "ingred_red_lichen_01" 1 PlaySound "fv_boil" set myTimer to -5 set cooking to 1 endif return endif ;--Troll's Vitality if ( state == 30 ) if ( player->GetItemCount "ingred_hackle-lo_leaf_01" < 1 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужен лист хакльлоу." elseif ( player->GetItemCount "ingred_stoneflower_petals_01" < 2 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужны лепестки каменевки с 2х цветков." elseif ( water_tot == 0 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужна вода." else player->RemoveItem "ingred_hackle-lo_leaf_01" 1 player->RemoveItem "ingred_stoneflower_petals_01" 2 PlaySound "fv_boil" set myTimer to -5 set cooking to 1 endif return endif ;--Brilliance Essence if ( state == 40 ) if ( player->GetItemCount "ingred_hackle-lo_leaf_01" < 1 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужен лист хакльлоу." elseif ( player->GetItemCount "ingred_heather_01" < 2 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужно 2 веточки вереска." elseif ( water_tot == 0 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужна вода." else player->RemoveItem "ingred_hackle-lo_leaf_01" 1 player->RemoveItem "ingred_heather_01" 2 PlaySound "fv_boil" set myTimer to -5 set cooking to 1 endif return endif ;--Sentinel's Eye if ( state == 50 ) if ( player->GetItemCount "ingred_trama_root_01" < 1 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужен корень трамы." elseif ( player->GetItemCount "ingred_kresh_fiber_01" < 2 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужно 2 пучка волокон креша." elseif ( water_tot == 0 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужна вода." else player->RemoveItem "ingred_trama_root_01" 1 player->RemoveItem "ingred_kresh_fiber_01" 2 PlaySound "fv_boil" set myTimer to -5 set cooking to 1 endif return endif ;--Thror's Brew if ( state == 60 ) if ( player->GetItemCount "ingred_bittergreen_petals_01" < 1 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужно 2 пучка лепестков горьколистника." elseif ( player->GetItemCount "ingred_trama_root_01" < 1 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужен корень трамы." elseif ( water_tot == 0 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужна вода." else player->RemoveItem "ingred_bittergreen_petals_01" 1 player->RemoveItem "ingred_trama_root_01" 1 PlaySound "fv_boil" set myTimer to -5 set cooking to 1 endif return endif ;--Pilgrim's Support if ( state == 70 ) if ( player->GetItemCount "ingred_stoneflower_petals_01" < 1 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужны лепестки каменевки с 2х цветков." elseif ( player->GetItemCount "ingred_gold_kanet_01" < 1 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужен золотой канет." elseif ( player->GetItemCount "ingred_bc_coda_flower" < 1 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужен цветок коды." elseif ( water_tot == 0 ) PlaySound "NoM_BadButton" set myTimer to -0.5 set state to 10 messagebox "Для этого нужна вода." else player->RemoveItem "ingred_stoneflower_petals_01" 1 player->RemoveItem "ingred_gold_kanet_01" 1 player->RemoveItem "ingred_bc_coda_flower" 1 PlaySound "fv_boil" set myTimer to -5 set cooking to 1 endif endif end Вот теперь код гораздо лучше понятен. Глобальная переменная создается в меню Globals из панели игструментов. А локальные названия этой переменной нужно убрать. Ссылка на комментарий Поделиться на другие сайты Поделиться
La Sombra del Mar Опубликовано 17 апреля, 2021 Автор Жалоба Поделиться Опубликовано 17 апреля, 2021 (изменено) Глобальная переменная создается в меню Globals из панели игструментов. А локальные названия этой переменной нужно убрать.Она там есть. Дополнительно short NOM_cook_tisane я дописала т.к. с самого начала были сомнения в том что эта переменная вообще распознается скриптом. Ну с переменной понятно, в принципе ее можно вообще не юзать и заменить на другое условие - в последней версии, что я скинула, так и сделано. Там проблема теперь в другом - то ли код изначально кривой, то ли руки у меня, что более вероятно. Изменено 17 апреля, 2021 пользователем La Sombra del Mar Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 17 апреля, 2021 Жалоба Поделиться Опубликовано 17 апреля, 2021 (изменено) Там все глобальные переменные созданы? Например NOm_busy. Заменить блок вот на этот: ;--Menuif ( state == 10 )if ( player->GetItemCount "NOM_list_tisane_02" >= 1 ) messagebox "Какой отвар вы хотите приготовить?" "Горячей Крови" "Живучести Огрима" "Чистоты Восприятия" "Бдительности Часового" "Варево Трора" "Поддержки Пилигрима" "- Отмена -" set button_max to 6 set button to -1 set state to 15 endif ReturnEndif ;--Handles menu choiceif ( state == 15 ) set button to GetButtonPressed if ( button == -1 ) return Elseif ( button == button_max ) set state to 0 set NoM_busy to 0 EnablePlayerControls stopScript NOM_tisane else set state to ( ( 10 * button ) + 20 ) endif returnendif ;--Warm-Blood Tisane Изменено 17 апреля, 2021 пользователем Larkin Ссылка на комментарий Поделиться на другие сайты Поделиться
La Sombra del Mar Опубликовано 18 апреля, 2021 Автор Жалоба Поделиться Опубликовано 18 апреля, 2021 Там все глобальные переменные созданы? Например NOm_busy.Да, все есть. Скрипт отваров заработал, большое спасибо. Но со всеми остальными похожая беда - скрипт использования предмета запускается, но дальше DisablePlayerControls ничего не идет. Вот пример одного из таких скриптов: begin NoM_bake ;--Bread making short state short button short button_max short ingred_tot ; how much of a certain ingredient the PC has short cook_tot ; how many dishes of a certain kind the PC can cook short water_tot ; how much water the PC has short cooking ; tells if the PC is cooking float myTimer ; a timer for cooking if ( myTimer < 0 ) if ( cooking == 1 ) set myTimer to ( myTimer + GetSecondsPassed ) elseif ( MenuMode == 0 ) set myTimer to ( myTimer + GetSecondsPassed ) endif return elseif ( cooking == 1 ) if ( MenuMode == 1 ) return endif set cooking to 0 set cook_tot to ( cook_tot - 1 ) PlaySound "Item Ingredient Up" set myTimer to -0.3 set GameHour to ( GameHour + 0.1 ) ;6 minutes passing for every dish if ( state == 25 ) player->AddItem "ingred_bread_01" 1 messagebox "Вы испекли буханку хлеба." elseif ( state == 35 ) player->AddItem "NOM_sltw_food_bread_corn" 1 messagebox "Вы испекли буханку кукурузного хлеба." elseif ( state == 45 ) player->AddItem "NOM_food_bread_ash" 1 messagebox "Вы испекли буханку хлеба из пепельного батата." endif return endif ;--Base state if ( state == 0 ) if ( GetJournalIndex NOM_recipes < 10 ) PlaySound "NoM_BadButton" messagebox "Вы не умеете печь. Изучите хотя бы один рецепт." stopScript NOM_bake return else set state to 10 set NoM_busy to 1 DisablePlayerControls MenuTest 0 endif set water_tot to ( player->GetItemCount, "NOM_waterskin_1" ) set water_tot to water_tot + ( player->GetItemCount, "misc_com_bottle_02_water1" ) set water_tot to water_tot + ( player->GetItemCount, "misc_com_bottle_09_water1" ) set water_tot to water_tot + ( player->GetItemCount, "misc_com_bottle_03_water1" ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_2" ) set ingred_tot to ( ingred_tot * 2 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_03_water2" ) set ingred_tot to ( ingred_tot * 2 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_3" ) set ingred_tot to ( ingred_tot * 3 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_03_water3" ) set ingred_tot to ( ingred_tot * 3 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_4" ) set ingred_tot to ( ingred_tot * 4 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_5" ) set ingred_tot to ( ingred_tot * 5 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_6" ) set ingred_tot to ( ingred_tot * 6 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_02_water" ) set ingred_tot to ( ingred_tot * 2 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_09_water" ) set ingred_tot to ( ingred_tot * 2 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_03_water" ) set ingred_tot to ( ingred_tot * 4 ) set water_tot to ( water_tot + ingred_tot ) return elseif ( state == 10 ) set cooking to 0 set button to -1 if ( GetJournalIndex NOM_recipes == 10 ) if ( GetJournalIndex NOM_recipes == 20 ) if ( GetJournalIndex NOM_recipes == 40 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Виквитовый хлеб" "Кукурузный хлеб" "Хлеб из пепельного батата" "- Отмена -" set button_max to 3 set state to 15 elseif ( GetJournalIndex NOM_recipes == 10 ) if ( GetJournalIndex NOM_recipes == 20 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Виквитовый хлеб" "Кукурузный хлеб" "- Отмена -" set button_max to 2 set state to 15 elseif ( GetJournalIndex NOM_recipes == 10 ) if ( GetJournalIndex NOM_recipes == 40 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Виквитовый хлеб" "Хлеб из пепельного батата" "- Отмена -" set button_max to 2 set state to 16 elseif ( GetJournalIndex NOM_recipes == 20 ) if ( GetJournalIndex NOM_recipes == 40 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Кукурузный хлеб" "Хлеб из пепельного батата" "- Отмена -" set button_max to 2 set state to 18 endif elseif ( GetJournalIndex NOM_recipes == 10 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Виквитовый хлеб" "- Отмена -" set button_max to 1 set state to 15 elseif ( GetJournalIndex NOM_recipes == 20 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Кукурузный хлеб" "- Отмена -" set button_max to 1 set state to 18 elseif ( GetJournalIndex NOM_recipes == 40 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Хлеб из пепельного батата" "- Отмена -" set button_max to 1 set state to 19 endif endif endif endif endif return ;--Handle menu selection elseif ( state == 15 ) set button to GetButtonPressed if ( button == -1 ) return elseif ( button == button_max ) EnablePlayerControls set state to 0 set NoM_busy to 0 StopScript NOM_bake else set state to ( ( 10 * button ) + 20 ) endif return elseif ( state == 16 ) set button to GetButtonPressed if ( button == -1 ) return elseif ( button == button_max ) EnablePlayerControls set state to 0 set NoM_busy to 0 StopScript NOM_bake else set state to ( ( 20 * button ) + 20 ) endif return elseif ( state == 18 ) set button to GetButtonPressed if ( button == -1 ) return elseif ( button == button_max ) EnablePlayerControls set state to 0 set NoM_busy to 0 StopScript NOM_bake else set state to ( ( 10 * button ) + 30 ) endif return elseif ( state == 19 ) set button to GetButtonPressed if ( button == -1 ) return elseif ( button == button_max ) EnablePlayerControls set state to 0 set NoM_busy to 0 StopScript NOM_bake else set state to 40 endif return endif ;--Виквитовый хлеб if ( state == 20 ) set cook_tot to ( player->GetItemCount "ingred_wickwheat_01" ) set cook_tot to ( cook_tot / 2 ) if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужно 2 пучка виквита." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "ingred_saltrice_01" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужен соленый рис." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_salt" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна соль." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NoM_Yeast" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужны дрожжи." set state to 10 set myTimer to -0.5 return endif if ( water_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна вода." set state to 10 set myTimer to -0.5 return endif if ( cook_tot >= 10 ) messagebox "Сколько буханок виквитового хлеба вы хотите испечь?" "1" "5" "10" set button to -1 set state to 22 elseif ( cook_tot >= 5 ) messagebox "Сколько буханок виквитового хлеба вы хотите испечь?" "1" "5" set button to -1 set state to 22 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 25 endif elseif ( state == 22 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 25 return elseif ( state == 25 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "ingred_wickwheat_01" 2 player->RemoveItem "ingred_saltrice_01" 1 player->RemoveItem "NOM_salt" 1 player->RemoveItem "NOM_yeast" 1 PlaySound "fv_oven" set myTimer to -5 set cooking to 1 endif endif ;--Кукурузный хлеб if ( state == 30 ) set cook_tot to ( player->GetItemCount "NOM_food_corn" ) set cook_tot to ( cook_tot / 2 ) if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужно 2 початка кукурузы." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NoM_food_lard" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужно сало." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_salt" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна соль." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NoM_Yeast" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужны дрожжи." set state to 10 set myTimer to -0.5 return endif if ( water_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна вода." set state to 10 set myTimer to -0.5 return endif if ( cook_tot >= 10 ) messagebox "Сколько буханок кукурузного хлеба вы хотите испечь?" "1" "5" "10" set button to -1 set state to 32 elseif ( cook_tot >= 5 ) messagebox "Сколько буханок кукурузного хлеба вы хотите испечь?" "1" "5" set button to -1 set state to 32 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 35 endif elseif ( state == 32 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 35 return elseif ( state == 35 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "NOM_food_corn" 2 player->RemoveItem "NoM_food_lard" 1 player->RemoveItem "NOM_salt" 1 player->RemoveItem "NOM_yeast" 1 PlaySound "fv_oven" set myTimer to -5 set cooking to 1 endif endif ;--Хлеб из пепельного батата if ( state == 40 ) set cook_tot to ( player->GetItemCount "ingred_wickwheat_01" ) if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужен виквит." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "ingred_ash_yam_01" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужен пепельный батат." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_salt" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна соль." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NoM_Yeast" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужны дрожжи." set state to 10 set myTimer to -0.5 return endif if ( water_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна вода." set state to 10 set myTimer to -0.5 return endif if ( cook_tot >= 10 ) messagebox "Сколько буханок хлеба из пепельного батата вы хотите испечь?" "1" "5" "10" set button to -1 set state to 42 elseif ( cook_tot >= 5 ) messagebox "Сколько буханок хлеба из пепельного батата вы хотите испечь?" "1" "5" set button to -1 set state to 42 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 45 endif elseif ( state == 42 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 45 return elseif ( state == 45 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "ingred_wickwheat_01" 1 player->RemoveItem "ingred_ash_yam_01" 1 player->RemoveItem "NOM_salt" 1 player->RemoveItem "NOM_yeast" 1 PlaySound "fv_oven" set myTimer to -5 set cooking to 1 endif endif end И еще один: begin NOM_grill ;--Grilling short state short canGrill short button short button_max short ingred_tot ; how much of a certain ingredient the PC has short meat_tot ; how much meat the PC has short fish_tot ; how many fishes the PC has short cook_tot ; how many dishes of a certain kind the PC can cook short cooking ; tells if the PC is cooking float myTimer ; a timer for cooking float myX float myY float myZ float myRot short myRandom if ( myTimer < 0 ) if ( cooking == 1 ) set myTimer to ( myTimer + GetSecondsPassed ) elseif ( MenuMode == 0 ) set myTimer to ( myTimer + GetSecondsPassed ) endif return elseif ( cooking == 1 ) if ( MenuMode == 1 ) return endif set cooking to 0 set cook_tot to ( cook_tot - 1 ) if ( NoM_cooking_device == 0 ) PlaySound "Item Ingredient Up" endif set myTimer to -0.3 set GameHour to ( GameHour + 0.1 ) ;6 minutes passing for every dish if ( state == 25 ) player->AddItem "NOM_food_meat_grilled2" 1 messagebox "Вы пожарили мясо." elseif ( state == 35 ) player->AddItem "NOM_food_grilled_fish" 1 messagebox "Вы пожарили рыбу." elseif ( state == 45 ) player->AddItem "NOM_food_meat_grilled" 1 messagebox "Вы пожарили говядину." elseif ( state == 55 ) player->AddItem "NOM_food_chickenleg1_cook" 1 messagebox "Вы пожарили куриную ножку." elseif ( state == 65 ) player->AddItem "NOM_food_guar_rib_grill" 1 messagebox "Вы пожарили гуарье ребрышко." elseif ( state == 75 ) player->AddItem "NOM_food_skewer_kag" 3 messagebox "Вы пожарили 3 шашлыка из мяса кагути." endif return endif ;--Base state if ( state == 0 ) set canGrill to ( NOM_fireplace + NOM_ovenplace ) if ( GetJournalIndex NOM_recipes < 10 ) PlaySound "NoM_BadButton" messagebox "Вы не умеете готовить на гриле. Изучите хотя бы один рецепт." stopScript NOM_grill elseif ( canGrill == 0 ) PlaySound "NoM_BadButton" messagebox "Подойдите к огню/печи." stopScript NOM_grill else set state to 10 set NoM_busy to 1 DisablePlayerControls MenuTest 0 endif endif return elseif ( state == 10 ) set cooking to 0 set myX to NoM_cooking_x set myY to NoM_cooking_y set myZ to NoM_cooking_z set button to -1 if ( GetJournalIndex NOM_recipes == 10 ) if ( GetJournalIndex NOM_recipes == 40 ) messagebox "Что вы хотите приготовить?" "Жареное на гриле мясо" "Жареную на гриле рыбу" "Жареную говядину" "Жареную куриную ножку" "Жареное гуарье ребрышко" "Шашлык из мяса кагути" "- Отмена -" set button_max to 6 set state to 15 elseif ( GetJournalIndex NOM_recipes == 10 ) messagebox "Что вы хотите приготовить?" "Жареное на гриле мясо" "Жареную на гриле рыбу" "Жареную говядину" "Жареную куриную ножку" "Жареное гуарье ребрышко" "- Отмена -" set button_max to 5 set state to 15 elseif ( GetJournalIndex NOM_recipes == 40 ) messagebox "Что вы хотите приготовить?" "Шашлык из мяса кагути" "- Отмена -" set button_max to 1 set state to 18 endif endif return ;--Handle menu selection elseif ( state == 15 ) set button to GetButtonPressed if ( button == -1 ) return elseif ( button == button_max ) EnablePlayerControls set state to 0 set NoM_busy to 0 StopScript NOM_grill else set state to ( ( 10 * button ) + 20 ) endif return elseif ( state == 18 ) set button to GetButtonPressed if ( button == -1 ) return elseif ( button == button_max ) EnablePlayerControls set state to 0 set NoM_busy to 0 StopScript NOM_grill else set state to 70 endif return endif ;--Grilled Meat if ( state == 20 ) set myZ to ( myZ + ( 3 * NoM_cooking_scale ) ) set meat_tot to ( player->GetItemCount "ab01ingred_bird_meat" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_mouse_meat_MVA" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Parastylus_Meat" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Ornada_Meat" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Mutton" ) set meat_tot to meat_tot + ( player->GetItemCount "plx_ingred_kriin_flesh" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Boar" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Guar" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Kwama" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Alit" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_wolf_meat_SA" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_bear_meat_SA" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_durzog_meat_01" ) set meat_tot to meat_tot + ( player->GetItemCount "ab01ingred_turtlemeat" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Cliffracer" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Kagouti" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_rat_meat_01" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_hound_meat_01" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_dragon_meat_mwa" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatHorker_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatCliffracer_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatKwama_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatOrnada_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatKagouti_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatAlit_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatGuar_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatParastylus_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatMutton_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatBoar_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatHorse_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatBeef_01" ) set meat_tot to meat_tot + ( player->GetItemCount "AB_IngCrea_GuarMeat_01" ) set meat_tot to meat_tot + ( player->GetItemCount "plx_guar_meat" ) set meat_tot to meat_tot + ( player->GetItemCount "AB_IngCrea_HorseMeat01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatVenison_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatBoar_02" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Darkmeat" ) set cook_tot to meat_tot if ( cook_tot >= 10 ) messagebox "Сколько мяса вы хотите пожарить?" "1" "5" "10" set button to -1 set state to 22 elseif ( cook_tot >= 5 ) messagebox "Сколько мяса вы хотите пожарить?" "1" "5" set button to -1 set state to 22 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 25 else PlaySound "NoM_BadButton" messagebox "Для этого нужно мясо любого животного." set state to 10 set myTimer to -0.5 return endif elseif ( state == 22 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 25 return elseif ( state == 25 ) if ( cook_tot <= 0 ) set state to 10 return else if ( player->GetItemCount "ab01ingred_bird_meat" > 0 ) player->RemoveItem "ab01ingred_bird_meat" 1 elseif ( player->GetItemCount "ingred_mouse_meat_MVA" > 0 ) player->RemoveItem "ingred_mouse_meat_MVA" 1 elseif ( player->GetItemCount "TR_Ingred_Parastylus_Meat" > 0 ) player->RemoveItem "TR_Ingred_Parastylus_Meat" 1 elseif ( player->GetItemCount "TR_Ingred_Ornada_Meat" > 0 ) player->RemoveItem "TR_Ingred_Ornada_Meat" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Mutton" > 0 ) player->RemoveItem "TR_Ingred_Meat_Mutton" 1 elseif ( player->GetItemCount "plx_ingred_kriin_flesh" > 0 ) player->RemoveItem "plx_ingred_kriin_flesh" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Boar" > 0 ) player->RemoveItem "TR_Ingred_Meat_Boar" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Guar" > 0 ) player->RemoveItem "TR_Ingred_Meat_Guar" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Kwama" > 0 ) player->RemoveItem "TR_Ingred_Meat_Kwama" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Alit" > 0 ) player->RemoveItem "TR_Ingred_Meat_Alit" 1 elseif ( player->GetItemCount "ingred_wolf_meat_SA" > 0 ) player->RemoveItem "ingred_wolf_meat_SA" 1 elseif ( player->GetItemCount "ingred_bear_meat_SA" > 0 ) player->RemoveItem "ingred_bear_meat_SA" 1 elseif ( player->GetItemCount "ingred_durzog_meat_01" > 0 ) player->RemoveItem "ingred_durzog_meat_01" 1 elseif ( player->GetItemCount "ab01ingred_turtlemeat" > 0 ) player->RemoveItem "ab01ingred_turtlemeat" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Cliffracer" > 0 ) player->RemoveItem "TR_Ingred_Meat_Cliffracer" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Kagouti" > 0 ) player->RemoveItem "TR_Ingred_Meat_Kagouti" 1 elseif ( player->GetItemCount "ingred_rat_meat_01" > 0 ) player->RemoveItem "ingred_rat_meat_01" 1 elseif ( player->GetItemCount "ingred_hound_meat_01" > 0 ) player->RemoveItem "ingred_hound_meat_01" 1 elseif ( player->GetItemCount "ingred_dragon_meat_mwa" > 0 ) player->RemoveItem "ingred_dragon_meat_mwa" 1 elseif ( player->GetItemCount "T_IngFood_MeatHorker_01" > 0 ) player->RemoveItem "T_IngFood_MeatHorker_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatOrnada_01" > 0 ) player->RemoveItem "T_IngFood_MeatOrnada_01" 1 elseif ( player->GetItemCount "AB_IngCrea_GuarMeat_01" > 0 ) player->RemoveItem "AB_IngCrea_GuarMeat_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatParastylus_01" > 0 ) player->RemoveItem "T_IngFood_MeatParastylus_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatKwama_01" > 0 ) player->RemoveItem "T_IngFood_MeatKwama_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatCliffracer_01" > 0 ) player->RemoveItem "T_IngFood_MeatCliffracer_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatAlit_01" > 0 ) player->RemoveItem "T_IngFood_MeatAlit_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatGuar_01" > 0 ) player->RemoveItem "T_IngFood_MeatGuar_01" 1 elseif ( player->GetItemCount "plx_guar_meat" > 0 ) player->RemoveItem "plx_guar_meat" 1 elseif ( player->GetItemCount "T_IngFood_MeatKagouti_01" > 0 ) player->RemoveItem "T_IngFood_MeatKagouti_01" 1 elseif ( player->GetItemCount "A-DI-RAWMEAT" > 0 ) player->RemoveItem "A-DI-RAWMEAT" 1 elseif ( player->GetItemCount "T_IngCrea_MeatDark_01" > 0 ) player->RemoveItem "T_IngCrea_MeatDark_01" 1 elseif ( player->GetItemCount "AB_IngCrea_HorseMeat01" > 0 ) player->RemoveItem "AB_IngCrea_HorseMeat01" 1 elseif ( player->GetItemCount "T_IngFood_MeatVenison_01" > 0 ) player->RemoveItem "T_IngFood_MeatVenison_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatBoar_02" > 0 ) player->RemoveItem "T_IngFood_MeatBoar_02" 1 elseif ( player->GetItemCount "TR_Ingred_Darkmeat" > 0 ) player->RemoveItem "TR_Ingred_Darkmeat" 1 elseif ( player->GetItemCount "T_IngFood_MeatMutton_01" ) player->RemoveItem "T_IngFood_MeatMutton_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatBoar_01" ) player->RemoveItem "T_IngFood_MeatBoar_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatHorse_01" ) player->RemoveItem "T_IngFood_MeatHorse_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatBeef_01" ) player->RemoveItem "T_IngFood_MeatBeef_01" 1 endif set myRandom to Random 4 if ( myRandom == 0 ) set myRot to ( NoM_cooking_rot + 90 ) elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 270 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 70 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 250 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_meat" myX myY myZ myRot endif PlaySound "fv_fire_grill" set myTimer to -5 set cooking to 1 endif endif ;--Grilled Fish if ( state == 30 ) set myZ to ( myZ + ( 3.25 * NoM_cooking_scale ) ) set fish_tot to ( player->GetItemCount "NOM_food_fish" ) set fish_tot to fish_tot + ( player->GetItemCount "NOM_food_fish_fat_01" ) set fish_tot to fish_tot + ( player->GetItemCount "NOM_food_fish_fat_02" ) set fish_tot to fish_tot + ( player->GetItemCount "RR_I_fish_raw" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishBrowntrout_01" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishChrysophant_01" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishCod_01" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishLeaperTail_01" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishPikeperch_01" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishSpr_01" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishStrid_01" ) set cook_tot to fish_tot if ( cook_tot >= 10 ) messagebox "Сколько рыб вы хотите пожарить?" "1" "5" "10" set button to -1 set state to 32 elseif ( cook_tot >= 5 ) messagebox "Сколько рыб вы хотите пожарить?" "1" "5" set button to -1 set state to 32 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 35 else PlaySound "NoM_BadButton" messagebox "Для этого нужна любая рыба." set state to 10 set myTimer to -0.5 return endif elseif ( state == 32 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 35 return elseif ( state == 35 ) if ( cook_tot <= 0 ) set state to 10 return else if ( player->GetItemCount "NOM_food_fish" > 0 ) player->RemoveItem "NOM_food_fish" 1 elseif ( player->GetItemCount "NOM_food_fish_fat_01" > 0 ) player->RemoveItem "NOM_food_fish_fat_01" 1 elseif ( player->GetItemCount "NOM_food_fish_fat_02" > 0 ) player->RemoveItem "NOM_food_fish_fat_02" 1 elseif ( player->GetItemCount "RR_I_fish_raw" > 0 ) player->RemoveItem "RR_I_fish_raw" 1 elseif ( player->GetItemCount "T_IngFood_FishBrowntrout_01" > 0 ) player->RemoveItem "T_IngFood_FishBrowntrout_01" 1 elseif ( player->GetItemCount "T_IngFood_FishChrysophant_01" > 0 ) player->RemoveItem "T_IngFood_FishChrysophant_01" 1 elseif ( player->GetItemCount "T_IngFood_FishCod_01" > 0 ) player->RemoveItem "T_IngFood_FishCod_01" 1 elseif ( player->GetItemCount "T_IngFood_FishLeaperTail_01" > 0 ) player->RemoveItem "T_IngFood_FishLeaperTail_01" 1 elseif ( player->GetItemCount "T_IngFood_FishPikeperch_01" > 0 ) player->RemoveItem "T_IngFood_FishPikeperch_01" 1 elseif ( player->GetItemCount "T_IngFood_FishSpr_01" > 0 ) player->RemoveItem "T_IngFood_FishSpr_01" 1 elseif ( player->GetItemCount "T_IngFood_FishStrid_01" > 0 ) player->RemoveItem "T_IngFood_FishStrid_01" 1 endif set myRandom to Random 4 if ( myRandom == 0 ) set myRot to ( NoM_cooking_rot + 90 ) elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 270 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 70 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 250 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_fish" myX myY myZ myRot endif PlaySound "fv_fire_grill" set myTimer to -5 set cooking to 1 endif endif ;--Grilled Beef if ( state == 40 ) set myZ to ( myZ + ( 3.4 * NoM_cooking_scale ) ) set cook_tot to ( player->GetItemCount "NOM_food_meat" ) if ( cook_tot >= 10 ) messagebox "Сколько кусков говядины вы хотите пожарить?" "1" "5" "10" set button to -1 set state to 42 elseif ( cook_tot >= 5 ) messagebox "Сколько кусков говядины вы хотите пожарить?" "1" "5" set button to -1 set state to 42 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 45 else PlaySound "NoM_BadButton" messagebox "Для этого нужна говядина." set state to 10 set myTimer to -0.5 return endif elseif ( state == 42 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 45 return elseif ( state == 45 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "NOM_food_meat" 1 set myRandom to Random 4 if ( myRandom == 0 ) set myRot to ( NoM_cooking_rot + 90 ) elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 270 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 70 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 250 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_beef" myX myY myZ myRot endif PlaySound "fv_fire_grill" set myTimer to -5 set cooking to 1 endif endif ;--Grilled Chicken Leg if ( state == 50 ) set myZ to ( myZ + ( 2 * NoM_cooking_scale ) ) set cook_tot to ( player->GetItemCount "NOM_food_chickenleg1" ) if ( cook_tot >= 10 ) messagebox "Сколько куриных ножек вы хотите пожарить?" "1" "5" "10" set button to -1 set state to 52 elseif ( cook_tot >= 5 ) messagebox "Сколько куриных ножек вы хотите пожарить?" "1" "5" set button to -1 set state to 52 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 55 else PlaySound "NoM_BadButton" messagebox "Для этого нужна куриная ножка." set state to 10 set myTimer to -0.5 return endif elseif ( state == 52 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 55 return elseif ( state == 55 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "NOM_food_chickenleg1" 1 set myRandom to Random 4 if ( myRandom == 0 ) set myRot to ( NoM_cooking_rot ) elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 180 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 340 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 160 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_chicken" myX myY myZ myRot endif PlaySound "fv_fire_grill" set myTimer to -5 set cooking to 1 endif endif ;--Grilled Guar Rib if ( state == 60 ) set myZ to ( myZ + ( 4 * NoM_cooking_scale ) ) set cook_tot to ( player->GetItemCount "NOM_food_guar_rib" ) if ( cook_tot >= 10 ) messagebox "Сколько гуарьих ребрышек вы хотите пожарить?" "1" "5" "10" set button to -1 set state to 62 elseif ( cook_tot >= 5 ) messagebox "Сколько гуарьих ребрышек вы хотите пожарить?" "1" "5" set button to -1 set state to 62 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 65 else PlaySound "NoM_BadButton" messagebox "Для этого нужно гуарье ребрышко." set state to 10 set myTimer to -0.5 return endif elseif ( state == 62 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 65 return elseif ( state == 65 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "NOM_food_guar_rib" 1 set myRandom to Random 4 if ( myRandom == 0 ) set myRot to ( NoM_cooking_rot + 90 ) elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 270 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 70 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 250 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_rib" myX myY myZ myRot endif PlaySound "fv_fire_grill" set myTimer to -5 set cooking to 1 endif endif ;--Kagouti Skewers if ( state == 70 ) set myZ to ( myZ + ( 4 * NoM_cooking_scale ) ) set ingred_tot to ( player->GetItemCount "TR_Ingred_Meat_Kagouti" ) set cook_tot to ( ingred_tot / 2 ) if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужно 2 порции мяса кагути." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "Ingred_scrib_cabbage_01" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна скрибовая капуста." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_food_lard" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужно сало." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_salt" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна соль." set state to 10 set myTimer to -0.5 return endif if ( cook_tot >= 10 ) messagebox "Сколько шашлыков из мяса кагути вы хотите приготовить?" "3" "15" "30" set button to -1 set state to 72 elseif ( cook_tot >= 5 ) messagebox "Сколько шашлыков из мяса кагути вы хотите приготовить?" "3" "15" set button to -1 set state to 72 else set cook_tot to 1 set state to 75 endif elseif ( state == 72 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 75 return elseif ( state == 75 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "TR_Ingred_Meat_Kagouti" 2 player->RemoveItem "Ingred_scrib_cabbage_01" 1 player->RemoveItem "NOM_food_lard" 1 player->RemoveItem "NOM_salt" 1 set myRandom to Random 4 if ( myRandom == 0 ) set myRot to ( NoM_cooking_rot ) elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 180 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 340 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 160 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_skewer" myX myY myZ myRot endif PlaySound "fv_fire_grill" set myTimer to -5 set cooking to 1 endif endif end Поясните, если не трудно, что именно не так в обоих случаях. Иначе придется скидывать сюда еще несколько подобных скриптов с той же проблемой. Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 21 апреля, 2021 Жалоба Поделиться Опубликовано 21 апреля, 2021 Все перепутано как есть.endif set water_tot to ( player->GetItemCount, "NOM_waterskin_1" ) set water_tot to water_tot + ( player->GetItemCount, "misc_com_bottle_02_water1" ) set water_tot to water_tot + ( player->GetItemCount, "misc_com_bottle_09_water1" ) set water_tot to water_tot + ( player->GetItemCount, "misc_com_bottle_03_water1" ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_2" ) set ingred_tot to ( ingred_tot * 2 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_03_water2" ) set ingred_tot to ( ingred_tot * 2 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_3" ) set ingred_tot to ( ingred_tot * 3 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_03_water3" ) set ingred_tot to ( ingred_tot * 3 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_4" ) set ingred_tot to ( ingred_tot * 4 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_5" ) set ingred_tot to ( ingred_tot * 5 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_6" ) set ingred_tot to ( ingred_tot * 6 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_02_water" ) set ingred_tot to ( ingred_tot * 2 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_09_water" ) set ingred_tot to ( ingred_tot * 2 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_03_water" ) set ingred_tot to ( ingred_tot * 4 ) set water_tot to ( water_tot + ingred_tot ) return Тут сверху endif переместить вниз. if ( GetJournalIndex NOM_recipes == 10 )if ( GetJournalIndex NOM_recipes == 20 )if ( GetJournalIndex NOM_recipes == 40 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Виквитовый хлеб" "Кукурузный хлеб" "Хлеб из пепельного батата" "- Отмена -" set button_max to 3 set state to 15elseif ( GetJournalIndex NOM_recipes == 10 )if ( GetJournalIndex NOM_recipes == 20 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Виквитовый хлеб" "Кукурузный хлеб" "- Отмена -" set button_max to 2 set state to 15elseif ( GetJournalIndex NOM_recipes == 10 )if ( GetJournalIndex NOM_recipes == 40 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Виквитовый хлеб" "Хлеб из пепельного батата" "- Отмена -" set button_max to 2 set state to 16elseif ( GetJournalIndex NOM_recipes == 20 )if ( GetJournalIndex NOM_recipes == 40 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Кукурузный хлеб" "Хлеб из пепельного батата" "- Отмена -" set button_max to 2 set state to 18 endifelseif ( GetJournalIndex NOM_recipes == 10 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Виквитовый хлеб" "- Отмена -" set button_max to 1 set state to 15 elseif ( GetJournalIndex NOM_recipes == 20 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Кукурузный хлеб" "- Отмена -" set button_max to 1 set state to 18 elseif ( GetJournalIndex NOM_recipes == 40 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Хлеб из пепельного батата" "- Отмена -" set button_max to 1 set state to 19 endif endifendifendifendif return Тут вообще швах, надо четко, один if и под ним endif. Эти три условия подряд не сработают. Остальная часть скрипта нормальная. Ссылка на комментарий Поделиться на другие сайты Поделиться
La Sombra del Mar Опубликовано 21 апреля, 2021 Автор Жалоба Поделиться Опубликовано 21 апреля, 2021 (изменено) 1.Теперь доходит до меню выбора "какой хлеб хотите испечь?" и на этом останавливается с DisablePlayerControls. Где я опять накосячила? begin NoM_bake ;--Bread making short state short button short button_max short ingred_tot ; how much of a certain ingredient the PC has short cook_tot ; how many dishes of a certain kind the PC can cook short water_tot ; how much water the PC has short cooking ; tells if the PC is cooking float myTimer ; a timer for cooking if ( myTimer < 0 ) if ( cooking == 1 ) set myTimer to ( myTimer + GetSecondsPassed ) elseif ( MenuMode == 0 ) set myTimer to ( myTimer + GetSecondsPassed ) endif return elseif ( cooking == 1 ) if ( MenuMode == 1 ) return endif set cooking to 0 set cook_tot to ( cook_tot - 1 ) PlaySound "Item Ingredient Up" set myTimer to -0.3 set GameHour to ( GameHour + 0.1 ) ;6 minutes passing for every dish if ( state == 25 ) player->AddItem "ingred_bread_01" 1 messagebox "Вы испекли буханку хлеба." elseif ( state == 35 ) player->AddItem "NOM_sltw_food_bread_corn" 1 messagebox "Вы испекли буханку кукурузного хлеба." elseif ( state == 45 ) player->AddItem "NOM_food_bread_ash" 1 messagebox "Вы испекли буханку хлеба из пепельного батата." endif return endif ;--Base state if ( state == 0 ) if ( GetJournalIndex NOM_recipes < 10 ) PlaySound "NoM_BadButton" messagebox "Вы не умеете печь. Изучите хотя бы один рецепт." stopScript NOM_bake elseif ( NOM_ovenplace <= 0 ) PlaySound "NoM_BadButton" messagebox "Подойдите к огню/печи." stopScript NOM_bake else set state to 10 set NoM_busy to 1 DisablePlayerControls MenuTest 0 set water_tot to ( player->GetItemCount, "NOM_waterskin_1" ) set water_tot to water_tot + ( player->GetItemCount, "misc_com_bottle_02_water1" ) set water_tot to water_tot + ( player->GetItemCount, "misc_com_bottle_09_water1" ) set water_tot to water_tot + ( player->GetItemCount, "misc_com_bottle_03_water1" ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_2" ) set ingred_tot to ( ingred_tot * 2 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_03_water2" ) set ingred_tot to ( ingred_tot * 2 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_3" ) set ingred_tot to ( ingred_tot * 3 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_03_water3" ) set ingred_tot to ( ingred_tot * 3 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_4" ) set ingred_tot to ( ingred_tot * 4 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_5" ) set ingred_tot to ( ingred_tot * 5 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "NOM_waterskin_6" ) set ingred_tot to ( ingred_tot * 6 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_02_water" ) set ingred_tot to ( ingred_tot * 2 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_09_water" ) set ingred_tot to ( ingred_tot * 2 ) set water_tot to ( water_tot + ingred_tot ) set ingred_tot to ( player->GetItemCount, "misc_com_bottle_03_water" ) set ingred_tot to ( ingred_tot * 4 ) set water_tot to ( water_tot + ingred_tot ) return endif endif if ( state == 10 ) set cooking to 0 set button to -1 if ( GetJournalIndex NOM_recipes >= 10 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Виквитовый хлеб" "Кукурузный хлеб" "Хлеб из пепельного батата" "- Отмена -" set button_max to 3 set state to 15 elseif ( GetJournalIndex NOM_recipes == 10 ) if ( GetJournalIndex NOM_recipes == 20 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Виквитовый хлеб" "Кукурузный хлеб" "- Отмена -" set button_max to 2 set state to 15 elseif ( GetJournalIndex NOM_recipes == 10 ) if ( GetJournalIndex NOM_recipes == 40 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Виквитовый хлеб" "Хлеб из пепельного батата" "- Отмена -" set button_max to 2 set state to 16 elseif ( GetJournalIndex NOM_recipes == 20 ) if ( GetJournalIndex NOM_recipes == 40 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Кукурузный хлеб" "Хлеб из пепельного батата" "- Отмена -" set button_max to 2 set state to 18 endif elseif ( GetJournalIndex NOM_recipes == 10 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Виквитовый хлеб" "- Отмена -" set button_max to 1 set state to 15 elseif ( GetJournalIndex NOM_recipes == 20 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Кукурузный хлеб" "- Отмена -" set button_max to 1 set state to 18 elseif ( GetJournalIndex NOM_recipes == 40 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Хлеб из пепельного батата" "- Отмена -" set button_max to 1 set state to 19 endif endif endif endif return ;--Handle menu selection if ( state == 15 ) set button to GetButtonPressed if ( button == -1 ) return elseif ( button == button_max ) EnablePlayerControls set state to 0 set NoM_busy to 0 StopScript NOM_bake else set state to ( ( 10 * button ) + 20 ) endif return elseif ( state == 16 ) set button to GetButtonPressed if ( button == -1 ) return elseif ( button == button_max ) EnablePlayerControls set state to 0 set NoM_busy to 0 StopScript NOM_bake else set state to ( ( 20 * button ) + 20 ) endif return elseif ( state == 18 ) set button to GetButtonPressed if ( button == -1 ) return elseif ( button == button_max ) EnablePlayerControls set state to 0 set NoM_busy to 0 StopScript NOM_bake else set state to ( ( 10 * button ) + 30 ) endif return elseif ( state == 19 ) set button to GetButtonPressed if ( button == -1 ) return elseif ( button == button_max ) EnablePlayerControls set state to 0 set NoM_busy to 0 StopScript NOM_bake else set state to 40 endif return endif ;--Виквитовый хлеб if ( state == 20 ) set cook_tot to ( player->GetItemCount "ingred_wickwheat_01" ) set cook_tot to ( cook_tot / 2 ) if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужно 2 пучка виквита." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "ingred_saltrice_01" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужен соленый рис." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_salt" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна соль." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NoM_Yeast" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужны дрожжи." set state to 10 set myTimer to -0.5 return endif if ( water_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна вода." set state to 10 set myTimer to -0.5 return endif if ( cook_tot >= 10 ) messagebox "Сколько буханок виквитового хлеба вы хотите испечь?" "1" "5" "10" set button to -1 set state to 22 elseif ( cook_tot >= 5 ) messagebox "Сколько буханок виквитового хлеба вы хотите испечь?" "1" "5" set button to -1 set state to 22 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 25 endif elseif ( state == 22 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 25 return elseif ( state == 25 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "ingred_wickwheat_01" 2 player->RemoveItem "ingred_saltrice_01" 1 player->RemoveItem "NOM_salt" 1 player->RemoveItem "NOM_yeast" 1 PlaySound "fv_oven" set myTimer to -5 set cooking to 1 endif endif ;--Кукурузный хлеб if ( state == 30 ) set cook_tot to ( player->GetItemCount "NOM_food_corn" ) set cook_tot to ( cook_tot / 2 ) if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужно 2 початка кукурузы." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NoM_food_lard" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужно сало." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_salt" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна соль." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NoM_Yeast" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужны дрожжи." set state to 10 set myTimer to -0.5 return endif if ( water_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна вода." set state to 10 set myTimer to -0.5 return endif if ( cook_tot >= 10 ) messagebox "Сколько буханок кукурузного хлеба вы хотите испечь?" "1" "5" "10" set button to -1 set state to 32 elseif ( cook_tot >= 5 ) messagebox "Сколько буханок кукурузного хлеба вы хотите испечь?" "1" "5" set button to -1 set state to 32 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 35 endif elseif ( state == 32 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 35 return elseif ( state == 35 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "NOM_food_corn" 2 player->RemoveItem "NoM_food_lard" 1 player->RemoveItem "NOM_salt" 1 player->RemoveItem "NOM_yeast" 1 PlaySound "fv_oven" set myTimer to -5 set cooking to 1 endif endif ;--Хлеб из пепельного батата if ( state == 40 ) set cook_tot to ( player->GetItemCount "ingred_wickwheat_01" ) if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужен виквит." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "ingred_ash_yam_01" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужен пепельный батат." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_salt" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна соль." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NoM_Yeast" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужны дрожжи." set state to 10 set myTimer to -0.5 return endif if ( water_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна вода." set state to 10 set myTimer to -0.5 return endif if ( cook_tot >= 10 ) messagebox "Сколько буханок хлеба из пепельного батата вы хотите испечь?" "1" "5" "10" set button to -1 set state to 42 elseif ( cook_tot >= 5 ) messagebox "Сколько буханок хлеба из пепельного батата вы хотите испечь?" "1" "5" set button to -1 set state to 42 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 45 endif elseif ( state == 42 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 45 return elseif ( state == 45 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "ingred_wickwheat_01" 1 player->RemoveItem "ingred_ash_yam_01" 1 player->RemoveItem "NOM_salt" 1 player->RemoveItem "NOM_yeast" 1 PlaySound "fv_oven" set myTimer to -5 set cooking to 1 endif endif end2. В этом скрипте все сделано по образцу скрипта NOM_tisane, но процесс готовки не запускается, не доходит даже до меню выбора. Плюс нет месседжбокса про "вы не умеете" если рецепт не изучен. Помогите-спасите. begin NOM_frying ;--Frying: Main menu. short button short canFry short button_max short state if ( NOM_cooking == 1 ) set NOM_cooking to 0 set state to 10 endif if ( state == 0 ) set canFry to ( NOM_fireplace + NOM_ovenplace ) if ( GetJournalIndex NOM_recipes < 10 ) PlaySound "NoM_BadButton" messagebox "Вы не умеете готовить на сковороде. Изучите хотя бы один рецепт." stopScript NOM_frying elseif ( canFry == 0 ) PlaySound "NoM_BadButton" messagebox "Подойдите к огню/печи." stopScript NOM_frying else DisablePlayerControls set state to 10 set NoM_busy to 1 MenuTest 0 endif return endif ;--Menu if ( state == 10 ) if ( GetJournalIndex NOM_recipes >= 10 ) messagebox "Что вы хотите приготовить?" "Мясо >" "Рыбу >" "Овощи >" "Омлет >" "Соленый рис >" "- Отмена -" set button_max to 5 elseif ( GetJournalIndex NOM_recipes == 10 ) if ( GetJournalIndex NOM_recipes == 20 ) messagebox "Что вы хотите приготовить?" "Мясо >" "Рыбу >" "Овощи >" "Омлет >" "Соленый рис >" "- Отмена -" set button_max to 5 elseif ( GetJournalIndex NOM_recipes == 10 ) if Journal NOM_recipes == 40 messagebox "Что вы хотите приготовить?" "Мясо >" "Овощи >" "Соленый рис >" "- Отмена -" set button_max to 3 elseif ( GetJournalIndex NOM_recipes == 20 ) if ( GetJournalIndex NOM_recipes == 40 ) messagebox "Что вы хотите приготовить?" "Рыбу >" "Овощи >" "Омлет >" "- Отмена -" set button_max to 3 endif else if ( GetJournalIndex NOM_recipes == 10 ) messagebox "Что вы хотите приготовить?" "Мясо >" "Овощи >" "Соленый рис >" "- Отмена -" set button_max to 3 elseif ( GetJournalIndex NOM_recipes == 20 ) messagebox "Что вы хотите приготовить?" "Рыбу >" "Омлет >" "- Отмена -" set button_max to 2 elseif ( GetJournalIndex NOM_recipes == 40 ) messagebox "Что вы хотите приготовить?" "Овощи >" "- Отмена -" set button_max to 1 endif endif endif endif set button to -1 set state to 20 return ;--Handles menu selection elseif ( state == 20 ) set button to GetButtonPressed if ( button == -1 ) return elseif ( button == button_max ) EnablePlayerControls set NoM_busy to 0 stopScript NOM_frying set state to 0 elseif ( button == 0 ) if ( GetJournalIndex NOM_recipes == 10 ) StartScript NOM_frying_meat elseif ( GetJournalIndex NOM_recipes == 20 ) StartScript NOM_frying_fish else StartScript NOM_frying_vegetables endif elseif ( button == 1 ) if ( GetJournalIndex NOM_recipes == 10 ) if ( GetJournalIndex NOM_recipes == 20 ) if ( GetJournalIndex NOM_recipes == 40 ) StartScript NOM_frying_fish elseif ( GetJournalIndex NOM_recipes == 10 ) if ( GetJournalIndex NOM_recipes == 20 ) StartScript NOM_frying_fish else StartScript NOM_frying_vegetables endif else if ( GetJournalIndex NOM_recipes == 20 ) StartScript NOM_frying_omelette else StartScript NOM_frying_vegetables endif endif elseif ( button == 2 ) if ( GetJournalIndex NOM_recipes == 10 ) if ( GetJournalIndex NOM_recipes == 20 ) if ( GetJournalIndex NOM_recipes == 40 ) StartScript NOM_frying_vegetables elseif ( GetJournalIndex NOM_recipes == 10 ) if ( GetJournalIndex NOM_recipes == 20 ) StartScript NOM_frying_vegetables elseif ( GetJournalIndex NOM_recipes == 10 ) if ( GetJournalIndex NOM_recipes == 40 ) StartScript NOM_frying_rice else StartScript NOM_frying_omelette endif else StartScript NOM_frying_rice endif elseif ( button == 3 ) StartScript NOM_frying_omelette elseif ( button == 4 ) StartScript NOM_frying_rice endif endif endif endif endif endif endif end Изменено 21 апреля, 2021 пользователем La Sombra del Mar Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 23 апреля, 2021 Жалоба Поделиться Опубликовано 23 апреля, 2021 endifendif returnОтсюда return убрать. И в этом блоке теперь на один endif больше чем нужно. elseif ( GetJournalIndex NOM_recipes == 10 )if ( GetJournalIndex NOM_recipes == 20 ) messagebox "Какой сорт хлеба вы хотите испечь?" "Виквитовый хлеб" "Кукурузный хлеб" "- Отмена -" set button_max to 2 Эти два условия подряд не сработают, видимо elseif отсюда убрать, щаменить на endif. Второй скрип вообще не понятен, там нет активации, от чего он должен сработать. If ( onactivate ) И опять три нерабочих условия подрядif ( GetJournalIndex NOM_recipes == 10 )if ( GetJournalIndex NOM_recipes == 20 )if ( GetJournalIndex NOM_recipes == 40 )Оставить одно. Ссылка на комментарий Поделиться на другие сайты Поделиться
La Sombra del Mar Опубликовано 24 апреля, 2021 Автор Жалоба Поделиться Опубликовано 24 апреля, 2021 Эти два условия подряд не сработают, видимо elseif отсюда убрать, щаменить на endif.А если необходимо чтобы были выполнены оба этих условия, или несколько сразу? Неработавшую переменную изученного рецепта я заменила на дневниковую запись, добавляющуюся после прочтения книги. Не лучшее решение, но другого выхода пока не вижу. Переменные можно было суммировать. А вот с дневниковыми записями возможно провернуть что-то подобное? Второй скрип вообще не понятен, там нет активации, от чего он должен сработать. If ( onactivate )Активация в скрипте самой сковородки, с ним вроде все в порядке. При выборе "Приготовить что-то" должен запускаться скрипт NOM_frying. begin NOM_fryingLS ;--Frying pan. short onPCEquip short state ;--Equip/Activate if ( onPCEquip ) set onPCEquip to 0 set NoM_cooking_device to 0 startScript NOM_frying elseif ( onActivate ) if ( MenuMode == 0 ) messagebox "Что вы хотите сделать со сковородой?" "Приготовить что-нибудь" "Взять" "- Отмена -" set state to -1 else Activate endif ;--Quick exit elseif ( state == 0 ) return ;--Handle menu choice elseif ( state == -1 ) set state to getButtonPressed if ( state == -1 ) return elseif ( state == 0 ) set NoM_cooking_x to GetPos x set NoM_cooking_y to GetPos y set NoM_cooking_z to GetPos z set NoM_cooking_rot to GetAngle z set NoM_cooking_scale to GetScale set NoM_cooking_device to 1 player->startScript NOM_frying elseif ( state == 1 ) return elseif ( state == 2 ) set state to 0 return endif ;--Pick Up elseif ( state == 1 ) set state to 0 Activate endif end Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 25 апреля, 2021 Жалоба Поделиться Опубликовано 25 апреля, 2021 А если необходимо чтобы были выполнены оба этих условия, или несколько сразу? Неработавшую переменную изученного рецепта я заменила на дневниковую запись, добавляющуюся после прочтения книги. Не лучшее решение, но другого выхода пока не вижу. Переменные можно было суммировать. А вот с дневниковыми записями возможно провернуть что-то подобное? Активация в скрипте самой сковородки, с ним вроде все в порядке. При выборе "Приготовить что-то" должен запускаться скрипт NOM_frying. begin NOM_fryingLS ;--Frying pan. short onPCEquip short state ;--Equip/Activate if ( onPCEquip ) set onPCEquip to 0 set NoM_cooking_device to 0 startScript NOM_frying elseif ( onActivate ) if ( MenuMode == 0 ) messagebox "Что вы хотите сделать со сковородой?" "Приготовить что-нибудь" "Взять" "- Отмена -" set state to -1 else Activate endif ;--Quick exit elseif ( state == 0 ) return ;--Handle menu choice elseif ( state == -1 ) set state to getButtonPressed if ( state == -1 ) return elseif ( state == 0 ) set NoM_cooking_x to GetPos x set NoM_cooking_y to GetPos y set NoM_cooking_z to GetPos z set NoM_cooking_rot to GetAngle z set NoM_cooking_scale to GetScale set NoM_cooking_device to 1 player->startScript NOM_frying elseif ( state == 1 ) return elseif ( state == 2 ) set state to 0 return endif ;--Pick Up elseif ( state == 1 ) set state to 0 Activate endif end Дневниковую запись это как переменная. Но она обычно только увеличивается. Снова поменять на переменную видимо. Тогда надо убрать эти три условия подряд getjournslindex, нужно чтобы под if был endif. Ссылка на комментарий Поделиться на другие сайты Поделиться
La Sombra del Mar Опубликовано 1 мая, 2021 Автор Жалоба Поделиться Опубликовано 1 мая, 2021 1. Со скриптами девайсов разобралась, заработало. Теперь та же проблема со скриптами отдельных блюд. Например при выборе Что приготовить->Мясо->Панированную куриную ножку скрипт останавливается с потерей контроля над персонажем. Подскажите пжлст где что добавить/убрать. begin NOM_frying_meat ;--Frying pan: Meat short state short button short button_max short ingred_tot ; how much of a certain ingredient the PC has short cook_tot ; how many dishes of a certain kind the PC can cook short cooking ; tells if the PC is cooking float myTimer ; a timer for cooking float myX float myY float myZ float myRot short myRandom if ( myTimer < 0 ) if ( cooking == 1 ) set myTimer to ( myTimer + GetSecondsPassed ) elseif ( MenuMode == 0 ) set myTimer to ( myTimer + GetSecondsPassed ) endif return elseif ( cooking == 1 ) if ( MenuMode == 1 ) return endif set cooking to 0 set cook_tot to ( cook_tot - 1 ) if ( NoM_cooking_device == 0 ) PlaySound "Item Ingredient Up" endif set myTimer to -0.3 set GameHour to ( GameHour + 0.1 ) ;6 minutes passing for every dish if ( state == 25 ) player->AddItem "NOM_food_chickenleg1_breaded" 1 messagebox "Вы приготовили панированную куриную ножку." elseif ( state == 35 ) player->AddItem "NOM_food_bittersweet" 3 messagebox "Вы приготовили пряную говядину и разделили ее на 3 порции." elseif ( state == 45 ) player->AddItem "NOM_food_guar_rib_succ" 1 messagebox "Вы приготовили пряное гуарье ребрышко." endif return endif ;--Base state if ( state == 0 ) set state to 10 return endif elseif ( state == 10 ) set cooking to 0 set myX to NoM_cooking_x set myY to NoM_cooking_y set myZ to NoM_cooking_z set button to -1 if ( GetJournalIndex NOM_recipes >= 10 ) messagebox "Что вы хотите приготовить?" "Панированную куриную ножку" "Пряную говядину" "Пряное гуарье ребрышко" "< Назад" set button_max to 3 set state to 15 endif return endif ;--Handles menu selection if ( state == 15 ) set button to GetButtonPressed if ( button == -1 ) return elseif ( button == button_max ) set NOM_cooking to 1 StopScript NOM_frying_meat StartScript NOM_frying set state to 0 else set state to ( ( 10 * button ) + 20 ) endif return endif ;Breaded Chicken Leg if ( state == 20 ) set myZ to ( myZ + ( 1.8 * NoM_cooking_scale ) ) set cook_tot to ( player->GetItemCount "NOM_food_chickenleg1" ) if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна куриная ножка." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_food_egg2" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужно куриное яйцо." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "ingred_wickwheat_01" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужен виквит." set state to 10 set myTimer to -0.5 return endif if ( cook_tot >= 10 ) messagebox "Сколько панированных куриных ножек вы хотите приготовить?" "1" "5" "10" set button to -1 set state to 22 elseif ( cook_tot >= 5 ) messagebox "Сколько панированных куриных ножек вы хотите приготовить?" "1" "5" set button to -1 set state to 22 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 25 endif elseif ( state == 22 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 25 return endif elseif ( state == 25 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "NOM_food_chickenleg1" 1 player->RemoveItem "NOM_food_egg2" 1 player->RemoveItem "ingred_wickwheat_01" 1 set myRandom to Random 4 if ( myRandom == 0 ) set myRot to ( NoM_cooking_rot + 70 ) elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 250 ) elseif ( myRandom == 2 ) set myRot to NoM_cooking_rot elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 170 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_chicken_bread" myX myY myZ myRot endif PlaySound "fv_fry" set myTimer to -5 set cooking to 1 endif endif ;Bittersweet Beef if ( state == 30 ) set myZ to ( myZ + ( 3 * NoM_cooking_scale ) ) set cook_tot to ( player->GetItemCount "NOM_food_meat" ) if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна говядина." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "ingred_scuttle_01" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужен скаттл." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_food_a_apple" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужно яблоко." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_sltw_food_a_onion" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна луковица." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_salt" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна соль." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_sugar" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужен сахар." set state to 10 set myTimer to -0.5 return endif if ( cook_tot >= 10 ) messagebox "Сколько порций пряной говядины вы хотите приготовить?" "2" "10" "20" set button to -1 set state to 32 elseif ( cook_tot >= 5 ) messagebox "Сколько порций пряной говядины вы хотите приготовить?" "2" "10" set button to -1 set state to 32 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 35 endif elseif ( state == 32 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 35 return elseif ( state == 35 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "NOM_food_meat" 1 player->RemoveItem "ingred_scuttle_01" 1 player->RemoveItem "NOM_food_a_apple" 1 player->RemoveItem "NOM_sltw_food_a_onion" 1 player->RemoveItem "NOM_salt" 1 player->RemoveItem "NOM_sugar" 1 set myRandom to Random 4 if ( myRandom == 0 ) set myRot to NoM_cooking_rot elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 250 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 70 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 170 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_beef_bitter" myX myY myZ myRot endif PlaySound "fv_fry" set myTimer to -5 set cooking to 1 endif endif ;Succulent Guar Rib if ( state == 40 ) set myZ to ( myZ + ( 2.6 * NoM_cooking_scale ) ) set cook_tot to ( player->GetItemCount "NOM_food_guar_rib" ) if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужно гуарье ребрышко." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_food_a_lemon" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужен лимон." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "ingred_bittergreen_petals_01" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужны лепестки горьколистника." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NoM_salt" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна соль." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_wine_08" ) set ingred_tot to ingred_tot + ( player->GetItemCount "NOM_wine_02" ) set ingred_tot to ingred_tot + ( player->GetItemCount "NOM_wine_03" ) set ingred_tot to ingred_tot + ( player->GetItemCount "NOM_wine_04" ) set ingred_tot to ingred_tot + ( player->GetItemCount "NOM_wine_09" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужно вино." set state to 10 set myTimer to -0.5 return endif if ( cook_tot >= 10 ) messagebox "Сколько пряных гуарьих ребрышек вы хотите приготовить?" "1" "5" "10" set button to -1 set state to 42 elseif ( cook_tot >= 5 ) messagebox "Сколько пряных гуарьих ребрышек вы хотите приготовить?" "1" "5" set button to -1 set state to 42 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 45 endif elseif ( state == 42 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 45 return elseif ( state == 45 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "NOM_food_guar_rib" 1 player->RemoveItem "NOM_food_a_lemon" 1 player->RemoveItem "ingred_bittergreen_petals_01" 1 player->RemoveItem "NOM_salt" 1 if ( player->GetItemCount "NOM_wine_08" > 0 ) player->RemoveItem "NOM_wine_08" 1 elseif ( player->GetItemCount "NOM_wine_02" > 0 ) player->RemoveItem "NOM_wine_02" 1 elseif ( player->GetItemCount "NOM_wine_03" > 0 ) player->RemoveItem "NOM_wine_03" 1 elseif ( player->GetItemCount "NOM_wine_04" > 0 ) player->RemoveItem "NOM_wine_04" 1 elseif ( player->GetItemCount "NOM_wine_09" > 0 ) player->RemoveItem "NOM_wine_09" 1 endif set myRandom to Random 4 if ( myRandom == 0 ) set myRot to NoM_cooking_rot elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 250 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 70 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 170 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_rib_succulent" myX myY myZ myRot endif PlaySound "fv_fry" set myTimer to -5 set cooking to 1 endif endif end 2. Скрипт песочных часов. При активации есть выбор - узнать время или поднять. Время показывает нормально, но при выборе "поднять" ничего не работает. В чем тут косяк? begin HourGlass Short OnPCEquip Short PCSkipEquip short button short state short messageOn if ( menumode == 1) return endif Set PCSkipEquip to 1 If ( OnPCEquip == 1) If (Month == 0) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Утренней Звезды", GameHour, Day elseif (Month == 1) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Восхода", GameHour, Day elseif (Month == 2) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Первоцвета", GameHour, Day elseif (Month == 3) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Дождя", GameHour, Day elseif (Month == 4) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Сева", GameHour, Day elseif (Month == 5) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Середины Года", GameHour, Day elseif (Month == 6) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Солнцеворота", GameHour, Day elseif (Month == 7) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Урожая", GameHour, Day elseif (Month == 8) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Огня", GameHour, Day elseif (Month == 9) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Мороза", GameHour, Day elseif (Month == 10) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Заката", GameHour, Day elseif (Month == 11) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Вечерней Звезды", GameHour, Day endif endif Set OnPCEquip to 0 if ( OnActivate == 1 ) Set messageOn to 2 endif if ( messageOn == 0 ) return endif if ( messageOn == 2 ) MessageBox "Что вы хотите сделать?" "Узнать время." "Поднять." Set messageOn to 1 endif if ( messageOn == 1 ) set button to GetButtonPressed if ( button == 0 ) If (Month == 0) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Утренней Звезды", GameHour, Day elseif (Month == 1) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Восхода", GameHour, Day elseif (Month == 2) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Первоцвета", GameHour, Day elseif (Month == 3) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Дождя", GameHour, Day elseif (Month == 4) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Сева", GameHour, Day elseif (Month == 5) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Середины Года", GameHour, Day elseif (Month == 6) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Солнцеворота", GameHour, Day elseif (Month == 7) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Урожая", GameHour, Day elseif (Month == 8) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Огня", GameHour, Day elseif (Month == 9) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Мороза", GameHour, Day elseif (Month == 10) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Заката", GameHour, Day elseif (Month == 11) MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Вечерней Звезды", GameHour, Day Set messageOn to 0 endif if ( button == 1 ) Activate Set messageOn to 0 return endif endif endif end Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 1 мая, 2021 Жалоба Поделиться Опубликовано 1 мая, 2021 Для начала elseif -> if: if ( state == 0 ) set state to 10 returnendif elseif ( state == 10 ) _----2 elseif -> if: elseif ( state == 25 ) if ( cook_tot <= 0 ) 3 заменить на этоMessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Вечерней Звезды", GameHour, Day EndifSet messageOn to 0 elseif ( button == 1 ) Ссылка на комментарий Поделиться на другие сайты Поделиться
La Sombra del Mar Опубликовано 2 мая, 2021 Автор Жалоба Поделиться Опубликовано 2 мая, 2021 (изменено) Для начала elseif -> if: if ( state == 0 )set state to 10returnendif elseif ( state == 10 ) _----2 elseif -> if: elseif ( state == 25 )if ( cook_tot <= 0 )Исправила, но погоды это не сделало - все равно не идет дальше выбора блюда. 3 заменить на этоMessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Вечерней Звезды", GameHour, DayEndifSet messageOn to 0elseif ( button == 1 )Если я правильно понимаю, должно быть вот так: MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Вечерней Звезды", GameHour, Day Set messageOn to 0 elseif ( button == 1 ) Activate Set messageOn to 0 return endif endif endif Не работает, на активацию реакции нет. 3. Вот в этом скрипте вроде тоже все блоки закрыты endif'ами, но скрипт не работает. Похоже, дело в чем-то другом.. begin NOM_grill ;--Grilling short state short canGrill short button short button_max short ingred_tot ; how much of a certain ingredient the PC has short meat_tot ; how much meat the PC has short fish_tot ; how many fishes the PC has short cook_tot ; how many dishes of a certain kind the PC can cook short cooking ; tells if the PC is cooking float myTimer ; a timer for cooking float myX float myY float myZ float myRot short myRandom if ( myTimer < 0 ) if ( cooking == 1 ) set myTimer to ( myTimer + GetSecondsPassed ) elseif ( MenuMode == 0 ) set myTimer to ( myTimer + GetSecondsPassed ) endif return elseif ( cooking == 1 ) if ( MenuMode == 1 ) return endif set cooking to 0 set cook_tot to ( cook_tot - 1 ) if ( NoM_cooking_device == 0 ) PlaySound "Item Ingredient Up" endif set myTimer to -0.3 set GameHour to ( GameHour + 0.1 ) ;6 minutes passing for every dish if ( state == 25 ) player->AddItem "NOM_food_meat_grilled2" 1 messagebox "Вы пожарили мясо." elseif ( state == 35 ) player->AddItem "NOM_food_grilled_fish" 1 messagebox "Вы пожарили рыбу." elseif ( state == 45 ) player->AddItem "NOM_food_meat_grilled" 1 messagebox "Вы пожарили говядину." elseif ( state == 55 ) player->AddItem "NOM_food_chickenleg1_cook" 1 messagebox "Вы пожарили куриную ножку." elseif ( state == 65 ) player->AddItem "NOM_food_guar_rib_grill" 1 messagebox "Вы пожарили гуарье ребрышко." elseif ( state == 75 ) player->AddItem "NOM_food_skewer_kag" 3 messagebox "Вы пожарили 3 шашлыка из мяса кагути." endif return endif ;--Base state if ( state == 0 ) set canGrill to ( NOM_fireplace + NOM_ovenplace ) if ( GetJournalIndex NOM_recipes < 10 ) PlaySound "NoM_BadButton" messagebox "Вы не умеете готовить на гриле. Изучите хотя бы один рецепт." stopScript NOM_grill elseif ( canGrill == 0 ) PlaySound "NoM_BadButton" messagebox "Подойдите к огню/печи." stopScript NOM_grill else set state to 10 set NoM_busy to 1 DisablePlayerControls MenuTest 0 endif endif return endif if ( state == 10 ) set cooking to 0 set myX to NoM_cooking_x set myY to NoM_cooking_y set myZ to NoM_cooking_z set button to -1 if ( GetJournalIndex NOM_recipes >= 10 ) messagebox "Что вы хотите приготовить?" "Жареное на гриле мясо" "Жареную на гриле рыбу" "Жареную говядину" "Жареную куриную ножку" "Жареное гуарье ребрышко" "Шашлык из мяса кагути" "- Отмена -" set button_max to 6 set state to 15 endif endif return endif ;--Handle menu selection if ( state == 15 ) set button to GetButtonPressed if ( button == -1 ) return elseif ( button == button_max ) EnablePlayerControls set state to 0 set NoM_busy to 0 StopScript NOM_grill else set state to ( ( 10 * button ) + 20 ) endif return endif ;--Grilled Meat if ( state == 20 ) set myZ to ( myZ + ( 3 * NoM_cooking_scale ) ) set meat_tot to ( player->GetItemCount "ab01ingred_bird_meat" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_mouse_meat_MVA" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Parastylus_Meat" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Ornada_Meat" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Mutton" ) set meat_tot to meat_tot + ( player->GetItemCount "plx_ingred_kriin_flesh" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Boar" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Guar" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Kwama" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Alit" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_wolf_meat_SA" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_bear_meat_SA" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_durzog_meat_01" ) set meat_tot to meat_tot + ( player->GetItemCount "ab01ingred_turtlemeat" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Cliffracer" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Kagouti" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_rat_meat_01" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_hound_meat_01" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_dragon_meat_mwa" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatHorker_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatCliffracer_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatKwama_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatOrnada_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatKagouti_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatAlit_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatGuar_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatParastylus_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatMutton_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatBoar_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatHorse_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatBeef_01" ) set meat_tot to meat_tot + ( player->GetItemCount "AB_IngCrea_GuarMeat_01" ) set meat_tot to meat_tot + ( player->GetItemCount "plx_guar_meat" ) set meat_tot to meat_tot + ( player->GetItemCount "AB_IngCrea_HorseMeat01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatVenison_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatBoar_02" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Darkmeat" ) set cook_tot to meat_tot if ( cook_tot >= 10 ) messagebox "Сколько мяса вы хотите пожарить?" "1" "5" "10" set button to -1 set state to 22 elseif ( cook_tot >= 5 ) messagebox "Сколько мяса вы хотите пожарить?" "1" "5" set button to -1 set state to 22 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 25 else PlaySound "NoM_BadButton" messagebox "Для этого нужно мясо любого животного." set state to 10 set myTimer to -0.5 return endif endif if ( state == 22 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 25 return endif if ( state == 25 ) if ( cook_tot <= 0 ) set state to 10 return else if ( player->GetItemCount "ab01ingred_bird_meat" > 0 ) player->RemoveItem "ab01ingred_bird_meat" 1 elseif ( player->GetItemCount "ingred_mouse_meat_MVA" > 0 ) player->RemoveItem "ingred_mouse_meat_MVA" 1 elseif ( player->GetItemCount "TR_Ingred_Parastylus_Meat" > 0 ) player->RemoveItem "TR_Ingred_Parastylus_Meat" 1 elseif ( player->GetItemCount "TR_Ingred_Ornada_Meat" > 0 ) player->RemoveItem "TR_Ingred_Ornada_Meat" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Mutton" > 0 ) player->RemoveItem "TR_Ingred_Meat_Mutton" 1 elseif ( player->GetItemCount "plx_ingred_kriin_flesh" > 0 ) player->RemoveItem "plx_ingred_kriin_flesh" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Boar" > 0 ) player->RemoveItem "TR_Ingred_Meat_Boar" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Guar" > 0 ) player->RemoveItem "TR_Ingred_Meat_Guar" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Kwama" > 0 ) player->RemoveItem "TR_Ingred_Meat_Kwama" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Alit" > 0 ) player->RemoveItem "TR_Ingred_Meat_Alit" 1 elseif ( player->GetItemCount "ingred_wolf_meat_SA" > 0 ) player->RemoveItem "ingred_wolf_meat_SA" 1 elseif ( player->GetItemCount "ingred_bear_meat_SA" > 0 ) player->RemoveItem "ingred_bear_meat_SA" 1 elseif ( player->GetItemCount "ingred_durzog_meat_01" > 0 ) player->RemoveItem "ingred_durzog_meat_01" 1 elseif ( player->GetItemCount "ab01ingred_turtlemeat" > 0 ) player->RemoveItem "ab01ingred_turtlemeat" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Cliffracer" > 0 ) player->RemoveItem "TR_Ingred_Meat_Cliffracer" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Kagouti" > 0 ) player->RemoveItem "TR_Ingred_Meat_Kagouti" 1 elseif ( player->GetItemCount "ingred_rat_meat_01" > 0 ) player->RemoveItem "ingred_rat_meat_01" 1 elseif ( player->GetItemCount "ingred_hound_meat_01" > 0 ) player->RemoveItem "ingred_hound_meat_01" 1 elseif ( player->GetItemCount "ingred_dragon_meat_mwa" > 0 ) player->RemoveItem "ingred_dragon_meat_mwa" 1 elseif ( player->GetItemCount "T_IngFood_MeatHorker_01" > 0 ) player->RemoveItem "T_IngFood_MeatHorker_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatOrnada_01" > 0 ) player->RemoveItem "T_IngFood_MeatOrnada_01" 1 elseif ( player->GetItemCount "AB_IngCrea_GuarMeat_01" > 0 ) player->RemoveItem "AB_IngCrea_GuarMeat_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatParastylus_01" > 0 ) player->RemoveItem "T_IngFood_MeatParastylus_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatKwama_01" > 0 ) player->RemoveItem "T_IngFood_MeatKwama_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatCliffracer_01" > 0 ) player->RemoveItem "T_IngFood_MeatCliffracer_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatAlit_01" > 0 ) player->RemoveItem "T_IngFood_MeatAlit_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatGuar_01" > 0 ) player->RemoveItem "T_IngFood_MeatGuar_01" 1 elseif ( player->GetItemCount "plx_guar_meat" > 0 ) player->RemoveItem "plx_guar_meat" 1 elseif ( player->GetItemCount "T_IngFood_MeatKagouti_01" > 0 ) player->RemoveItem "T_IngFood_MeatKagouti_01" 1 elseif ( player->GetItemCount "A-DI-RAWMEAT" > 0 ) player->RemoveItem "A-DI-RAWMEAT" 1 elseif ( player->GetItemCount "T_IngCrea_MeatDark_01" > 0 ) player->RemoveItem "T_IngCrea_MeatDark_01" 1 elseif ( player->GetItemCount "AB_IngCrea_HorseMeat01" > 0 ) player->RemoveItem "AB_IngCrea_HorseMeat01" 1 elseif ( player->GetItemCount "T_IngFood_MeatVenison_01" > 0 ) player->RemoveItem "T_IngFood_MeatVenison_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatBoar_02" > 0 ) player->RemoveItem "T_IngFood_MeatBoar_02" 1 elseif ( player->GetItemCount "TR_Ingred_Darkmeat" > 0 ) player->RemoveItem "TR_Ingred_Darkmeat" 1 elseif ( player->GetItemCount "T_IngFood_MeatMutton_01" ) player->RemoveItem "T_IngFood_MeatMutton_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatBoar_01" ) player->RemoveItem "T_IngFood_MeatBoar_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatHorse_01" ) player->RemoveItem "T_IngFood_MeatHorse_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatBeef_01" ) player->RemoveItem "T_IngFood_MeatBeef_01" 1 endif set myRandom to Random 4 if ( myRandom == 0 ) set myRot to ( NoM_cooking_rot + 90 ) elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 270 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 70 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 250 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_meat" myX myY myZ myRot endif PlaySound "fv_fire_grill" set myTimer to -5 set cooking to 1 endif endif ;--Grilled Fish if ( state == 30 ) set myZ to ( myZ + ( 3.25 * NoM_cooking_scale ) ) set fish_tot to ( player->GetItemCount "NOM_food_fish" ) set fish_tot to fish_tot + ( player->GetItemCount "NOM_food_fish_fat_01" ) set fish_tot to fish_tot + ( player->GetItemCount "NOM_food_fish_fat_02" ) set fish_tot to fish_tot + ( player->GetItemCount "RR_I_fish_raw" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishBrowntrout_01" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishChrysophant_01" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishCod_01" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishLeaperTail_01" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishPikeperch_01" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishSpr_01" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishStrid_01" ) set cook_tot to fish_tot if ( cook_tot >= 10 ) messagebox "Сколько рыб вы хотите пожарить?" "1" "5" "10" set button to -1 set state to 32 elseif ( cook_tot >= 5 ) messagebox "Сколько рыб вы хотите пожарить?" "1" "5" set button to -1 set state to 32 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 35 else PlaySound "NoM_BadButton" messagebox "Для этого нужна любая рыба." set state to 10 set myTimer to -0.5 return endif elseif ( state == 32 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 35 return endif if ( state == 35 ) if ( cook_tot <= 0 ) set state to 10 return else if ( player->GetItemCount "NOM_food_fish" > 0 ) player->RemoveItem "NOM_food_fish" 1 elseif ( player->GetItemCount "NOM_food_fish_fat_01" > 0 ) player->RemoveItem "NOM_food_fish_fat_01" 1 elseif ( player->GetItemCount "NOM_food_fish_fat_02" > 0 ) player->RemoveItem "NOM_food_fish_fat_02" 1 elseif ( player->GetItemCount "RR_I_fish_raw" > 0 ) player->RemoveItem "RR_I_fish_raw" 1 elseif ( player->GetItemCount "T_IngFood_FishBrowntrout_01" > 0 ) player->RemoveItem "T_IngFood_FishBrowntrout_01" 1 elseif ( player->GetItemCount "T_IngFood_FishChrysophant_01" > 0 ) player->RemoveItem "T_IngFood_FishChrysophant_01" 1 elseif ( player->GetItemCount "T_IngFood_FishCod_01" > 0 ) player->RemoveItem "T_IngFood_FishCod_01" 1 elseif ( player->GetItemCount "T_IngFood_FishLeaperTail_01" > 0 ) player->RemoveItem "T_IngFood_FishLeaperTail_01" 1 elseif ( player->GetItemCount "T_IngFood_FishPikeperch_01" > 0 ) player->RemoveItem "T_IngFood_FishPikeperch_01" 1 elseif ( player->GetItemCount "T_IngFood_FishSpr_01" > 0 ) player->RemoveItem "T_IngFood_FishSpr_01" 1 elseif ( player->GetItemCount "T_IngFood_FishStrid_01" > 0 ) player->RemoveItem "T_IngFood_FishStrid_01" 1 endif set myRandom to Random 4 if ( myRandom == 0 ) set myRot to ( NoM_cooking_rot + 90 ) elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 270 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 70 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 250 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_fish" myX myY myZ myRot endif PlaySound "fv_fire_grill" set myTimer to -5 set cooking to 1 endif endif ;--Grilled Beef if ( state == 40 ) set myZ to ( myZ + ( 3.4 * NoM_cooking_scale ) ) set cook_tot to ( player->GetItemCount "NOM_food_meat" ) if ( cook_tot >= 10 ) messagebox "Сколько кусков говядины вы хотите пожарить?" "1" "5" "10" set button to -1 set state to 42 elseif ( cook_tot >= 5 ) messagebox "Сколько кусков говядины вы хотите пожарить?" "1" "5" set button to -1 set state to 42 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 45 else PlaySound "NoM_BadButton" messagebox "Для этого нужна говядина." set state to 10 set myTimer to -0.5 return endif endif if ( state == 42 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 45 return endif if ( state == 45 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "NOM_food_meat" 1 set myRandom to Random 4 if ( myRandom == 0 ) set myRot to ( NoM_cooking_rot + 90 ) elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 270 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 70 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 250 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_beef" myX myY myZ myRot endif PlaySound "fv_fire_grill" set myTimer to -5 set cooking to 1 endif endif ;--Grilled Chicken Leg if ( state == 50 ) set myZ to ( myZ + ( 2 * NoM_cooking_scale ) ) set cook_tot to ( player->GetItemCount "NOM_food_chickenleg1" ) if ( cook_tot >= 10 ) messagebox "Сколько куриных ножек вы хотите пожарить?" "1" "5" "10" set button to -1 set state to 52 elseif ( cook_tot >= 5 ) messagebox "Сколько куриных ножек вы хотите пожарить?" "1" "5" set button to -1 set state to 52 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 55 else PlaySound "NoM_BadButton" messagebox "Для этого нужна куриная ножка." set state to 10 set myTimer to -0.5 return endif endif if ( state == 52 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 55 return endif if ( state == 55 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "NOM_food_chickenleg1" 1 set myRandom to Random 4 if ( myRandom == 0 ) set myRot to ( NoM_cooking_rot ) elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 180 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 340 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 160 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_chicken" myX myY myZ myRot endif PlaySound "fv_fire_grill" set myTimer to -5 set cooking to 1 endif endif ;--Grilled Guar Rib if ( state == 60 ) set myZ to ( myZ + ( 4 * NoM_cooking_scale ) ) set cook_tot to ( player->GetItemCount "NOM_food_guar_rib" ) if ( cook_tot >= 10 ) messagebox "Сколько гуарьих ребрышек вы хотите пожарить?" "1" "5" "10" set button to -1 set state to 62 elseif ( cook_tot >= 5 ) messagebox "Сколько гуарьих ребрышек вы хотите пожарить?" "1" "5" set button to -1 set state to 62 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 65 else PlaySound "NoM_BadButton" messagebox "Для этого нужно гуарье ребрышко." set state to 10 set myTimer to -0.5 return endif if ( state == 62 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 65 return endif if ( state == 65 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "NOM_food_guar_rib" 1 set myRandom to Random 4 if ( myRandom == 0 ) set myRot to ( NoM_cooking_rot + 90 ) elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 270 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 70 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 250 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_rib" myX myY myZ myRot endif PlaySound "fv_fire_grill" set myTimer to -5 set cooking to 1 endif endif endif ;--Kagouti Skewers if ( state == 70 ) set myZ to ( myZ + ( 4 * NoM_cooking_scale ) ) set ingred_tot to ( player->GetItemCount "TR_Ingred_Meat_Kagouti" ) set cook_tot to ( ingred_tot / 2 ) if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужно 2 порции мяса кагути." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "Ingred_scrib_cabbage_01" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна скрибовая капуста." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_food_lard" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужно сало." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_salt" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна соль." set state to 10 set myTimer to -0.5 return endif if ( cook_tot >= 10 ) messagebox "Сколько шашлыков из мяса кагути вы хотите приготовить?" "3" "15" "30" set button to -1 set state to 72 elseif ( cook_tot >= 5 ) messagebox "Сколько шашлыков из мяса кагути вы хотите приготовить?" "3" "15" set button to -1 set state to 72 else set cook_tot to 1 set state to 75 endif endif if ( state == 72 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 75 return endif if ( state == 75 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "TR_Ingred_Meat_Kagouti" 2 player->RemoveItem "Ingred_scrib_cabbage_01" 1 player->RemoveItem "NOM_food_lard" 1 player->RemoveItem "NOM_salt" 1 set myRandom to Random 4 if ( myRandom == 0 ) set myRot to ( NoM_cooking_rot ) elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 180 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 340 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 160 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_skewer" myX myY myZ myRot endif PlaySound "fv_fire_grill" set myTimer to -5 set cooking to 1 endif endif end Изменено 2 мая, 2021 пользователем La Sombra del Mar Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 7 мая, 2021 Жалоба Поделиться Опубликовано 7 мая, 2021 Исправила, но погоды это не сделало - все равно не идет дальше выбора блюда. Если я правильно понимаю, должно быть вот так: MessageBox, "Ваши часы показывают, что сейчас %.0f час %.0f дня месяца Вечерней Звезды", GameHour, Day Set messageOn to 0 elseif ( button == 1 ) Activate Set messageOn to 0 return endif endif endif Не работает, на активацию реакции нет. 3. Вот в этом скрипте вроде тоже все блоки закрыты endif'ами, но скрипт не работает. Похоже, дело в чем-то другом..begin NOM_grill ;--Grilling short state short canGrill short button short button_max short ingred_tot ; how much of a certain ingredient the PC has short meat_tot ; how much meat the PC has short fish_tot ; how many fishes the PC has short cook_tot ; how many dishes of a certain kind the PC can cook short cooking ; tells if the PC is cooking float myTimer ; a timer for cooking float myX float myY float myZ float myRot short myRandom if ( myTimer < 0 ) if ( cooking == 1 ) set myTimer to ( myTimer + GetSecondsPassed ) elseif ( MenuMode == 0 ) set myTimer to ( myTimer + GetSecondsPassed ) endif return elseif ( cooking == 1 ) if ( MenuMode == 1 ) return endif set cooking to 0 set cook_tot to ( cook_tot - 1 ) if ( NoM_cooking_device == 0 ) PlaySound "Item Ingredient Up" endif set myTimer to -0.3 set GameHour to ( GameHour + 0.1 ) ;6 minutes passing for every dish if ( state == 25 ) player->AddItem "NOM_food_meat_grilled2" 1 messagebox "Вы пожарили мясо." elseif ( state == 35 ) player->AddItem "NOM_food_grilled_fish" 1 messagebox "Вы пожарили рыбу." elseif ( state == 45 ) player->AddItem "NOM_food_meat_grilled" 1 messagebox "Вы пожарили говядину." elseif ( state == 55 ) player->AddItem "NOM_food_chickenleg1_cook" 1 messagebox "Вы пожарили куриную ножку." elseif ( state == 65 ) player->AddItem "NOM_food_guar_rib_grill" 1 messagebox "Вы пожарили гуарье ребрышко." elseif ( state == 75 ) player->AddItem "NOM_food_skewer_kag" 3 messagebox "Вы пожарили 3 шашлыка из мяса кагути." endif return endif ;--Base state if ( state == 0 ) set canGrill to ( NOM_fireplace + NOM_ovenplace ) if ( GetJournalIndex NOM_recipes < 10 ) PlaySound "NoM_BadButton" messagebox "Вы не умеете готовить на гриле. Изучите хотя бы один рецепт." stopScript NOM_grill elseif ( canGrill == 0 ) PlaySound "NoM_BadButton" messagebox "Подойдите к огню/печи." stopScript NOM_grill else set state to 10 set NoM_busy to 1 DisablePlayerControls MenuTest 0 endif endif return endif if ( state == 10 ) set cooking to 0 set myX to NoM_cooking_x set myY to NoM_cooking_y set myZ to NoM_cooking_z set button to -1 if ( GetJournalIndex NOM_recipes >= 10 ) messagebox "Что вы хотите приготовить?" "Жареное на гриле мясо" "Жареную на гриле рыбу" "Жареную говядину" "Жареную куриную ножку" "Жареное гуарье ребрышко" "Шашлык из мяса кагути" "- Отмена -" set button_max to 6 set state to 15 endif endif return endif ;--Handle menu selection if ( state == 15 ) set button to GetButtonPressed if ( button == -1 ) return elseif ( button == button_max ) EnablePlayerControls set state to 0 set NoM_busy to 0 StopScript NOM_grill else set state to ( ( 10 * button ) + 20 ) endif return endif ;--Grilled Meat if ( state == 20 ) set myZ to ( myZ + ( 3 * NoM_cooking_scale ) ) set meat_tot to ( player->GetItemCount "ab01ingred_bird_meat" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_mouse_meat_MVA" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Parastylus_Meat" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Ornada_Meat" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Mutton" ) set meat_tot to meat_tot + ( player->GetItemCount "plx_ingred_kriin_flesh" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Boar" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Guar" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Kwama" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Alit" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_wolf_meat_SA" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_bear_meat_SA" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_durzog_meat_01" ) set meat_tot to meat_tot + ( player->GetItemCount "ab01ingred_turtlemeat" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Cliffracer" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Meat_Kagouti" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_rat_meat_01" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_hound_meat_01" ) set meat_tot to meat_tot + ( player->GetItemCount "ingred_dragon_meat_mwa" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatHorker_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatCliffracer_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatKwama_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatOrnada_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatKagouti_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatAlit_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatGuar_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatParastylus_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatMutton_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatBoar_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatHorse_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatBeef_01" ) set meat_tot to meat_tot + ( player->GetItemCount "AB_IngCrea_GuarMeat_01" ) set meat_tot to meat_tot + ( player->GetItemCount "plx_guar_meat" ) set meat_tot to meat_tot + ( player->GetItemCount "AB_IngCrea_HorseMeat01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatVenison_01" ) set meat_tot to meat_tot + ( player->GetItemCount "T_IngFood_MeatBoar_02" ) set meat_tot to meat_tot + ( player->GetItemCount "TR_Ingred_Darkmeat" ) set cook_tot to meat_tot if ( cook_tot >= 10 ) messagebox "Сколько мяса вы хотите пожарить?" "1" "5" "10" set button to -1 set state to 22 elseif ( cook_tot >= 5 ) messagebox "Сколько мяса вы хотите пожарить?" "1" "5" set button to -1 set state to 22 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 25 else PlaySound "NoM_BadButton" messagebox "Для этого нужно мясо любого животного." set state to 10 set myTimer to -0.5 return endif endif if ( state == 22 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 25 return endif if ( state == 25 ) if ( cook_tot <= 0 ) set state to 10 return else if ( player->GetItemCount "ab01ingred_bird_meat" > 0 ) player->RemoveItem "ab01ingred_bird_meat" 1 elseif ( player->GetItemCount "ingred_mouse_meat_MVA" > 0 ) player->RemoveItem "ingred_mouse_meat_MVA" 1 elseif ( player->GetItemCount "TR_Ingred_Parastylus_Meat" > 0 ) player->RemoveItem "TR_Ingred_Parastylus_Meat" 1 elseif ( player->GetItemCount "TR_Ingred_Ornada_Meat" > 0 ) player->RemoveItem "TR_Ingred_Ornada_Meat" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Mutton" > 0 ) player->RemoveItem "TR_Ingred_Meat_Mutton" 1 elseif ( player->GetItemCount "plx_ingred_kriin_flesh" > 0 ) player->RemoveItem "plx_ingred_kriin_flesh" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Boar" > 0 ) player->RemoveItem "TR_Ingred_Meat_Boar" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Guar" > 0 ) player->RemoveItem "TR_Ingred_Meat_Guar" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Kwama" > 0 ) player->RemoveItem "TR_Ingred_Meat_Kwama" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Alit" > 0 ) player->RemoveItem "TR_Ingred_Meat_Alit" 1 elseif ( player->GetItemCount "ingred_wolf_meat_SA" > 0 ) player->RemoveItem "ingred_wolf_meat_SA" 1 elseif ( player->GetItemCount "ingred_bear_meat_SA" > 0 ) player->RemoveItem "ingred_bear_meat_SA" 1 elseif ( player->GetItemCount "ingred_durzog_meat_01" > 0 ) player->RemoveItem "ingred_durzog_meat_01" 1 elseif ( player->GetItemCount "ab01ingred_turtlemeat" > 0 ) player->RemoveItem "ab01ingred_turtlemeat" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Cliffracer" > 0 ) player->RemoveItem "TR_Ingred_Meat_Cliffracer" 1 elseif ( player->GetItemCount "TR_Ingred_Meat_Kagouti" > 0 ) player->RemoveItem "TR_Ingred_Meat_Kagouti" 1 elseif ( player->GetItemCount "ingred_rat_meat_01" > 0 ) player->RemoveItem "ingred_rat_meat_01" 1 elseif ( player->GetItemCount "ingred_hound_meat_01" > 0 ) player->RemoveItem "ingred_hound_meat_01" 1 elseif ( player->GetItemCount "ingred_dragon_meat_mwa" > 0 ) player->RemoveItem "ingred_dragon_meat_mwa" 1 elseif ( player->GetItemCount "T_IngFood_MeatHorker_01" > 0 ) player->RemoveItem "T_IngFood_MeatHorker_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatOrnada_01" > 0 ) player->RemoveItem "T_IngFood_MeatOrnada_01" 1 elseif ( player->GetItemCount "AB_IngCrea_GuarMeat_01" > 0 ) player->RemoveItem "AB_IngCrea_GuarMeat_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatParastylus_01" > 0 ) player->RemoveItem "T_IngFood_MeatParastylus_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatKwama_01" > 0 ) player->RemoveItem "T_IngFood_MeatKwama_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatCliffracer_01" > 0 ) player->RemoveItem "T_IngFood_MeatCliffracer_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatAlit_01" > 0 ) player->RemoveItem "T_IngFood_MeatAlit_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatGuar_01" > 0 ) player->RemoveItem "T_IngFood_MeatGuar_01" 1 elseif ( player->GetItemCount "plx_guar_meat" > 0 ) player->RemoveItem "plx_guar_meat" 1 elseif ( player->GetItemCount "T_IngFood_MeatKagouti_01" > 0 ) player->RemoveItem "T_IngFood_MeatKagouti_01" 1 elseif ( player->GetItemCount "A-DI-RAWMEAT" > 0 ) player->RemoveItem "A-DI-RAWMEAT" 1 elseif ( player->GetItemCount "T_IngCrea_MeatDark_01" > 0 ) player->RemoveItem "T_IngCrea_MeatDark_01" 1 elseif ( player->GetItemCount "AB_IngCrea_HorseMeat01" > 0 ) player->RemoveItem "AB_IngCrea_HorseMeat01" 1 elseif ( player->GetItemCount "T_IngFood_MeatVenison_01" > 0 ) player->RemoveItem "T_IngFood_MeatVenison_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatBoar_02" > 0 ) player->RemoveItem "T_IngFood_MeatBoar_02" 1 elseif ( player->GetItemCount "TR_Ingred_Darkmeat" > 0 ) player->RemoveItem "TR_Ingred_Darkmeat" 1 elseif ( player->GetItemCount "T_IngFood_MeatMutton_01" ) player->RemoveItem "T_IngFood_MeatMutton_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatBoar_01" ) player->RemoveItem "T_IngFood_MeatBoar_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatHorse_01" ) player->RemoveItem "T_IngFood_MeatHorse_01" 1 elseif ( player->GetItemCount "T_IngFood_MeatBeef_01" ) player->RemoveItem "T_IngFood_MeatBeef_01" 1 endif set myRandom to Random 4 if ( myRandom == 0 ) set myRot to ( NoM_cooking_rot + 90 ) elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 270 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 70 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 250 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_meat" myX myY myZ myRot endif PlaySound "fv_fire_grill" set myTimer to -5 set cooking to 1 endif endif ;--Grilled Fish if ( state == 30 ) set myZ to ( myZ + ( 3.25 * NoM_cooking_scale ) ) set fish_tot to ( player->GetItemCount "NOM_food_fish" ) set fish_tot to fish_tot + ( player->GetItemCount "NOM_food_fish_fat_01" ) set fish_tot to fish_tot + ( player->GetItemCount "NOM_food_fish_fat_02" ) set fish_tot to fish_tot + ( player->GetItemCount "RR_I_fish_raw" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishBrowntrout_01" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishChrysophant_01" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishCod_01" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishLeaperTail_01" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishPikeperch_01" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishSpr_01" ) set fish_tot to fish_tot + ( player->GetItemCount "T_IngFood_FishStrid_01" ) set cook_tot to fish_tot if ( cook_tot >= 10 ) messagebox "Сколько рыб вы хотите пожарить?" "1" "5" "10" set button to -1 set state to 32 elseif ( cook_tot >= 5 ) messagebox "Сколько рыб вы хотите пожарить?" "1" "5" set button to -1 set state to 32 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 35 else PlaySound "NoM_BadButton" messagebox "Для этого нужна любая рыба." set state to 10 set myTimer to -0.5 return endif elseif ( state == 32 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 35 return endif if ( state == 35 ) if ( cook_tot <= 0 ) set state to 10 return else if ( player->GetItemCount "NOM_food_fish" > 0 ) player->RemoveItem "NOM_food_fish" 1 elseif ( player->GetItemCount "NOM_food_fish_fat_01" > 0 ) player->RemoveItem "NOM_food_fish_fat_01" 1 elseif ( player->GetItemCount "NOM_food_fish_fat_02" > 0 ) player->RemoveItem "NOM_food_fish_fat_02" 1 elseif ( player->GetItemCount "RR_I_fish_raw" > 0 ) player->RemoveItem "RR_I_fish_raw" 1 elseif ( player->GetItemCount "T_IngFood_FishBrowntrout_01" > 0 ) player->RemoveItem "T_IngFood_FishBrowntrout_01" 1 elseif ( player->GetItemCount "T_IngFood_FishChrysophant_01" > 0 ) player->RemoveItem "T_IngFood_FishChrysophant_01" 1 elseif ( player->GetItemCount "T_IngFood_FishCod_01" > 0 ) player->RemoveItem "T_IngFood_FishCod_01" 1 elseif ( player->GetItemCount "T_IngFood_FishLeaperTail_01" > 0 ) player->RemoveItem "T_IngFood_FishLeaperTail_01" 1 elseif ( player->GetItemCount "T_IngFood_FishPikeperch_01" > 0 ) player->RemoveItem "T_IngFood_FishPikeperch_01" 1 elseif ( player->GetItemCount "T_IngFood_FishSpr_01" > 0 ) player->RemoveItem "T_IngFood_FishSpr_01" 1 elseif ( player->GetItemCount "T_IngFood_FishStrid_01" > 0 ) player->RemoveItem "T_IngFood_FishStrid_01" 1 endif set myRandom to Random 4 if ( myRandom == 0 ) set myRot to ( NoM_cooking_rot + 90 ) elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 270 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 70 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 250 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_fish" myX myY myZ myRot endif PlaySound "fv_fire_grill" set myTimer to -5 set cooking to 1 endif endif ;--Grilled Beef if ( state == 40 ) set myZ to ( myZ + ( 3.4 * NoM_cooking_scale ) ) set cook_tot to ( player->GetItemCount "NOM_food_meat" ) if ( cook_tot >= 10 ) messagebox "Сколько кусков говядины вы хотите пожарить?" "1" "5" "10" set button to -1 set state to 42 elseif ( cook_tot >= 5 ) messagebox "Сколько кусков говядины вы хотите пожарить?" "1" "5" set button to -1 set state to 42 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 45 else PlaySound "NoM_BadButton" messagebox "Для этого нужна говядина." set state to 10 set myTimer to -0.5 return endif endif if ( state == 42 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 45 return endif if ( state == 45 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "NOM_food_meat" 1 set myRandom to Random 4 if ( myRandom == 0 ) set myRot to ( NoM_cooking_rot + 90 ) elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 270 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 70 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 250 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_beef" myX myY myZ myRot endif PlaySound "fv_fire_grill" set myTimer to -5 set cooking to 1 endif endif ;--Grilled Chicken Leg if ( state == 50 ) set myZ to ( myZ + ( 2 * NoM_cooking_scale ) ) set cook_tot to ( player->GetItemCount "NOM_food_chickenleg1" ) if ( cook_tot >= 10 ) messagebox "Сколько куриных ножек вы хотите пожарить?" "1" "5" "10" set button to -1 set state to 52 elseif ( cook_tot >= 5 ) messagebox "Сколько куриных ножек вы хотите пожарить?" "1" "5" set button to -1 set state to 52 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 55 else PlaySound "NoM_BadButton" messagebox "Для этого нужна куриная ножка." set state to 10 set myTimer to -0.5 return endif endif if ( state == 52 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 55 return endif if ( state == 55 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "NOM_food_chickenleg1" 1 set myRandom to Random 4 if ( myRandom == 0 ) set myRot to ( NoM_cooking_rot ) elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 180 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 340 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 160 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_chicken" myX myY myZ myRot endif PlaySound "fv_fire_grill" set myTimer to -5 set cooking to 1 endif endif ;--Grilled Guar Rib if ( state == 60 ) set myZ to ( myZ + ( 4 * NoM_cooking_scale ) ) set cook_tot to ( player->GetItemCount "NOM_food_guar_rib" ) if ( cook_tot >= 10 ) messagebox "Сколько гуарьих ребрышек вы хотите пожарить?" "1" "5" "10" set button to -1 set state to 62 elseif ( cook_tot >= 5 ) messagebox "Сколько гуарьих ребрышек вы хотите пожарить?" "1" "5" set button to -1 set state to 62 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 65 else PlaySound "NoM_BadButton" messagebox "Для этого нужно гуарье ребрышко." set state to 10 set myTimer to -0.5 return endif if ( state == 62 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 65 return endif if ( state == 65 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "NOM_food_guar_rib" 1 set myRandom to Random 4 if ( myRandom == 0 ) set myRot to ( NoM_cooking_rot + 90 ) elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 270 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 70 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 250 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_rib" myX myY myZ myRot endif PlaySound "fv_fire_grill" set myTimer to -5 set cooking to 1 endif endif endif ;--Kagouti Skewers if ( state == 70 ) set myZ to ( myZ + ( 4 * NoM_cooking_scale ) ) set ingred_tot to ( player->GetItemCount "TR_Ingred_Meat_Kagouti" ) set cook_tot to ( ingred_tot / 2 ) if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужно 2 порции мяса кагути." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "Ingred_scrib_cabbage_01" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна скрибовая капуста." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_food_lard" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужно сало." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_salt" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна соль." set state to 10 set myTimer to -0.5 return endif if ( cook_tot >= 10 ) messagebox "Сколько шашлыков из мяса кагути вы хотите приготовить?" "3" "15" "30" set button to -1 set state to 72 elseif ( cook_tot >= 5 ) messagebox "Сколько шашлыков из мяса кагути вы хотите приготовить?" "3" "15" set button to -1 set state to 72 else set cook_tot to 1 set state to 75 endif endif if ( state == 72 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 75 return endif if ( state == 75 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "TR_Ingred_Meat_Kagouti" 2 player->RemoveItem "Ingred_scrib_cabbage_01" 1 player->RemoveItem "NOM_food_lard" 1 player->RemoveItem "NOM_salt" 1 set myRandom to Random 4 if ( myRandom == 0 ) set myRot to ( NoM_cooking_rot ) elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 180 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 340 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 160 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_skewer" myX myY myZ myRot endif PlaySound "fv_fire_grill" set myTimer to -5 set cooking to 1 endif endif end 1 покажите что там.2 нет, тот код, что у вас заменить на то что я написал, вставить вмемто него. Ссылка на комментарий Поделиться на другие сайты Поделиться
La Sombra del Mar Опубликовано 7 мая, 2021 Автор Жалоба Поделиться Опубликовано 7 мая, 2021 (изменено) 1 покажите что там.2 нет, тот код, что у вас заменить на то что я написал, вставить вмемто него. 1. Не срабатывает момент перехода от стадии 10 к 15, либо от 15 к 20. begin NOM_frying_meat ;--Frying pan: Meat short state short button short button_max short ingred_tot ; how much of a certain ingredient the PC has short cook_tot ; how many dishes of a certain kind the PC can cook short cooking ; tells if the PC is cooking float myTimer ; a timer for cooking float myX float myY float myZ float myRot short myRandom if ( myTimer < 0 ) if ( cooking == 1 ) set myTimer to ( myTimer + GetSecondsPassed ) elseif ( MenuMode == 0 ) set myTimer to ( myTimer + GetSecondsPassed ) endif return elseif ( cooking == 1 ) if ( MenuMode == 1 ) return endif set cooking to 0 set cook_tot to ( cook_tot - 1 ) if ( NoM_cooking_device == 0 ) PlaySound "Item Ingredient Up" endif set myTimer to -0.3 set GameHour to ( GameHour + 0.1 ) ;6 minutes passing for every dish if ( state == 25 ) player->AddItem "NOM_food_chickenleg1_breaded" 1 messagebox "Вы приготовили панированную куриную ножку." elseif ( state == 35 ) player->AddItem "NOM_food_bittersweet" 3 messagebox "Вы приготовили пряную говядину и разделили ее на 3 порции." elseif ( state == 45 ) player->AddItem "NOM_food_guar_rib_succ" 1 messagebox "Вы приготовили пряное гуарье ребрышко." endif return endif ;--Base state if ( state == 0 ) set state to 10 return endif if ( state == 10 ) set cooking to 0 set myX to NoM_cooking_x set myY to NoM_cooking_y set myZ to NoM_cooking_z set button to -1 if ( GetJournalIndex NOM_recipes >= 10 ) messagebox "Что вы хотите приготовить?" "Панированную куриную ножку" "Пряную говядину" "Пряное гуарье ребрышко" "< Назад" set button_max to 3 set state to 15 endif return endif ;--Handles menu selection if ( state == 15 ) set button to GetButtonPressed if ( button == -1 ) return elseif ( button == button_max ) set NOM_cooking to 1 StopScript NOM_frying_meat StartScript NOM_frying set state to 0 else set state to ( ( 10 * button ) + 20 ) endif return endif ;Breaded Chicken Leg if ( state == 20 ) set myZ to ( myZ + ( 1.8 * NoM_cooking_scale ) ) set cook_tot to ( player->GetItemCount "NOM_food_chickenleg1" ) if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна куриная ножка." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_food_egg2" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужно куриное яйцо." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "ingred_wickwheat_01" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужен виквит." set state to 10 set myTimer to -0.5 return endif if ( cook_tot >= 10 ) messagebox "Сколько панированных куриных ножек вы хотите приготовить?" "1" "5" "10" set button to -1 set state to 22 elseif ( cook_tot >= 5 ) messagebox "Сколько панированных куриных ножек вы хотите приготовить?" "1" "5" set button to -1 set state to 22 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 25 endif endif if ( state == 22 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 25 return endif if ( state == 25 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "NOM_food_chickenleg1" 1 player->RemoveItem "NOM_food_egg2" 1 player->RemoveItem "ingred_wickwheat_01" 1 set myRandom to Random 4 if ( myRandom == 0 ) set myRot to ( NoM_cooking_rot + 70 ) elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 250 ) elseif ( myRandom == 2 ) set myRot to NoM_cooking_rot elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 170 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_chicken_bread" myX myY myZ myRot endif PlaySound "fv_fry" set myTimer to -5 set cooking to 1 endif endif ;Bittersweet Beef if ( state == 30 ) set myZ to ( myZ + ( 3 * NoM_cooking_scale ) ) set cook_tot to ( player->GetItemCount "NOM_food_meat" ) if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна говядина." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "ingred_scuttle_01" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужен скаттл." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_food_a_apple" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужно яблоко." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_sltw_food_a_onion" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна луковица." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_salt" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна соль." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_sugar" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужен сахар." set state to 10 set myTimer to -0.5 return endif if ( cook_tot >= 10 ) messagebox "Сколько порций пряной говядины вы хотите приготовить?" "2" "10" "20" set button to -1 set state to 32 elseif ( cook_tot >= 5 ) messagebox "Сколько порций пряной говядины вы хотите приготовить?" "2" "10" set button to -1 set state to 32 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 35 endif endif if ( state == 32 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 35 return endif if ( state == 35 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "NOM_food_meat" 1 player->RemoveItem "ingred_scuttle_01" 1 player->RemoveItem "NOM_food_a_apple" 1 player->RemoveItem "NOM_sltw_food_a_onion" 1 player->RemoveItem "NOM_salt" 1 player->RemoveItem "NOM_sugar" 1 set myRandom to Random 4 if ( myRandom == 0 ) set myRot to NoM_cooking_rot elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 250 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 70 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 170 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_beef_bitter" myX myY myZ myRot endif PlaySound "fv_fry" set myTimer to -5 set cooking to 1 endif endif ;Succulent Guar Rib if ( state == 40 ) set myZ to ( myZ + ( 2.6 * NoM_cooking_scale ) ) set cook_tot to ( player->GetItemCount "NOM_food_guar_rib" ) if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужно гуарье ребрышко." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_food_a_lemon" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужен лимон." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "ingred_bittergreen_petals_01" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужны лепестки горьколистника." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NoM_salt" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужна соль." set state to 10 set myTimer to -0.5 return endif set ingred_tot to ( player->GetItemCount "NOM_wine_08" ) set ingred_tot to ingred_tot + ( player->GetItemCount "NOM_wine_02" ) set ingred_tot to ingred_tot + ( player->GetItemCount "NOM_wine_03" ) set ingred_tot to ingred_tot + ( player->GetItemCount "NOM_wine_04" ) set ingred_tot to ingred_tot + ( player->GetItemCount "NOM_wine_09" ) if ( ingred_tot < cook_tot ) set cook_tot to ingred_tot endif if ( cook_tot == 0 ) PlaySound "NoM_BadButton" messagebox "Для этого нужно вино." set state to 10 set myTimer to -0.5 return endif if ( cook_tot >= 10 ) messagebox "Сколько пряных гуарьих ребрышек вы хотите приготовить?" "1" "5" "10" set button to -1 set state to 42 elseif ( cook_tot >= 5 ) messagebox "Сколько пряных гуарьих ребрышек вы хотите приготовить?" "1" "5" set button to -1 set state to 42 elseif ( cook_tot > 0 ) set cook_tot to 1 set state to 45 endif endif if ( state == 42 ) set button to GetButtonPressed if ( button == 0 ) set cook_tot to 1 elseif ( button == 1 ) set cook_tot to 5 elseif ( button == 2 ) set cook_tot to 10 else return endif set state to 45 return endif if ( state == 45 ) if ( cook_tot <= 0 ) set state to 10 return else player->RemoveItem "NOM_food_guar_rib" 1 player->RemoveItem "NOM_food_a_lemon" 1 player->RemoveItem "ingred_bittergreen_petals_01" 1 player->RemoveItem "NOM_salt" 1 if ( player->GetItemCount "NOM_wine_08" > 0 ) player->RemoveItem "NOM_wine_08" 1 elseif ( player->GetItemCount "NOM_wine_02" > 0 ) player->RemoveItem "NOM_wine_02" 1 elseif ( player->GetItemCount "NOM_wine_03" > 0 ) player->RemoveItem "NOM_wine_03" 1 elseif ( player->GetItemCount "NOM_wine_04" > 0 ) player->RemoveItem "NOM_wine_04" 1 elseif ( player->GetItemCount "NOM_wine_09" > 0 ) player->RemoveItem "NOM_wine_09" 1 endif set myRandom to Random 4 if ( myRandom == 0 ) set myRot to NoM_cooking_rot elseif ( myRandom == 1 ) set myRot to ( NoM_cooking_rot + 250 ) elseif ( myRandom == 2 ) set myRot to ( NoM_cooking_rot + 70 ) elseif ( myRandom == 3 ) set myRot to ( NoM_cooking_rot + 170 ) endif if ( NoM_cooking_device == 1 ) PlaceItem "NoM_c_rib_succulent" myX myY myZ myRot endif PlaySound "fv_fry" set myTimer to -5 set cooking to 1 endif endif end 2. Тьфу блин, пропустила один endif, мой косяк. Все заработало, спасибо! А с 3-м скриптом что не так? Все endif'ы на месте. Есть еще некоторое количество похожих скриптов, и все они не работают. Изменено 7 мая, 2021 пользователем La Sombra del Mar Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 10 мая, 2021 Жалоба Поделиться Опубликовано 10 мая, 2021 1 с виду все правильно. Модет с журнальгыми записями что;2 DisablePlayerControls MenuTest 0 endifendif returnЛишний endif. Больше не вижу ошибок, с логикой что-то может. Ссылка на комментарий Поделиться на другие сайты Поделиться
Босоногий воришка Опубликовано 14 мая, 2021 Жалоба Поделиться Опубликовано 14 мая, 2021 Привет. Подскажите мне, пожалуйста, в чём тут кроется ошибка и как её можно устранить. Я скачал один мод из Нексуса. Называется он "Go_To_Jail_3_7". Это очень интересный плагин, правда англоязычный, где можно сидеть в тюрьме или на каторге в прямом смысле, за свои преступления в игре. Перевести его на русский язык не такая уж проблема. Там всё с ним немного куда сложнее. Там что-то неправильно в его скриптах указано и постоянно выдаёт ошибку поэтому. Короче, в нём есть две версии. Обычная и для плагина NOM, этот тот, который для необходимостей персонажа был сделан - есть там, пить, срать, спать и т.п. Какую бы я из них не подключал и не запускал потом игру, мне постоянно, помимо ошибки о разных версий игры (их первоначальная английская от русской), выдаётся ещё вот это сообщение: "Script '' in file 'Go To Jail 3.7 - NOM.esp' has not been compiled." И потом сразу за ним идёт следующий с примерно таким же сообщением: "Script 'GTJ_WaterScript' in file 'Go To Jail 3.7 - NOM.esp' has not been compiled.". Что это значит?"Перекомпиляция" скриптов от самого конструктора и даже от проги "NWEdit" не помогает. В последней проге, при выборе опции "Compile" проблемного скрипта выпадает ошибка, что: "Error: Compiled 199 lines in 0.00669 secs! (0 Warning, 1 Errors). Что это всё значит я не знаю. Вообще со скриптами этой игры никогда не умел обращаться. Даже не знаю, для чего вообще нужна эта опция с ними, как какая-то там "перекомпиляция" и что она даёт сама по себе.Короче, этот мод мне никак без всяких ошибок у себя не запустить, но очень бы хотелось. Если я перевожу его на русском в самом конструкторе, в том числе и скрипты там его, то при запуске игры всё равно потом выводится сообщение об новых ошибках, с которыми невозможно будет играть. Что тут можно сделать? Вот этот самый мод: http://mw.modhistory.com/download-46-6160Я изначально нашёл его на Нексусе, но по скачиванию там почему-то переходит на другой иностранный сайт. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти