Azazellz Опубликовано 21 марта, 2022 Опубликовано 21 марта, 2022 21.03.2022 13:47:09, SirLuciusFreyr сказал(-а): Доброго времени суток, господа-программисты. Просветите, чем ModActorValue и ForceActorValue отличаются между собой? Первое модифицирует - т.е. добавляет к исходному. Второе устанавливает значение, вне зависимости от исходного. 1
SirLuciusFreyr Опубликовано 28 марта, 2022 Опубликовано 28 марта, 2022 (изменено) 21.03.2022 16:04:38, Azazellz сказал(-а): Первое модифицирует - т.е. добавляет к исходному. Второе устанавливает значение, вне зависимости от исходного. Тогда в чём отличие SetActorValue от ForceActorValue? У них какие-то разные области применения внутри списка ActorValue? Или ускользающая от меня разница в том, как они применяются на атрибуты? Ещё один вопрос: а могу я скриптом динамически изменять скорость игрока по нажатию клавиши и без конфликта с другими модификаторами? Как реализовать такой скрипт в игре, повесить через перк? Изменено 28 марта, 2022 пользователем SirLuciusFreyr
Azazellz Опубликовано 28 марта, 2022 Опубликовано 28 марта, 2022 28.03.2022 06:06:15, SirLuciusFreyr сказал(-а):У них какие-то разные области применения внутри списка ActorValue? Или ускользающая от меня разница в том, как они применяются на атрибуты? Есть базовый показатель, и есть после модификаторов. И это все сложно взаимосвязано. Ведь кроме Force и Mod есть еще Set, Damage и Restore. Почитай примечания на страницах, там есть на эту тему кое что. Еще могу порекомендовать страницу для "консольных" версий этих команд посмотреть (не для скриптовых). Там тоже кое-что написано. В любом случае, нужно все эти штуки использовать с великой осторожностью, так как есть неиллюзорный шанс сломать игроку какой-нибудь из статов неаккуратными правками. Или в случае удаления установленного мода. 28.03.2022 06:06:15, SirLuciusFreyr сказал(-а):Ещё один вопрос: а могу я скриптом динамически изменять скорость игрока по нажатию клавиши и без конфликта с другими модификаторами? Скрипты медленно работают для быстрого и динамического изменения скорости (ну, например, ускорять персонажа на n% k раз в секунду - для реализации медленного набора скорости, например). Тут плагин под skse писать надо. Если нужно что-то небыстрое или долговременное - лучше вообще скриптами не пользоваться. Выдавать перки с модификатором или спеллы с постоянным эффектом напрямую.
Кайо Опубликовано 14 апреля, 2022 Опубликовано 14 апреля, 2022 (изменено) Всем ЗДРАВИЯЖЕЛАЮ! Ребяты, памагитя! Кайо совсем не шарит в скриптах и прочих сложных фишках редахтора, но Кайо очень нужен скрипт на "сновидения". То есть, вот персонаж, выполняя квест Арретино, ложится спать в любом месте и просыпается у Тёмного Братства, а мне надо, чтобы он на определённой стадии авторского квеста лёг и проснулся в отдельной локации сна. Можно, конечно, подсмотреть в квесты ТБ, как они замечают событие сна, телепорт там пришить и всё такое, но там обычно черт ногу сломит, особенно, если не знаешь, где искать, да и одну очень важную проблему это не решит: по завершению сна (при смене стадии квеста или после диалога) игрока надо перенести обратно к той же самой кровати, на которой он уснул. К тому же, если это возможно и не особо сложно в реализации, хотелось бы на время сна добавить игроку ограничения: "перегруженность" (чтобы не бегал, а шел простым шагом тихоходки) и чтобы не мог зайти в инвентарь, достать оружие или подобрать что-то (это ж не сны с Фредди Крюггером, откуда можно шляпу спереть, да и авось ему взбредёт в голову мысля что-то выбросить? Это должен быть именно сон, почти как обычный), и чтобы потом с него эти эффекты снимались. Изменено 14 апреля, 2022 пользователем Кайо
Azazellz Опубликовано 16 апреля, 2022 Опубликовано 16 апреля, 2022 14.04.2022 09:48:51, Кайо сказал(-а): Всем ЗДРАВИЯЖЕЛАЮ! Ребяты, памагитя! Кайо совсем не шарит в скриптах и прочих сложных фишках редахтора, но Кайо очень нужен скрипт на "сновидения". То есть, вот персонаж, выполняя квест Арретино, ложится спать в любом месте и просыпается у Тёмного Братства, а мне надо, чтобы он на определённой стадии авторского квеста лёг и проснулся в отдельной локации сна. Можно, конечно, подсмотреть в квесты ТБ, как они замечают событие сна, телепорт там пришить и всё такое, но там обычно черт ногу сломит, особенно, если не знаешь, где искать, да и одну очень важную проблему это не решит: по завершению сна (при смене стадии квеста или после диалога) игрока надо перенести обратно к той же самой кровати, на которой он уснул. К тому же, если это возможно и не особо сложно в реализации, хотелось бы на время сна добавить игроку ограничения: "перегруженность" (чтобы не бегал, а шел простым шагом тихоходки) и чтобы не мог зайти в инвентарь, достать оружие или подобрать что-то (это ж не сны с Фредди Крюггером, откуда можно шляпу спереть, да и авось ему взбредёт в голову мысля что-то выбросить? Это должен быть именно сон, почти как обычный), и чтобы потом с него эти эффекты снимались. Да, смотришь как это сделано в квесте ТБ, делаешь так же. Наверняка там какая-то система отслеживания встроена, в квест или на игрока напрямую, которая включается по эвентам OnSleepStart или OnSleepStop. Сделать обратный перенос просто - когда триггер сна срабатывает, перед непосредственным переносом ставишь маркер на позицию игрока. В конце сна переносишь игрока назад на этот маркер. Маркер потом удаляешь. Что касается запрещения игроку что-то делать - есть команда DisablePlayerControls. На ходьбу и бег не распространяется (можно только целиком движение отключить), но всегда можно незаметно подкинуть игроку в инвентарь предмет на пару миллионов тонн веса (чтоб с гарантией). Хотя может есть и какой-то другой, более элегантный способ. 1
aaa112aaa Опубликовано 20 мая, 2022 Опубликовано 20 мая, 2022 (изменено) Всем привет, пытаюсь в своём моде сделать интеграцию мода 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 Изменено 20 мая, 2022 пользователем aaa112aaa
Azazellz Опубликовано 20 мая, 2022 Опубликовано 20 мая, 2022 Что-то мне казалось, что Convenient Horses сразу должен работать с моддовыми спутниками. Ну или после настройки в МСМ. Разве нет?
aaa112aaa Опубликовано 21 мая, 2022 Опубликовано 21 мая, 2022 20.05.2022 16:36:56, Azazellz сказал(-а): Что-то мне казалось, что Convenient Horses сразу должен работать с моддовыми спутниками. Ну или после настройки в МСМ. Разве нет? Ну во первых в последней версии Convenient Horses нету МСМ меню, а во вторых мои спутники добавляются в собственные фракции (MarkAndRecallCurrentFollower и MarkAndRecallFollower) , а CurrentFollowerFaction исключена, так как дублируются диалоги найма, увольнения и прочего.
aaa112aaa Опубликовано 27 мая, 2022 Опубликовано 27 мая, 2022 Ладно, забил пока на лошадей, сейчас другая проблема: в скрипте квеста есть: 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 Что это значит, как исправить?
aaa112aaa Опубликовано 28 мая, 2022 Опубликовано 28 мая, 2022 (изменено) 27.05.2022 16:20:02, aaa112aaa сказал(-а): присвоение выше упомянутой bool переменной выдаёт ошибку - " loop did not match anything at input '=' " (Self.GetOwningQuest() as MarkAndRecallFollowerQuestScript).HasAdventureOutfit = SetOutfit(MarkAndRecall_OutfitListAdventure) " 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 Но это не правильное решение проблемы, уже исправил. Изменено 28 мая, 2022 пользователем aaa112aaa
CISCO.:i:..:i:. Опубликовано 28 мая, 2022 Опубликовано 28 мая, 2022 28.05.2022 00:23:11, aaa112aaa сказал(-а): Проблема решилась вот так: 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 Опубликовано 28 мая, 2022 28.05.2022 07:53:28, CISCO.:i:..:i:. сказал(-а): Здравствуйте! Заинтриговали - а какое тогда правильное? Можно весь скрипт увидеть? в скрипте 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 а скрипты выложить могу, но работа там не завершена с нарядами, только вот начал.
CISCO.:i:..:i:. Опубликовано 28 мая, 2022 Опубликовано 28 мая, 2022 28.05.2022 09:30:16, aaa112aaa сказал(-а): в скрипте 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 а скрипты выложить могу, но работа там не завершена с нарядами, только вот начал. Делаю один мод с кучей квестов - может посотрудничаем?
Unlimited Cloud Опубликовано 28 июня, 2022 Опубликовано 28 июня, 2022 (изменено) Такс, господа. Тут такое дело, кажется, что-то у меня работает не так со скриптами... Мучился со своим скриптом и тут дошло опробовать скомпилировать уже готовый игровой скрипт обратно. А не тут-то было, оно выдаёт ошибку со скриптами из игры. Пробовал компилировать через PapyrusCompiler и через Papyrus Assembler GUI. Или оно обратно игровые ванильные скрипты у всех так не хочет компилировать? Изменено 28 июня, 2022 пользователем Unlimited Cloud
Azazellz Опубликовано 28 июня, 2022 Опубликовано 28 июня, 2022 28.06.2022 10:34:00, Unlimited Cloud сказал(-а): Такс, господа. Тут такое дело, кажется, что-то у меня работает не так со скриптами... Мучился со своим скриптом и тут дошло опробовать скомпилировать уже готовый игровой скрипт обратно. А не тут-то было, оно выдаёт ошибку со скриптами из игры. Пробовал компилировать через PapyrusCompiler и через Papyrus Assembler GUI. Или оно обратно игровые ванильные скрипты у всех так не хочет компилировать? Ты бы хоть ошибку показал.
Unlimited Cloud Опубликовано 28 июня, 2022 Опубликовано 28 июня, 2022 (изменено) 28.06.2022 11:21:19, Azazellz сказал(-а): Ты бы хоть ошибку показал. Ок. Для примера скрипт под названием 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 Изменено 28 июня, 2022 пользователем Unlimited Cloud
Unlimited Cloud Опубликовано 28 июня, 2022 Опубликовано 28 июня, 2022 (изменено) Ещё одна вещь, которая меня беспокоит. Дело в том, что когда создаю скрипт в Креэшен ките на эффекте заклинания, то он не прикрепляется к этому заклинанию. И не отображается для этого. Но в мод менеджере он есть, если открывать отдельно его отдельно от функции прикрепления в магическом эффекте. Изменено 28 июня, 2022 пользователем Unlimited Cloud
Azazellz Опубликовано 29 июня, 2022 Опубликовано 29 июня, 2022 28.06.2022 11:25:58, Unlimited Cloud сказал(-а):Попытка компиляции данного скрипта в программе PapyrusCompile заканчивается вот этим: Хм. Похоже на то, что некорректно распакован или установлен СК. Компилятор не видит флаги и другие скрипты-исходники с определениями, или не может их прочитать. Проверь, правильно ли распаковал. Папка scripts\source должна быть заполнена. Если там есть под-папки с ДЛЦшными исходниками - их содержимое тоже можно в сурсы перебросить, если ты планируешь со скриптами из ДЛЦ работать.
Unlimited Cloud Опубликовано 29 июня, 2022 Опубликовано 29 июня, 2022 (изменено) 29.06.2022 08:35:38, Azazellz сказал(-а): Хм. Похоже на то, что некорректно распакован или установлен СК. Компилятор не видит флаги и другие скрипты-исходники с определениями, или не может их прочитать. Проверь, правильно ли распаковал. Папка scripts\source должна быть заполнена. Если там есть под-папки с ДЛЦшными исходниками - их содержимое тоже можно в сурсы перебросить, если ты планируешь со скриптами из ДЛЦ работать. Реально! Моё почтение! Поставлю статую в моде в честь тебя с именной табличкой. Изменено 29 июня, 2022 пользователем Unlimited Cloud
Unlimited Cloud Опубликовано 29 июня, 2022 Опубликовано 29 июня, 2022 (изменено) А такой вопросик, какими переменными можно обозначить именно игрока скрипте заклинания, в эвенте? Изменено 30 июня, 2022 пользователем Unlimited Cloud
Azazellz Опубликовано 30 июня, 2022 Опубликовано 30 июня, 2022 29.06.2022 13:12:03, Unlimited Cloud сказал(-а): А такой вопросик, какими переменными можно обозначить именно игрока скрипте заклинания, в эвенте? game.getplayer() https://www.creationkit.com/index.php?title=Category:Script_Objects https://www.creationkit.com/index.php?title=Event Советую добавить в закладки, там много полезного.
Unlimited Cloud Опубликовано 30 июня, 2022 Опубликовано 30 июня, 2022 (изменено) 30.06.2022 08:35:58, Azazellz сказал(-а): game.getplayer() https://www.creationkit.com/index.php?title=Category:Script_Objects https://www.creationkit.com/index.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 Думаю, опробую вариант с созданием другого заклинания при касте. Изменено 30 июня, 2022 пользователем Unlimited Cloud
Unlimited Cloud Опубликовано 1 июля, 2022 Опубликовано 1 июля, 2022 Сделал, наконец-то, своё заклинание через каст на себя и RemoteCast. Даже две третьих скрипта работает... Но столкнулся с "ложкой дёгтя" - дело в том, что при удалении стрелы из инвентаря выводится сообщение об этом. Можно ли как-то запретить это?
Azazellz Опубликовано 1 июля, 2022 Опубликовано 1 июля, 2022 01.07.2022 01:42:23, Unlimited Cloud сказал(-а): Сделал, наконец-то, своё заклинание через каст на себя и RemoteCast. Даже две третьих скрипта работает... Но столкнулся с "ложкой дёгтя" - дело в том, что при удалении стрелы из инвентаря выводится сообщение об этом. Можно ли как-то запретить это? Открой команду RemoveItem на СК вики. Там есть дополнительные параметры, в том числе и для этого.
Unlimited Cloud Опубликовано 29 июля, 2022 Опубликовано 29 июля, 2022 Кстати, а можно ли в скрипте заклинания без евента команду задать? В заклинании у меня OnEffectStart. А вот совсем без него можно? Или евент обязательная часть?
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти