Всем привет! Хотелось бы побольше узнать про Leveled Item. Допустим у меня в нём несколько объектов. Если я в скрипте добавлю этот Leveled Item ГГ, то в инвентарь попадёт один случайный предмет из списка? Если да, то как настраивается шанс выпадения конкретного предмета? Через Chance None или я что-то не понимаю?
Изменение репутации для пользователя Вис
ВисOffline
Сообщение №273
| Тема: Скрипты
написано: 7 августа 2014, 20:00
Всем привет! Для того чтобы узнать какой предмет находится на слоте быстрой панели, есть команда GetHotkeyItem. А есть ли команда для установки предмета на слот быстрой панели?
Изменение репутации для пользователя Вис
ВисOffline
Сообщение №274
| Тема: ВОПРОСЫ по моддингу
написано: 20 августа 2014, 15:33
| Отредактировано: Вис - 20 августа 2014, 15:33
short DoOnce short DoOnceHH short DoOnceOWB short DoOncePL short PFMeet ; 02.07.14 Фикс встречи в Парадиз-Фоллз short DoOncePF short XP short caps short BookPerk short DoOnceBookPerk short BookRandom short DoOncePLmines ref rUpperBodySlot ref rHeadBandSlot ref rEyeGlassesSlot ref rWeaponSlot short EquipItems
begin GameMode
; 20.08.14 Начало доработки системы бартера if EquipItems == 1 player.equipItem rUpperBodySlot 0 1 player.equipItem rHeadBandSlot 0 1 player.equipItem rEyeGlassesSlot 0 1 player.equipItem rWeaponSlot 0 1 set EquipItems to 2 endif
; 06.04.14 Фикс меченых из Lonesome Road If DoOnce==0 setenemy NVDLC04MarkedMenFaction PlayerFaction set DoOnce to 1 endif
; 06.05.14 Фикс входа в Honest Hearts If DoOnceHH == 0 Player.AddToFaction NVDLC02PlayerFaction 1 set DoOnceHH to 1 endif
; 01.06.14 Фикс старта OWB If DoOnceOWB == 0 If Player.GetDistance NVDLC03CrashedSatelliteREF <= 25000 setstage NVDLC03MQ00 10 set DoOnceOWB to 1 endif endif
; 18.06.14 Фикс старта Point Lookout if DoOncePL == 0 if (player.GetInWorldspace DCWorld01 || player.GetInWorldspace DCWorld03 || player.GetInWorldspace DCWorld05 || player.GetInWorldspace DCWorld06 || player.GetInWorldspace DCWorld08 || player.GetInWorldspace DCWorld09 || player.GetInWorldspace DCWorld10 || player.GetInWorldspace DCWorld11 || player.GetInWorldspace DCWorld12 || player.GetInWorldspace DCWorld15 || player.GetInWorldspace DCWorld17 || player.GetInWorldspace DCWorld18) if ( DLC04SteamboatREF.GetDistance Player <= 36000 ) PlaySound DLC04BoatArrivalBell SetStage DLC04MQ01 10 set DoOncePl to 1 endif endif endif
; 02.07.14 Фикс встречи в Парадиз-Фоллз If DoOncePF == 0 set MS13Slaves.slaveArrived to 0 if SusanLancasterRef.GetInCell PFallsSlaveHouse == 1 set ms13.SusanArrived to 1 elseif Redref.GetInCell PFallsSlaveHouse == 1 set ms13.RedArrived to 1 elseif Flakref.GetInCell PFallsSlaveHouse == 1 set ms13.FlakArrived to 1 elseif Arkansasref.GetInCell PFallsSlaveHouse == 1 set ms13.ArkansasArrived to 1 elseif (MS13SlaveCount ==0) && (getqr ms13 ==1) && (player.getitemcount MS13CollarMiscObj ==0) && (PFmeet == 1) set MS13Slaves.slaveArrived to 1 endif set DoOncePF to 1 endif
; 28-30.07.14 Система награждения опытом, крышками при продаже книг писцу. Получение перка if player.getitemcount aaaSFW10XpRewardItem1 != 0 set caps to (player.getitemcount aaaSFW10XpRewardItem1) set XP to (player.getitemcount aaaSFW10XpRewardItem1) set BookPerk to Bookperk + (player.getitemcount aaaSFW10XpRewardItem1*0.1) player.removeitem aaaSFW10XpRewardItem1 XP 1 rewardXp XP player.additem caps001 caps 1 set XP to 0 endif if (bookPerk >= 20) && (DoOnceBookPerk == 0) showmessage aaaSFWBookPerkSpoiler set DoOnceBookPerk to 1 endif if (bookPerk >= 100) && (DoOnceBookPerk == 1) player.addperk aaaSFWBookPerk showmessage aaaSFWBookPerkMsg set DoOnceBookPerk to 2 endif if bookPerk >= 100 if player.getitemcount BookGeneric01 > 0 player.removeitem BooKGeneric01 1 1 set BookRandom to getrandompercent if bookrandom == 100 player.additem SFWBookGeneric1000 1 1 showmessage aaaSFWBook1000msg elseif (bookrandom > 97) && (bookrandom < 100) player.additem SFWBookGeneric725 1 1 showmessage aaaSFWBook725msg elseif (bookrandom > 94) && (bookrandom < 98) player.additem SFWBookGeneric450 1 1 showmessage aaaSFWBook450msg else player.additem aaaSFWBooksAll 1 1 endif set BookRandom to 0 endif if player.getitemcount BookGeneric02b > 0 player.removeitem BooKGeneric02b 1 1 set BookRandom to getrandompercent if bookrandom == 100 player.additem SFWBookGeneric1000 1 1 showmessage aaaSFWBook1000msg elseif (bookrandom > 97) && (bookrandom < 100) player.additem SFWBookGeneric725 1 1 showmessage aaaSFWBook725msg elseif (bookrandom > 94) && (bookrandom < 98) player.additem SFWBookGeneric450 1 1 showmessage aaaSFWBook450msg else player.additem aaaSFWBooksAll 1 1 endif set BookRandom to 0 endif if player.getitemcount BookGeneric03b > 0 player.removeitem BooKGeneric03b 1 1 set BookRandom to getrandompercent if bookrandom == 100 player.additem SFWBookGeneric1000 1 1 showmessage aaaSFWBook1000msg elseif (bookrandom > 97) && (bookrandom < 100) player.additem SFWBookGeneric725 1 1 showmessage aaaSFWBook725msg elseif (bookrandom > 94) && (bookrandom < 98) player.additem SFWBookGeneric450 1 1 showmessage aaaSFWBook450msg else player.additem aaaSFWBooksAll 1 1 endif set BookRandom to 0 endif if player.getitemcount BookGeneric04b > 0 player.removeitem BooKGeneric04b 1 1 set BookRandom to getrandompercent if bookrandom == 100 player.additem SFWBookGeneric1000 1 1 showmessage aaaSFWBook1000msg elseif (bookrandom > 97) && (bookrandom < 100) player.additem SFWBookGeneric725 1 1 showmessage aaaSFWBook725msg elseif (bookrandom > 94) && (bookrandom < 98) player.additem SFWBookGeneric450 1 1 showmessage aaaSFWBook450msg else player.additem aaaSFWBooksAll 1 1 endif set BookRandom to 0 endif if player.getitemcount BookGeneric05b > 0 player.removeitem BooKGeneric05b 1 1 set BookRandom to getrandompercent if bookrandom == 100 player.additem SFWBookGeneric1000 1 1 showmessage aaaSFWBook1000msg elseif (bookrandom > 97) && (bookrandom < 100) player.additem SFWBookGeneric725 1 1 showmessage aaaSFWBook725msg elseif (bookrandom > 94) && (bookrandom < 98) player.additem SFWBookGeneric450 1 1 showmessage aaaSFWBook450msg else player.additem aaaSFWBooksAll 1 1 endif set BookRandom to 0 endif if player.getitemcount BookGeneric06b > 0 player.removeitem BooKGeneric06b 1 1 set BookRandom to getrandompercent if bookrandom == 100 player.additem SFWBookGeneric1000 1 1 showmessage aaaSFWBook1000msg elseif (bookrandom > 97) && (bookrandom < 100) player.additem SFWBookGeneric725 1 1 showmessage aaaSFWBook725msg elseif (bookrandom > 94) && (bookrandom < 98) player.additem SFWBookGeneric450 1 1 showmessage aaaSFWBook450msg else player.additem aaaSFWBooksAll 1 1 endif set BookRandom to 0 endif if player.getitemcount BookGeneric07b > 0 player.removeitem BooKGeneric07b 1 1 set BookRandom to getrandompercent if bookrandom == 100 player.additem SFWBookGeneric1000 1 1 showmessage aaaSFWBook1000msg elseif (bookrandom > 97) && (bookrandom < 100) player.additem SFWBookGeneric725 1 1 showmessage aaaSFWBook725msg elseif (bookrandom > 94) && (bookrandom < 98) player.additem SFWBookGeneric450 1 1 showmessage aaaSFWBook450msg else player.additem aaaSFWBooksAll 1 1 endif set BookRandom to 0 endif if player.getitemcount BookGeneric08b > 0 player.removeitem BooKGeneric08b 1 1 set BookRandom to getrandompercent if bookrandom == 100 player.additem SFWBookGeneric1000 1 1 showmessage aaaSFWBook1000msg elseif (bookrandom > 97) && (bookrandom < 100) player.additem SFWBookGeneric725 1 1 showmessage aaaSFWBook725msg elseif (bookrandom > 94) && (bookrandom < 98) player.additem SFWBookGeneric450 1 1 showmessage aaaSFWBook450msg else player.additem aaaSFWBooksAll 1 1 endif set BookRandom to 0 endif endif
; 01.08.14 Фикс мин в PL (вновь) if dooncePLMines==0 TestFragMine001.setpos x 2848.5266 TestFragMine001.setpos y -730.5163 TestFragMine001.setpos z -1308.6141 TestFragMine002.setpos x 2846.3411 TestFragMine002.setpos y -698.6219 TestFragMine002.setpos z -1308.6141 TestFragMine003.setpos x 2843.7966 TestFragMine003.setpos y -670.2612 TestFragMine003.setpos z -1308.6141 TestFragMine004.setpos x 2889.8464 TestFragMine004.setpos y -726.1006 TestFragMine004.setpos z -1267.2985 TestFragMine005.setpos x 2874.9204 TestFragMine005.setpos y -640.9681 TestFragMine005.setpos z -1267.3130 set dooncePlmines to 1 endif
Итак: блок, связанный с книгами прекрасно работает. Не работают новые блоки - с минами и с одеванием. Переменные dooncePlmines и EquipItems равны 0 и 1 соответственно. Квест запущен. Т.е. как я и говорил условия соблюдены. Может ли блок с книгами как-то мешать нормальной работе всего скрипта? Ведь именно после него пропала работоспособность. Старые переменные не проверял, т.к. уже не найду сохранение, где их ещё не было
D общем разобрался с проблемой. Виноваты были блок с минами и моя невнимательность. Дело в том, что этих мин уже не существует, а в скрипте они использовались. В любом случае - всем спасибо за помощь.
Ребят, вот такой вопрос назрел. Как сбросить ref в 0? Боюсь, что даже не правильно объяснил, что хочу. В общем нужно, чтобы ref была 8 нулей. Ох и криво же я объясняю...
Да, именно. Странно, я же пробовал set to 0. И ловил вылет. Что-то я делал не так... Но всё равно спасибо!
Добавлено (28 Августа 2014, 10:57) --------------------------------------------- Итак, после многочисленных попыток, я вынужден просить помощи. Опять... В общем надо, чтобы во время того, как открыт пип-бой делать проверку есть ли на клавише хотбара предмет. Пробовал много схем, но все приводили к вылету. Например вот такая
Код
Begin MenuMode 1
if (GetHotKeyItem 1) set Hotbar1Reset to 0 endif
end
Что я делаю неправильно? И разве функция не возвращает 8 нулей, если на клавише хотбара нет предмета?
Всем привет! Такая проблемка: хочу сделать субтитры для радио, а вот как этого добиться, не знаю. Пробовал ставить Эдема (пробую на Ф3) рядом с собой и при помощи SetNPCRadio делал из него радио. Итог: он говорит, губы шевелятся, но титров нет. Может, кто чего подскажет?
Всем привет! Такая проблема: есть НПС, который должен сказать 1 фразу. Команда в скрипте такая (из Проекта Генезис) PGMQ3BishopFB3Ref.Say PGMQ3FB3Bishop1 Почему-то не срабатывает. Условия все соблюдены, топик такой есть. Что может быть неправильно?
Изменение репутации для пользователя Вис
ВисOffline
Сообщение №282
| Тема: ВОПРОСЫ по моддингу
написано: 23 марта 2015, 18:58
| Отредактировано: Вис - 23 марта 2015, 19:05
Остановлен квест? Стоит галка Say once и топик был уже один раз сказан? Топик не озвучен, а субтитры отключены? Больше в голову ничего не приходит...
Квест запущен, топик ещё не сказан и даже озвучен... Сам автор мода говорит, что это лечится перезапуском игры, т.е. работать должно через раз. Но, во-первых, это не решение. А во-вторых, мне даже перезапуск не помогает
Отбой. Просто убрал галку с SayOnce. Но это странно - диалог точно нигде до этого не использовался... В любом случае, спасибо за наводку!
Уверен, что такой вопрос задавался, но в картотеке не нашёл ответа. Друг сделал модель, а в ГЕКК она ужасно блестит. В блоке BSLightingShaderProperty не нашёл ничего дельного (где-то пишут, что нужно чёрный цвет выставить, а у меня такой строки нет). Не подскажете, что нужно сделать?
Ребят, всем привет! Думаю многие знают мод, позволяющий набирать воду в бутылки из водоёмов. Данная функция реализована перком. Проблема вот в чём: нам всегда достаётся чистая вода. Я хочу это исправить. Что я попробовал: создал 2 форм листа и разделил чистые водоёмы и загрязненные. В перке в Target добавил IsInList Мой_ФормЛист == 1. Пока пробовал только для грязной. Однако теперь менюшка с пунктом "набрать воды" просто не появляется. Собственно вопрос - почему это не сработало (перк у гг точно есть, водоёмы добавил все) и как это можно реализовать (сбор грязной воды из загрязнённых водоёмов и очищенной из чистых)?
В общем, попробовал также через GetSelf, однако ID начинаются с FF (т.е., как я понимаю, принадлежат конкретно к этому сейву). Неужели нельзя никак заполучить "нормальное" RefID у воды?
Всем привет! Что-то я немного запутался с таймерами... Есть скрипт, таймер, который запускается, когда определённое условие выполняется. Вызывая скрипт первый раз, всё прекрасно работает. В моём случае может потребоваться вторичный (троичный, и т.д.) вызов этого же скрипта. Я правильно понимаю, что GetSecondsPassed считает секунды от первого запуска? И если да, то как обойти это, чтобы таймер не ломался? Т.е. у меня сейчас такая картина: впервые вызвал скрипт, таймер дошёл до 4 секунд, всё хорошо, все команды выполнились, таймер обнулил. Вторично вызываю скрипт - таймер так и стоит на нуле, будто 4 секунды уже прошли, а команды выполнились мгновенно. Скрипт висит на квесте.
Изменение репутации для пользователя Вис
ВисOffline
Сообщение №289
| Тема: ВОПРОСЫ по моддингу
написано: 28 июня 2015, 11:14
| Отредактировано: Вис - 28 июня 2015, 11:15
if getstage aaaCasinoDice == 20 if timer < 4 set timer to (timer + GetSecondsPassed - lastTimer) else set xangle2 to (aaaDiceMegaton.getangle x) set yangle2 to (aaaDiceMegaton.getangle y) set zangle2 to (aaaDiceMegaton.getangle z)
set xangle2s to (aaaDiceMegaton2.getangle x) set yangle2s to (aaaDiceMegaton2.getangle y) set zangle2s to (aaaDiceMegaton2.getangle z)
Стадия 20 повторно вызовется, если (Fdice)*(Sdice)=0. При этом в стадии 25 предмет лишь возвращается на место, и цикл команд идёт заново. Однако, дойдя вновь до 20 стадии, таймер остаётся нулём (при этом условие timer >= 4 почему-то проходит, команды выполняются. Т.к. предмету не хватило времени, то (Fdice)*(Sdice)=0, всё идёт по кругу, квест зависает на стадии 25, которая промежуточная). Так как команды сработали, я и предположил, что GetSecondsPassed посчитал секунды от первого запуска.