И ещё заставить работать DLC05ZetaLaserAim (лазер пушки смерти из 5 длк)
Ты просто ставишь лазер пушки из 5 длц (изменяешь айди и ставишь себе, не забудь убрать скрипт с пушки если он есть). И не забываешь при проверке в игре, играть с длц5.
Команда "Rizys-mod" - разработка плагинов на Fallout.
Sazans_Theme, лично я, в моде который сейчас делаю сделал так:
Code
Float ZPos Float ZAchse
Short State
Begin OnTrigger Player if (State == 0) Set State to 1 endif End
Begin GameMode if (State == 1) Set ZPos to elev01Ref.GetPos Z Set ZAchse to ZPos +0.5 elev01Ref.SetPos Z ZAchse
Set ZPos to Player.GetPos Z Set ZAchse to ZPos +0.5 Player.SetPos Z ZAchse endif
if (State == 1) if (FinalFightMove01Ref.GetDistance, elevbotFinal01Ref <= 10) Set State to 2 endif endif End
Но в твоем случае лучше сделать по другому. Примерно так: float PosZ Float PosZt Float FfVar Float Timer
Short DoOnce
Begin GameMode
if (DoOnce == 1) Set FFVar to -1 Set Timer to (Timer + GetSecondsPassed) Set PosZ to Player.GetPos Z Set PosZt to PosZ +FFVar Player.SetPos Z PosZt endif
if (Timer >= 43) Set DoOnce to 0 Set Timer to 0 endif End
А на активаторе просто менял бы переменную в триггере: Set TriggerRef.DoOnce to 1
Команда "Rizys-mod" - разработка плагинов на Fallout.
Sazans_Theme, а почему ты не используешь движение гг в том же скрипте где и двигаешь елеватор? Просто не ясно зачем все усложнять. Можно вобще сделать всего один триггер в котором и будет двигаться все сразу, а можно и вобще было сделать без триггиров. Сейчас попробую по твоему сделать и гляну в игре.
Вот скрипт который работает у меня:
Code
scn aaaTestElevatorSwitch01Script
float PosZ Float PosZt Float FfVar Float Timer
Short DoOnce
Begin OnActivate Set DoOnce to 1 End
Begin GameMode if (DoOnce == 1) Set FFVar to 1 Set Timer to (Timer + GetSecondsPassed)
Set PosZ to Player.GetPos Z Set PosZt to PosZ +FFVar Player.SetPos Z PosZt
Set PosZ to aaaTestElevatorMoveRef.GetPos Z Set PosZt to PosZ +FFVar aaaTestElevatorMoveRef.SetPos Z PosZt endif
if (Timer >= 43) Set DoOnce to 0 Set Timer to 0 endif End
Скрипт на активаторе. После того как таймер выйдет движение прекратится и можно будет опять использовать активатор. В строчке: if (Timer >= 43) ;&& (DoOnce == 1) если нужно. У меня и без этой проверки работало но можно и сделать, лишней не будет
Единственная разница в наших скриптах, так это то, что, ты двигаешь елеватор вниз "Set FFVar to -1" (наверно поэтому гг и не двигался у меня, так как внизу у меня ландшафт) а я вверх "Set FFVar to 1".
В общем если и после такого скрипта у тебя не будет движения, тогда я не знаю.
Команда "Rizys-mod" - разработка плагинов на Fallout.
Изменение репутации для пользователя rizys-mod
rizys-modOffline
Сообщение №126
| Тема: ВОПРОСЫ по моддингу
написано: 1 октября 2012, 17:10
| Отредактировано: rizys-mod - 1 октября 2012, 17:11
Привет всем! Вот такая проблема, запутался в скрипте... Вот скрипт на еффект:
Code
begin scripteffectstart player.additem zzUnderWorldPowerArmorAdvancedNoBackpackFoodAbility 1 Set zzunderworldquest.Maintenance to 1 End
Ну и вот где запутался:
Code
Short Option Short Button Short Choice
Short AbilityNumber1 Short AbilityNumber2 Short AbilityNumber3 Short AbilityNumber4 Short AbilityNumber5
short Maintenance short MaintenanceGood short BatteryCount float CurrentBatteryLife short LastBattery short BatteryPercent short PlayerBatteries
if Maintenance == 1 set Button to GetButtonPressed if (Button == 0) ShowMessage zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesMSGBatteriesInstalled BatteryCount, PlayerBatteries ;установка батарей Set Maintenance to 2
elseif ( Button == 1 ) ShowMessage zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesMSGAbility ;выбор способностей Set Maintenance to 3 else ; Set Maintenance to 0 endif
if Maintenance == 2 set Option to GetButtonPressed if Option == 0 Player.RemoveItem FissionBattery 1 zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesRef.AddItem FissionBattery 1 set PlayerBatteries to PlayerBatteries - 1 set BatteryCount to BatteryCount + 1 set LastBattery to 0 ShowMessage zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesMSGBatteriesInstalled, BatteryCount, PlayerBatteries elseif Option == 1 zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesRef.RemoveItem FissionBattery 1 Player.AddItem FissionBattery 1 set PlayerBatteries to PlayerBatteries + 1 set BatteryCount to BatteryCount - 1 if BatteryCount == 0 set LastBattery to 1 else set LastBattery to 0 endif ShowMessage zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesMSGBatteriesInstalled, BatteryCount, PlayerBatteries elseif Option == 2 set Maintenance to 0 endif endif
if Maintenance == 3 set Choice to GetButtonPressed if Choice == 0 ;стелс if AbilityNumber1 == 0 elseif zzUnderWorldQuest.CurrentBatteryLife <= 60 && zzUnderWorldQuest.BatteryCount == 0 ShowMessage zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesMSGlow Else player.addspell StealthBoyInvisibilitySpell set AbilityNumber1 to 1 set zzUnderWorldQuest.MaintenanceGood to 1 endif
if AbilityNumber1 == 1 elseif zzUnderWorldQuest.CurrentBatteryLife <= 60 && zzUnderWorldQuest.BatteryCount == 0 ShowMessage zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesMSGlow Else player.removespell StealthBoyInvisibilitySpell set AbilityNumber1 to 0 set zzUnderWorldQuest.MaintenanceGood to 0 endif
elseif Choice == 1 ;ускорение if AbilityNumber2 == 0 elseif zzUnderWorldQuest.CurrentBatteryLife <= 60 && zzUnderWorldQuest.BatteryCount == 0 ShowMessage zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesMSGlow Else Player.Setav SpeedMult 150 set AbilityNumber2 to 1 set zzUnderWorldQuest.MaintenanceGood to 1 endif
if AbilityNumber2 == 1 elseif zzUnderWorldQuest.CurrentBatteryLife <= 60 && zzUnderWorldQuest.BatteryCount == 0 ShowMessage zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesMSGlow Else Player.Setav SpeedMult 150 set AbilityNumber2 to 0 set zzUnderWorldQuest.MaintenanceGood to 0 endif
elseif Choice == 2 ;замедление if AbilityNumber3 == 0 elseif zzUnderWorldQuest.CurrentBatteryLife <= 60 && zzUnderWorldQuest.BatteryCount == 0 ShowMessage zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesMSGlow Else sgtm 0.25 set AbilityNumber3 to 1 set zzUnderWorldQuest.MaintenanceGood to 1 endif
if AbilityNumber3 == 1 elseif zzUnderWorldQuest.CurrentBatteryLife <= 60 && zzUnderWorldQuest.BatteryCount == 0 ShowMessage zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesMSGlow Else sgtm 1 set AbilityNumber3 to 0 set zzUnderWorldQuest.MaintenanceGood to 0 endif
elseif Choice == 3 ;кулак ярости if AbilityNumber4 == 0 elseif zzUnderWorldQuest.CurrentBatteryLife <= 60 && zzUnderWorldQuest.BatteryCount == 0 ShowMessage zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesMSGlow Else player.AddItem zzUnderWorldPowerArmorAdvancedNoBackpackWeap4 1 100 player.EquipItem zzUnderWorldPowerArmorAdvancedNoBackpackWeap4 set AbilityNumber4 to 1 set zzUnderWorldQuest.MaintenanceGood to 1 endif
if AbilityNumber4 == 1 elseif zzUnderWorldQuest.CurrentBatteryLife <= 60 && zzUnderWorldQuest.BatteryCount == 0 ShowMessage zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesMSGlow Else player.removeItem zzUnderWorldPowerArmorAdvancedNoBackpackWeap4 1 set AbilityNumber4 to 0 set zzUnderWorldQuest.MaintenanceGood to 0 endif
elseif Choice == 4 ;защитный режим if AbilityNumber5 == 0 elseif zzUnderWorldQuest.CurrentBatteryLife <= 60 && zzUnderWorldQuest.BatteryCount == 0 ShowMessage zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesMSGlow Else player.AddItem zzUnderWorldPowerArmorAdvancedNoBackpackWeap4 1 100 player.EquipItem zzUnderWorldPowerArmorAdvancedNoBackpackWeap4 set AbilityNumber5 to 1 set zzUnderWorldQuest.MaintenanceGood to 1 endif
if AbilityNumber5 == 1 elseif zzUnderWorldQuest.CurrentBatteryLife <= 60 && zzUnderWorldQuest.BatteryCount == 0 ShowMessage zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesMSGlow Else player.removeItem zzUnderWorldPowerArmorAdvancedNoBackpackWeap4 100 set AbilityNumber5 to 0 set zzUnderWorldQuest.MaintenanceGood to 0 endif endif endif endif
Почему-то мессаг не появляется. И вопрос: Будут ли работать варианты при выборе способностей? Хотел вот таким способом отчитывать батареи, от которых будут работать способности:
Code
if MaintenanceGood == 1 if CurrentBatteryLife <= 0 && BatteryCount > 0 set CurrentBatteryLife to 3600 zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesRef.RemoveItem FissionBattery 1 set BatteryCount to BatteryCount - 1 if BatteryCount == 0 set LastBattery to 1 else set LastBattery to 0 endif endif endif
if LastBattery == 1 set BatteryPercent to CurrentBatteryLife / 36 ShowMessage zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesMSGleft BatteryPercent set LastBattery to 2 elseif LastBattery == 2 if CurrentBatteryLife / 360 > 1 if CurrentBatteryLife / 360 < BatteryPercent / 10 set LastBattery to 1 endif elseif CurrentBatteryLife / 36 < BatteryPercent set LastBattery to 1 endif endif
Слишком запутался, вот и прошу помощи. А то уже голова не варит.
Команда "Rizys-mod" - разработка плагинов на Fallout.
Spalny_Vagon, понятно. Проглядев скрипт на мессаг я понял что он и не мог работать. Но правда он и не работает даже вроде в правильном варианте:
Code
Short Option Short Button ;Short Choice
short Maintenance short Maintenance2 ;short Maintenance3
if Maintenance == 1 ShowMessage zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesMSGChoice set Button to GetButtonPressed if (Button == 0) Set Maintenance2 to 1 Set Maintenance to 0 elseif (Button == 1) ; Set Maintenance3 to 1 Set Maintenance to 0 elseif (Button == 2) Set Maintenance to 0 endif
if Maintenance2 == 1 ShowMessage zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesMSGBatteriesInstalled BatteryCount, PlayerBatteries set Option to GetButtonPressed if (Option == 0) Player.RemoveItem FissionBattery 1 zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesRef.AddItem FissionBattery 1 set PlayerBatteries to PlayerBatteries - 1 set BatteryCount to BatteryCount + 1 set LastBattery to 0 elseif (Option == 1) zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesRef.RemoveItem FissionBattery 1 Player.AddItem FissionBattery 1 set PlayerBatteries to PlayerBatteries + 1 set BatteryCount to BatteryCount - 1 ; if BatteryCount == 0 ; set LastBattery to 1 ; else ; set LastBattery to 0 ; endif ; ShowMessage zzUnderWorldPowerArmorAdvancedNoBackpackContainerBatteriesMSGBatteriesInstalled, BatteryCount, PlayerBatteries elseif Option == 2 set Maintenance2 to 0 endif endif endif
Первый мессаг появляется, а вот при любом выборе на мессаге нечего не происходит. Не могу найти причину.
Команда "Rizys-mod" - разработка плагинов на Fallout.
Tireur, нажми "повтор" и загрузка продолжится. Я всегда так делаю. Только после раза 5, может произойти вылет из гекк, но это если за один заход у тебя столько раз появится такая ошибка, но это тогда нужно делать в гекк часов 8 что-то.
Команда "Rizys-mod" - разработка плагинов на Fallout.
Menipul, привет. Нужно в гекк ставить броню как дополнительный блок, а не UpperBody. Всего может быть 3 дополнительных блока, которые будут одеваться поверх брони и не будут считаться конкретной частью тела в гекк.
Команда "Rizys-mod" - разработка плагинов на Fallout.
Cleric, Привет! Вот скрин то что нужно тебе знать:
Data\Sound\Voice\aaatestsound.esp\MaleAdult01Default Разберемся, звук записывается в папку Data\Sound\Voice\ под именем Temp: aaatestsound.esp - ESP твоего мода, в названии обезательно должно быть в конце .esp MaleAdult01Default - используем тип звука "MaleAdult01Default" выбирается у NPC Ну и в папке ставишь звук с названием (смотри скрин где диалог). Вот тестовый ESP, может пригодится если что не понял.
Цитата Cleric
Может кто-то в курсе - какие нужны параметры звукового файла? Имеется в виду частота, каналы, разрешение - как форматировать?
Так ты сам их устанавливаешь в гекк, + ко всему этому, в туже папку можно кидать и lip файл, анимацию для губ (с таким же названием как и саунда, только другой формат, например Sound.lip).
Команда "Rizys-mod" - разработка плагинов на Fallout.
Cleric, теперь понятно что тебе нужно. Ну опять же, делаешь диалог, не привязанный к другим веткам диалога, и записуешь на него звук. В заметке выбираешь Voice далее в Speaker выбираешь Npc который указан в диалоге (который должен говорить этот диалог). Ниже в Topic выбираешь свой топик. Так же нпц которому дан этот топик не должен не где находится, имеется ввиду Used in these Cells должен быть пуст (проще говоря чтобы посмотреть на него можно было только выбрав его в гекк).
Команда "Rizys-mod" - разработка плагинов на Fallout.
Demolir, кстати, в Фоле НВ сделали всего 2 заметки на Sound, и почемуто тестовые (не где не используются). И попробовал только что по твоему варианту, почему-то не работает.
Команда "Rizys-mod" - разработка плагинов на Fallout.
Cleric, вот какие настройки я поставил (в программе Sound Forge Pro 10.0): Работает.
Цитата SoloDrive
Возможно, стоит вместо ВАВ использовать ОГГ (английская раскладка не работает ) Голодиски в Вегасе, как мне кажется, только с этим форматом работают.
Миф опровержен
Добавлено (14.10.2012, 20:58) --------------------------------------------- Galko, нет, это не правда. Выше я давал тест файл с озвучкой. Озвучка там в формате wav. Так же wav я использовал только что в создании звуковой заметки, правда с 1мб файл стал 32мб
Команда "Rizys-mod" - разработка плагинов на Fallout.
SoloDrive, сжатием можно достичб 28 мб А вобще я не понял почему mp3 не работало. Скорее всего нужно было качество хуже делать, так бы около 12 мб было бы. А так у меня ролик в bik меньше весит чем один звук.
Команда "Rizys-mod" - разработка плагинов на Fallout.
Spalny_Vagon, сейчас попробую по разным вариантам. Может что и получится.
Цитата Spalny_Vagon
Short AbilityNumber1 Short AbilityNumber2 Short AbilityNumber3 Short AbilityNumber4 Short AbilityNumber5
Short Choice
short Maintenance short Maintenance2
begin scripteffectstart player.additem zzUnderWorldPowerArmorAdvancedNoBackpackFoodAbility 1 set Maintenance to 1 End
Begin GameMode if (Maintenance == 1) ShowMessage zzUnderWorldPowerArmorAdvancedMESGAbility Set Maintenance2 to 1 endif
if (Maintenance2 == 1) && zzunderworldquest.lastbattery >= 2 Set Maintenance to 0 Set Choice to GetButtonPressed if (Choice < 0) Return elseif Choice == 0 && AbilityNumber1 == 0 ;стелс player.addspell StealthBoyInvisibilitySpell set AbilityNumber1 to 1 Set Maintenance2 to 0
elseif Choice == 0 && AbilityNumber1 == 1 player.removespell StealthBoyInvisibilitySpell set AbilityNumber1 to 0 Set Maintenance2 to 0 endif
elseif Choice == 1 && AbilityNumber2 == 0 ;ускорение Player.Setav SpeedMult 250 set AbilityNumber2 to 1 Set Maintenance2 to 0
elseif Choice == 1 && AbilityNumber2 == 1 Player.Setav SpeedMult 100 set AbilityNumber2 to 0 Set Maintenance2 to 0
elseif Choice == 2 && AbilityNumber3 == 0;замедление sgtm 0.25 set AbilityNumber3 to 1 Set Maintenance2 to 0
elseif Choice == 2 && AbilityNumber3 == 1 sgtm 1 set AbilityNumber3 to 0 Set Maintenance2 to 0
elseif Choice == 3 && AbilityNumber4 == 0;кулак ярости ; player.AddItem zzUnderWorldPowerArmorAdvancedNoBackpackWeap4 1 ; player.EquipItem zzUnderWorldPowerArmorAdvancedNoBackpackWeap4 set AbilityNumber4 to 1 Set Maintenance2 to 0
elseif Choice == 3 && AbilityNumber4 == 1 ; player.removeItem zzUnderWorldPowerArmorAdvancedNoBackpackWeap4 1 set AbilityNumber4 to 0 Set Maintenance2 to 0
elseif Choice == 4 && AbilityNumber5 == 0 ;защитный режим ; player.AddItem zzUnderWorldPowerArmorAdvancedNoBackpackWeap4 1 ; player.EquipItem zzUnderWorldPowerArmorAdvancedNoBackpackWeap4 set AbilityNumber5 to 1 Set Maintenance2 to 0
elseif Choice == 4 && AbilityNumber5 == 1 ; player.removeItem zzUnderWorldPowerArmorAdvancedNoBackpackWeap4 100 set AbilityNumber5 to 0 Set Maintenance2 to 0 elseif Choice == 5 Set Maintenance2 to 0 endif endif End
Но почему то работает каждая кнопка без второй проверки на отключение функций (полагаю, надо было делать в мессаге 2 выбора с разными проверками?). И вернее работает только первая кнопка, с чем это может быть связано?
Команда "Rizys-mod" - разработка плагинов на Fallout.