Перейти к содержанию

Рекомендуемые сообщения

Опубликовано
14.07.2024 20:56:15, IgorLutiy сказал(-а):

Проблема в том, что на странице мода забыли указать, что ему нужен расширитель скриптов OBSE. И чтобы редактировать такие скрипты нужно CS запускать через OBSE (кажется так, сорри, запускал это дело в последний раз лет 10 назад, деталей уже не помню, а Обливиона под рукой нет). И далее просто редактируем скрипт и все. Надо убрать указанные фрагменты, не зацепив лишнего, от if WeightS < 5 до соответствующего ему endif. В обоих местах. Все должно работать, сложностей никаких нет, главное правильно запустить редактор с OBSE.

Ну или, совсем костыльный метод - убрать магнитуду у добавляемых эффектов поглощения запаса сил, не трогая скрипты вовсе.

Ничто не истинно, все потрачено

Опубликовано
14.07.2024 20:56:15, IgorLutiy сказал(-а):

Проблема в том, что на странице мода забыли указать, что ему нужен расширитель скриптов OBSE. И чтобы редактировать такие скрипты нужно CS запускать через OBSE (кажется так, сорри, запускал это дело в последний раз лет 10 назад, деталей уже не помню, а Обливиона под рукой нет). И далее просто редактируем скрипт и все. Надо убрать указанные фрагменты, не зацепив лишнего, от if WeightS < 5 до соответствующего ему endif. В обоих местах. Все должно работать, сложностей никаких нет, главное правильно запустить редактор с OBSE.

ааа, спасибо, не знал что и CS тоже через OBSE надо запускать, попробую


15.07.2024 02:43:45, Takirell сказал(-а):

Ну или, совсем костыльный метод - убрать магнитуду у добавляемых эффектов поглощения запаса сил, не трогая скрипты вовсе.

так я уже сделал но подбешивает постоянное уведомление об эффекте при нажатии на клавишу)

  • 2 недели спустя...
Опубликовано

Доброго времени суток)Вопрос разработчикам модификаций для "The Elder Scrolls IV: Oblivion" есть возможность значительно модифицировать игру через редактирование  Oblivion. exe? И если да, то какой нужен софт? Я так понимаю данный файл отвечает за многие параметры игры. Искал информацию в сети, так ничего и не нашел(

Опубликовано
26.07.2024 13:02:15, холод сказал(-а):
есть возможность значительно модифицировать игру через редактирование  Oblivion. exe? И если да, то какой нужен софт? Я так понимаю данный файл отвечает за многие параметры игры. Искал информацию в сети, так ничего и не нашел

Нет. Ида, олька, гидра - если вам эти слова ни о чем не говорят - забудьте про это (но если прям невтерперж, двигайтесь в направлении reverse engineering). Не отвечает, это просто исполнительный файл запуска игры.

  • Нравится 1

Мир друзьям - смерть врагам!

Мой новый сайт-блог: https://igorlutiy.pp.ua - как некое подведение итогов моей жизни в интернете

Мой профиль на Самиздате: http://samlib.ru/l/ljutyj_i/

Опубликовано
26.07.2024 20:01:27, IgorLutiy сказал(-а):

Нет. Ида, олька, гидра - если вам эти слова ни о чем не говорят - забудьте про это (но если прям невтерперж, двигайтесь в направлении reverse engineering). Не отвечает, это просто исполнительный файл запуска игры.

Благодарю за ответ,) Я думал что экзешник задает параметры физики поведение объектов в игре, отражений, света и прочего .Жаль тес 4 не самая плохая игра в серии свитков, но там  физика полное говно (особенно во время боя)

Опубликовано (изменено)

Коллеги, приветствую.
 

Накопилось снова несколько вопросов. Буду рад помощи!
 

Вопрос 1. Есть ли функция, определяющая конкретного актора, который убил другого актора? В OSFM не обнаружил такой функции.
 

Контекст: один из вариантов решения квеста может быть убийство цели прямо без повода, то есть игрок может просто наброситься на цель без всякого разговора или подводки и убить её (вариант возможен до определенной стадии квеста). Проблема в том, что скрипт реагирует только на факт убийства, а не на того, кто именно его совершил. Пытался сделать через блок OnHit, но тогда каждый удар по персонажу заставляет игру лагать...и всё равно не работает)))
 

Вот скрипт на данный момент:

 


if (BrimBoDocksWorm.DuelBelf == 0) && BrimBoBelfREF.getdead == 1 ; && (BrimBoDocksWorm.WormChoice !=( 1 || 8 || 9 || 3) )
set BrimBoDocksWorm.WormChoice to 14


Я в нем забил на попытку обойти это ограничение. Переменная DuelBelf получает 1, когда игрок выбирает "правильные" варианты устранения цели по квесту, а если он решит убить цель вне срежиссированных ситуаций, то переменная WormChoice получит соответствующее значение, которое, в свою очередь, активирует при смерти цели стадию квеста "я убил цель средь бела дня".

Вопрос 2. Есть ли какой-либо triggerbox, который обозначал бы закрытую зону, прохождение по которой означало бы tresspassing для игрока?
 

Контекст: в таверне есть отдельная комната хозяина в той же ячейке (cell), здесь использована модель здания гильдии бойцов из Брумы, из-за чего возникает не-иммерсивная ситуация, когда можно спокойно завалиться в комнату к владельцу, и это никем не считается за проникновение.
 

Вопрос 3. Как сделать несколько персонажей, которые имели бы топик продажи комнаты в таверне, который, в свою очередь, появлялся бы у каждого из персонажей при определенном пакете ИИ?

 

Контекст: отец-владелец таверны иногда уходит на прогулку, его подменяет то один, то другой его сын. Соответственно на этот период действия пакета необходимо чтобы топик с продажей комнаты появлялся у сыновей, а в остальное время отсутствует.

Скрипт ренты комнаты в таверне брал из гайда: https://cs.uesp.net/wiki/Rent_A_Room_Tutorial


Вопрос 4. Как стоило бы оптимизировать код чтобы обьекты которые появляются в определенные дни (переходят в состояние enable и обратно) не нагружали память? Вроде Артмур говорил. что такие переключения стакаются в сохранении, приводя к save bloat'у, поэтому этих переключений стоит избегать. если это так, то как стоит поступить? Сдвигать обьект и уменьшать в размерах?
 

Контекст: Раз в неделю на несколько дней в мое поселение "приезжают" корабли, которые активируют (enable) свою модель, пока игрока нет рядом. Я сперва написал код через gamemode блок, а затем попытался сделать кастомную функцию. Не знаю, что из этого лучше, а к этому добавилось и затруднение с памятью, описанное выше.

Скрипты такие:

scn BrimBoCommerceAArrival

float fQuestDelayTime

begin gamemode

Set fQuestDelayTime to 1
	if (GetDayOfWeek == 4) && (player.GetInSameCell BBShipCom1REF== 0)   && (GameHour >= 9) && (GameHour <= 12)
		BBShipCom1REF.enable 
		BBDoorCom1REF.enable

		if BBOrtangoREF.GetDisabled == 1 &&  BrimBoFeldiusREF.GetDisabled == 1   &&  BrimBoCalzioneREF.GetDisabled == 1  &&	BrimBoTulviaREF.GetDisabled == 1  &&	BrimBoTulviusREF.GetDisabled == 1  
			
	    BBOrtangoREF.enable
		BrimBoFeldiusREF.Enable
        BrimBoCalzioneREF.Enable
		BrimBoTulviaREF.Enable
			BrimBoTulviusREF.Enable
		endif

		call BrimBoSwapFunction
	endif

Параллельно с этим сделал функцию, но она не работала, поэтому в первом скрипте я раскоментировал enable персонажей.

scn BrimBoSwapFunction

int swap ; traders forcefully move to shp room or to market depending on day
int timer
short cooldown

begin function   {}
	
if GetDayOfWeek == 1
		let swap :=2
		elseif GetDayOfWeek == 4
		let swap :=1
	elseif (GetDayOfWeek != 1) || (GetDayOfWeek != 4)
		let swap:= 0
	endif

	if swap == 2 ; /// they MOVE to ship
		
 if  BrimBoTulviaREF.GetDistance BrimBoDEPARTURETradersREF < 35
		BrimBoTulviaREF.MoveTo BrimBoShipTraderMarkerREF
		endif
	 if	BrimBoTulviusREF.GetDistance BrimBoDEPARTURETradersREF < 35
		BrimBoTulviusREF.MoveTo BrimBoShipTraderMarkerREF
endif
	 if	BrimBoFeldiusREF.GetDistance BrimBoDEPARTURETradersREF < 35
		BrimBoFeldiusREF.MoveToMarker BrimBoShipTraderMarkerREF
endif
	 if	BrimBoCalzioneREF.GetDistance BrimBoDEPARTURETradersREF < 35
		BrimBoCalzioneREF.MoveToMarker BrimBoShipTraderMarkerREF
endif
	 if	BBOrtangoREF.GetDistance BrimBoDEPARTURETradersREF < 35
		BBOrtangoREF.MoveToMarker BrimBoShipTraderMarkerREF
endif
	endif


	if swap == 1 ; /// they MOVE to city
		
    set cooldown to 1
	set timer to timer + GetSecondsPassed

	if timer > 5
		BrimBoTulviaREF.MoveToMarker BrimBoDEPARTURETradersREF
	endif

	if timer > 10
		BrimBoTulviusREF.MoveToMarker BrimBoDEPARTURETradersREF
    endif

	if timer > 15
			BrimBoFeldiusREF.MoveToMarker BrimBoDEPARTURETradersREF
		endif
		
	if timer > 20
				BrimBoCalzioneREF.MoveToMarker BrimBoDEPARTURETradersREF
		endif
		
	if timer > 25
       BBOrtangoREF.MoveToMarker BrimBoDEPARTURETradersREF
	 endif


		 
	endif
	
	if timer >30
   set cooldown to 0
	endif
	
	if cooldown == 0
		set timer to 0
		endif
 
end

Вопрос 5. Как в нифскопе сменить ось вращения обьекта?
 

Контекст: взял обьект по адресу clutter\chandelierhook01.nif, а у него точка вращения где-то далеко от самой модели. Как её сместить? Если начинаю опускать обьект в  Nifskope, ось вращения опускается вместе с ним. Оперировать обьектом в редакторе CS совершенно невозможно.

Вопрос 6. Как сделать серию диалогов между нпс по скрипту? И по окончании диалога менялась бы стадия квеста. (вопрос о методе реализации, теоретически я понимаю как это делается, практически же не работает)

Контекст: После определенного топика в диалоге с нпс1 прямо в окне результирующего скрипта я прописал функцию startconversation SpecialTopicForTwo для нпс1 с нпс2. Первый нпс говорит свои слова, а второй нет, хотя в результирующем скрипте фразы нпс1 я написал такой же текст 
startconversation SpecialTopicForTwo (в топике прописаны фразы и первого и второго нпс).  Вместо этого первый нпс толкает и толкает свою речь по кругу....

Вот скрипт, сделанный уже через переменную, а не напрямую в результирующем окне диалога:

 

	; JAGER TO MARWEN


	if jagershocked == 1
	if brimbomarvenneref.getinsamecell BrimBoJagerref   
			BrimBoJagerref.StartConversation BrimBoMarvenneREF, BrimBoJagerSHoutToMarvTopic
			 
		endif
	;	endif
		endif


	if MarvenneShoutJager == 1
		BrimBoMarvenneREF.StartConversation BrimBoJagerref, BrimBoJagerSHoutToMarvTopic
	endif
	
	if JagerSaystoPlayer == 1
		BrimBoJagerref.StartConversation player, brimboJagerToPlayerTopic
	endif
	

ПС. Пытался сделать через SayTo, и это совершенно не работало. А startconversation хотя бы заставляет болванчиков действовать.

ППС. Попытался сделать через переменную, которая запускала бы алгоритм. Переменная активируется в результирующем окне диалога, а её тело прописано в скрипте квеста. Но так вообще перестало всё работать. Так же пробовал прописывать 
startconversation в стадии квеста (где было уместно), но так тоже ничего не работает.

Еще раз спасибо за помощь в работе над модификацией и в разъяснении трудностей! :)

 

Изменено пользователем ArtemSH
Пοταπός ἐστιν οὗτος ὅτι καὶ οἱ ἄνεμοι καὶ ἡ θάλασ­σα αὐτῷ ὑπακούουσιν
  • 2 недели спустя...
Опубликовано

Вопрос по поведению CS возник. 

Зачастую приходится копировать из одного мода в другой локации. Очевидно, если локация создана из стандартных элементов, она переносится без проблем, но затем, при загрузке активного мода снова CS обычно выкидывал кучу предупреждений, что такие-то объекты недоступны и удалены. Это про уровневые существа из мода-донора, которые естественно не могли быть перенесены. В последнее время таких предупреждений что-то нет, хотя работает все корректно, локация переносится, объекты из "донорского" мода адекватно удаляются, и на их место можно ставить уровневых персонажей из текущего мода.

Это не то чтобы проблема, но любые изменения того, что годами работало так, а стало иначе, настораживают конечно.

Опубликовано
02.08.2024 17:03:15, ArtemSH сказал(-а):
Вопрос 1. Есть ли функция, определяющая конкретного актора, который убил другого актора? В OSFM не обнаружил такой функции.

Блок OnDeath в помощь. Его нужно повесить на нужных НПС, но выглядеть это будет так:

Begin OnDeath Player
;Здесь условия и то, что должно произойти
End

После название блока, как Вы могли заметить, идет Player - игра понимает его, как убийцу. Заместо этого аргумента может быть кто угодно.

 

02.08.2024 17:03:15, ArtemSH сказал(-а):
Вопрос 2. Есть ли какой-либо triggerbox, который обозначал бы закрытую зону, прохождение по которой означало бы tresspassing для игрока?

Конкретно в ваниле - не припоминаю, но Вы можете сами его создать и разместить, в чем проблема? Просто нужно будет повесить на него специальный скрипт, срабатывания которого ограничить переменной sDoOnce, например, возводить которую в "1" после того, как игрок встанет в триггер и сработает блок OnTriggerActor. А сбрасывать переменную (если это нужно) уже, скажем, в GameMode, после того, как игрок отойдет на какое-то расстояние от триггера. Или при иных условиях.

 

02.08.2024 17:03:15, ArtemSH сказал(-а):
Вопрос 3. Как сделать несколько персонажей, которые имели бы топик продажи комнаты в таверне, который, в свою очередь, появлялся бы у каждого из персонажей при определенном пакете ИИ?

Создать новый топик и добавить в него условие в виде GetIsCurrentPackage с указанием в параметре условия пакета и выставление типа условия OR, вместо AND. Там есть флажки для этого. Ну и,  созданный топик нужно добавлять скриптом через AddTopic.

 

02.08.2024 17:03:15, ArtemSH сказал(-а):
Вопрос 4. Как стоило бы оптимизировать код чтобы обьекты которые появляются в определенные дни (переходят в состояние enable и обратно) не нагружали память?

Хмм... чессказать, не слышал о таком. Да, я вижу, что код написан неверно и будет постоянно отдавать игре команду на включение\отключение, т.к, опять таки - нет проверок-ограничителей на выполнение тех или иных действий. Щас прям с ходу не исправлю, времени не особо...

 

02.08.2024 17:03:15, ArtemSH сказал(-а):
Вопрос 6. Как сделать серию диалогов между нпс по скрипту?

Я использую SayTo, но с привязкой к таймеру. Ппж (хз когда), скину пример скрипта. Там, на самом деле, все оч просто.

P.S Если честно, то многие вещи мне было бы удобнее объяснить Вам в дискорде, например, с демонстрацией экрана, т.к это заняло бы в разы меньше времени, чем я буду все это пытаться расписывать и заливать скрины :D

  • Нравится 1

Ничто не истинно, все потрачено

Опубликовано

Да, я только за дискорд. Будет вполне удобно :)

Спасибо! 

13.08.2024 09:51:09, Takirell сказал(-а):

Блок OnDeath в помощь. Его нужно повесить на нужных НПС, но выглядеть это будет так:

Begin OnDeath Player
;Здесь условия и то, что должно произойти
End

После название блока, как Вы могли заметить, идет Player - игра понимает его, как убийцу. Заместо этого аргумента может быть кто угодно.

 

Конкретно в ваниле - не припоминаю, но Вы можете сами его создать и разместить, в чем проблема? Просто нужно будет повесить на него специальный скрипт, срабатывания которого ограничить переменной sDoOnce, например, возводить которую в "1" после того, как игрок встанет в триггер и сработает блок OnTriggerActor. А сбрасывать переменную (если это нужно) уже, скажем, в GameMode, после того, как игрок отойдет на какое-то расстояние от триггера. Или при иных условиях.

 

Создать новый топик и добавить в него условие в виде GetIsCurrentPackage с указанием в параметре условия пакета и выставление типа условия OR, вместо AND. Там есть флажки для этого. Ну и,  созданный топик нужно добавлять скриптом через AddTopic.

 

Хмм... чессказать, не слышал о таком. Да, я вижу, что код написан неверно и будет постоянно отдавать игре команду на включение\отключение, т.к, опять таки - нет проверок-ограничителей на выполнение тех или иных действий. Щас прям с ходу не исправлю, времени не особо...

 

Я использую SayTo, но с привязкой к таймеру. Ппж (хз когда), скину пример скрипта. Там, на самом деле, все оч просто.

P.S Если честно, то многие вещи мне было бы удобнее объяснить Вам в дискорде, например, с демонстрацией экрана, т.к это заняло бы в разы меньше времени, чем я буду все это пытаться расписывать и заливать скрины :D

Пοταπός ἐστιν οὗτος ὅτι καὶ οἱ ἄνεμοι καὶ ἡ θάλασ­σα αὐτῷ ὑπακούουσιν
Опубликовано (изменено)

Предыдущий вопрос снят..разрешилось  :D

 

Но теперь по такой мелочи хотелось бы посоветоватся. У меня есть мод с новыми заклинаниями. Чтобы не добавлять их каждый раз через консоль ( тем более номер мода еще и постоянно меняется из-за CS, изменяющего другие моды) показалось удобным сделать специального торговца, и дом для нее, за пределами игрового мира (Лишний раз лезть в ячейки игрового мира пусть даже из-за такой мелочи тоже не охота, мало ли что где зацепится.)

 

А вот куда вывести дверь от него ? Вроде как магазин не особо и нужный, каждому персонажу туда разве один раз зайти. Опять где-то за пределами границ мира на опушке леса поставить загогулину и на нее навесить дверь внутрь. Но тогда вопрос- не сможет ли хозяйка пойти погулять ? У нее АИ-пакет один- постоянно быть дома и оказывать услуги, торговать, дом со всем содержимым принадлежит ей, за пределами дома сетки путей нет. 

======

 

Заодно поделюсь недавними наблюдениями за уровневыми списками заклинаний. Если в списке стоит пометка calculate from all levels, то выбирается заклинание оптимальное под уровень игрока или меньше его. Если же эта пометка не стоит, вражеский маг выбирает максимально лучшее. Всем известно, но тут есть два замечания :

 

- фактически, если посмотреть в CS, по многим листам путаница. Вроде как наилучшими должны быть левеледлисты с пометкой Lvl100, а без такой пометки- коректироватся под наш уровень, но к сожалению это не соблюдается, иногда даже наоборот, или чаще всего подобные листы одинаковы, и лист спеллов босса с пометкой lvl100 одинаков по калькуляции с листом обычных врагов, то есть босс не имеет никаких преимуществ в атаке против нашего протагониста и мало отличается от своих подчиненных (ну разве что шапку носит)

 

-видимо при выдаче заклинаний нипам из списка учитывается не уровень нашего персонажа, а уровень его владения в соответствующих школах магии, именно это и указано в графе уровней- 25, 75, 100. Однако возможно как-то учитывается и текущий уровень, так в эксперименте против игрового персонажа 25 уровня с владением колдовством 5 все равно два мага использовали призыв существ уровня ученика школы колдовства, у одного из них спелллст был помечен как Calculate from all levels <= PC's level, а у другого нет, мог использовать по максимуму.

Изменено пользователем piramis
Опубликовано (изменено)

Приветствую. Если коротко, то как сравнить 2 ссылки и определить, что они разные?

Суть в том, что мне нужно отслеживать, поменялась ли цель в прицеле (использую GetCrosshairRef), и если поменялась, то выполнить действие. Сравнивать по имени не вариант. Какие есть варианты?

 

P.S. Оказалось достаточным просто проверить на равенство эти ссылки ref1 != ref2

Изменено пользователем EdMSL
  • Нравится 1
Опубликовано
25.08.2024 06:44:23, EdMSL сказал(-а):
ref1 != ref2

Обычно, я использую GetIsReference. Так будет правильнее. (Ref1.GetIsReference Ref2 == 0)

  • Нравится 1

Ничто не истинно, все потрачено

Опубликовано

Вопрос не совсем по плагиностроению. В xEdit есть функция отмены последнего действия\изменения, Ctrl-z, в общем. Полагаю, что нет, но хотелось бы удостовериться. Просто у меня в голове не укладывается это...

Опубликовано (изменено)

Есть где-то руководства по уровневым спискам? Хочу сделать так, чтобы выпадало от 1 до 3 ингредиентов одного вида (от одного до трех яблок, например) в контейнере, но как настроить список не пойму.

P.S. Вроде разобрался. Надо было создать уровневый список (предмет) с одним яблоком и chance none 50%, например, а в контейнер добавить одно яблоко явно и два созданных уровневых предмета. В итоге получаем от 1 до 3 яблок.

Изменено пользователем EdMSL
  • Нравится 1
Опубликовано
29.08.2024 15:22:29, EdMSL сказал(-а):
Есть где-то руководства по уровневым спискам?

Что-то есть:

Уровневые предметы (Leveled Items)

Как взаимодействует движок игры со списками уровневых предметов оснащения NPC

  • Нравится 1

Мир друзьям - смерть врагам!

Мой новый сайт-блог: https://igorlutiy.pp.ua - как некое подведение итогов моей жизни в интернете

Мой профиль на Самиздате: http://samlib.ru/l/ljutyj_i/

Опубликовано
28.08.2024 16:02:05, EdMSL сказал(-а):

Вопрос не совсем по плагиностроению. В xEdit есть функция отмены последнего действия\изменения, Ctrl-z, в общем. Полагаю, что нет, но хотелось бы удостовериться. Просто у меня в голове не укладывается это...

Там есть при выходе save Backup, насчет отмены действия - не припоминаю)

Ничто не истинно, все потрачено

Опубликовано
31.08.2024 13:55:37, Takirell сказал(-а):

Там есть при выходе save Backup, насчет отмены действия - не припоминаю)

Я уже, в принципе, получил ответ. И возможности отмены действия нет. Бред, конечно, но факт остается фактом.

  • Нравится 1
Опубликовано (изменено)

Почему пропадает мимика у новой расы и что с сим делать, и, как сделать новую расу неиграбельной, но все же доступной для общения?

 

+ Как и чем паковать BSA, чтобы Обливион его читал?

Изменено пользователем SisterlovingAltmer
Опубликовано (изменено)
02.09.2024 14:45:55, SisterlovingAltmer сказал(-а):
Почему пропадает мимика у новой расы и что с сим делать, и, как сделать новую расу неиграбельной, но все же доступной для общения?

Видимо никак, много раз экспериментировалось с этим моментом. Даже при наличии дефолтной озвучки неиграбельная раса немая. Единственное исключение - дремора и их голоса. Так что новую расу нужно оставлять играбельной, а если она мешает в окне выбора расы при создании персонажа, назвать ее как-нибудь на Ф или Щ, чтобы болталась в конце списка.

 

Также свой вопрос- сделал зачарование на броню с скриптэффектом огненного атронаха- чтобы персонаж тоже был в огне. Увы, почему то не работает. Для информации полез смотреть один мод, который дает такие вот ауры, включая огненную, там намного сложнее сделано. Хотел себе пересохранить тот скрипт из мода на огонь, увы, конструктор не дал сохранить, в какой-то линии ошибка.

 

Так можно ли попроще сделать такой эффект ? Как-то даже стал думать в сторону вытащить из бса модель этого огня и добавить к модельке брони ( как это делают с оружием с эффектом пламени), знать бы где точно искать, ведь такая аура сродни скажем облаку пыли. которое выбивается при ударе из скелета.

 

UPD: решилось намного проще созданием заклинания с эффектом урона огнем на себя. Еще и убирается заклинанием рассеивания, не нужно таскать с собой отдельно предмет брони с зачарованием и без. :)

Изменено пользователем piramis
Опубликовано
02.09.2024 14:45:55, SisterlovingAltmer сказал(-а):

+ Как и чем паковать BSA, чтобы Обливион его читал?

https://www.nexusmods.com/fallout4/mods/63243. Прекрасно работает с Облой.

 

03.09.2024 10:48:08, SisterlovingAltmer сказал(-а):

Где можно почитать о путях проходимости или как оно называется, как их настраивать в доме, чтобы НПС не ломилась через стены и витрины?

https://www.youtube.com/watch?list=PLEeOLl75MAdsy_WYC_ZGzXW761vhynC_T&v=pclr3EVkzho
 

Опубликовано
03.09.2024 13:17:14, EdMSL сказал(-а):

Я писал, "почитать", в формате видео я плохо воспринимаю информацию. За прогу спасибо.

Опубликовано
03.09.2024 10:48:08, SisterlovingAltmer сказал(-а):

Где можно почитать о путях проходимости или как оно называется, как их настраивать в доме, чтобы НПС не ломилась через стены и витрины?

Начать здесь, продолжить здесь.

  • Нравится 1

Мир друзьям - смерть врагам!

Мой новый сайт-блог: https://igorlutiy.pp.ua - как некое подведение итогов моей жизни в интернете

Мой профиль на Самиздате: http://samlib.ru/l/ljutyj_i/

Опубликовано (изменено)
31.08.2024 13:55:37, Takirell сказал(-а):

 

Может ты подскажешь, как правильно вызывать функции из dll?

Есть, допустим, dll у LootMenu. В нем есть функции HasScriptBlock и ScriptHasActivate. Но если я использую их в другом моде, то получаю ошибку Could not create function context for function script. Возможно, что это из-за того, что скрипт не скомпилирован. Но CSE не дает его скомпилировать.

let temp := ScriptHasActivate, rContainerRef 

Это не работает, ругается на то, что операнды не корректные.

 

Но есть другой мод и там эта функция работает, хотя если мод открыть в CSE и пробовать сохранить, тоже будет ошибка и не скомпилируется.

Всяко уже пробовал, не работает и все тут.

 

P.S. Отбой, я сам дурак, забыл dll от LootMenu закинуть...

Изменено пользователем EdMSL
  • Нравится 1

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...