-
Постов
928 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Новости
Статьи
Мемы
Видео
Форумы
Блоги
Загрузки
Магазин
Галерея
Весь контент Takirell
-
Там есть при выходе save Backup, насчет отмены действия - не припоминаю)
-
Обычно, я использую GetIsReference. Так будет правильнее. (Ref1.GetIsReference Ref2 == 0)
- 3 846 ответов
-
- 1
-
-
- как создать торговца
- oblivion cs торговец
- (и ещё 3 )
-
Можете добавляться: Takirell #5333
-
Блок OnDeath в помощь. Его нужно повесить на нужных НПС, но выглядеть это будет так: Begin OnDeath Player ;Здесь условия и то, что должно произойти End После название блока, как Вы могли заметить, идет Player - игра понимает его, как убийцу. Заместо этого аргумента может быть кто угодно. Конкретно в ваниле - не припоминаю, но Вы можете сами его создать и разместить, в чем проблема? Просто нужно будет повесить на него специальный скрипт, срабатывания которого ограничить переменной sDoOnce, например, возводить которую в "1" после того, как игрок встанет в триггер и сработает блок OnTriggerActor. А сбрасывать переменную (если это нужно) уже, скажем, в GameMode, после того, как игрок отойдет на какое-то расстояние от триггера. Или при иных условиях. Создать новый топик и добавить в него условие в виде GetIsCurrentPackage с указанием в параметре условия пакета и выставление типа условия OR, вместо AND. Там есть флажки для этого. Ну и, созданный топик нужно добавлять скриптом через AddTopic. Хмм... чессказать, не слышал о таком. Да, я вижу, что код написан неверно и будет постоянно отдавать игре команду на включение\отключение, т.к, опять таки - нет проверок-ограничителей на выполнение тех или иных действий. Щас прям с ходу не исправлю, времени не особо... Я использую SayTo, но с привязкой к таймеру. Ппж (хз когда), скину пример скрипта. Там, на самом деле, все оч просто. P.S Если честно, то многие вещи мне было бы удобнее объяснить Вам в дискорде, например, с демонстрацией экрана, т.к это заняло бы в разы меньше времени, чем я буду все это пытаться расписывать и заливать скрины :D
- 3 846 ответов
-
- 1
-
-
- как создать торговца
- oblivion cs торговец
- (и ещё 3 )
-
- 663 комментария
-
- 663 комментария
-
Ну или, совсем костыльный метод - убрать магнитуду у добавляемых эффектов поглощения запаса сил, не трогая скрипты вовсе.
-
Я тогда гляну на досуге и дополню скрипт. А сам то он работает у Вас? По поводу третьего Вашего вопроса - скиньте мне kf-анимацию
- 3 846 ответов
-
- 1
-
-
- как создать торговца
- oblivion cs торговец
- (и ещё 3 )
-
В общем, выкроил я чуть времени, вот что получилось... Вроде бы как работает, проверьте. Переменную sOpen использовал в качестве "отмычки" для каких-то дальнейших действий, т.к не оч понимаю - что у Вас там за дверь и как она открывается (анимированная или нет). Могу фрагменты кода и к этому добавить, если надо. Только объясните - какую модель двери используете. У Вас все верно было написано, в принципе, только не хватало переменных и саб-переменных, чтобы отделять на трех кнопках варианты. Ну и, конечно же, эти гейм-моды... отучайтесь так делать, пожалуйста. Вы должны понимать, что игре все равно, сколько раз Вы вызовете GetButtonPressed, под какими переменными и из какого по счету гейм-мода, она все равно будет считать кнопки от 1 до 10. И вот, как можете видеть, у нас всего 3 основных кнопки, но на каждую из них, с помощью переменных, я привязываю разный текст. "sSub" у нас служит для вариантов ответа из под других вариантов, но условие с ней располагается выше, чем проверка "sChoice", поскольку мы, как я уже сказал, вызываем еще одно меню с ответами из под меню с предыдущими ответами. "sSys" - переменная, которая в целом отвечает за контроль меню и пока она больше нуля, игра проверяет - нажаты ли кнопки или нет. Есть еще несколько вариантов, как написать этот скрипт, но я выбрал этот, т.к мне он показался более наглядным. Надеюсь, логика более-менее понятна. Не скажу, что скрипт сложный, просто надо правильно выстроить последовательность и не запутаться в переменных.
- 3 846 ответов
-
- 1
-
-
- как создать торговца
- oblivion cs торговец
- (и ещё 3 )
-
Хорошо, как у меня будет свободное время и силы - я займусь этим меню.
- 3 846 ответов
-
- 1
-
-
- как создать торговца
- oblivion cs торговец
- (и ещё 3 )
-
Значит так... здесь, я бы попросил Вас составить мне полную блок-диаграмму с вариациями ответов и действиями, которые должны происходить после выбора того или иного варианта. Можно в виде схемы в паинте, можно просто текстом. Желательно прикрепить куски кода с тем, что должно происходить после выбора ответа, дабы мне было проще ориентироваться. Это упростит мне задачу и сэкономит время. А вот с третьим вопросом придется чуть повозиться... вернее даже, причина не столь в сложности реализации, а в том, что мне нужен будет Ваш мод и его ресурсы, чтобы наглядно реализовать данную фишку в нем. На пальцах я могу объяснить, конечно, но вряд ли это что-то даст.
- 3 846 ответов
-
- 1
-
-
- как создать торговца
- oblivion cs торговец
- (и ещё 3 )
-
Приветствую. Задачи мне ясны, но времени для их реализации у меня сейчас не шибко много, посему буду по ходу дела отвечать. Касательно первого вопроса с отравлением лука: я правильно понимаю, что Вам не нужно, чтобы конкретный лук (как оружие) был отравлен именно тем ядом, что скрипт нашел в сумке у ГГ? Нужно лишь обыграть момент с активацией активатора (тавтология, да), показать табличку, чтобы игрок сделал выбор и, как я смотрю - сделать какие-то действия? Так или иначе, с Вашего позволения, я переделал скрипт в более... правильный (с моего взгляда) вариант. scn BrimBoBelfBowScript short NKVD short PoisonInventoryLoop short ButtonPois ref refitem Ref rItem begin onactivate ;Check User if (GetActionRef == PlayerRef) ;Reset Poison Flag Let PoisonInventoryLoop := 0 Let refitem := 0 ;Deterct Any Poison In Player Inventory ForEach rItem <- PlayerRef if rItem.IsPoison set PoisonInventoryLoop to 1 Let refitem := rItem.GetBaseObject break endif loop Endif ;Messages Block if (NKVD == 0) MessageBox "What do you want to do with Belf's bow?", "Poison Bow", "Leave it" set NKVD to 1 return Elseif (NKVD == 2) MessageBox "You've already poisoned the Bow" return endif END begin gamemode if NKVD == 1 set ButtonPois to GetButtonPressed if ButtonPois == 0 ; Poison Bow if (GetStage BrimBoDocksWorm >= 25) && (Player.IsActorDetected == 0) && (PoisonInventoryLoop == 1) MessageBox "You successfully poisoned the bow." set BrimBoDocksWorm.wormchoice to 6 if (IsFormValid refitem) PlayerRef.RemoveItem refitem 1 Endif set NKVD to 2 return endif if (GetStage BrimBoDocksWorm >= 25) && (Player.IsActorDetected == 0) && (PoisonInventoryLoop == 0) MessageBox "You don't have any poison with you." set NKVD to 0 return endif if ( GetStage BrimBoDocksWorm >= 25) && (Player.IsActorDetected == 1) MessageBox "You were caught. Bow was not poisoned." Player.ModCrimeGold 350 ModPCInfamy 1 set NKVD to 0 return endif if (GetStage BrimBoDocksWorm < 25) MessageBox "Why would you do this?" set NKVD to 0 return endif Elseif (ButtonPois == 1) ;Leave Button (Nothing) set NKVD to 0 return endif endif ;Enable\Disable Self if (GetDisabled == 0) if (GetDayOfWeek == 6) ;&& (BrimBoBelfREF.GetIsCurrentPackage BrimBoBelfGoSmith8x1 == 1) && (BrimBoBelfREF.GetInCell BrimBoSmith == 1) ;Disable ;Return endif Elseif (GetDayOfWeek == 1) ;&& (BrimBoBelfREF.GetIsCurrentPackage BrimBoBelfGoSmithMONDAY8x1 == 1) && (BrimBoBelfREF.GetInCell BrimBoSmith == 1) ;Enable ;Return Endif If (GetStage BrimBoDocksWorm >= 50) && (GetDisabled == 0) if (BrimBoDocksWorm.wormchoice == 6) || (BrimBoDocksWorm.wormchoice == 1) || (BrimBoDocksWorm.wormchoice == 8) || (BrimBoDocksWorm.wormchoice == 9) ;BBLienlornChestREF.AddItem BrimBoSteelBowBelf 1 ;Disable endif endif end BrimBoBelfGoSmithMONDAY8x1 и BrimBoBelfGoSmith8x1 - это, как я понял, пакеты НПС? А... что Вы, простите, хотите, чтобы игра проверила в гейм-моде? Просто пакет, без указания у кого он? Я исправил на то, как должно быть и, как можете заметить, добавил несколько условий для более корректной работы.
- 3 846 ответов
-
- 1
-
-
- как создать торговца
- oblivion cs торговец
- (и ещё 3 )
-
У меня было примерно похожее, только система зависла и вылетела в BSOD, когда был открыт конструктор (не во время сохранения), после перезагрузки ПК - плагин погиб. Вряд ли можно как-то его исцелить, у меня не вышло.
-
HUDMainMenu попробуй убрать, пусть будет GetMenuFloatValue "player_grab_zone\width" 1004
- 3 846 ответов
-
- 1
-
-
- как создать торговца
- oblivion cs торговец
- (и ещё 3 )
-
790, Мой мод - [CCE], а sdr.dll - это сторонний OBSE-плагин, который нужен для работы моего мода. Я не являюсь автором sdr и не отвечаю за его работоспособность. У Вас, похоже, какой-то другой мод крашит игру (судя по ID скрипта, на который он ругается). Смотрите, какой плагин в Вашей сборке стоит под порядковым номером загрузки "04" и от этого уже пляшите. А SDR написал, мол "загружены правильные исправления" или типа того.
- 63 комментария
-
- мод
- companions combat engine
- (и ещё 3 )
-
- 63 комментария
-
- мод
- companions combat engine
- (и ещё 3 )
-
Добро пожаловать в клуб моддинг Облы, где все сделано именно таким образом, ибо даже с OBSE и "плюшками" к нему, приходиться изгаляться.
- 3 846 ответов
-
- 1
-
-
- как создать торговца
- oblivion cs торговец
- (и ещё 3 )
-
- 663 комментария
-
- 1
-
-
Значит, другого варианта решения данной проблемы не существует, кроме как отрубить сначала все вообще и по 1-2 плагина включать, каждый раз проверяя.
-
Уважаемые, а новая игра решает проблему? Сколько наиграно часов? После чего началась вся эта свистопляска? Какая версия OBSE и какие моды к нему установлены? Пробовали отключать все сторонние моды, оставляя только ваниль + DLC, а потом потихоньку подрубать другие плагины? Алгоритм действий проведенных хотелось бы увидеть. Описанные вами проблемы, очень напоминают эффект скриптовой функции SetRigidBodyMass, которую если вызвать на каком-то объекте, чтобы обездвижить его (отключить физику), начинается сущий кошмар. P.S Башед-патч я бы вообще вынес через Alt+F4 и более его никогда не создавал. Сейчас от него нет практически никакого толку, на моей практике, был вред, чем польза.
-
Да, я полагаю, что все получится.