Перейти к содержанию

La Sombra del Mar

Граждане
  • Постов

    67
  • Зарегистрирован

  • Посещение

Весь контент La Sombra del Mar

  1. И снова здравствуйте. Возвращаюсь к теме скриптов кулинарии, которые я пытаюсь адаптировать для мультиплеера. С изучением рецептов вроде бы вопрос решить получилось, но возникла другая проблема - при попытках использования девайсов для готовки неизменно вылезает месседжбокс про "Вы не умеете пользоваться <название дейвайса>", хотя нужное значение переменной, отвечающей за умение готовить, уже получено в результате прочтения книги рецептов (в данном случае это 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, который отвечает за процесс готовки, или останавливает его (скрипт). Но что именно - отловить у меня так и не выходит. Очень надеюсь на помощь, ибо бьюсь над проблемой уже больше месяца, а воз и ныне там.
  2. Низкий вам поклон. Источник, разумеется, укажу. К слову о переводе. Если вдруг у вас еще остались какие-то пробелы в переводе контента Tamriel Rebuilt и SHoTN, могу предложить вам перевод, сделанный для нашего мультиплеерного сервера. Переведено все кроме имен нпс, скриптов (за редким исключением), названий и текстов книг (за редким исключением). Названия свитков заклинаний также переведены. О диалогах и квестах речи, естественно, не идет.)) За последнее, самое свежее обновление Tamriel_Data мы еще не брались, но это в планах как только закончим работу над нынешним обновлением сервера. За качество перевода отвечаю лично - большая часть сделана мной, остальное мной же тщательно проверено. Все в отдельном файле, выковыривать из плагина не придется. Если вдруг пригодится, дайте пожалуйста мне знать - буду рада помочь коллегам, все же одно дело делаем, хоть области приложения и разные.)
  3. Отличная политика, мое уважение.) А на файл с переводом ячеек TR она тоже распространяется? Товарищу респект, очень аутентично вышло. Обязательно упомяну, большое спасибо!
  4. А ларчик-то просто открывался.. Заработало, спасибо. Название скрипта NOM_book_adv. А NOM_cook_adv это переменная. Попробовала еще вот так, но тоже ничего не работает. Что я делаю не так? begin NOM_book_adv short PCSkipEquipshort pickedupshort NOM_cook_adv if ( pickedup == 1 )set pickedup to 0if ( NOM_cook_adv == 0 )if ( player->GetItemCount "NoM_list_book_02" < 1 )if ( player->GetItemCount "sc_paper plain" < 1 )PlaySound "NoM_BadButton"messagebox "Вам нужен чистый лист бумаги, чтобы выписать список использованных в этой книге ингредиентов." Activateelseif ( NOM_cook_adv == 0 )if ( player->GetItemCount "NoM_list_book_02" < 1 )if ( player->GetItemCount "sc_paper plain" > 0 )player->RemoveItem "sc_paper plain" 1player->AddItem "NoM_list_book_02" 1PlaySound "scroll"messagebox "Вы выписываете список использованных в этой книге ингредиентов на чистый лист бумаги. Он вам пригодится в процессе готовки."PlaySound "skillraise"messagebox "Вы узнали новые рецепты из книги 'Пища Богов'."set NOM_cook_adv to 1Activateendifendifendifendifendifendif if ( PCSkipEquip == 1 ) ;did the player open the book in inventory?set pickedup to 1set PCSkipEquip to 0returnendif if ( MenuMode == 1 )returnendif Есть еще один скрипт наподобие, там все работает и без активаторов. Но есть одна проблема - после того как персонаж убрал оружие, ножны все равно остаются пустыми, хотя в скрипте прописано добавление и экипировка версии ножен с оружием. Причем работать это перестало после добавления последнего блока. Можете что-нибудь тут подсказать? begin ebonyClaymore_sheathescript Short DoOnce if ( GetDisabled ) SetDelete 1 return endif If ( Player -> HasItemEquipped "k7_sme_arena_claymore" )If ( Player -> GetWeaponDrawn )If ( DoOnce == 0 ) player->additem "k7_sme_quiver_ebony_ush_3", 1 player->equip "k7_sme_quiver_ebony_ush_3", 1player->removeitem "k7_sme_quiver_ebony_sh_3", 1 set DoOnce to 1endifendifelseif ( DoOnce == 1 ) player->additem "k7_sme_quiver_ebony_sh_3", 1 player->equip "k7_sme_quiver_ebony_sh_3", 1 player->removeitem "k7_sme_quiver_ebony_ush_3", 1 set DoOnce to 0 endif endifendif if ( Player->GetItemCount "k7_sme_arena_claymore" < 1 ) player->removeitem "k7_sme_quiver_ebony_sh_3", 1 endif End
  5. Приветствую, а можно узнать откуда были взяты новые загрузочные экраны? Часть мне знакома, но например с крылатым сумраком и ледяным троллем вижу впервые. Интересуюсь с целью утащить к себе на сервер, ибо понравились. Если сделаны специально для репака, то вопрос снят - плагиатить я конечно не буду. Но если нет, то киньте пжлст в меня ссылкой на источник.
  6. 1. Мобы уникальные. Что самое интересное, реакция есть только на одного, который mob1. Если он убит, а mob2 жив - получаем удар током. Если наоборот - никакой реакции. И если живы оба, реакции тоже нет. begin door_script if ( OnActivate == 1 )if ( GetLocked == 0 )if ( "mob1"->GetHealth <= 0 )if ( "mob2"->GetHealth <= 0 )Activateelseif ( "mob1"->GetHealth > 0 )elseif ( "mob2"->GetHealth > 0 )cast "shock_weary" playerMessageBox "Закрыто"endifendifendifendif End 2. Это проверка знает ли уже игрок этот рецепт. Думаю, сойдет вместо doonce. Но в таком виде вообще все перестало работать - ни сообщения про "нужна бумага" нет, ни рецепт не выучивается из книги. Я так понимаю, else учитывает только что-то одно, а тут нужно проверить и наличие бумаги и знает ли игрок этот рецепт. begin NOM_book_adv short PCSkipEquipshort pickedup if ( pickedup == 1 )set pickedup to 0if ( NOM_cook_adv == 0 )if ( player->GetItemCount "NoM_list_book_02" < 1 )if ( player->GetItemCount "sc_paper plain" < 1 )PlaySound "NoM_BadButton"messagebox "Вам нужен чистый лист бумаги, чтобы выписать список использованных в этой книге ингредиентов." Activateelseplayer->RemoveItem "sc_paper plain" 1player->AddItem "NoM_list_book_02" 1PlaySound "scroll"messagebox "Вы выписываете список использованных в этой книге ингредиентов на чистый лист бумаги. Он вам пригодится в процессе готовки."PlaySound "skillraise"messagebox "Вы узнали новые рецепты из книги 'Пища Богов'."set NOM_cook_adv to 1Activateendifendifendifendif if ( PCSkipEquip == 1 ) ;did the player open the book in inventory?set pickedup to 1set PCSkipEquip to 0returnendif if ( MenuMode == 1 )returnendif end 3. Теперь все нормально со звуком, премного благодарна. 4. moon_reiver_sheathed это непосредственно само оружие. moon_reiver_sheath это "типа ножны", которые по факту та же модель оружия, только висящая за спиной (технически - наплечник).
  7. Еще несколько вопросов по скриптам, над которыми я уже довольно долго мучаюсь. 1. Этот висит на двери, которая открывается только при условии того, что охраняющие ее мобы (2 штуки) мертвы. Если живы оба, или только один, при попытке активировать дверь на игрока кастуется заклинание. Когда моб только один, никаких проблем не возникает, но когда их 2 или больше, реакция есть только на одного. Пробовала уже по-всякому, в том числе через else - также не работает. begin door_script short doonce if ( doonce == 0 )if ( OnActivate == 1 )if ( GetLocked == 0 )if ( "mob1"->GetHealth <= 0 )if ( "mob2"->GetHealth <= 0 )ActivatePlayer->removeitem "key_pk" 1Set doonce to 1elseif ( "mob1"->GetHealth > 0 )elseif ( "mob2"->GetHealth > 0 )cast "shock_weary" playerMessageBox "Закрыто"endifendifendifendifendif End 2. Измененный скрипт изучения рецептов из книг плагина "Необходимости Морровинда". Нужно чтобы изучение становилось возможным только при наличии в инвентаре чистого листа бумаги и появлялось собщение про "вам нужна бумага", но при этом книга открывалась при активации. Эта часть работает. Но сам рецепт при этом не изучается даже при наличии в инвентаре бумаги. Что где исправить? begin NOM_book_adv short PCSkipEquipshort pickedup if ( pickedup == 1 )set pickedup to 0if ( NOM_cook_adv == 0 )if ( player->GetItemCount "NoM_list_book_02" < 1 )if ( player->GetItemCount "sc_paper plain" > 0 )player->RemoveItem "sc_paper plain" 1player->AddItem "NoM_list_book_02" 1PlaySound "scroll"messagebox "Вы выписываете список использованных в этой книге ингредиентов на чистый лист бумаги. Он вам пригодится в процессе готовки."PlaySound "skillraise"messagebox "Вы узнали новые рецепты из книги 'Пища Богов'."set NOM_cook_adv to 1Set doOnce to 1Activateif ( pickedup == 1 )set pickedup to 0if ( NOM_cook_adv == 0 )if ( player->GetItemCount "NoM_list_book_02" < 1 )if ( player->GetItemCount "sc_paper plain" < 1 )PlaySound "NoM_BadButton"messagebox "Вам нужен чистый лист бумаги, чтобы выписать список использованных в этой книге ингредиентов." Activateendifendifendifendifendifendifendifendif if ( PCSkipEquip == 1 ) ;did the player open the book in inventory?set pickedup to 1set PCSkipEquip to 0returnendif if ( MenuMode == 1 )returnendif end 3. В этом скрипте проблема со звуком эффекта - он не прекращается пока не выйдешь из ячейки. Как починить? Этот висит на самой трубке скуума: Begin _skooma_pipe float timershort buttonshort pickupshort status if ( pickup == 1 )Set pickup to 0activatereturnendif if ( OnActivate == 1 ) if ( MenuMode == 1 )Set pickup to 1returnendif if ( GetPCSneaking ) Set pickup to 1 return endifif ( player->GetItemCount, ingred_moon_sugar_01 > 0 )MessageBox "Что вы хотите сделать?" , "Курить трубку скуума", "Взять"Set status to 1else Set pickup to 1returnendifendif If ( status == 1 ) set button to GetButtonPressedif ( button == -1 ) returnelseif ( button == 0 ) player->RemoveItem, "ingred_moon_sugar_01", 1PlaceAtPC, "wh_skooma_spell_activator", 1, 0, 0Set status to 0elseif ( button == 1 )Set status to 0Set pickup to 1endifendif End А этот на активаторе, кастующем на игрока эффект: Begin _skooma_smoke float timershort stateshort doOnce if ( state == 0 ) ; play smoke sound, fade out, make player fallPlaysound, "Blackoutin"FadeOut 2Set state to 1elseif ( state == 1 ) ; smoking in progressSet timer to ( timer + GetSecondsPassed )if ( timer > 2 ) ; player is already lying and screen is black - cast skooma smoke effect onceif ( doOnce == 0 )Set doOnce to 1Cast, "wh_skooma_smoke_effect", Playerendifendifif ( timer > 2 ) ; fade in, make player stand upFadeIn 1.5Set timer to 0Set state to 2endifelse ; get rid of this objectif ( timer == 0 )disable endifif ( timer < 5 )Set timer to ( timer + GetSecondsPassed )endifif ( timer >= 5 )setdelete 1 endifreturnendif End 4. Скрипт, висящий на оружии, которое, будучи убранным из рук, вешается за спину в слот наплечника. Работает некорректно от слова совсем. Ткните пжлст носом в ошибки. begin Moon_reiver_sh Short DoOnce if ( GetDisabled )SetDelete 1returnendif If ( Player -> HasItemEquipped "moon_reiver_sheathed" )If ( Player -> GetWeaponDrawn )If ( DoOnce == 0 ) player->removeitem "moon_reiver_sheath", 1set DoOnce to 1 endifelseif ( DoOnce == 1 ) player->additem "moon_reiver_sheath", 1player->equip "moon_reiver_sheath", 1set DoOnce to 0endifendifendif End
  8. Не работает, ни так как сказали, ни с переносом Set state to наверх. Точнее, работает только с великим камнем душ - в обмен на 10 осколков он выдается. А в ответ на запрос о других камнях забираются ВСЕ осколки, что есть в инвентаре, сколько бы их там ни было, но ничего не выдается. Что еще нужно исправить? Желательно сразу, а не по частям. begin Soul_gem_infuser short controlshort buttonshort typeshort stateshort controlvar Set state to ( player->getitemcount "_GN_Shard_Rock_4_B" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_4_g" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_4_o" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_4_p" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_4_r" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_4_w" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_5_B" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_5_g" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_5_o" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_5_p" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_5_r" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_5_w" ) If ( controlvar > 0 )Set controlvar to ( controlvar - 1 )If ( player->getitemcount "_GN_Shard_Rock_4_B" )Player->removeitem _GN_Shard_Rock_4_B 1Elseif ( player-> getitemcount "_GN_Shard_Rock_4_g" )Player->removeitem _GN_Shard_Rock_4_g 1Elseif ( player-> getitemcount "_GN_Shard_Rock_4_o" )Player->removeitem _GN_Shard_Rock_4_o 1Elseif ( player-> getitemcount "_GN_Shard_Rock_4_p" )Player->removeitem _GN_Shard_Rock_4_p 1Elseif ( player-> getitemcount "_GN_Shard_Rock_4_r" )Player->removeitem _GN_Shard_Rock_4_r 1Elseif ( player-> getitemcount "_GN_Shard_Rock_4_w" )Player->removeitem _GN_Shard_Rock_4_w 1elseif ( player-> getitemcount "_GN_Shard_Rock_5_B" )Player->removeitem _GN_Shard_Rock_5_B 1Elseif ( player-> getitemcount "_GN_Shard_Rock_5_g" )Player->removeitem _GN_Shard_Rock_5_g 1Elseif ( player-> getitemcount "_GN_Shard_Rock_5_o" )Player->removeitem _GN_Shard_Rock_5_o 1Elseif ( player-> getitemcount "_GN_Shard_Rock_5_p" )Player->removeitem _GN_Shard_Rock_5_p 1Elseif ( player-> getitemcount "_GN_Shard_Rock_5_r" )Player->removeitem _GN_Shard_Rock_5_r 1Elseif ( player-> getitemcount "_GN_Shard_Rock_5_w" )Player->removeitem _GN_Shard_Rock_5_w 1endifendif If ( MenuMode == 1 )ReturnEndifendif if ( OnActivate == 1 )if ( control == 0 ) if ( Player->GetItemCount Gold_001 >= 25 )MessageBox "Этот аппарат позволяет фокусировать потоки метафизических энергий для изготовления цельных камней душ из отдельных фрагментов кристаллических морфолитов. Какой тип камня душ вы хотите изготовить? (Цена одного использования алтаря - 25 септимов.)", "Крохотный (2 фрагмента)", "Маленький (4 фрагмента)", "Обычный (6 фрагментов)", "Большой (8 фрагментов)", "Великий (10 фрагментов)", "Отмена"set control to 1elseMessageBox "У вас недостаточно золота чтобы воспользоваться алтарем. Цена одного использования - 25 септимов."set control to 0endifendifendif if ( control == 0 )returnendif if ( control == 1 )set button to GetButtonPressedif ( button == -1 )return elseif ( button == 0)player->removeitem "gold_001" 25set control to 2 elseif ( button == 1)player->removeitem "gold_001" 25set control to 4 elseif ( button == 2)player->removeitem "gold_001" 25set control to 6 elseif ( button == 3)player->removeitem "gold_001" 25set control to 8 elseif ( button == 4)player->removeitem "gold_001" 25set control to 10 elseif ( button == 5)set control to 0endifendif If ( state < control )MessageBox "У вас недостаточно осколков кристаллов для изготовления камня душ"Set control to 0ReturnElseSet controlvar to controlEndif If control == 2 player->AddItem Misc_SoulGem_Petty, 1ElseIf control == 4 player->AddItem Misc_SoulGem_Lesser, 1ElseIf control == 6 player->AddItem Misc_SoulGem_Common, 1ElseIf control == 8 player->AddItem Misc_SoulGem_Greater, 1ElseIf control == 10 player->AddItem Misc_SoulGem_Grand, 1MessageBox "Вы успешно изготовили камень душ."PlaySound "enchant success"Set control to 0endif End
  9. Ну теперь вообще какой-то трэш начался.. Не возражаете если продолжим в лс? Чувствую, с правками мне еще долго предстоит возиться.
  10. 1. Вот что получилось: begin Soul_gem_infuser short controlshort buttonshort typeshort stateshort controlvar If ( MenuMode == 1 )ReturnEndif if ( OnActivate == 1 )if ( control == 0 ) if ( Player->GetItemCount Gold_001 >= 25 )MessageBox "Этот аппарат позволяет фокусировать потоки метафизических энергий для изготовления цельных камней душ из отдельных фрагментов кристаллических морфолитов. Какой тип камня душ вы хотите изготовить? (Цена одного использования алтаря - 25 септимов.)", "Крохотный (2 фрагмента)", "Маленький (4 фрагмента)", "Обычный (6 фрагментов)", "Большой (8 фрагментов)", "Великий (10 фрагментов)", "Отмена"set control to 1elseMessageBox "У вас недостаточно золота чтобы воспользоваться алтарем. Цена одного использования - 25 септимов."set control to 0endifendifendif if ( control == 0 )returnendif if ( control == 1 )set button to GetButtonPressedif ( button == -1 )returnendif elseif ( button == 0)player->removeitem "gold_001" 25set control to 2 elseif ( button == 1)player->removeitem "gold_001" 25set control to 4 elseif ( button == 2)player->removeitem "gold_001" 25set control to 6 elseif ( button == 3)player->removeitem "gold_001" 25set control to 8 elseif ( button == 4)player->removeitem "gold_001" 25set control to 10 elseif ( button == 5)set control to 0endif Set state to ( player->getitemcount "_GN_Shard_Rock_4_B" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_4_g" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_4_o" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_4_p" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_4_r" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_4_w" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_5_B" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_5_g" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_5_o" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_5_p" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_5_r" )Set state to ( state + player->getitemcount "_GN_Shard_Rock_5_w" ) If ( state < control )MessageBox "У вас недостаточно осколков кристаллов для изготовления камня душ"Set control to 0ReturnElseSet controlvar to controlEndif If ( controlvar > 0 )Set controlvar to ( controlvar - 1 )If ( player->getitemcount "_GN_Shard_Rock_4_B" )Player->removeitem _GN_Shard_Rock_4_B 1Elseif ( player-> getitemcount "_GN_Shard_Rock_4_g" )Player->removeitem _GN_Shard_Rock_4_g 1Elseif ( player-> getitemcount "_GN_Shard_Rock_4_o" )Player->removeitem _GN_Shard_Rock_4_o 1Elseif ( player-> getitemcount "_GN_Shard_Rock_4_p" )Player->removeitem _GN_Shard_Rock_4_p 1Elseif ( player-> getitemcount "_GN_Shard_Rock_4_r" )Player->removeitem _GN_Shard_Rock_4_r 1Elseif ( player-> getitemcount "_GN_Shard_Rock_4_w" )Player->removeitem _GN_Shard_Rock_4_w 1If ( player-> getitemcount "_GN_Shard_Rock_5_B" )Player->removeitem _GN_Shard_Rock_5_B 1Elseif ( player-> getitemcount "_GN_Shard_Rock_5_g" )Player->removeitem _GN_Shard_Rock_5_g 1Elseif ( player-> getitemcount "_GN_Shard_Rock_5_o" )Player->removeitem _GN_Shard_Rock_5_o 1Elseif ( player-> getitemcount "_GN_Shard_Rock_5_p" )Player->removeitem _GN_Shard_Rock_5_p 1Elseif ( player-> getitemcount "_GN_Shard_Rock_5_r" )Player->removeitem _GN_Shard_Rock_5_r 1Elseif ( player-> getitemcount "_GN_Shard_Rock_5_w" )Player->removeitem _GN_Shard_Rock_5_w 1endifendifendif If ( controlvar == 0 )If ( control > 0 )If control == 2 player->AddItem Misc_SoulGem_Petty, 1ElseIf control == 4 player->AddItem Misc_SoulGem_Lesser, 1ElseIf control == 6 player->AddItem Misc_SoulGem_Common, 1ElseIf control == 8 player->AddItem Misc_SoulGem_Greater, 1ElseIf control == 10 player->AddItem Misc_SoulGem_Grand, 1MessageBox "Вы успешно изготовили камень душ."PlaySound "enchant success"Set control to 0EndifEndifendif End В ответ на запрос о великом камне душ (10 фрагментов) забирается один осколок, первого типа, затем алтарь перестает реагировать на попытки активации вообще. Видимо, выпилила из скрипта чего-то лишнего. 2. По палатке: begin tent2_pickup_test short buttonshort state if ( CellChanged == 0 )If ( GetSoundPlaying "chimes wood" == 0 )PlayLoopSound3DVP "chimes wood", 1.0, 1.0endifendif If ( GetDisabled )SetDelete 1Returnendif if ( MenuMode == 1 )returnendif if ( state == 0 )if ( OnActivate == 1 )set button to 3set state to 1elseReturnendifendif if ( state == 1 )messagebox "Что вы хотите сделать?" "Ничего" "Свернуть тент"set state to 10endif if ( state == 10 )set button to GetButtonPressedif ( button == -1 )returnelseif ( button == 0 )returnset state to 0elseif ( button == 1 )DisablePlaceAtMe "ashfall_tent_ashl_misc" 1 0 0if ( GetSoundPlaying "chimes wood" == 1 )StopSound "chimes wood"set state to 0endifendifendifendif end Звука нет. Появляется он только если повесить скрипт на миск-айтем (то бишь не палатку, а свернутый тюк). Загвоздка в том, что после установки тента миск дисейблится и StopSound привязать к нему, как я понимаю, уже не выйдет. Есть вариант ставить вместе с тентом активатор со звуком и дисейблить его когда дисейблится тент. Жизнеспособна ли вообще конструкция вида "if ( "id объекта"->GetDisabled == 1 )disableendif" ?
  11. А единственный забирать не требуется, там же расчет идет начиная с двух. Просто не могу понять как он тогда будет забирать 4, 6 и.т.п, не вижу чтобы это было где-то прописано.
  12. Возникли непонятки с парой моментов. ##1 это, как я понимаю, id одного из типов осколков. А что есть ###? И что в таком случае делать с остальными типами осколков чтобы они тоже суммировались? Почему именно по одному?
  13. 1. Так? begin tent2_pickup_test short buttonshort state if ( MenuMode == 1 )returnendif If ( GetDisabled )SetDelete 1Returnendif if ( CellChanged == 0 )If ( GetSoundPlaying "chimes wood" == 0 )PlayLoopSound3DVP "chimes wood", 1.0, 1.0endifendif if ( state == 0 )if ( OnActivate == 1 )set button to 3set state to 1elseReturnendifendif if ( state == 1 )messagebox "Что вы хотите сделать?" "Ничего" "Свернуть тент"set state to 10endif if ( state == 10 )set button to GetButtonPressedif ( button == -1 )returnelseif ( button == 0 )returnset state to 0elseif ( button == 1 )DisablePlaceAtMe "ashfall_tent_ashl_misc" 1 0 0if ( GetSoundPlaying "chimes wood" == 1 )StopSound "chimes wood"set state to 0endifendifendifendif end Повесила этот скрипт на активатор, который появляется после дисейбла миска. Звука нет. 2. На призванной броне и призванном оружии, отнимаются они же. С целью предотвращения багоюзинга с остающимися в инвентаре призванными предметами. 3. В общем, имеется 12 типов осколков, отличающихся цветом и алхимическими свойствами (поэтому важно сохранить индивидуальный id для каждого типа). И есть приспособление, которому можно скормить эти осколки и получить взамен цельный камень душ любого типа, в зависимости от количества осколков - крохотный за 2, обычный за 4 и.т.д. по возрастающей. Сейчас это срабатывает только для одного типа осколков, остальные разновидности скриптом игнорируются - даже если в инвентаре лежит куча осколков всех типов. Забираются только те, что стоят первыми в списке. elseif ( control == 2 )if ( ( player->GetItemCount "_GN_Shard_Rock_4_B" ) < 2 ) set control to 3 elseplayer->RemoveItem _GN_Shard_Rock_4_B, 2 set control to 7set type to 2endif Вот на этот блок есть реакция. В ответ на 2 отданных осколка _GN_Shard_Rock_4_B выдается камень душ. А в ответ на _GN_Shard_Rock_4_g и дальше - игнор и сообщение про "у вас нет достаточного кол-ва осколков", хотя по факту они есть. В идеале хотелось бы чтобы камень душ выдавался при наличии требуемого количества ЛЮБЫХ осколков, независимо от их конфигурации. Если такое не потребует полного переписывания скрипта. На крайняк пусть группирует по типам, но чтобы это работало для ВСЕХ типов, а не только для одного. Надеюсь, получилось хоть немного прояснить. А не запутать еще сильнее.)
  14. 1.Скрипт для камней заработал после некоторой перестановки, но есть одна проблема - команда срабатывает только для первого в списке типа осколков, другие алтарь в инвентаре не видит и выводит сообщение про "у вас недостаточно фрагментов камней". Попробовала разбить на отдельные блоки, энивей не работает: elseif ( control == 2 )if ( ( player->GetItemCount "_GN_Shard_Rock_4_B" ) < 2 ) set control to 3 elseplayer->RemoveItem _GN_Shard_Rock_4_B, 2 set control to 7set type to 2endif elseif ( control == 2 ) if ( ( player->GetItemCount "_GN_Shard_Rock_4_g" ) < 2 ) set control to 3 elseplayer->RemoveItem _GN_Shard_Rock_4_g, 2 set control to 7set type to 2endif elseif ( control == 2 ) if ( ( player->GetItemCount "_GN_Shard_Rock_4_o" ) < 2 ) set control to 3 elseplayer->RemoveItem _GN_Shard_Rock_4_o, 2 set control to 7set type to 2endif elseif ( control == 2 ) if ( ( player->GetItemCount "_GN_Shard_Rock_4_p" ) < 2 ) set control to 3 elseplayer->RemoveItem _GN_Shard_Rock_4_p, 2 set control to 7set type to 2endif elseif ( control == 2 ) if ( ( player->GetItemCount "_GN_Shard_Rock_4_r" ) < 2 ) set control to 3 elseplayer->RemoveItem _GN_Shard_Rock_4_r, 2 set control to 7set type to 2endif elseif ( control == 2 ) if ( ( player->GetItemCount "_GN_Shard_Rock_4_w" ) < 2 ) set control to 3 elseplayer->RemoveItem _GN_Shard_Rock_4_w, 2 set control to 7set type to 2endif elseif ( control == 2 ) if ( ( player->GetItemCount "_GN_Shard_Rock_5_B" ) < 2 ) set control to 3 else player->RemoveItem _GN_Shard_Rock_5_B, 2 set control to 7set type to 2endif elseif ( control == 2 ) if ( ( player->GetItemCount "_GN_Shard_Rock_5_g" ) < 2 ) set control to 3 elseplayer->RemoveItem _GN_Shard_Rock_5_g, 2 set control to 7set type to 2endif elseif ( control == 2 ) if ( ( player->GetItemCount "_GN_Shard_Rock_5_o" ) < 2 ) set control to 3 elseplayer->RemoveItem _GN_Shard_Rock_5_o, 2 set control to 7set type to 2endif elseif ( control == 2 ) if ( ( player->GetItemCount "_GN_Shard_Rock_5_p" ) < 2 ) set control to 3 elseplayer->RemoveItem _GN_Shard_Rock_5_p, 2 set control to 7set type to 2endif elseif ( control == 2 ) if ( ( player->GetItemCount "_GN_Shard_Rock_5_r" ) < 2 ) set control to 3 elseplayer->RemoveItem _GN_Shard_Rock_5_r, 2 set control to 7set type to 2endif elseif ( control == 2 ) if ( ( player->GetItemCount "_GN_Shard_Rock_5_w" ) < 2 ) set control to 3 else player->RemoveItem _GN_Shard_Rock_5_w, 2 set control to 7set type to 2endif В идеале хотелось бы именно суммировать, т.е. чтобы алтарь реагировал только на количество осколков, независимо от их комбинаций, и выдавал камень душ в обмен не только на сочетания вида b+b, но также и например b+g. Есть ли возможность провернуть подобное, не перекраивая скрипт с ног до головы? 2. По скрипту палаток. Звук теперь вообще не проигрывается. Скорее всего из-за того что я какой-то из блоков пихаю куда-то не в то место: begin tent2_pickup_test short buttonshort state if ( MenuMode == 1 )returnendif if ( CellChanged == 0 )If ( GetSoundPlaying "chimes wood" == 0 )PlayLoopSound3DVP "chimes wood", 1.0, 1.0endifendif if ( state == 0 )if ( OnActivate == 1 )set button to 3set state to 1elseReturnendifendif if ( state == 1 )messagebox "Что вы хотите сделать?" "Ничего" "Свернуть тент"set state to 10endif if ( state == 10 )set button to GetButtonPressedif ( button == -1 )returnelseif ( button == 0 )returnset state to 0elseif ( button == 1 )DisablePlaceAtMe "ashfall_tent_ashl_misc" 1 0 0StopSound "chimes wood"set state to 0endifendifendif If ( GetDisabled )SetDelete 1Returnendif end
  15. Там отдельный скрипт на установку палатки, и в нем проигрывается звук, видимо дело в этом. Но иначе тут сделать не выйдет, дело в том что палатка, которую устанавливаешь, и палатка, которую сворачиваешь, это два разных объекта: первая - миск-айтем (свернутый тюк, который дисейблится и на его месте появляется активатор), вторая - собственно этот активатор, с которым все происходит аналогичным образом - disable и PlaceAtMe. Вот скрипт установки: begin tent2_setup_test short buttonshort state if ( MenuMode == 1 )returnendif if ( state == 0 )if ( OnActivate == 1 )set button to 3set state to 1elseReturnendifendif if ( state == 1 )messagebox "Что вы хотите сделать?" "Установить тент" "Поднять"set state to 10endif if ( state == 10 )set button to GetButtonPressedif ( button == -1 )returnelseif ( button == 0 )DisablePlaceAtMe "Ashfall_tent_ashl_active" 1 0 0if ( CellChanged == 0 )PlayLoopSound3DVP "chimes wood", 1.0, 1.0set state to 0elseif ( button == 1 )activateset state to 0endifendifendif end Охх, ну попробую разобраться, спасибо. Отпишу позже по этому скрипту.
  16. Доброго времени суток! Нуждаюсь в помощи сведущих людей, которые скажут что я делаю не так и как надо. В скриптинге я, мягко говоря, дилетант, так что за нубские вопросы заранее пардоньте. Сначала что попроще: 1. Скрипт походной палатки, в комплекте с которой идет "поющий ветер". При сворачивании палатки звук должен исчезать, но он остается. Что нужно изменить чтобы звук переставал проигрываться сразу после того как палатка убрана? begin tent2_pickup_test short buttonshort state if ( MenuMode == 1 )returnendif if ( state == 0 )if ( OnActivate == 1 )set button to 3set state to 1elseReturnendifendif if ( state == 1 )messagebox "Что вы хотите сделать?" "Ничего" "Свернуть тент"set state to 10endif if ( state == 10 )set button to GetButtonPressedif ( button == -1 )returnelseif ( button == 0 )returnset state to 0elseif ( button == 1 )DisablePlaceAtMe "ashfall_tent_ashl_misc" 1 0 0StopSound "chimes wood"set state to 0endifendifendif end 2. Скрипт, вешающийся на предмет, чтобы по прошествии определенного времени этот предмет исчезал из инвентаря. Но он не работает. Что тут не так? begin bound_cuirass_test_scr float timer set timer to ( timer + GetSecondsPassed) if timer >= 10 if ( Player->GetItemCount bound_cuirass >= 1 )player->removeitem "bound_cuirass" 1 endifendif end 3. И напоследок самое заковыристое. Скрипт, висящий на активаторе - при наличии в инвентаре фрагментов кристаллов любой разновидности (всего их 12) из них можно изготовить камень душ (любого типа, в зависимости от количества имеющихся фрагментов - крохотный, большой и.т.д.). Одно использование активатора стоит 25 септимов. Результат должен быть одинаковым вне зависимости от того какая разновидность фрагментов есть у игрока - т.е. камень душ должен выдаваться в обмен на любое сочетание разновидностей фрагментов, значение имеет только их количество. Скрипт был собран мной на основе двух других похожих, ибо самостоятельно написать что-то подобное знаний у меня недостаточно, так что меня совсем не удивляет что в итоге это поделие не работает. При активации высвечивается меню выбора с вопросом про "какой тип камней душ вы хотите изготовить?", и после нажатия на одну из кнопок больше ничего не происходит. Как заставить это работать? begin Soul_gem_infuser short controlshort buttonshort type If ( MenuMode == 1 )ReturnEndif if ( OnActivate == 1 )if ( control == 0 ) if ( Player->GetItemCount Gold_001 >= 25 )MessageBox "Этот аппарат позволяет фокусировать потоки метафизических энергий для изготовления цельных камней душ из отдельных фрагментов кристаллических морфолитов. Какой тип камня душ вы хотите изготовить? (Цена одного использования алтаря - 25 септимов.)", "Крохотный (2 фрагмента)", "Маленький (4 фрагмента)", "Обычный (6 фрагментов)", "Большой (8 фрагментов)", "Великий (10 фрагментов)", "Отмена"set control to 1elseMessageBox "У вас недостаточно золота чтобы воспользоваться алтарем. Цена одного использования - 25 септимов."set control to 0endifendifendif if ( control == 0 )returnendif if ( control == 1 )set button to GetButtonPressedif ( button == -1 )returnelseif ( button == 0)player->removeitem "gold_001" 25set control to 2 elseif ( button == 1)player->removeitem "gold_001" 25set control to 4 elseif ( button == 2)player->removeitem "gold_001" 25set control to 6 elseif ( button == 3)player->removeitem "gold_001" 25set control to 8 elseif ( button == 4)player->removeitem "gold_001" 25set control to 10 elseif ( button == 5)player->removeitem "gold_001" 25set control to 0endif elseif ( control == 2 )if ( ( player->GetItemCount "_GN_Shard_Rock_4_B" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_g" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_o" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_p" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_r" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_w" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_B" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_g" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_o" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_p" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_r" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_w" ) < control ) set control to 3elseplayer->RemoveItem _GN_Shard_Rock_4_B, 2 elseplayer->RemoveItem _GN_Shard_Rock_4_g, 2 elseplayer->RemoveItem _GN_Shard_Rock_4_o, 2 elseplayer->RemoveItem _GN_Shard_Rock_4_p, 2 elseplayer->RemoveItem _GN_Shard_Rock_4_r, 2 elseplayer->RemoveItem _GN_Shard_Rock_4_w, 2 else player->RemoveItem _GN_Shard_Rock_5_B, 2 elseplayer->RemoveItem _GN_Shard_Rock_5_g, 2 elseplayer->RemoveItem _GN_Shard_Rock_5_o, 2 elseplayer->RemoveItem _GN_Shard_Rock_5_p, 2 elseplayer->RemoveItem _GN_Shard_Rock_5_r, 2 elseplayer->RemoveItem _GN_Shard_Rock_5_w, 2 set control to 7set type to 2endif elseif ( control == 4 )if ( ( player->GetItemCount "_GN_Shard_Rock_4_B" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_g" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_o" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_p" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_r" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_w" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_B" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_g" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_o" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_p" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_r" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_w" ) < control )set control to 3elseplayer->RemoveItem _GN_Shard_Rock_4_B, 4 elseplayer->RemoveItem _GN_Shard_Rock_4_g, 4 elseplayer->RemoveItem _GN_Shard_Rock_4_o, 4 elseplayer->RemoveItem _GN_Shard_Rock_4_p, 4 elseplayer->RemoveItem _GN_Shard_Rock_4_r, 4 elseplayer->RemoveItem _GN_Shard_Rock_4_w, 4 else player->RemoveItem _GN_Shard_Rock_5_B, 4 elseplayer->RemoveItem _GN_Shard_Rock_5_g, 4 elseplayer->RemoveItem _GN_Shard_Rock_5_o, 4 elseplayer->RemoveItem _GN_Shard_Rock_5_p, 4 elseplayer->RemoveItem _GN_Shard_Rock_5_r, 4 elseplayer->RemoveItem _GN_Shard_Rock_5_w, 4 set control to 7set type to 4endif elseif ( control == 6 )if ( ( player->GetItemCount "_GN_Shard_Rock_4_B" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_g" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_o" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_p" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_r" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_w" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_B" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_g" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_o" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_p" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_r" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_w" ) < control ) set control to 3elseplayer->RemoveItem _GN_Shard_Rock_4_B, 6 elseplayer->RemoveItem _GN_Shard_Rock_4_g, 6 elseplayer->RemoveItem _GN_Shard_Rock_4_o, 6 elseplayer->RemoveItem _GN_Shard_Rock_4_p, 6 elseplayer->RemoveItem _GN_Shard_Rock_4_r, 6 elseplayer->RemoveItem _GN_Shard_Rock_4_w, 6 else player->RemoveItem _GN_Shard_Rock_5_B, 6 elseplayer->RemoveItem _GN_Shard_Rock_5_g, 6 elseplayer->RemoveItem _GN_Shard_Rock_5_o, 6 elseplayer->RemoveItem _GN_Shard_Rock_5_p, 6 elseplayer->RemoveItem _GN_Shard_Rock_5_r, 6 elseplayer->RemoveItem _GN_Shard_Rock_5_w, 6 set control to 7set type to 6endif elseif ( control == 8 )if ( ( player->GetItemCount "_GN_Shard_Rock_4_B" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_g" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_o" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_p" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_r" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_w" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_B" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_g" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_o" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_p" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_r" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_w" ) < control )set control to 3elseplayer->RemoveItem _GN_Shard_Rock_4_B, 8 elseplayer->RemoveItem _GN_Shard_Rock_4_g, 8 elseplayer->RemoveItem _GN_Shard_Rock_4_o, 8 elseplayer->RemoveItem _GN_Shard_Rock_4_p, 8 elseplayer->RemoveItem _GN_Shard_Rock_4_r, 8 elseplayer->RemoveItem _GN_Shard_Rock_4_w, 8 else player->RemoveItem _GN_Shard_Rock_5_B, 8 elseplayer->RemoveItem _GN_Shard_Rock_5_g, 8 elseplayer->RemoveItem _GN_Shard_Rock_5_o, 8 elseplayer->RemoveItem _GN_Shard_Rock_5_p, 8 elseplayer->RemoveItem _GN_Shard_Rock_5_r, 8 elseplayer->RemoveItem _GN_Shard_Rock_5_w, 8set control to 7set type to 8endif elseif ( control == 10 )if ( ( player->GetItemCount "_GN_Shard_Rock_4_B" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_g" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_o" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_p" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_r" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_4_w" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_B" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_g" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_o" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_p" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_r" ) < control ) elseif ( ( player->GetItemCount "_GN_Shard_Rock_5_w" ) < control ) set control to 3elseplayer->RemoveItem _GN_Shard_Rock_4_B, 10 elseplayer->RemoveItem _GN_Shard_Rock_4_g, 10 elseplayer->RemoveItem _GN_Shard_Rock_4_o, 10 elseplayer->RemoveItem _GN_Shard_Rock_4_p, 10 elseplayer->RemoveItem _GN_Shard_Rock_4_r, 10 elseplayer->RemoveItem _GN_Shard_Rock_4_w, 10 else player->RemoveItem _GN_Shard_Rock_5_B, 10 elseplayer->RemoveItem _GN_Shard_Rock_5_g, 10 elseplayer->RemoveItem _GN_Shard_Rock_5_o, 10 elseplayer->RemoveItem _GN_Shard_Rock_5_p, 10 elseplayer->RemoveItem _GN_Shard_Rock_5_r, 10 elseplayer->RemoveItem _GN_Shard_Rock_5_w, 10 set control to 7set type to 10endif elseif ( control == 3 );if they do not have enough fragmentsMessageBox "У вас недостаточно фрагментов кристаллов чтобы изготовить камень душ.", "OK"set control to 0 elseif ( control == 7 )set control to 11endif elseif ( control == 11 );SuccessMessageBox "Вы успешно изготовили камень душ.", "OK"if ( type == 2 )player->AddItem Misc_SoulGem_Petty, 1 player->removeitem "gold_001" 25elseif ( type == 4 )player->AddItem Misc_SoulGem_Lesser, 1 player->removeitem "gold_001" 25elseif ( type == 6 )player->AddItem Misc_SoulGem_Common, 1 player->removeitem "gold_001" 25elseif ( type == 8 )player->AddItem Misc_SoulGem_Greater, 1 player->removeitem "gold_001" 25elseif ( type == 10 )player->AddItem Misc_SoulGem_Grand, 1 player->removeitem "gold_001" 25endif;Play a successful sound herePlaySound "enchant success"set control to 0 endifEnd Спасибо за внимание, очень надеюсь на вашу помощь.
×
×
  • Создать...