-
Публикаций
2 980 -
Пожертвование
0,00 ₽ -
Зарегистрирован
-
Посещение
-
Победитель дней
171
Сообщения, опубликованные Shadd Ashborn
-
-
UPD отбой, забыла вставить переменную в начале.
Счас попробую
-
Я попробовала всунуть условие из первого поста для работы скрипта как такового (в самое начало), но полезли эрроры:
-
Насчет листов НПС вроде как вижу, что нужно добавить еще один подблок. Но что делать с ячейками? Сканер, судя по всему, сканирует только НПС.
Нужно как-то добавлять условие на то, в разрешенной ли ячейке ГГ, прямо в начале скрипта или как?
-
Не работает, По крайней мере, ячейка - точно.
Вот полный текст скрипта:
scn 00SexoutHookupQuestScript short playing float approach short legion short powder short kings short khans short ncrWhore short Whoring short doLegion short doPowder short doKings short doKhans short doNCRwhore short doWhoring short mLegion short mPowder short mKings short mKhans short mNCRwhore short mWhoring ref SexoutNCRWhore ref targetRef int iSelf short init short scanChance short scanIndex short scanCount short subLoops short loopDelay float fDelay Begin GameMode if init < 5 set init to 5 set approach to 1.5 set scanIndex to 0 set subLoops to 5 set loopDelay to 300 / subLoops endif if GetGameLoaded PrintC "SexoutHookups: загрузка..." set iSelf to GetModIndex "SexoutHookups.esm" if 255 == iSelf set iSelf to GetModIndex "SexoutHookups.esp" endif if 255 == iSelf set iSelf to GetModIndex "SexoutHookupsAlt.esm" endif if 255 == iSelf set iSelf to GetModIndex "SexoutHookupsAlt.esp" endif set targetRef to BuildRef iSelf 2781 PrintC "SexoutHookups: Quest is %i" targetRef set targetRef to BuildRef iSelf 18649 PrintC "SexoutHookups: DebugQuest is %i" targetRef set targetRef to BuildRef iSelf 18651 PrintC "SexoutHookups: DebugOffQuest is %i" targetRef endif if GetGameRestarted set SexoutNCRWhore to 0 set mKhans to 0 set mKings to 0 set mLegion to 0 set mNCRwhore to 0 set mPowder to 0 set mWhoring to 0 if IsModLoaded "sexoutKhans.esp" set mKhans to GetModIndex "sexoutKhans.esp" endif if IsModLoaded "sexoutKhans.esm" set mKhans to GetModIndex "sexoutKhans.esm" endif if IsModLoaded "sexoutKings.esp" set mKings to GetModIndex "sexoutKings.esp" endif if IsModLoaded "sexoutKings.esm" set mKings to GetModIndex "sexoutKings.esm" endif if IsModLoaded "sexoutLegion.esp" set mLegion to GetModIndex "sexoutLegion.esp" endif if IsModLoaded "sexoutLegion.esm" set mLegion to GetModIndex "sexoutLegion.esm" endif if IsModLoaded "sexoutNCR.esp" set mNCRwhore to GetModIndex "sexoutNCR.esp" set SexoutNCRWhore to BuildRef mNCRwhore 160621 endif if IsModLoaded "sexoutNCR.esm" set mNCRwhore to GetModIndex "sexoutNCR.esm" set SexoutNCRWhore to BuildRef mNCRwhore 160621 endif if IsModLoaded "sexoutPowderGangers.esp" set mPowder to GetModIndex "sexoutPowderGangers.esp" endif if IsModLoaded "sexoutPowderGangers.esm" set mPowder to GetModIndex "sexoutPowderGangers.esm" endif if IsModLoaded "sexoutProstitutes.esp" set mWhoring to GetModIndex "sexoutProstitutes.esp" endif if IsModLoaded "sexoutProstitutes.esm" set mWhoring to GetModIndex "sexoutProstitutes.esm" endif if IsModLoaded "sexoutWorkinhGirl.esp" set mWhoring to GetModIndex "sexoutWorkinhGirl.esp" endif if IsModLoaded "sexoutWorkinhGirl.esm" set mWhoring to GetModIndex "sexoutWorkinhGirl.esm" endif endif short startwhile short endwhile set endwhile to 1 set doKhans to Khans * mKhans set doKings to Kings * mKings set doLegion to Legion * mLegion set doNCRwhore to NCRwhore * mNCRwhore set doPowder to Powder * mPowder set doWhoring to Whoring * mWhoring set targetRef to playerRef ref scan set scan to GetFirstRef 200 ; lets put a little delay here if fDelay > 0 set fDelay to fDelay - GetSecondsPassed return endif set fDelay to loopDelay set scanChance to (scanChance + 1) % subLoops ; one of 'subLoops' people tested at a time set scan to GetFirstRef 200 set scanCount to 0 set scanIndex to 0 Label startwhile set scanIndex to (scanIndex +1) % subLoops if scan if (scanIndex == scanChance) if scan.IsChild set scan to GetNextRef Goto startwhile endif if ListGetFormIndex aaHookUpsBannedNPC scan > -1 && ListGetFormIndex aaHookUpAllowedCells scan == -1 set scan to GetNextRef Goto startwhile endif if scan == playerRef set scan to GetNextRef Goto startwhile endif if scan.GetDisabled set scan to GetNextRef Goto startwhile endif if scan.GetIsCreature set scan to GetNextRef Goto startwhile endif if scan.GetPlayerTeammate || scan.GetFactionRank FollowerFaction > -1 set scan to GetNextRef Goto startwhile endif if scan.IsChild set scan to GetNextRef Goto startwhile endif if scan == playerRef set scan to GetNextRef Goto startwhile endif if scan.GetDisabled set scan to GetNextRef Goto startwhile endif if scan.GetDead set scan to GetNextRef Goto startwhile endif if scan.GetUnconscious set scan to GetNextRef Goto startwhile endif if scan.GetRestrained set scan to GetNextRef Goto startwhile endif if ListGetFormIndex SexoutSLActorDataIsReserved scan > -1 set scan to GetNextRef Goto startwhile endif if scan.IsInList SexoutSLActorDataIsReserved set scan to GetNextRef Goto startwhile endif if ListGetFormIndex SexoutListBannedActor scan > -1 set scan to GetNextRef Goto startwhile endif if scan.IsInList SexoutListBannedActor set scan to GetNextRef Goto startwhile endif if ListGetFormIndex SexoutSLActorDataHatesSex scan > -1 set scan to GetNextRef Goto startwhile endif if scan.IsInList SexoutSLActorDataHatesSex set scan to GetNextRef Goto startwhile endif if ListGetFormIndex SexoutSLActorDataIsNotLookingForSex scan > -1 set scan to GetNextRef Goto startwhile endif if scan.IsInList SexoutSLActorDataIsNotLookingForSex set scan to GetNextRef Goto startwhile endif if ListGetFormIndex SexoutSLActorDataIsPartneredFaithfully scan > -1 set scan to GetNextRef Goto startwhile endif if scan.IsInList SexoutSLActorDataIsPartneredFaithfully set scan to GetNextRef Goto startwhile endif if scan.GetIsClass Prostitute set scan to GetNextRef Goto startwhile endif if doPowder if scan.GetInFaction vDialoguePowderGangerFaction set scan to GetNextRef Goto startwhile endif endif if doLegion if scan.GetInFaction vCaesarsLegionFaction set scan to GetNextRef Goto startwhile endif endif if doKings if scan.GetInFaction vKingsDialogueFaction set scan to GetNextRef Goto startwhile endif endif if doKhans if scan.GetInFaction vGreatKhansDialogueFaction set scan to GetNextRef Goto startwhile endif endif if doNCRwhore if scan.GetinFaction vNCRMilitaryDialogueFaction if targetRef.GetEquipped SexoutNCRWhore set scan to GetNextRef Goto startwhile endif endif endif if doWhoring ; what we really want is: ; set scan to BuildRef mWhoring 139704 ; if scan.whoremode if targetRef.GetEquipped SexoutListProstituteOutfits ; far from perfect as WorkingGirl allows whoring in arbitrary clothes set scan to GetNextRef Goto startwhile endif endif if (0 == (scan.IsSpellTarget SexoutHookupEffect)) && (0 == (scan.IsSpellTarget SexoutHookupOld)) short Limit ; base change 50 over 200 (1 in 4) set Limit to 50 ; if night, double limit if Gamehour > 19 set Limit to 2 * Limit endif ; if nympho, double limit again or for first time if not night if ListGetFormIndex SexoutSLActorDataIsNymphomaniac scan > -1 set Limit to 2 * Limit endif ; boosts ; + charisma * approach ; + 1/100 of Evil Karma set Limit to (Limit + (scan.GetAv Karma / -100) + (targetRef.GetAV Charisma * approach)) ; if wearing any armor with DT, make limit 0 if player.getav damagethreshold > 25 set Limit to 0 * Limit else set Limit to 1 * Limit endif short random set random to 2 * GetRandomPercent if random < Limit scan.CIOS SexoutHookupEffect else scan.CIOS SexoutHookupOld endif endif endif set scan to GetNextRef Goto startwhile endif End
Что может быть не так?
-
Ну, в других подблоках этого блока с формлистами так и сделано. Я честно не понимаю, что там и как, сделала просто по аналогии.
-
Первый пост - явно не то. Мне нужно просто условие для уже имеющегося списка условий абортинга сканера - просто подставить новый мини-блок, а не писать новый скрипт.
Второй пост, т.е., должно быть так -
if ListGetFormIndex aaHookUpsBannedNPC scan > -1 && ListGetFormIndex aaHookUpAllowedCells scan == -1
Верно?
Задача как раз стоит в том, чтобы задать условие - ячейки нет в списке, НПС есть. Решила так потому, что разрешенных ячеек будет мало (с десяток - бары и салуны), и запрещенных нпс, соответственно, тоже мало (квестовые именные, как то мориарти например).
-
Методом сравнения имеющегося скрипта и тыка вывела такое:
if ListGetFormIndex aaHookUpsBannedNPC scan > -1 && ListGetFormIndex aaHookUpAllowedCells scan == 0
Правильно ли?
Не понимаю, почему -1, но в этом же скрипте используются формлисты, и в условиях, где логически значение позитивное (НПС принадлежит этому списку), выставлено так.
-
Я так понимаю, та, где сейчас ГГ.
-
Мне нужна еще помощь по скриптам.)
В общем, у меня есть формлист ячеек, который, по моей задумке, я хочу использовать как лист разрешенных ячеек для определенного скрипта (сканер). И будет лист, который будет листом запрещенных НПС. Как сделать проверку на такое условие?
Есть команда IsInList, но я не знаю, как именно использовать ее.
Должно быть как-то так:
If (текущая ячека) В списке разрешенных ячеек && (реф НПС) НЕ в списке запрещенных НПС
срабатывает сканер
endif
Или же наоборот, если ячейка НЕ в списке и НПС В списке - аборт (там есть такая команда).
-
бог с ним - главная генерация только закончилась ( 9 часов )
Это не геренация ландшафта, ты сможешь подменить не-уровневые рефы уровневыми в любой момент.)
-
Уровневые списки нужно создавать вручную. Я уже не помню точно, как, но в гайде, что я скидывала, по заселению Убежища, вроде как было (я делала по нему собственные левел-листы для своего логова рейдеров).
-
nmc tecstur puck ШО ЕНТО ЗА ХЕРЬ
Я думаю, имелся в виду NMC Texture pack)
-
На самом деле, свободные переменные в ванильной игре в разных скриптах зачастую называются одинаково, и это нормально, так как они никак не пересекаются. Вот, например, у меня почти в каждом скрипте есть переменная DoOnce. Так проще, потому, что наверняка знаешь, что это за переменные.
Только вот простому человеку, который захотел просто сделать небольшой квест или фолловера, а не пилить второй Фронтир, узнать об этом неоткуда. х)
-
В общем, я таки разобралась, где был затык с колесом.
Соль в том, что ВСЕ переменные, отвечающие за его фукнции, должны быть строго идентичны стандартам: для ожидания ИСКЛЮЧИТЕЛЬНО Waiting, для стилей боя - ИСКЛЮЧИТЕЛЬНО FollowerCombatStyleRanged/Melee, никаких ChrisWaiting и т.д. Частичная работоспособность колеса у меня была потому, что часть переменных я таки выставила 100% идентичными стандарту. А вот, как оказалось, там, где я их изменила для удобства - т.к. в гайде ни малейшего слова об этой детали - всё косило.
Вдруг кому пригодится.)
- 2
-
Спасибо!
Собственно, взяла версию Магнума, всё заработало. Странно, что гекк сам не ругался на кривую структуру if-ов. х)
-
Снова нужна подсказка по скрипту.)
Суть квеста - при поднятии итема с мертвого нпс стадия квеста переходит на новую, но диалог Криса должен отлчаться в ситуации, когда он был не с игроком в момент смерти нпс и поднятия с трупа вещи.
Сделала такой блок:
If GetStage aaChrisQuest02 == 10 && ChrisHired == 1 && ChrisWaiting == 0 If Player.GetItemCount aaChrisMotherPendant == 1 SetStage aaChrisQuest02 20 set raiderdead01 to 1 Else if Player.GetItemCount aaChrisMotherPendant == 1 SetStage aaChrisQuest02 20 Endif Endif Endif
Где при условии, что Крис с игроком, назначается переменная и в соответствии с ее значением диалог с Крисом немного отличается. Первая часть блока работает, но вот вторая не хочет. Видимо, напутала что-то с in/endif. x) Подскажите, что подкрутить, чтобы срабатывало в обеих вариантах. -
Ага, уже поняла это. Думала, может гдже волшебная галка есть, но надо вручную повторять список выборов.)
-
Я пыталась словить айди собаки, но она невидима и не ловится консолью. Так что все, что я могу дать из инфы - что это невидимая бродячая собака, скорее всего, из модуля кричеров. ._.
-
Ты меня спрашиваешь?)) Народ в чате жалуется, что прибиваются со старта игры в Мохаве.)
-
Это чинить надо просто) Наложений в идеале быть не должно.
Ой, куда нам идеал, когда у нас собаки бездомные и гранатометчики НКР к ГГ прибиваются...
-
Активация ближнего боя находится в топике FollowerTacticsCombatMelee (чуть выше на скрине). Как и в гайде, как и у всех других спутников игры.
-
Именно колесо наоборот всегда видит стиль боя "мили" (именно иконка - оружие внизу оно высвечивает соотвественно текущему стилю боя). И при нажатии на нее, если у гг на самом деле стиль стрельба и это распознано игрой, фолловер ругается, что уже "и так стреляет" (т.е. колесо пытается выполнить команду назначения фолловеру стиля стрельбы, тогда как он уже активен). Причем это происходит ровно 1 раз после открытия колеса. Дальше стили свичятся коректно. Но - опять же! - при открытии колеса снова оно снова видит всегда стиль мили. И если НА САМОМ деле у фолловера активна стрельба - колесо опять будет пытаться назначить ему стрельбу, и он опять ругнется, что стрельба уже назначена.
Я не знаю, как еще обьяснить.
-
Ну так верно, стиль по умолчанию - рендж. Когда я открываю колесо - я вижу иконку кулаков, т.е. колесо думает, что у фолловера выставлен стиль боя мили, хотя это не так. Я жму на иконку и фолловер - логично - говорит, что он уже и так стреляет. Стиль боя меняется только со второго нажатия. И при открытии колеса повторно иконка стиля боя всегда кулаки, даже если я переставила до этого на рендж (т.е. - нажала 3 раза, 1 раз "протолкнула" колесо к правильному стилю боя, заставив фолловера ругнуться, что он и так стреляет, и дальше 2 раза, чтобыв переключить на мили и обратно на рендж).
Впрочем, стиль боя точно также глючит в колесе и у другого модового компаньйона, Брисы Альмодавар (висят псевдо-кулаки, жмешь на них и она ругается, что уже и так стреляет), так что тут, наверное, дело не в моем моде.
А вот фасттревел работает криво и я не понимаю, почему.
-
Как я уже говорила, иначе не будет по техническим причинам. В ближайшее время - так точно.
Вопросы по моддингу Fallout 3 и New Vegas
в Fallout 3 / NV - Мастерская по созданию модов
Опубликовано
Ну, то, что я там написала, сделало так, что сканер не работает вообще.)
Сейчас попробую еще этот подблок.