Привет всем, делаю свою модификацию и не могу понять как сделать. В меню верстака сделал переход на вторую страницу, типа сделал скрипт на вторую страницу, но в ней ничего не работает кроме кнопки выйти. Что я не так сделал, или как закрепить скрипт за второй страницей?
scn SchematicsWorkbenchScript
;workbench to create customized weapons ; 1. Which schematics does the player have? Display as buttons. ; 2. If has items needed to create, do it; otherwise display "error" message
short HasItems short Button
short item1 short item2 short item3 short item4
float weaponCondition ; calculate what condition the weapon is at when created
; how many of these weapons has the player made? ;short countArmorVault101Security ;short countBottlecap ;short countDartGun ;short countDeathclaw ;short countNuka ;short countRailway ;short countRockit ;short countShishkebab
Begin OnActivate if IsActionRef player == 1 ; display message box of possible weapons set HasItems to 0
if GetHasNote SchematicsArmorVault101SecurityNote == 1 || GetHasNote SchematicsBottlecapMineNote == 1 || GetHasNote SchematicsDartGunNote == 1 || GetHasNote SchematicsDeathclawGauntletNote == 1 set HasItems to 1 endif if GetHasNote SchematicsNukaCocktailNote == 1 || GetHasNote SchematicsRailwayRifleNote == 1 || GetHasNote SchematicsRockitLauncherNote == 1 || GetHasNote SchematicsShishkebabNote == 1 set HasItems to 1 endif if GetHasNote SchematicsArmorVault101SecurityNote10 == 1 || GetHasNote SchematicsBottlecapMineNote10 == 1 || GetHasNote SchematicsDartGunNote10 == 1 || GetHasNote SchematicsDeathclawGauntletNote10 == 1 set HasItems to 1 endif if GetHasNote SchematicsNukaCocktailNote10 == 1 || GetHasNote SchematicsRailwayRifleNote10 == 1 || GetHasNote SchematicsRockitLauncherNote10 == 1 || GetHasNote SchematicsShishkebabNote10 == 1 set HasItems to 1 endif if GetHasNote SchematicsArmorVault101SecurityNote20 == 1 || GetHasNote SchematicsBottlecapMineNote20 == 1 || GetHasNote SchematicsDartGunNote20 == 1 || GetHasNote SchematicsDeathclawGauntletNote20 == 1 || GetHasNote SchematicsRockitLauncherNote30 == 1 set HasItems to 1 endif if GetHasNote SchematicsNukaCocktailNote20 == 1 || GetHasNote SchematicsRailwayRifleNote20 == 1 || GetHasNote SchematicsRockitLauncherNote20 == 1 || GetHasNote SchematicsShishkebabNote20 == 1 set HasItems to 1 endif
;If the player has made one of each item, add Achievement 40 if countWeapAchievement == 0 if countBottlecap >= 1 && countDartgun >= 1 && countDeathclaw >= 1 && countNuka >= 1 && countRailway >= 1 && countRockit >= 1 && countShishkebab >= 1 addachievement 40 set countWeapAchievement to 1 endif endif
else ; 4. failure message set item1 to player.GetItemCount LunchBox set item2 to player.GetItemCount CherryBomb set item3 to player.GetItemCount SensorModule set item4 to player.GetItemCount Caps001
;If the player has made one of each item, add Achievement 40 if countWeapAchievement == 0 if countBottlecap >= 1 && countDartgun >= 1 && countDeathclaw >= 1 && countNuka >= 1 && countRailway >= 1 && countRockit >= 1 && countShishkebab >= 1 addachievement 40 set countWeapAchievement to 1 endif endif
else ;failure message set item1 to player.GetItemCount PaintGun set item2 to player.GetItemCount RadscorpionPoisonGland set item3 to player.GetItemCount ToyCar set item4 to player.GetItemCount SurgicalTubing ShowMessage SchematicsWorkbenchFailureDartGunMsg, item1, item2, item3, item4 ShowMessage SchematicsWorkbenchMsg endif endif elseif button == 4 ; deathclaw gauntlet ; 1. check for schematics if GetHasNote SchematicsDeathclawGauntletNote == 0 && GetHasNote SchematicsDeathclawGauntletNote10 == 0 && GetHasNote SchematicsDeathclawGauntletNote20 == 0 ShowMessage SchematicsWorkbenchFailureGenericMsg else ; 2. check for components if ( player.GetItemCount WonderGlue > 0 ) && ( player.GetItemCount DeathclawHand > 0 ) && ( player.GetItemCount LeatherBelt > 0 ) && ( player.GetItemCount MedicalBrace > 0 ) ; 3. make it ;message "Deathclaw Gauntlet created." ShowMessage SchematicsWorkbenchSuccessDeathclawMsg player.RemoveItem WonderGlue 1 1 player.RemoveItem DeathclawHand 1 1 player.RemoveItem LeatherBelt 1 1 player.RemoveItem MedicalBrace 1 1 ; calculate condition set weaponCondition to (weaponCondition * countDeathclawBonus) if weaponCondition > 100 set weaponCondition to 100 endif player.AddItemHealthPercent WeapDeathclawGauntlet 1 weaponCondition PlaySound UIRepairWeapon ; increment count ModPCMiscStat "Weapons Created" 1 set countDeathclaw to countDeathclaw + 1
;If the player has made one of each item, add Achievement 40 if countWeapAchievement == 0 if countBottlecap >= 1 && countDartgun >= 1 && countDeathclaw >= 1 && countNuka >= 1 && countRailway >= 1 && countRockit >= 1 && countShishkebab >= 1 addachievement 40 set countWeapAchievement to 1 endif endif
else ; 4. failure message set item1 to player.GetItemCount WonderGlue set item2 to player.GetItemCount DeathclawHand set item3 to player.GetItemCount LeatherBelt set item4 to player.GetItemCount MedicalBrace
;If the player has made one of each item, add Achievement 40 if countWeapAchievement == 0 if countBottlecap >= 1 && countDartgun >= 1 && countDeathclaw >= 1 && countNuka >= 1 && countRailway >= 1 && countRockit >= 1 && countShishkebab >= 1 addachievement 40 set countWeapAchievement to 1 endif endif
else ; 4. failure message set item1 to player.GetItemCount MS05NukaColaQtm set item2 to player.GetItemCount TinCan01 set item3 to player.GetItemCount Turpentine set item4 to player.GetItemCount AbraxoCleaner
;If the player has made one of each item, add Achievement 40 if countWeapAchievement == 0 if countBottlecap >= 1 && countDartgun >= 1 && countDeathclaw >= 1 && countNuka >= 1 && countRailway >= 1 && countRockit >= 1 && countShishkebab >= 1 addachievement 40 set countWeapAchievement to 1 endif endif
else ; 4. failure message set item1 to player.GetItemCount Crutch set item2 to player.GetItemCount SteamGaugeAssembly set item3 to player.GetItemCount FissionBattery set item4 to player.GetItemCount PressureCooker
;If the player has made one of each item, add Achievement 40 if countWeapAchievement == 0 if countBottlecap >= 1 && countDartgun >= 1 && countDeathclaw >= 1 && countNuka >= 1 && countRailway >= 1 && countRockit >= 1 && countShishkebab >= 1 addachievement 40 set countWeapAchievement to 1 endif endif
else ; 4. failure message set item1 to player.GetItemCount VacuumCleaner set item2 to player.GetItemCount LeafBlower set item3 to player.GetItemCount FirehoseNozzle set item4 to player.GetItemCount Conductor
;If the player has made one of each item, add Achievement 40 if countWeapAchievement == 0 if countBottlecap >= 1 && countDartgun >= 1 && countDeathclaw >= 1 && countNuka >= 1 && countRailway >= 1 && countRockit >= 1 && countShishkebab >= 1 addachievement 40 set countWeapAchievement to 1 endif endif
else ; 4. failure message set item1 to player.GetItemCount MotorcycleGasTank set item2 to player.GetItemCount PilotLight set item3 to player.GetItemCount LawnmowerBlade set item4 to player.GetItemCount MotorcycleHandbrake
;SchematicsWorkbenchArmorVault101SecurityMsg to create customized weapons ; 1. Which schematics does the player have? Display as buttons. ; 2. If has items needed to create, do it; otherwise display "error" message
short HasItems short Button
short item1 short item2 short item3 short item4
float weaponCondition ; calculate what condition the weapon is at when created
; how many of these weapons has the player made? ;short countArmorVault101SecurityI ;short countArmorVault101SecurityII ;short countArmorVault101SecurityIII
Begin OnActivate if IsActionRef player == 1 ; display message box of possible weapons set HasItems to 0
if GetHasNote SchematicsArmorVault101SecurityNote == 1 set HasItems to 1 endif if GetHasNote SchematicsArmorVault101SecurityNote10 == 1 set HasItems to 1 endif if GetHasNote SchematicsArmorVault101SecurityNote20 == 1 set HasItems to 1 endif
if ( Button >0 ) ; base condition is just repair skill set weaponCondition to (player.getav Repair)/100
if button == 1 ; ArmorVault101Security ; 1. check for schematics if GetHasNote SchematicsArmorVault101SecurityNote == 0 && GetHasNote SchematicsArmorVault101SecurityNote10 == 0 && GetHasNote SchematicsArmorVault101SecurityNote20 == 0 ShowMessage SchematicsWorkbenchFailureGenericMsg else ; 2. check for components if ( player.GetItemCount ArmorVault101Security > 0 ) && ( player.GetItemCount SpareParts > 0 ) && ( player.GetItemCount Iron > 0 ) && ( player.GetItemCount NukaCola >= 1 ) ; 3. make it ShowMessage SchematicsWorkbenchSuccessArmorVault101SecurityMsg player.RemoveItem ArmorVault101Security 1 1 player.RemoveItem SpareParts 3 1 player.RemoveItem Iron 1 1 player.RemoveItem NukaCola 1 1 ; Mines and Grenades are always 100% if player.gethasNote SchematicsArmorVault101SecurityNote player.AddItemHealthPercent ArmorVault101Securityap 1 100 elseif player.gethasNote SchematicsArmorVault101SecurityNote10 player.AddItemHealthPercent ArmorVault101Securityap 2 100 elseif player.gethasNote SchematicsArmorVault101SecurityNote20 player.AddItemHealthPercent ArmorVault101Securityap 3 100 endif PlaySound UIRepairWeapon ; increment count ModPCMiscStat "Weapons Created" 1 set countBottlecap to countBottlecap + 1
;If the player has made one of each item, add Achievement 40 if countWeapAchievement == 0 if countBottlecap >= 1 && countDartgun >= 1 && countDeathclaw >= 1 && countNuka >= 1 && countRailway >= 1 && countRockit >= 1 && countShishkebab >= 1 addachievement 40 set countWeapAchievement to 1 endif endif
else ; 4. failure message set item1 to player.GetItemCount ArmorVault101Security set item2 to player.GetItemCount SpareParts set item3 to player.GetItemCount Iron set item4 to player.GetItemCount NukaCola
при попытке открыть ГЕКК вылезает такое предупреждение
Спасибо о сообщении ошибок, попытаюсь их исправить. А на счет (при попытке открыть ГЕКК вылезает такое предупреждение) Это наверное я превысил лимит символов в описании. Игра у меня все видит. И это мой первый проект, я начинающий мододел. Многого не знаю и не понимаю. Посмотрел пару гайдов и начал пробовать реализовывать свою идею
скриншоты большого размера надо прятать под спойлер
Спасибо буду иметь в виду.
(И все-таки - свой второй скрипт на что повесил?) - Я его не закреплял, на верстаке только один слот на скрипт. И думал что в скрипте прописывается привязка к message box.
Art69
Изменение репутации для пользователя divine2991
divine2991Offline
Сообщение №4
| Тема: Помощь по моддингу
написано: 5 ноября 2019, 20:28
| Отредактировано: ApeX - 5 ноября 2019, 20:50
КсюXa, Большое спасибо за помощь. Я понимаю как создать свою схему, note, SchematicsItemSCRIPT. Может я неправильно выразился? Попробую еще раз чтобы было понятнее Как-то немножко грубовато звучит но это не так blush: Я не понимаю как сделать рабочей вторую страницу меню. Вот например Message box 1 нажав на клавишу (перейти на вторую страницу меню) затем открылось второе меню, Message box 2 и чтобы там было свое меню со своим выбором. Думал что для этого нужен отдельный скрипт. Пробовал что-то найти, и наткнулся на этот диалог, но так и ничего не понял. http://images.vfl.ru/ii/1572983867/4677f43a/28460245.png
не стоит править ванильный верстак. Сделай свой отдельный, со своим скриптом, поставь в доме игрока в Мегатоне где-нибудь рядом с родным верстаком и будет счастье.
Спасибо вы мне очень помогли. Для начала я наверное и так сделаю, а потом копну поглубже
Я извиняюсь, но я так понимаю что это не скрипт, а условия открытой якчейки в message box. Можно как-то написать скрипт похож на GetHasNote ? Я пробовал вписать команду (GetAV repair = 25) не работает.
Здравствуйте, помогите пожалуйста, столкнулся с проблемой которую не могу решить. Сделал мульти меню в станке (Workbench) и возникла проблема на второй странице. При выборе пунктов меню на второй странице, открывается Messga Box (ShowMessage SchematicsWorkbenchFailureGenericArmorMsg ) который невозможно закрыть, нажимаєш на копку ок и он повторно открывается и так до бесконечности.Как это исправить? Я не силен в скриптах
scn SchematicsWorkbenchScript
;workbench to create customized weapons ; 1. Which schematics does the player have? Display as buttons. ; 2. If has items needed to create, do it; otherwise display "error" message
short menu
short HasItems short Button
short item1 short item2 short item3 short item4 short item5 short item6 short item7
float weaponCondition ; calculate what condition the weapon is at when created
; how many of these weapons has the player made? ;short Menu 1 ;short countBottlecap ;short countDartGun ;short countDeathclaw ;short countNuka ;short countRailway ;short countRockit ;short countShishkebab ;short Menu 2 ;short countArmorVault101SecurityapI ;short countArmorVault101SecurityapII ;short countArmorVault101SecurityapIII
Begin OnActivate if IsActionRef player == 1 ; display message box of possible weapons set HasItems to 0
if GetHasNote SchematicsBottlecapMineNote == 1 || GetHasNote SchematicsDartGunNote == 1 || GetHasNote SchematicsDeathclawGauntletNote == 1 || GetHasNote SchematicsArmorVault101SecurityapNote == 1 set HasItems to 1 endif if GetHasNote SchematicsNukaCocktailNote == 1 || GetHasNote SchematicsRailwayRifleNote == 1 || GetHasNote SchematicsRockitLauncherNote == 1 || GetHasNote SchematicsShishkebabNote == 1 set HasItems to 1 endif if GetHasNote SchematicsBottlecapMineNote10 == 1 || GetHasNote SchematicsDartGunNote10 == 1 || GetHasNote SchematicsDeathclawGauntletNote10 == 1 || GetHasNote SchematicsArmorVault101SecurityapNote10 == 1 set HasItems to 1 endif if GetHasNote SchematicsNukaCocktailNote10 == 1 || GetHasNote SchematicsRailwayRifleNote10 == 1 || GetHasNote SchematicsRockitLauncherNote10 == 1 || GetHasNote SchematicsShishkebabNote10 == 1 set HasItems to 1 endif if GetHasNote SchematicsBottlecapMineNote20 == 1 || GetHasNote SchematicsDartGunNote20 == 1 || GetHasNote SchematicsDeathclawGauntletNote20 == 1 || GetHasNote SchematicsRockitLauncherNote30 == 1 set HasItems to 1 endif if GetHasNote SchematicsNukaCocktailNote20 == 1 || GetHasNote SchematicsRailwayRifleNote20 == 1 || GetHasNote SchematicsRockitLauncherNote20 == 1 || GetHasNote SchematicsShishkebabNote20 == 1 || GetHasNote SchematicsArmorVault101SecurityapNote20 == 1 set HasItems to 1 endif
if HasItems == 1 ShowMessage SchematicsWorkbenchMsg set menu to 1 else ShowMessage SchematicsWorkbenchNoneMsg endif endif
End
Begin GameMode
short button
set Button to GetButtonPressed if button == -1 && menu != 100 return endif
; if menu == 0 ; return ; endif
if menu == 1
if ( Button >0 ) ; base condition is just repair skill set weaponCondition to (player.getav Repair)/100
;If the player has made one of each item, add Achievement 40 if countWeapAchievement == 0 if countBottlecap >= 1 && countDartgun >= 1 && countDeathclaw >= 1 && countNuka >= 1 && countRailway >= 1 && countRockit >= 1 && countShishkebab >= 1 addachievement 40 set countWeapAchievement to 1 endif endif
else ; 4. failure message set item1 to player.GetItemCount LunchBox set item2 to player.GetItemCount CherryBomb set item3 to player.GetItemCount SensorModule set item4 to player.GetItemCount Caps001
;If the player has made one of each item, add Achievement 40 if countWeapAchievement == 0 if countBottlecap >= 1 && countDartgun >= 1 && countDeathclaw >= 1 && countNuka >= 1 && countRailway >= 1 && countRockit >= 1 && countShishkebab >= 1 addachievement 40 set countWeapAchievement to 1 endif endif
else ;failure message set item1 to player.GetItemCount PaintGun set item2 to player.GetItemCount RadscorpionPoisonGland set item3 to player.GetItemCount ToyCar set item4 to player.GetItemCount SurgicalTubing ShowMessage SchematicsWorkbenchFailureDartGunMsg, item1, item2, item3, item4 ShowMessage SchematicsWorkbenchMsg endif endif elseif button == 3 ; deathclaw gauntlet ; 1. check for schematics if GetHasNote SchematicsDeathclawGauntletNote == 0 && GetHasNote SchematicsDeathclawGauntletNote10 == 0 && GetHasNote SchematicsDeathclawGauntletNote20 == 0 ShowMessage SchematicsWorkbenchFailureGenericMsg else ; 2. check for components if ( player.GetItemCount WonderGlue > 0 ) && ( player.GetItemCount DeathclawHand > 0 ) && ( player.GetItemCount LeatherBelt > 0 ) && ( player.GetItemCount MedicalBrace > 0 ) ; 3. make it ;message "Deathclaw Gauntlet created." ShowMessage SchematicsWorkbenchSuccessDeathclawMsg player.RemoveItem WonderGlue 1 1 player.RemoveItem DeathclawHand 1 1 player.RemoveItem LeatherBelt 1 1 player.RemoveItem MedicalBrace 1 1 ; calculate condition set weaponCondition to (weaponCondition * countDeathclawBonus) if weaponCondition > 100 set weaponCondition to 100 endif player.AddItemHealthPercent WeapDeathclawGauntlet 1 weaponCondition PlaySound UIRepairWeapon ; increment count ModPCMiscStat "Weapons Created" 1 set countDeathclaw to countDeathclaw + 1
;If the player has made one of each item, add Achievement 40 if countWeapAchievement == 0 if countBottlecap >= 1 && countDartgun >= 1 && countDeathclaw >= 1 && countNuka >= 1 && countRailway >= 1 && countRockit >= 1 && countShishkebab >= 1 addachievement 40 set countWeapAchievement to 1 endif endif
else ; 4. failure message set item1 to player.GetItemCount WonderGlue set item2 to player.GetItemCount DeathclawHand set item3 to player.GetItemCount LeatherBelt set item4 to player.GetItemCount MedicalBrace
;If the player has made one of each item, add Achievement 40 if countWeapAchievement == 0 if countBottlecap >= 1 && countDartgun >= 1 && countDeathclaw >= 1 && countNuka >= 1 && countRailway >= 1 && countRockit >= 1 && countShishkebab >= 1 addachievement 40 set countWeapAchievement to 1 endif endif
else ; 4. failure message set item1 to player.GetItemCount MS05NukaColaQtm set item2 to player.GetItemCount TinCan01 set item3 to player.GetItemCount Turpentine set item4 to player.GetItemCount AbraxoCleaner
;If the player has made one of each item, add Achievement 40 if countWeapAchievement == 0 if countBottlecap >= 1 && countDartgun >= 1 && countDeathclaw >= 1 && countNuka >= 1 && countRailway >= 1 && countRockit >= 1 && countShishkebab >= 1 addachievement 40 set countWeapAchievement to 1 endif endif
else ; 4. failure message set item1 to player.GetItemCount Crutch set item2 to player.GetItemCount SteamGaugeAssembly set item3 to player.GetItemCount FissionBattery set item4 to player.GetItemCount PressureCooker
;If the player has made one of each item, add Achievement 40 if countWeapAchievement == 0 if countBottlecap >= 1 && countDartgun >= 1 && countDeathclaw >= 1 && countNuka >= 1 && countRailway >= 1 && countRockit >= 1 && countShishkebab >= 1 addachievement 40 set countWeapAchievement to 1 endif endif
else ; 4. failure message set item1 to player.GetItemCount VacuumCleaner set item2 to player.GetItemCount LeafBlower set item3 to player.GetItemCount FirehoseNozzle set item4 to player.GetItemCount Conductor
;If the player has made one of each item, add Achievement 40 if countWeapAchievement == 0 if countBottlecap >= 1 && countDartgun >= 1 && countDeathclaw >= 1 && countNuka >= 1 && countRailway >= 1 && countRockit >= 1 && countShishkebab >= 1 addachievement 40 set countWeapAchievement to 1 endif endif
else ; 4. failure message set item1 to player.GetItemCount MotorcycleGasTank set item2 to player.GetItemCount PilotLight set item3 to player.GetItemCount LawnmowerBlade set item4 to player.GetItemCount MotorcycleHandbrake
ShowMessage SchematicsWorkbenchFailureShishkebabMsg, item1, item2, item3, item4 ShowMessage SchematicsWorkbenchMsg endif endif elseif button == 8 set menu to 2 ShowMessage SchematicsWorkbenchArmorMsg return endif endif
elseif menu == 2 ; если открыта вторая страница
if button == 0 ; ArmorVault101SecurityapI
; 1. check for schematics if GetHasNote SchematicsArmorVault101SecurityapNote == 0 && GetHasNote SchematicsArmorVault101SecurityapNote10 == 0 && GetHasNote SchematicsArmorVault101SecurityapNote20 == 0 ShowMessage SchematicsWorkbenchFailureGenericArmorMsg ; 2. check for Skills elseif player.GetActorValue Repair <= 24 ShowMessage SchematicsWorkbenchSkillsNoneMsg else ; 3. check for components if ( player.GetItemCount ArmorVault101Security >= 1 ) && ( player.GetItemCount LeatherBelt >= 3 ) && ( player.GetItemCount SurgicalTubing >= 1 ) && ( player.GetItemCount Iron >= 1 ) && ( player.GetItemCount NukaCola >= 1 ) ; 4. make it ;message "ArmorVault101Security modified." ShowMessage SchematicsWorkbenchSuccessArmorVault101SecurityapIMsg player.RemoveItem ArmorVault101Security 1 player.RemoveItem LeatherBelt 3 player.RemoveItem SurgicalTubing 1 player.RemoveItem Iron 1 player.RemoveItem NukaCola 1 player.additem ArmorVault101SecurityapI 1 ; 5. failure message else( player.GetItemCount ArmorVault101Security < 1 ) || ( player.GetItemCount LeatherBelt < 3 ) || ( player.GetItemCount SurgicalTubing < 1 ) || ( player.GetItemCount Iron < 1 ) || ( player.GetItemCount NukaCola < 1 ) set item1 to player.GetItemCount ArmorVault101Security set item2 to player.GetItemCount LeatherBelt set item3 to player.GetItemCount SurgicalTubing set item4 to player.GetItemCount Iron set item5 to player.GetItemCount NukaCola
elseif button == 3 ; если нажата последняя, нижняя кнопка (Назад) set menu to 1 ; установить переменную в 1, чтобы отслеживались кнопки 1-й страницы ShowMessage SchematicsWorkbenchMsg ; показать первую страницу меню return endif endif endif
ApeX, Вы меня наверное не поняли, я хочу сделать чтобы при покупке интерьера Убежище старая кровать исчезала а новая появилось. Вот знаю как сделать чтобы новая появилось но не знаю как сделать чтобы старая исчезла.
Здравствуйте, который уже день не могу разобраться. Хочу сделать свой интерьер с покупкой как у Мойры Браун верстак, музыкальный автомат, мини лаборатория, но чтобы новая мебель покупалась у нового НПЦ. Поставил новую кровать, сделал чтобы при покупке новоя появлялось старая исчезала. Вписал HD00VaultBed в скрипт scn HD01QuestScript, в мойры все работает. Сделал свой Скрипт HD01QuestScript под нового НПЦ, но ничего не работает. Что такого особенного в квесте HD01, Как он запускает скрипт? И как это сделать правельно? Я плохо разбираюсь в гек и учусь что-то в нем делать.