Shadd Ashborn 1 719 Опубликовано 15 ноября, 2017 Вот что выдало: Через scof тупо не успеваю словить, оно мгновенно в момент прогрузки игры уже уплывает далеко вверх. Поделиться сообщением Ссылка на сообщение
Вис691 663 Опубликовано 15 ноября, 2017 Цикл под этой строкой (с дампом) замени на If iArraySize != -1 foreach arrEntry <- arrActiveTeammates let rActor := arrEntry["value"] if eval !(rActor) continue endif if eval GetType rActor == 0 continue endif if eval !(rActor.IsActor) continue endif let iIndex := Ar_Find rActor alxUDCompanions.arrActiveCompanions if eval iIndex != Ar_BadNumericIndex Ar_Erase alxUDCompanions.arrActiveCompanions iIndex endif let iIndex := Ar_Find rActor alxUDCompanions.arrFormerCompanions if eval iIndex != Ar_BadNumericIndex Ar_Erase alxUDCompanions.arrFormerCompanions iIndex endif loop Endif Сейчас бы пытаться идти по массиву, которого не существует 1 Поделиться сообщением Ссылка на сообщение
Shadd Ashborn 1 719 Опубликовано 15 ноября, 2017 Заменила - да, вроде как пошло гладко. Доходит до 5 блока, потом через какое-то время снова прогоняет до 5-го. Я так понимаю, остальные блоки уже работают с фолловером, которого пока нет. UD, конечно, наверняка имеет еще много подводных камней, но одним эррором, мучающим консоль, меньше - уже весьма неплохо. Спасибо.) Поделиться сообщением Ссылка на сообщение
Вис691 663 Опубликовано 15 ноября, 2017 Я так понимаю, остальные блоки уже работают с фолловером, которого пока нет. Остальные блоки работают в дебаг режиме. Не знаю, только для разрабов мода он или нет, но это не важно. Не за что. На самом деле, нам крупно повезло, что просто массив не существует. Я думал тут что-то серьёзнее. 1 Поделиться сообщением Ссылка на сообщение
Shadd Ashborn 1 719 Опубликовано 15 ноября, 2017 Остальные блоки работают в дебаг режиме. Не знаю, только для разрабов мода он или нет, но это не важно. Не за что. На самом деле, нам крупно повезло, что просто массив не существует. Я думал тут что-то серьёзнее. Ну там автор вроде как скриптер крутой, так что такие ошибки - явно простые завтыки.) Поделиться сообщением Ссылка на сообщение
Shadd Ashborn 1 719 Опубликовано 16 ноября, 2017 Я тут опять с тупыми вопросами. Все больше понимаю, что код - уж точно не мое. х_х Есть скрипт на раздевание игрока и одевание нуд-суита, собсно из базы со. Хочу сделать так, чтобы при условии, что целевой актер - игрок, одевался другой нудсуит. Скрипт такой: scn SexoutNGUndressSpellSCRIPT int nFlag int nStage int nLastStage int bRaping int bRaped int nGSUndress int nGSRedress int idx int bHadClothes int HasNudeAlready ref actor ref item int remItem float fDelay array_var element array_var items int nActId ref MaleBodySuit int bUnequippedClothes Begin ScriptEffectUpdate ; delay if (0 == nActId) let nActID := NX_GetEVFl "Sexout:Started::actid" endif if (0 == actor) let actor := GetSelf endif let fDelay -= ScriptEffectElapsedSeconds if fDelay > 0 Return endif if nStage != nLastStage DebugPrint "SNGUndress (%g): %n (%i) undress stage transition from %g -> %g" nActID actor actor nLastStage nStage let nLastStage := nStage endif if 2000 == nStage ; Waiting on dispel elseif 1000 == nStage let nStage := 2000 let element := ar_Null let items := ar_Null ; Clear flags call fnSexoutSetFlag actor "Undress" 0 0 1 call fnSexoutSetFlag actor "Undressed" 0 0 1 Dispel SexoutNGUndress elseif 200 == nStage ; Redressing let nStage := 1000 ; Remove nude bodysuit if any - fnSexoutActorCleanup does this, but its too slow to hit if MaleBodySuit actor.RemoveItem MaleBodySuit, 1, 1 endif ; Redress if desired if 2 == nGSRedress || (1 == nGSRedress && 0 == bRaped) foreach element <- items if eval(element["key"] != 6) ; skip pipboy let item := element["value"] DebugPrint "SNGUndress (%g): Equipping '%n' on %n (%i)" nActID item actor actor actor.EquipItem item 0 1 endif loop else ; Fix auto-reequipping let item := actor.GetEqObj 2 if item && bUnequippedClothes actor.UnequipItem item, 0, 1 endif endif elseif 110 == nStage ; Waiting on main spell to indicate naked time is over let nFlag := call fnSexoutGetFlag actor "Undress" 1 if nFlag == 0 ; wait let fDelay := 0.1 elseif 1 == nFlag ; redress let nStage := 200 elseif 2 == nFlag ; end without redressing let nStage := 1000 ; Fix auto-reequipping let item := actor.GetEqObj 2 if item && bUnequippedClothes actor.UnequipItem item, 0, 1 endif else DebugPrint "SNGUndress (%g): Unknown undress flag %g on %n (%i)!" nActID nFlag actor actor let fDelay := 1 endif elseif 100 == nStage ; Set flag to trigger main script to continue call fnSexoutSetFlag actor "Undressed" 1 0 1 let nStage := 110 elseif 20 == nStage ; Add a bodysuit for males let nStage := 100 if actor == PlayerRef let MaleBodySuit := SexoutNudePlayer else let MaleBodySuit := SexoutNude actor.AddItem MaleBodySuit, 1, 1 actor.EquipItem MaleBodySuit, 1, 1 endif let fDelay := 0.2 elseif 10 == nStage ; Backstop let nStage := 1000 foreach element <- items if eval(element["key"] != 6) ; skip pipboy let item := element["value"] DebugPrint "SNGUndress (%g): Removing '%n' from %n (%i)" nActID item actor actor actor.UnequipItem item 0 1 endif loop if (actor.GetIsSex Male) && (0 == HasNudeAlready) && (2 == SexoutNG.iMaleBody) let nStage := 20 else let nStage := 100 endif let fDelay := 0.2 elseif 0 == nStage ; Backstop let nStage := 1000 if 0 == actor.GetIsCreature let nStage := 10 let actor := GetSelf let items := Ar_Construct "map" let bRaping := call fnSexoutGetFlag actor "Raping" 1 let bRaped := call fnSexoutGetFlag actor "Raped" 1 ; Get undress/redress lettings if bRaping || bRaped if actor == playerREF let nGSUndress := SexoutNG.nPNUndress let nGSRedress := SexoutNG.nPRedress elseif actor.GetIsSex Male let nGSUndress := SexoutNG.nMNUndress let nGSRedress := SexoutNG.nMRedress else let nGSUndress := SexoutNG.nFNUndress let nGSRedress := SexoutNG.nFRedress endif else if actor == playerREF let nGSUndress := SexoutNG.nPCUndress let nGSRedress := SexoutNG.nPRedress elseif actor.GetIsSex Male let nGSUndress := SexoutNG.nMCUndress let nGSRedress := SexoutNG.nMRedress else let nGSUndress := SexoutNG.nFCUndress let nGSRedress := SexoutNG.nFRedress endif endif ; Store item ids. These are checked against lists and rules and zeroed ; out if they appear there. If they are not zero when checks are done, ; they are removed to inventory. while (idx < 19) let idx += 1 if (idx != 6) ; skip pipboy ;DebugPrint "SNGUndress (%g): Checking index %g on %n (%i)" nActID idx actor actor let item := actor.GetEquippedObject idx if (item) DebugPrint "SNGUndress (%g): Found %n (%i) on %n (%i)" nActID item item actor actor let remItem := call fnSexoutUndressItem actor item if eval(Ar_BadNumericIndex == (ar_Find item items)) ; item not currently in list, do we undress it? if -1 == ListGetFormIndex SexoutNGNudeBodies item if (idx == 2) let bHadClothes := 1 endif ; not in nude bodies list if ((3 != nGSUndress) && (1 != nGSUndress || 1 == remItem)) ; undress is always, or undress is check-list and item not in lists DebugPrint "SNGUndress (%g): Added %n (%i) on %n (%i)" nActID item item actor actor let items[idx] := item if idx == 2 let bUnequippedClothes := 1 endif endif else let HasNudeAlready := 1 endif endif endif endif loop let nStage := 10 endif endif End Мной тут добавлено только это: if actor == PlayerReflet MaleBodySuit := SexoutNudePlayer elselet MaleBodySuit := SexoutNudeactor.AddItem MaleBodySuit, 1, 1actor.EquipItem MaleBodySuit, 1, 1 endif В оригинале на месте этого условия было другое (там условие на то, из какого мода были анимации), но оно тоже у меня в игре не работало. Что может быть не так? Почему такое простое условие просто не работает? Примечательно то, что выглядит это так: нуд-суит работает для НПС, но вообще не работает для игрока. Не одевается и всё тут. Т.е. как-то это условие вроде соблюдается, но не так. Разумеется, этот самый SexoutNudePlayer я сделала, модельку нужныю, отличную от оригинальной, прописала. Поделиться сообщением Ссылка на сообщение
Shadd Ashborn 1 719 Опубликовано 16 ноября, 2017 UPD чорд. Кажись это таки тот самый затуп с блоками и ифами. Оно вообще добавляло актеру суит ТОЛЬКО при втором условии. Счас посмотрю в игре. Поделиться сообщением Ссылка на сообщение
Shadd Ashborn 1 719 Опубликовано 16 ноября, 2017 В общем, сама спросила, сама поняла, где лоханулась, сама исправила. Смотрите внимательно на блоки if, в общем. Поделиться сообщением Ссылка на сообщение
Factor 17 Опубликовано 17 ноября, 2017 Всем привет. Мне нужно добавить много предметов в form id списки, но добавлять по одному предмету очень долго, есть функция или скрипт в FNVEdit, чтобы добавлять предметы в списки автоматом? Поделиться сообщением Ссылка на сообщение
Old Vault Boy 560 Опубликовано 17 ноября, 2017 Насчёт FNVEdit не скажу, но в GECK можно выделить все нужные предметы и перенести их в Form List за один раз. 1 Поделиться сообщением Ссылка на сообщение
MagnuMspec 7 446 Опубликовано 17 ноября, 2017 Насчёт FNVEdit не скажу, но в GECK можно выделить все нужные предметы и перенести их в Form List за один раз. Боже... как?! Поделиться сообщением Ссылка на сообщение
Shadd Ashborn 1 719 Опубликовано 17 ноября, 2017 Боже... как?! Shift+выделение по идее ж 1 Поделиться сообщением Ссылка на сообщение
Factor 17 Опубликовано 17 ноября, 2017 Насчёт FNVEdit не скажу, но в GECK можно выделить все нужные предметы и перенести их в Form List за один раз. Спасибо большое, уйму времени сэкономил мне) 1 Поделиться сообщением Ссылка на сообщение
Old Vault Boy 560 Опубликовано 17 ноября, 2017 Боже... как?! Я так понял, ты по старинке действуешь, перетаскиваешь предметы по одному?) Поделиться сообщением Ссылка на сообщение
Factor 17 Опубликовано 17 ноября, 2017 Да я редактирую мод underground hideout под себя, хотел добавить в список сортировщика предметы из nvinteriors project Поделиться сообщением Ссылка на сообщение
bildyaev 1 Опубликовано 24 ноября, 2017 Ребят. Проблема такая. У пары стволов пули летят выше прицела на дальних расстояниях (целишься в туловище, сносишь в голову). Вблизи все норм. Хочу исправить, чтобы пули ложились точно по мушке. В Гэкке можно это поправить, или саму модель надо править? Поделиться сообщением Ссылка на сообщение
никита19845 1 259 Опубликовано 24 ноября, 2017 Ребят. Проблема такая. У пары стволов пули летят выше прицела на дальних расстояниях (целишься в туловище, сносишь в голову). Вблизи все норм. Хочу исправить, чтобы пули ложились точно по мушке. В Гэкке можно это поправить, или саму модель надо править? http://tiarum.com/wiki/Fallout3_GECK:Weapons Поделиться сообщением Ссылка на сообщение
никита19845 1 259 Опубликовано 24 ноября, 2017 Как добавить радиостанции на локации Поделиться сообщением Ссылка на сообщение
никита19845 1 259 Опубликовано 24 ноября, 2017 в плане приема Поделиться сообщением Ссылка на сообщение
Паха007 545 Опубликовано 24 ноября, 2017 http://tiarum.com/wiki/Fallout3:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8E_%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D1%86%D0%B8%D0%B8 Поделиться сообщением Ссылка на сообщение
Паха007 545 Опубликовано 24 ноября, 2017 Если речь идет о радиоприемнике, то они находятся во вкладке Activator. Поделиться сообщением Ссылка на сообщение
никита19845 1 259 Опубликовано 24 ноября, 2017 Если речь идет о радиоприемнике, то они находятся во вкладке Activator. Нужны и в пип бой и так, разберусь. Спасибо за ресурсы кстати Поделиться сообщением Ссылка на сообщение
Shadd Ashborn 1 719 Опубликовано 5 декабря, 2017 Опять нужна помощь по скриптам. Ну не могу я в код.) Итак, я сделала активатор, при юзании которого вылазит мессадж. Попыталась прицепить скрипт так, чтобы при нажатии первой кнопки шла проверка на скилы ГГ, и если их недостаточно, отображался мессадж а-ля "ты пытался, но не смог" и окно закрывалось, а при успешной проверке шел скрипт на квест, дисейбл-инейбл и т.д. На картинке видно, что я пыталась сделать: Так вот, при попытке нажать на первую кнопку и недостаточном скиле ГГ мессадж "ты пытался" стандартно залипает, и нажимание "ок" не дает ничего, кромего бесконечного выскакивания этого мессаджа. То же происходит и если у ГГ проходят скилы (мессадж залип, а на заднем фоне я вижу, что игра пытается выполнить мои команды, инеблит нпс и т.д.). Что я опять делаю не так? Недавно я делала аналогичный активтор, с той лишь разницей, что нужная кнопка вылазила только при условии, что скилы ГГ подходят. Я могу попробовать сделать 2 идентичные кнопки в мессаге, подцепив каждуй к своим условиям (одна - проходят, дургая - нет), но я хочу понять, почему мессадж залипает и не закрывается. Поделиться сообщением Ссылка на сообщение
Shadd Ashborn 1 719 Опубликовано 5 декабря, 2017 UPD да, я заметила, что допустила ошибку с переменными DoOnce, но исправление не помогло. Поделиться сообщением Ссылка на сообщение
Shadd Ashborn 1 719 Опубликовано 5 декабря, 2017 UPD Вроде кое-как заставила работать. Скрипт вышел такой: Наверняка костылявый, но лучше не умею. scn EROSBrokenDroidScript short ButtonVar short DoOnceMess Begin OnActivate ShowMessage EROSMess01 Let DoOnceMess := 0 SetObjectiveDisplayed EROSQuest01 10 1 SetStage EROSQuest01 10 End Begin GameMode set ButtonVar to GetButtonPressed if (ButtonVar == 0) if (PlayerRef.GetActorValue Repair >=50 && PlayerRef.GetActorValue Science >=65 && DoOnceMess == 0) ShowMessage EROSMess02 EROSRef.Enable EROSBrokenDroidRef.Disable SetStage EROSQuest01 15 Let DoOnceMess := 1 else If DoOnceMess == 0 ShowMessage EROSMess02Fail Let DoOnceMess := 1 endif endif endif If (buttonVar == 1) ;donothing endif End Поделиться сообщением Ссылка на сообщение