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

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

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

Ссылки на компоненты "квеста", о которых ты до этого и понятия не имел - ерунда, конечно, ничем не помогло.

Инструкции по тому, как отслеживать статус компонента в скрипте - тоже ерунда, ты же это и так прекрасно знал.

*это был сарказм, есливчо*

 

Если ты не в состоянии разобраться в том, что тебе дали (а дали тебе для решения твоей проблемы достаточно информации), но вместо этого можешь только ныть - это не моя проблема.

  • Ответов 4,8 тыс
  • Создана
  • Последний ответ

Топ авторов темы

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

демагог ты наш!читай внимательно, когда люди задают вопросы и тогда столько воды не будет! я этим занимался года 3-4 назад, решил опять попробовать... мне много чего надо вспомнить... 

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

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

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

я еще пороюсь и я вспомню... но люди почитав мои выкладки, достанут этот квест и разнообразят свои пещеры... а мне скучно ставить этот квест в таком состоянии, я хочу модернизировать его, что и пытаюсь сделать... с твоей помощью, или без твоей помощи, но я это сделаю... могу сказать только, что в моей голове куча ЛОГИЧЕСКИХ КВЕСТОВ, для моих локаций)))

Опубликовано
08.09.2018 07:20:45, stanislavd сказал(-а):

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

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

Папирус я изучал на чужих скриптах и немного по вики.

И я не могу сказать, что я так прям хорошо умею писать скрипты.

Опубликовано
А я и Паскаля не знаю.... То что мне удалось прочитать ещё в школьные годы это маленькая брошюрка...
И с папирусом так же как и у тебя...
Ничего.... Вспомним потихоньку... А там и вернёмся к прошлому квесту, который 3 года назад делал... Только теперь, благодаря этой ситуации, я вижу в какую сторону копать....
Опубликовано (изменено)

Доброго времени суток. Товарищи столкнулся с проблемой - в игре есть CraftingCookingFireSpit (вертел) так вот у него есть анимация вращения (мяса на вертеле) но эта анимация проигрывается лишь когда НПС или ГГ что то готовят и сами рукой его вертят. Мне же нужно что бы он вертелся сам по себе при его его активации с триггера. Для этого я создал новый объект в WorldObjects\Activator назвал его 0000_HMD_CraftingCookingFireSpit и указал путь к модели Furniture\FireSpitCooking.nif. На триггер прикрутил самодельный скрипт - но ничего не работает - нажимаю на триггер но созданный мной вертел не проигрывает анимацию (то есть триггер активатор должен активировать анимацию на 0000_HMD_CraftingCookingFireSpit - но этого не происходит). Хотя подобным образом я сделал дверь в WorldObjects\Activator и она открывается и закрывается так же с помощью триггера активатора на котором прикручен всё тот же скрипт. не могу понять в чём беда. 

 

Scriptname _0000_HMD_Play_Animation extends ObjectReference 

import debug
import utility

objectReference property Animation_Object auto

Event onTriggerEnter(objectReference triggerRef)
Actor actorRef = triggerRef as Actor
if(actorRef == game.getPlayer())
  Animation_Object.playAnimation("isCookingSpit")
endif
endEvent

81b056e07355.png.webp.png

Изменено пользователем CISCO.:i:..:i:.
Опубликовано

День добрый. Может кто подсказать как ,к примеру, железный слиток сделать статичным? Чтобы его нельзя было взять.

Опубликовано
11.09.2018 11:29:03, SETABAN сказал(-а):

День добрый. Может кто подсказать как ,к примеру, железный слиток сделать статичным? Чтобы его нельзя было взят

Создаешь новый объект в статике и указываешь путь к текстурам - путь можно скопировать из описания железного слитка - графа model

Опубликовано
11.09.2018 11:49:12, CISCO.:i:..:i:. сказал(-а):

Создаешь новый объект в статике и указываешь путь к текстурам - путь можно скопировать из описания железного слитка - графа model

 

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

Опубликовано
11.09.2018 12:04:33, SETABAN сказал(-а):

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

Дело в том, что моделька лежит в одном из файлов .bsa с которым СК и работает.
Опубликовано

Появился ещё вопрос. Можно ли передвинуть маркер у кузницы? А то у меня персонаж держится за воздух и стоит в углях при анимации.

Опубликовано (изменено)
11.09.2018 21:13:27, SETABAN сказал(-а):

Появился ещё вопрос. Можно ли передвинуть маркер у кузницы? А то у меня персонаж держится за воздух и стоит в углях при анимации.

как я понял у тебя в игре кузница стоит иначе чем в СК - тогда сделай то что я описал ниже.

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

Изменено пользователем CISCO.:i:..:i:.
Опубликовано
11.09.2018 21:29:23, CISCO.:i:..:i:. сказал(-а):

как я понял у тебя в игре кузница стоит иначе чем в СК - тогда сделай то что я описал ниже.

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

 

К сожалению не помогло. А разве в СК нельзя добавить маркер отдельно? Прописав нужную анимацию к примеру и поставить куда следует, а то слишком привязан к игровым моделям в таком случае.

Опубликовано
11.09.2018 21:29:23, CISCO.:i:..:i:. сказал(-а):

как я понял у тебя в игре кузница стоит иначе чем в СК - тогда сделай то что я описал ниже.

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

А анимация такая видимо от того, что кузница у меня меньше оригинальной, но мне так надо.

Опубликовано (изменено)
11.09.2018 21:48:14, SETABAN сказал(-а):

А анимация такая видимо от того, что кузница у меня меньше оригинальной, но мне так надо.

а ну тогда конечно будет всё через одно место. что за кузница у тебя? есть три варианта - у тебя какая именно? - и ещё вопрос - тебе важна сама анимация или же просто результат?  можешь просто сделать статику из кузницы - и прикрутить поверх места наковальни новую наковальню CraftingBlacksmithAnvil - и тогда ГГ будет просто крафтить предметы - стуча молотком по наковальне.

Изменено пользователем CISCO.:i:..:i:.
Опубликовано

да и вообще можно сделать кузницу самому из статики - главное поставить наковальню. Лично у меня кузница сделана из WRIntFloorDirtStrFireAlcove01 (за огонь в кузнице отвечают три FXfireWithEmbersLight увеличенных до размеров 1.8) и вплотную к ней стоит пьедестал DweClutterPedestal02 а в него вмонтирована наковальня CraftingBlacksmithAnvil - мне ванильные кузницы не очень нравятся - а возится в 3D редакторе мне лень - да и не умею я - использую то что есть.

Опубликовано (изменено)
11.09.2018 23:47:56, CISCO.:i:..:i:. сказал(-а):

да и вообще можно сделать кузницу самому из статики - главное поставить наковальню. Лично у меня кузница сделана из WRIntFloorDirtStrFireAlcove01 (за огонь в кузнице отвечают три FXfireWithEmbersLight увеличенных до размеров 1.8) и вплотную к ней стоит пьедестал DweClutterPedestal02 а в него вмонтирована наковальня CraftingBlacksmithAnvil - мне ванильные кузницы не очень нравятся - а возится в 3D редакторе мне лень - да и не умею я - использую то что есть.

 

Пока ты отвечал я сделал точно так же, ибо много мороки с подгоном стандартных под желаемое. А можно у "костра" огонь выключить? Turn off fire не помогает.

Изменено пользователем SETABAN
Опубликовано
12.09.2018 01:50:27, SETABAN сказал(-а):

А можно у "костра" огонь выключить? Turn off fire не помогает.

Имеется в виду графическое отображение эффекта огня? В таком случае можно забить в поисковике объектов "Ember" и затем заметить старый костёр новым (ручками или через ctr+f)
Опубликовано

Наковальню, кстати, "монтировать" куда-то там необязательно.

Взять ту же этеревию кузницу - там вообще просто маркер, который при использовании открывает меню крафта.

Опубликовано
12.09.2018 01:50:27, SETABAN сказал(-а):
А можно у "костра" огонь выключить? Turn off fire не помогает.

Можно конечно для этого тебе понадобятся FXfireWithEmbersLight (Disable) и FXfireWithEmbersOut (Enable) - XMarker (Disable) и скрипт на активатор

 

Scriptname _0000_HMD_Enable_VS_Disable_Script extends ObjectReference 

bool property isInPullPosition = True Auto

ObjectReference Property enable_VS_disable Auto

EVENT onActivate (objectReference triggerRef)

IF (isInPullPosition)
enable_VS_disable.enable()
isInPullPosition = False
else
enable_VS_disable.disable()
isInPullPosition = True
endIF

endEVENT

 

В настройках  скрипта enable_VS_disable укажи XMarker - а к нему уже привяжи через EnableParent огонь FXfireWithEmbersLight 

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

В настройках  скрипта enable_VS_disable укажи XMarker - а к нему уже привяжи через EnableParent огонь FXfireWithEmbersLight

Таким вот образом при активации триггера-активатора у тебя будет появляться огонь(FXfireWithEmbersLight) поверх тлеющих углей(FXfireWithEmbersOut) - если хочешь наоборот что бы огонь изначально горел просто поменяй местами в скрипте очередность enable/disable и на самих объектах значение enable/disable.

Изменено пользователем CISCO.:i:..:i:.
Опубликовано (изменено)

У меня вопрос - в интерьерах да и в ячейках экстерьеров существует как я понял условное ограничение в 157 Mb - но у меня уже превышение в 1,5 раза (и это ещё без навмешей) - кроме подтормаживания картинки чем ещё мне это грозит?

Изменено пользователем CISCO.:i:..:i:.
Опубликовано (изменено)
12.09.2018 14:41:28, CISCO.:i:..:i:. сказал(-а):

У меня вопрос - в интерьерах да и в ячейках экстерьеров существует как я понял условное ограничение в 157 Mb - но у меня уже превышение в 1,5 раза (и это ещё без навмешей) - кроме подтормаживания картинки чем ещё мне это грозит?

Падением ФПС.
Вплоть до околонулевых значений.
 
И я сейчас серьезен.
В "Последнем драконе", в Сентинеле счетчик ФПС иногда (в зависимости от точки и угла зрения) у меня показывал цифру 3 (ТРИ). Без ЕНБ и графических наворотов, просто скайрим "как есть" (это при том, что в обычных локациях у меня стабильные 60, даже под ЕНБ).
Авторы чрезвычайно перегрузили локацию деталями, в результате если в настройках дальность отрисовки была выше средней, ФПС пробивал дно. Слишком много объектов.
 
Оптимизация мода - очень важный момент, не стоит его игнорировать.

А, ну и возможные вылеты еще. Как от переполнения памяти, так и по чисто внутренним причинам. Изменено пользователем Azazellz
Опубликовано

я нуб... пока не получается написать дочерний скрипт... НО! вставив в скрипт default2StateActivator 5 строчек я добился нужного эффекта!!!

одну ObjectReference Property MyThing1 Auto

и по две:

MyThing1.Disable()

MyThing1.Enable()

 

сам скрипт:

Scriptname default2StateActivator extends ObjectReference Conditional
{for any activator with standard open/close states}

import debug
import utility

bool property isOpen = false	auto conditional
{set to true to start open}

bool property doOnce = false auto
{set to true to open/close on first activation only}

bool property isAnimating = false auto Hidden
{is the activator currently animating from one state to another?}

string property openAnim = "open" auto
{animation to play when opening}

string property closeAnim = "close" auto
{animation to play when closing}

string property openEvent = "opening" auto
{open event name - waits for this event before considering itself "open"}

string property closeEvent = "closing" auto
{close event name - waits for this event before considering itself "closed"}

string property startOpenAnim = "opened" auto
{OnLoad calls this if the object starts in the open state}

bool property bAllowInterrupt = FALSE auto
{Allow interrupts while animation? Default: FALSE}

bool property zInvertCollision = FALSE auto
{Typically this will be False (DEFAULT).  The References LinkRef'd Chained with the TwoStateCollisionKeyword will typically be 
Enabled onOpen, and Disabled on Close.  If you want that functionality inverted set this to TRUE}

 ObjectReference Property MyThing1 Auto

int property myState = 1 auto hidden

keyword property TwoStateCollisionKeyword auto

; true when static or animating
; 0 == open or opening
; 1 == closed or closing

EVENT OnLoad()
	SetDefaultState()
endEVENT

Event OnReset()
	SetDefaultState()
EndEvent

;This has to be handled as a function, since OnLoad and OnReset can fire in either order, and we can't handle competing animation calls.
Function SetDefaultState()
	if (isOpen)
		playAnimationandWait(startOpenAnim, openEvent)

		if (zInvertCollision == FALSE)
			trace(self + " Disabling Collision")
			DisableLinkChain(TwoStateCollisionKeyword)
		else
			trace(self + " Enabling Collision")
			EnableLinkChain(TwoStateCollisionKeyword)
		endif

		myState = 0
	Else
		playAnimationandWait(closeAnim, closeEvent)
		
		if (zInvertCollision == FALSE)
			trace(self + " Enabling Collision")
			EnableLinkChain(TwoStateCollisionKeyword)
		else
			trace(self + " Disabling Collision")
			DisableLinkChain(TwoStateCollisionKeyword)
		endif

		myState = 1
	EndIf
EndFunction

auto STATE waiting	; waiting to be activated
	EVENT onActivate (objectReference triggerRef)
; 		Debug.Trace("d2SA RESETS: " + Self + " " + isOpen)
		; switch open state when activated
		SetOpen(!isOpen)
		if (doOnce)
			gotostate("done")
		endif
	endEVENT
endState

STATE busy
	; This is the state when I'm busy animating
		EVENT onActivate (objectReference triggerRef)
			if bAllowInterrupt == TRUE
				; send the activation\
				SetOpen(!isOpen)
			else
				; block activation
				trace (self + " Busy")
			endif
		endEVENT
endSTATE

STATE done
	EVENT onActivate (objectReference triggerRef)
		;Do nothing
	endEVENT
endSTATE

function SetOpen(bool abOpen = true)
	; if busy, wait to finish
	while getState() == "busy"
		wait(1)
	endWhile
	; open/close if necessary
	isAnimating = true
	if abOpen && !isOpen
		gotoState ("busy")
		trace(self + " Opening")
		if bAllowInterrupt == TRUE || !Is3DLoaded()
			playAnimation(openAnim) ; Animate Open
		else
			playAnimationandWait(openAnim, openEvent) ; Animate Open
		endif
		trace(self + " Opened")

		if (zInvertCollision == FALSE)
			trace(self + " Disabling Collision")
			DisableLinkChain(TwoStateCollisionKeyword)
				MyThing1.Enable()
		else
			trace(self + " Enabling Collision")
			EnableLinkChain(TwoStateCollisionKeyword)
				MyThing1.Disable()
		endif

		isOpen = true
		gotoState("waiting")
	elseif !abOpen && isOpen
		gotoState ("busy")
		trace(self + " Closing")
		if bAllowInterrupt == TRUE || !Is3DLoaded()
			playAnimation(closeAnim)
		else
			playAnimationandWait(closeAnim, closeEvent) ; Animate Closed
		endif
		trace(self + " Closed")
		
		if (zInvertCollision == FALSE)
			trace(self + " Enabling Collision")
			EnableLinkChain(TwoStateCollisionKeyword)
				MyThing1.Disable()
		else
			trace(self + " Disabling Collision")
			DisableLinkChain(TwoStateCollisionKeyword)
				MyThing1.Enable()
		endif

		isOpen = false
		gotoState("waiting")
	endif
	isAnimating = false
endFunction

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

ну не научился я ещё этому...до конца тему не понимаю....

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

в папирусе 2 вида скриптов: материнский и дочерний (образно говоря) 

материнский - основной скрипт имеет переменные 

дочекрний - скрипт расширения 

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

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

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

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

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

Войти

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

Войти

×
×
  • Создать...