Перейти к содержимому


Фотография

Вопросы по скриптам

papyrus help скрипты вопросы

  • Авторизуйтесь для ответа в теме

#781 Ссылка на это сообщение Potatoider

Potatoider
  • Знаменитый оратор


  • 4 350 сообщений
  •    

Отправлено

Тема для вопросов по скриптингу.

Функции папируса:

На английском

На русском (не все, но базис)



 




  • Авторизуйтесь для ответа в теме
Сообщений в теме: 832

#782 Ссылка на это сообщение aaa112aaa

aaa112aaa
  • Новенький
  • 28 сообщений

Отправлено

Всем привет, пытаюсь в своём моде сделать интеграцию мода Convenient Horses для своих спутников.

Но не выходит присвоить ReferenceAlias из своего квеста в квест CHFollower, тут же сбрасываются в None.

 

вот как пытался, взял функции из Convenient Horses(кроме SetFollower):


CHFollowerAliasScript[] Property FollowerScripts Auto
Quest Property CHFollower Auto Hidden
CHFollowerQuestScript Property CHFollowerQuest Auto Hidden

; Find all active followers and fill local aliases.
Function GetFollowers()
	; * Generic followers from MarkAndRecallFollowerQuest quest.
	; By default there is only one follower, and one animal follower which doesn't concern us.
	; Some multi-follower mods build uppon this quest by adding new aliases and extending functionality.
	; We can support such mods by doing alias ID scan at run-time.
	int id = 0
	int idMax = 20 ; Probe quest for this many IDs.
	bool endScan = false
	referenceAlias sourceAlias
	referenceAlias localAlias
	actor follower
	while !endScan
		; Alias probe.
		;sourceAlias = MarkAndRecallFollowerQuest.GetAlias(id) as ReferenceAlias
		sourceAlias = (MarkAndRecallFollowerQuest.GetNthAlias(id) as ReferenceAlias)
		trace(Self + "sourceAlias: " + (sourceAlias.GetActorRef() as Actor).GetActorBase().GetName(), 1)
		if (sourceAlias != none)
			; Reference probe.
			follower = sourceAlias.GetReference() as actor
			if follower
				; Follower validity checks.
				if (follower.HasKeyword(ActorTypeNPC) || follower.HasKeyword(JobHireling)) && (follower.IsInFaction(MarkAndRecallCurrentFollower) || follower.IsInFaction(CurrentFollowerFaction)) && !follower.IsInFaction(CHFollowerFaction)
					trace(Self + "follower: " + follower.GetActorBase().GetName(), 1)
					; Find first empty alias.
					localAlias = (GetCHFollowerScript(None) as ReferenceAlias)
					; Add.
					;if ((localAlias.GetActorRef() == none) && (follower != none))
					;if ((localAlias) && (follower != none))
					if localAlias
						localAlias.ForceRefTo(follower)
						;Notification("id: " + id)
						Notification("localAlias[" + id + "]: " + (localAlias.GetActorRef() as Actor).GetActorBase().GetName())
						Notification("FollowerScripts[" + id + "]: " + (((CHFollower) as CHFollowerQuestScript).FollowerScripts[id].GetActorRef() as Actor).GetActorBase().GetName())
						Notification("IsInFaction[" + id + "]: " + ((CHFollower) as CHFollowerQuestScript).FollowerScripts[id].GetActorRef().IsInFaction(CHFollowerFaction))
						
						;trace(Self + "localAlias: " + (localAlias.GetActorRef() as Actor).GetActorBase().GetName(), 1)
						;trace(Self + "FollowerScripts: " + (((CHFollower) as CHFollowerQuestScript).FollowerScripts[id].GetActorRef() as Actor).GetActorBase().GetName(), 1)
					; Can't have more generic followers.
					else;if (localAlias.GetActorRef() == none)
						Notification("localAlias id: " + id)
						;((CHFollower) as CHFollowerQuestScript).FollowerScripts[id].ForceRefTo(follower)
						endScan = true
					endif
				endif
			endif
		endif
		id += 1
		endScan = endScan || id >= idMax
	endwhile
EndFunction

; Searches local follower aliases for a given follower ref.
; akFollowerRef: Follower reference to search for.
; abFullSearch: Whether to include unique follower aliases in a search.
; Returns the first follower script (extending ReferenceAlias) matching the given ref.
CHFollowerAliasScript Function GetCHFollowerScript(objectReference akFollowerRef)
	; Generic search.
	int index = 0
	int count = ((CHFollower) as CHFollowerQuestScript).FollowerScripts.Length
	;trace(Self + "FollowerScripts Length: " + ((CHFollower) as CHFollowerQuestScript).FollowerScripts.Length, 1)
	while index < count
		if (((CHFollower) as CHFollowerQuestScript).FollowerScripts[index] as ReferenceAlias).GetRef() == akFollowerRef
			Notification("index[" + index + "]: ")
			return ((CHFollower) as CHFollowerQuestScript).FollowerScripts[index]
		endif
		index += 1
	endwhile
	return None
EndFunction



Function SetFollower(ObjectReference FollowerRef)
	actor FollowerActor = FollowerRef as Actor
	FollowerActor.RemoveFromFaction(DismissedFollowerFaction)
	iFollowerDismiss = 0
	iFollowerRestOrder = 0
	iFollowerRelaxOrder = 0
	iFollowerTradeOrder = 0
	;FollowerActor.AddToFaction(CurrentFollowerFaction)
	FollowerActor.AddToFaction(MarkAndRecallCurrentFollower)
	;FollowerActor.RemoveFromFaction(CurrentFollowerFaction)
	If (FollowerActor != MarkAndRecallQuest.MARMerchantRef)
		If (FollowerActor.IsInFaction(ASDBServicesMerchant))
			FollowerActor.RemoveFromFaction(ASDBServicesMerchant)
		EndIf
	EndIf
	If !(FollowerActor.IsInFaction(MarkAndRecallFollower))
		FollowerActor.AddToFaction(MarkAndRecallFollower)
	EndIf
	If FollowerActor.GetRelationshipRank(GetPlayer()) < 3 && FollowerActor.GetRelationshipRank(GetPlayer()) >= 0
		FollowerActor.SetRelationshipRank(GetPlayer(), 3)
	EndIf
	FollowerActor.SetPlayerTeammate()
	;FollowerActor.SetAV("Morality", 0)
	pFollowerAlias.ForceRefTo(FollowerActor)
	FollowerActor.EvaluatePackage()
	If (MarkAndRecallCheckRequirementsQuest.ConvenientHorsesExtended == true)
		If((MarkAndRecallQuest.bFollowerHorsesSwitcher == true) && (MarkAndRecallQuest.bisOriginalFollowerHorsesUsed == false))
			If !(FollowerActor.IsInFaction(CHFollowerFaction))
				GetFollowers()
				;FollowerActor.AddToFaction(CHFollowerFaction)
			EndIf
		EndIf
		;Notification("Convenient Horses: " + MarkAndRecallCheckRequirementsQuest.ConvenientHorsesExtended)
		;Notification("CHFollowerFaction: " + CHFollowerFaction)
		;If !(FollowerActor.IsInFaction(CHFollowerFaction))
		;	FollowerActor.AddToFaction(CHFollowerFaction)
			;Notification("FollowerActor not In Faction: " + FollowerActor.GetActorBase().GetName())
		;EndIf
	EndIf
EndFunction

Сообщение отредактировал aaa112aaa: 20 мая 2022 - 01:45


#783 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 034 сообщений
  •    

Отправлено

Что-то мне казалось, что Convenient Horses сразу должен работать с моддовыми спутниками.

Ну или после настройки в МСМ.

Разве нет?



#784 Ссылка на это сообщение aaa112aaa

aaa112aaa
  • Новенький
  • 28 сообщений

Отправлено

Что-то мне казалось, что Convenient Horses сразу должен работать с моддовыми спутниками.

Ну или после настройки в МСМ.

Разве нет?

Ну во первых в последней версии Convenient Horses нету МСМ меню, а во вторых мои спутники добавляются в собственные фракции (MarkAndRecallCurrentFollower и MarkAndRecallFollower) , а CurrentFollowerFaction исключена, так как дублируются диалоги найма, увольнения и прочего.



#785 Ссылка на это сообщение aaa112aaa

aaa112aaa
  • Новенький
  • 28 сообщений

Отправлено

Ладно, забил пока на лошадей, сейчас другая проблема:

в скрипте квеста есть:

bool[] Property HasAdventureOutfit = False Auto Hidden Conditional 

а в скрипте ReferenceAlias - MarkAndRecallFollowerAliasScript есть функция - SetAdventureOutfit()

в ней присвоение выше упомянутой bool переменной выдаёт ошибку - " loop did not match anything at input '=' "

Сама функция:


Function SetAdventureOutfit()
	int i
	i = MarkAndRecallFollowerQuest.GetFollowerIndex(pFollowerAlias.GetActorRef())
	If(!(Self.GetOwningQuest() as MarkAndRecallFollowerQuestScript).HasAdventureOutfit)
		(Self.GetOwningQuest() as MarkAndRecallFollowerQuestScript).HasAdventureOutfit = new bool[3]
	EndIf
	(Self.GetOwningQuest() as MarkAndRecallFollowerQuestScript).HasAdventureOutfit[i] = SetOutfit(MarkAndRecall_OutfitListAdventure[i])
        " Error: required (...)+ loop did not match anything at input '=' "
endFunction

Что это значит, как исправить?



#786 Ссылка на это сообщение aaa112aaa

aaa112aaa
  • Новенький
  • 28 сообщений

Отправлено

присвоение выше упомянутой bool переменной выдаёт ошибку - " loop did not match anything at input '=' "

 

(Self.GetOwningQuest() as MarkAndRecallFollowerQuestScript).HasAdventureOutfit[i] = SetOutfit(MarkAndRecall_OutfitListAdventure[i])
        " Error: required (...)+ loop did not match anything at input '=' "

Проблема решилась вот так:


bool[] Property HasAdventureOutfit Auto Hidden Conditional

Function SetAdventureOutfit()
	int i
	i = MarkAndRecallFollowerQuest.GetFollowerIndex(pFollowerAlias.GetActorRef())
	If(!(Self.GetOwningQuest() as MarkAndRecallFollowerQuestScript).HasAdventureOutfit)
		(Self.GetOwningQuest() as MarkAndRecallFollowerQuestScript).HasAdventureOutfit = new bool[3]
	EndIf
	(Self.GetOwningQuest() as MarkAndRecallFollowerQuestScript).HasAdventureOutfit[i] == SetOutfit(MarkAndRecall_OutfitListAdventure[i])
endFunction

Но это не правильное решение проблемы, уже исправил.


Сообщение отредактировал aaa112aaa: 28 мая 2022 - 03:28


#787 Ссылка на это сообщение CISCO.:i:..:i:.

CISCO.:i:..:i:.
  • Талант
  • 257 сообщений
  •  

Отправлено

Проблема решилась вот так:


bool[] Property HasAdventureOutfit Auto Hidden Conditional

Function SetAdventureOutfit()
	int i
	i = MarkAndRecallFollowerQuest.GetFollowerIndex(pFollowerAlias.GetActorRef())
	If(!(Self.GetOwningQuest() as MarkAndRecallFollowerQuestScript).HasAdventureOutfit)
		(Self.GetOwningQuest() as MarkAndRecallFollowerQuestScript).HasAdventureOutfit = new bool[3]
	EndIf
	(Self.GetOwningQuest() as MarkAndRecallFollowerQuestScript).HasAdventureOutfit[i] == SetOutfit(MarkAndRecall_OutfitListAdventure[i])
endFunction

Но это не правильное решение проблемы, уже исправил.

Здравствуйте! Заинтриговали - а какое тогда правильное? Можно весь скрипт увидеть?



#788 Ссылка на это сообщение aaa112aaa

aaa112aaa
  • Новенький
  • 28 сообщений

Отправлено

Здравствуйте! Заинтриговали - а какое тогда правильное? Можно весь скрипт увидеть?

в скрипте ReferenceAlias - MarkAndRecallFollowerAliasScript:

bool[] Property arrHasAdventureOutfit Auto

и

Function SetAdventureOutfit()
	int i = MarkAndRecallFollowerQuest.GetFollowerIndex(pFollowerAlias.GetActorRef())
	(Self.GetOwningQuest() as MarkAndRecallFollowerQuestScript).HasAdventureOutfit = Self.SetOutfit(MarkAndRecall_OutfitListAdventure[i])
	arrHasAdventureOutfit[i] = (Self.GetOwningQuest() as MarkAndRecallFollowerQuestScript).HasAdventureOutfit
	;Notification("SetAdventureOutfit arrHasAdventureOutfit[" + i + "]: " + arrHasAdventureOutfit[i])
	;Notification("SetAdventureOutfit MarkAndRecall_OutfitListAdventure[" + i + "]: " + MarkAndRecall_OutfitListAdventure[i].GetSize())
endFunction

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



#789 Ссылка на это сообщение CISCO.:i:..:i:.

CISCO.:i:..:i:.
  • Талант
  • 257 сообщений
  •  

Отправлено

в скрипте ReferenceAlias - MarkAndRecallFollowerAliasScript:

bool[] Property arrHasAdventureOutfit Auto

и

Function SetAdventureOutfit()
	int i = MarkAndRecallFollowerQuest.GetFollowerIndex(pFollowerAlias.GetActorRef())
	(Self.GetOwningQuest() as MarkAndRecallFollowerQuestScript).HasAdventureOutfit = Self.SetOutfit(MarkAndRecall_OutfitListAdventure[i])
	arrHasAdventureOutfit[i] = (Self.GetOwningQuest() as MarkAndRecallFollowerQuestScript).HasAdventureOutfit
	;Notification("SetAdventureOutfit arrHasAdventureOutfit[" + i + "]: " + arrHasAdventureOutfit[i])
	;Notification("SetAdventureOutfit MarkAndRecall_OutfitListAdventure[" + i + "]: " + MarkAndRecall_OutfitListAdventure[i].GetSize())
endFunction

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

Делаю один мод с кучей квестов - может посотрудничаем?



#790 Ссылка на это сообщение Unlimited Cloud

Unlimited Cloud
  • Скиталец
  • 60 сообщений

Отправлено

Такс, господа. Тут такое дело, кажется, что-то у меня работает не так со скриптами... Мучился со своим скриптом и тут дошло опробовать скомпилировать уже готовый игровой скрипт обратно. А не тут-то было, оно выдаёт ошибку со скриптами из игры. Пробовал компилировать через PapyrusCompiler и через Papyrus Assembler GUI. Или оно обратно игровые ванильные скрипты у всех так не хочет компилировать?


Сообщение отредактировал Unlimited Cloud: 28 июня 2022 - 11:34


#791 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 034 сообщений
  •    

Отправлено

Такс, господа. Тут такое дело, кажется, что-то у меня работает не так со скриптами... Мучился со своим скриптом и тут дошло опробовать скомпилировать уже готовый игровой скрипт обратно. А не тут-то было, оно выдаёт ошибку со скриптами из игры. Пробовал компилировать через PapyrusCompiler и через Papyrus Assembler GUI. Или оно обратно игровые ванильные скрипты у всех так не хочет компилировать?

Ты бы хоть ошибку показал.



#792 Ссылка на это сообщение Unlimited Cloud

Unlimited Cloud
  • Скиталец
  • 60 сообщений

Отправлено

Ты бы хоть ошибку показал.

Ок. Для примера скрипт под названием transmuteMineralScript, трансмутация руды. Долно же быть нормальным, оно же прямиком из игры... Ещё пару других скриптов пробовал - результат тот же. Попытка компиляции данного скрипта в программе PapyrusCompile заканчивается вот этим:

Warning: No flags selected

[ transmuteMineralScript.psc ]

Starting 1 compile threads for 1 files...
Compiling "transmuteMineralScript"...
No output generated for G:\Games\The Elder Scrolls V Skyrim - Special Edition\Data\Source\Scripts\transmuteMineralScript.psc, compilation failed.
Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on G:\Games\The Elder Scrolls V Skyrim - Special Edition\Data\Source\Scripts\transmuteMineralScript.psc

--- ERRORS ---

ActiveMagicEffect.psc(1,0): Unknown user flag Hidden
Game.psc(1,0): Unknown user flag Hidden
MiscObject.psc(1,0): Unknown user flag Hidden
MiscObject.psc(1,0): Unknown user flag Hidden
MiscObject.psc(1,0): Unknown user flag Hidden
Sound.psc(1,0): Unknown user flag Hidden
Message.psc(1,0): Unknown user flag Hidden
Actor.psc(1,0): Unknown user flag Hidden
Actor.psc(1,0): Unknown user flag Hidden
ObjectReference.psc(1,0): Unknown user flag Hidden
Actor.psc(1,0): Unknown user flag Hidden
transmuteMineralScript.psc(19,17): type mismatch while assigning to a objectreference (cast missing or types unrelated)
ObjectReference.psc(1,0): Unknown user flag Hidden
ObjectReference.psc(1,0): Unknown user flag Hidden
MiscObject.psc(1,0): Unknown user flag Hidden
transmuteMineralScript.psc(20,11): type mismatch on parameter 1 (did you forget a cast?)
transmuteMineralScript.psc(20,31): cannot compare a none to a int (cast missing or types unrelated)
transmuteMineralScript.psc(20,31): cannot relatively compare variables to None
ObjectReference.psc(1,0): Unknown user flag Hidden
ObjectReference.psc(1,0): Unknown user flag Hidden
MiscObject.psc(1,0): Unknown user flag Hidden
transmuteMineralScript.psc(22,9): type mismatch on parameter 1 (did you forget a cast?)
ObjectReference.psc(1,0): Unknown user flag Hidden
ObjectReference.psc(1,0): Unknown user flag Hidden
MiscObject.psc(1,0): Unknown user flag Hidden
transmuteMineralScript.psc(23,9): type mismatch on parameter 1 (did you forget a cast?)
Game.psc(1,0): Unknown user flag Hidden
Game.psc(1,0): Unknown user flag Hidden
ObjectReference.psc(1,0): Unknown user flag Hidden
ObjectReference.psc(1,0): Unknown user flag Hidden
MiscObject.psc(1,0): Unknown user flag Hidden
transmuteMineralScript.psc(25,15): type mismatch on parameter 1 (did you forget a cast?)
transmuteMineralScript.psc(25,35): cannot compare a none to a int (cast missing or types unrelated)
transmuteMineralScript.psc(25,35): cannot relatively compare variables to None
ObjectReference.psc(1,0): Unknown user flag Hidden
ObjectReference.psc(1,0): Unknown user flag Hidden
MiscObject.psc(1,0): Unknown user flag Hidden
transmuteMineralScript.psc(27,9): type mismatch on parameter 1 (did you forget a cast?)
ObjectReference.psc(1,0): Unknown user flag Hidden
ObjectReference.psc(1,0): Unknown user flag Hidden
MiscObject.psc(1,0): Unknown user flag Hidden
transmuteMineralScript.psc(28,9): type mismatch on parameter 1 (did you forget a cast?)
Game.psc(1,0): Unknown user flag Hidden
Game.psc(1,0): Unknown user flag Hidden
Sound.psc(1,0): Unknown user flag Hidden
Sound.psc(1,0): Unknown user flag Hidden
Message.psc(1,0): Unknown user flag Hidden
Message.psc(1,0): Unknown user flag Hidden

Time: 5,367766 seconds
Input: G:\Games\The Elder Scrolls V Skyrim - Special Edition\Data\Source\Scripts\transmuteMineralScript.psc
Output: G:\Games\The Elder Scrolls V Skyrim - Special Edition\Data\Source\transmuteMineralScript.pex

Finished with 48 errors


Сообщение отредактировал Unlimited Cloud: 28 июня 2022 - 23:05


#793 Ссылка на это сообщение Unlimited Cloud

Unlimited Cloud
  • Скиталец
  • 60 сообщений

Отправлено

Ещё одна вещь, которая меня беспокоит. Дело в том, что когда создаю скрипт в Креэшен ките на эффекте заклинания, то он не прикрепляется к этому заклинанию. И не отображается для этого. Но в мод менеджере он есть, если открывать отдельно его отдельно от функции прикрепления в магическом эффекте.


Сообщение отредактировал Unlimited Cloud: 29 июня 2022 - 00:00


#794 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 034 сообщений
  •    

Отправлено

Попытка компиляции данного скрипта в программе PapyrusCompile заканчивается вот этим:

Хм. Похоже на то, что некорректно распакован или установлен СК. Компилятор не видит флаги и другие скрипты-исходники с определениями, или не может их прочитать.

Проверь, правильно ли распаковал. Папка scripts\source должна быть заполнена. Если там есть под-папки с ДЛЦшными исходниками - их содержимое тоже можно в сурсы перебросить, если ты планируешь со скриптами из ДЛЦ работать.



#795 Ссылка на это сообщение Unlimited Cloud

Unlimited Cloud
  • Скиталец
  • 60 сообщений

Отправлено

Хм. Похоже на то, что некорректно распакован или установлен СК. Компилятор не видит флаги и другие скрипты-исходники с определениями, или не может их прочитать.

Проверь, правильно ли распаковал. Папка scripts\source должна быть заполнена. Если там есть под-папки с ДЛЦшными исходниками - их содержимое тоже можно в сурсы перебросить, если ты планируешь со скриптами из ДЛЦ работать.

Реально! Моё почтение! Поставлю статую в моде в честь тебя с именной табличкой.


Сообщение отредактировал Unlimited Cloud: 29 июня 2022 - 10:30


#796 Ссылка на это сообщение Unlimited Cloud

Unlimited Cloud
  • Скиталец
  • 60 сообщений

Отправлено

А такой вопросик, какими переменными можно обозначить именно игрока скрипте заклинания, в эвенте?


Сообщение отредактировал Unlimited Cloud: 30 июня 2022 - 06:16


#797 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 034 сообщений
  •    

Отправлено

А такой вопросик, какими переменными можно обозначить именно игрока скрипте заклинания, в эвенте?

game.getplayer()

 

https://www.creation...:Script_Objects

https://www.creation...php?title=Event

 

Советую добавить в закладки, там много полезного.



#798 Ссылка на это сообщение Unlimited Cloud

Unlimited Cloud
  • Скиталец
  • 60 сообщений

Отправлено

game.getplayer()

 

https://www.creation...:Script_Objects

https://www.creation...php?title=Event

 

Советую добавить в закладки, там много полезного.

Ну да, оно и так в закладках. Просто пока ещё не выходит ориентироваться хорошо. Посидел, покопался, что-то нашёл. Но это не сработало. И так по кругу много раз. И переменные менял, и в скобках разные варианты пробовал... Пытался даже сделать отдельное заклинание "на себя" сделать, которое боле менее работало, и что бы этот скрипт кастовал то отдельное заклинание.
Самая главная задача на данный момент подобрать нужный Event. Он у меня 90% не правильный. Или что-то надо дописать в нём...
Я пытаюсь сделать заклинание, которое выпускает стрелу в цель и при этом сжирает стрелу на это дело. Пытался через onCastStart и onEffectStart. Но так как заклинание на цель, то и эффект, видимо, применяется на эту цель при прилёте в неё стрелы.
Вот и не знаю, что может помочь уже, идеи закончились. Причём пробовал для теста сделать эффект "на себя" дабы скрипт проверить. Тогда половина скрипта работает. Потому и решил, что именно Event не правильный.

Scriptname UC_ArrowShot_Script extends ActiveMagicEffect 

{Если уничтожает железную стрелу, то позволяет выстрелить заклинанием. Иначе блокирует эффект и выводит сообщение об отсутвии стрелы.}

Ammo Property Arrow  Auto
Message Property UC_noArrows_MSG  Auto 
Sound Property FailureSFX  Auto 

Event OnCastStart(ACTOR akActor)
akActor == game.getPlayer()
if akActor.getItemCount(Arrow) >= 1
  akActor.removeItem(Arrow, 1)
else
  akActor.InterruptCast()
  FailureSFX.play(akActor)
  UC_noArrows_MSG.show()
endif
EndEvent

Думаю, опробую вариант с созданием другого заклинания при касте.


Сообщение отредактировал Unlimited Cloud: 01 июля 2022 - 00:44


#799 Ссылка на это сообщение Unlimited Cloud

Unlimited Cloud
  • Скиталец
  • 60 сообщений

Отправлено

Сделал, наконец-то, своё заклинание через каст на себя и RemoteCast. Даже две третьих скрипта работает... Но столкнулся с "ложкой дёгтя" - дело в том, что при удалении стрелы из инвентаря выводится сообщение об этом. Можно ли как-то запретить это?



#800 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 034 сообщений
  •    

Отправлено

Сделал, наконец-то, своё заклинание через каст на себя и RemoteCast. Даже две третьих скрипта работает... Но столкнулся с "ложкой дёгтя" - дело в том, что при удалении стрелы из инвентаря выводится сообщение об этом. Можно ли как-то запретить это?

Открой команду RemoveItem на СК вики. Там есть дополнительные параметры, в том числе и для этого.



#801 Ссылка на это сообщение Unlimited Cloud

Unlimited Cloud
  • Скиталец
  • 60 сообщений

Отправлено

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







Темы с аналогичным тегами papyrus, help, скрипты, вопросы

Количество пользователей, читающих эту тему: 4

0 пользователей, 4 гостей, 0 скрытых