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

mortuus

Сердце Хаоса
  • Постов

    2085
  • Зарегистрирован

  • Посещение

Весь контент mortuus

  1. Разумно, согласен со всем Я пользовался, там много чего есть не лорного на мой взгляд, но в целом плаг хорош. Если вырезать оттуда лишнее, то вполне себе.
  2. Нет, функцию alarm на ноль ставишь и всё в порядке, воруй, убивай, делай что хочешь
  3. Это не скриптом, там в самом меню нпц отключается ябидничество, вот ща в упор не помню как функция обзывается
  4. 1 Довел, как мне кажется, но тут в ЛС 2 И это хорошо баланс будет соблюден 3 Тут надо подумать, в Сх я видел что продавцы сахар продают, но не покупают его. Развивай мысль. 4 По плагинам есть добыча минералов. В принципе при разработке жилы минералы разные могут попадаться. Реалестичнее всего было-бы стучание киркой, но во всех плагинах имхо это кривовато сделано. 5 Предлагали, я не одному тебе отвечаю. 7 В морровинде видел удочку, вот только в броне элементов лески не видел. Всегда кожаные ремешки использовались. Я тебя не переубеждаю, можешь гарду хоть смолой шалка обмазать и поджечь от костра. Понимаешь к чему я клоню? Минимум возможный материалов должен быть. Не надо усложнять всё это. 8 Да там с использованием душ Даэдра эбонит обрабатывается, просто можно баланс выставить -> 100 навык кузнеца, квест на рецепт, редкорсть материалов. В итоге сделать так, чтоб ты максимум 1-2 комплекта выковать смог. Кроме того должен присутствовать шанс неудачного крафта
  5. mortuus

    Скрипты СХ

    Приведу пример скрипта с комментариямию Это скрипт книги имперской школы магии. Приведу пример скрипта с комментариямию Это скрипт книги имперской школы магии. Begin ImpDestr_MB3_Script short OnPCEquip short PCSkipEquip short Flag ; не используется в скрипте short FlagIndex ; не используется в скрипте short MagicSpell if ( MagicSpell == 1 ) if ( Player->GetIntelligence < 90 ) MessageBox "Уровень Интеллекта недостаточен для изучения новых магических возможностей." Set MagicSpell to 2 endif if ( Player->GetWillpower < 0 ) MessageBox "Уровень Силы Воли недостаточен для изучения новых магических возможностей." Set MagicSpell to 2 endif if ( MagicSpell == 2 ) Set MagicSpell to 0 Return endif if ( PLayer->GetSpell "_ch_chaos_blast_1L_2R" == 1 ) ; вместо проверки на знания заклинаний я бы предложил ввести глобальную переменную для каждой школы магии, это скрипт облегчит. Да и логичности добавит. Сейчас ситуация такая - выучил закл - апнул его до 3 последнего уровня, удалил. (((( Случайно. Далее ищи этот закл опять, покупай все градации книг имперской школы по новой Player->addSpell "_ch_chaos_blast_1L_3R" Set MagicSpell to 3 Player->removeSpell "_ch_chaos_blast_1L_2R" endif if ( PLayer->GetSpell "_ch_chaos_bloom_4L_2R" == 1 ) Player->addSpell "_ch_chaos_bloom_4L_3R" Set MagicSpell to 3 Player->removeSpell "_ch_chaos_bloom_4L_2R" endif if ( PLayer->GetSpell "_ch_chaos_dezintegr_4L_2R" == 1 ) Player->addSpell "_ch_chaos_dezintegr_4L_3R" Set MagicSpell to 3 Player->removeSpell "_ch_chaos_dezintegr_4L_2R" endif if ( PLayer->GetSpell "_ch_chaos_distroyA_1L_2R" == 1 ) Player->addSpell "_ch_chaos_distroyA_1L_3R" Set MagicSpell to 3 Player->removeSpell "_ch_chaos_distroyA_1L_2R" endif if ( PLayer->GetSpell "_ch_chaos_distroyAll_3L_2R" == 1 ) Player->addSpell "_ch_chaos_distroyAll_3L_3R" Set MagicSpell to 3 Player->removeSpell "_ch_chaos_distroyAll_3L_2R" endif if ( PLayer->GetSpell "_ch_chaos_distroyW_2L_2R" == 1 ) Player->addSpell "_ch_chaos_distroyW_2L_3R" Set MagicSpell to 3 Player->removeSpell "_ch_chaos_distroyW_2L_2R" endif if ( PLayer->GetSpell "_ch_chaos_health_2L_2R" == 1 ) Player->addSpell "_ch_chaos_health_2L_3R" Set MagicSpell to 3 Player->removeSpell "_ch_chaos_health_2L_2R" endif if ( PLayer->GetSpell "_ch_chaos_srike_3L_2R" == 1 ) Player->addSpell "_ch_chaos_srike_3L_3R" Set MagicSpell to 3 Player->removeSpell "_ch_chaos_srike_3L_2R" endif if ( PLayer->GetSpell "_ch_daedra_strike_1L_2R" == 1 ) Player->addSpell "_ch_daedra_strike_1L_3R" Set MagicSpell to 3 Player->removeSpell "_ch_daedra_strike_1L_2R" endif if ( PLayer->GetSpell "_ch_el_coldflame_3L_2R" == 1 ) Player->addSpell "_ch_el_coldflame_3L_3R" Set MagicSpell to 3 Player->removeSpell "_ch_el_coldflame_3L_2R" endif if ( PLayer->GetSpell "_ch_el_fireball_2L_2R" == 1 ) Player->addSpell "_ch_el_fireball_2L_3R" Set MagicSpell to 3 Player->removeSpell "_ch_el_fireball_2L_2R" endif if ( PLayer->GetSpell "_ch_el_firelighting_4L_2R" == 1 ) Player->addSpell "_ch_el_firelighting_4L_3R" Set MagicSpell to 3 Player->removeSpell "_ch_el_firelighting_4L_2R" endif if ( PLayer->GetSpell "_ch_el_icebolt_1L_2R" == 1 ) Player->addSpell "_ch_el_icebolt_1L_3R" Set MagicSpell to 3 Player->removeSpell "_ch_el_icebolt_1L_2R" endif if ( PLayer->GetSpell "_ch_el_lightning_2L_2R" == 1 ) Player->addSpell "_ch_el_lightning_2L_3R" Set MagicSpell to 3 Player->removeSpell "_ch_el_lightning_2L_2R" endif if ( PLayer->GetSpell "_ch_necro_weak_2L_2R" == 1 ) Player->addSpell "_ch_necro_weak_2L_3R" Set MagicSpell to 3 Player->removeSpell "_ch_necro_weak_2L_2R" endif if ( PLayer->GetSpell "_ch_old_damed_2L_2R" == 1 ) Player->addSpell "_ch_old_damed_2L_3R" Set MagicSpell to 3 Player->removeSpell "_ch_old_damed_2L_2R" endif if ( PLayer->GetSpell "_ch_old_poison_1L_2R" == 1 ) Player->addSpell "_ch_old_poison_1L_3R" Set MagicSpell to 3 Player->removeSpell "_ch_old_poison_1L_2R" endif if ( PLayer->GetSpell "_ch_old_poisonbloom_3L_2R" == 1 ) Player->addSpell "_ch_old_poisonbloom_3L_3R" Set MagicSpell to 3 Player->removeSpell "_ch_old_poisonbloom_3L_2R" endif if ( MagicSpell == 3 ) MessageBox "Вы усовершенствовали свои познания в магии." else MessageBox "У Вас нет заклинаний, которые способен улучшить этот том." endif Set MagicSpell to 0 endif if ( PCSkipEquip == 1 ) ; эта функция может быть использована для сокращения проигрывания скрипта, если ее поставить в начало скрипта Set PCSkipEquip to 0 Set MagicSpell to 1 Return endif if ( MenuMode == 1 ) ; эта вообще бесполезна секция, тут наоборот надо вводить, if ( MenuMode == 0 ) -> Return и ставить самым первым этот блок. Return endif if ( OnActivate == 1 ) ; полагаю этот блок для того, чтобы можно было воровать книги, но не уверен нужен ли он вообще. Activate endif END ImpDestr_MB3_Script
  6. Мда, забавную тему открыли и забавную дискуссию развели. Некоторые сообщения особо улыбнули ) А некоторые стоящие идеи я взял на заметку. Теперь по сути: 1 При крафте ты не сможешь реализовать повышения уровня гг. И это главное ((( ( Я придумал один способ замороченный, но он требует новых иконок и моделей, за подробностями в ЛС) 2 Цернон, можно и кость раздробить, добавить смолы и склепать новый доспех( вопрос в том в чем дробить ( в ступке?)) И каленая сталь переплавливается и стекло. 3 Баланс может поддерживать расход материалов на починку- 1 Это логично 2 Это тратит ресурсы, что могли бы быть на крафт использованы. 3 Ограниченность материалов.( кузнецы могут продавать материалы, алхимики же продают ингредиенты) Этими 3 постулатами баланса можно добиться. 4 Перелавка нужна, как и добыча минералов. 5 Чертежи - это логично, но и перенос их в журнал логичен, использовать скаевские - бред, слишком большое отличие внешнее. 6 По поводу градации качества вещей - с этим повременить надо, пока я ещё не видел адекватной системы крафта. 7 Вообще было бы логично качество брони оценивать по качеству материала из которого она сделана. Зы веревки н стоит вводить, достаточно кожаных ремешков, разного качества, от гуара до даэдра. 8 Выскажу свои идеи: Есть Дремеские фабрики, имхо на них можно делать доспехи соответствующие. Даеэдрик можно делать только одним молотом и в определенной кузнице. ЗЫ Если чего забыл - допишу
  7. Тут всё для красоты сделано. 1 блок отвечает за появление/ исчезновение если гг не видит нпк (только тормозит процесс игры, я полагаю это как оптимизация задумано, хотя мб и работает), 2 блок как раз отвечает за исчезновение по часам, проверка идет каждые 5 секунд(типо оптимизация, имхо можно было проще сделать). 3 блок отвечает за появление и исчезновение в интерьере и как и 2-ой привязан ко времени. 4 блок - это невозможность убить детей и штрафы. В принципе тебе нужны только 2 и 3 блоки и переменные которые там использованы. Вообще скрипт мудрёный чуток, всегда чужое тяжелее разбирать, хз как автор блоки в голове строил, тем более тут нелинейность такая.
  8. не так же, локальный скрипт перестает работать если ты не в смежной локации, косяки могут быть с переменными, а так время четко отслеживается.
  9. mortuus

    ЧаВо

    остальных призраков вроде поправили, а про этого видимо забыли. Я уже 100 раз предлагал гмст переменную поправить, там мало того что светоч, там ещё хамелеон даёт уворот.
  10. глобал должен обсекаться и срабатывать 1 раз, я сегодня что-то читал о подобном. Ну в общем надо в кс смотреть, конструктор далек от совершенства.
  11. Ну наконец то кто-то что-то умное сказал. А по поводу последней проблемы - юзай МСР и выставляй там галочки, он много всего правит.
  12. Вообще решение думается мне не сложное. 1 глобальный скрипт определяющий время и стартующий другие скрипты которые выставляют позиции нпк. Т.е. begin sc ; m1 m2 m3 скрипты самозавершающиеся, выставляют позиции нужные для нпк, этот скрипт стартовый, работает ;постоянно short status if ( status == 0 ) if ( gamehour < 9 ) Startscript m1 set status to 1 endif elseif ( status == 1 ) if ( gamehour > 9 ) if ( gamehour < 21 ) Startscript m2 set status to 2 endif endif elseif ( status == 2 ) if ( gamehour > 21 ) Startscript m3 set status to 0 endif endif end будет время проверю, если не терпится сами проверьте. begin m1 Stopscript m1 IdNPC1 -> PositionCell, -21278, -17613, 534, 0, "Balmora (-3, -3)" IdNPC2 -> PositionCell, -21278, -17613, 534, 0, "Balmora (-3, -3)" ; и тд end остальные скрипты аналогично только другие позиции В принципе в теории должно работать. Кроме того можно хоть к дням привязку сделать чтобы нпк по определеным дням в храм ходили, одни раз в три дня, другие раз в неделю. Стационарный морровинд можно так чуток оживить. Проверю потом как работает.
  13. Я достаточно много работал с разными таймерами времени, но мало с самим перемещением, это самая дурная вещь в скриптах. Я обычно дубли просто делал. Да всё просто, gamehour глобальная float переменная, т.е. её значение меняется каждый фрейм на определенные доли в зависимости от твоего фпс. Так что точное значение ты никогда не отследишь. Точнее отследить можно, но поймать - нет. К примеру ты можешь сделать вещь при активации которой тебе укажется время, можно даже пересчитать чтобы до минут или секунд показывало. =) В твоей статье на СХ кой чего про блоки не написано. В блоках if-elseif-elseif-elseif-else-endif если подходит ближайшая от верха "истина" то остальные блоки пропускаются до следующего фрейма. Т.е.If ( m ==0 ) set m to 1 elseif ( m == 1 ) set m to 2 elseif (m==2) set m to 3 else set m to 4 endif Переменная m станет равна 4 через 4 кадра только, а не по цепочке за 1 кадр. Как будет время - посмотрю, а то уже заинтриговали. До конца недели вердикт скажу точно.
  14. if ( GameHour >= 21 ) if ( evening == 0 ) PositionCell 3633 2868 12726 10800 "Каюта Катти Сарк" set evening to 1 set morning to 0 endif elseif ( GameHour >= 9 ) if ( morning == 0 ) PositionCell -131545 220782 90 0 "Солстхейм, побережьe Фелсаад" (-17, 26 ) set morning to 1 set evening to 0 endif else if ( evening == 0 ) PositionCell 3633 2868 12726 10800 "Каюта Катти Сарк" set evening to 1 set morning to 0 endif endif У тебя условия были забавные, попробуй так.
  15. Ну да, что-то тупанул, только с добавлением переменной получится. Перемещения в моррке самая муторная вещь.
  16. Вообще не понял зачем там переменные, когда обойтись можно только функцией GameHour, тем более что планируется больше режимов чем утро- вечер. Begin sct if ( GameHour >= 21 ) PositionCell x y z gradus "CELLID" elseif ( GameHour >= 17 ) PositionCell x1 y1 z1 gradus "CELLID" elseif ( GameHour >= 12 ) PositionCell x2 y2 z2 gradus "CELLID" elseif ( GameHour >= 6 ) PositionCell x3 y3 z3 gradus "CELLID" else PositionCell x4 y4 z4 gradus "CELLID" endif end
  17. Поправил известные баги изменении стрелкового оружия. Если кончаются стрелы игроку возвращается контроль, при двойном срабатывании звука игрок больше не должен зависать
  18. любопытно, видимо это движок, можно вставить таймер, должно помочь.
  19. Ингредиенты это одно, ты ставишь их какие хочешь в меню, принудительно скриптом бутылку в меню не воткнешь, Можно правда кое что сделать. При включенном меню алхимии если заканчиваются бутылки просто выставляем алхимию на 0 и шанс сварить зелье будет всегда неудачный, при выходе из меню алхимии восстанавливаем навык. Попозже посмотрю как проще будет отследить меню алхимии.
  20. К сожалению из этой затеи ничего хорошего не выйдет. Можно отследить наличие бутылок в инвентаре и сделать запрет использования реторт при отсутствии бутылок. Можно отследить и удачное зельеварение и убрать бутылку из инвентаря. Нельзя меню алхимии закрыть, если бутылок в инвентаре у вас не останется. Так что без тотальной переработки алхимии такое не сделать( а с тотальной переработкой ещё с большими трудностями столкнешься).
  21. Новая версия, вроде все недочеты поправил, учел рост разных рас и полов. В этой версии все нововведения что были задуманы. Если багов выявлено не будет - сделаю + к этому отдельно аргонианское дыхание + темную воду, в общем разделю плаин на составляющие, но и цельную версию тоже оставлю. Внимание! Плагин не совместим с плагинами добавляющими новые расы ( Несовместимость условная, не будет учтен рост расы) Не совместим с плагинами задевающими chargen_capitan'a
  22. На счет доп прог - не знаю, стандартные скрипты точно не позволят такого.
  23. Плагин прекрасный и нужный. Теперь ложка дегтя - в меню прически отображаются не всегда корректно.
  24. Первое с чем стоит определиться с направлением в плагиностроении. Человек-оркестр - это хорошо, но всегда в одном направлении люди более развиты. Есть квесты, левел дизайн, моделирование, работа с анимациями, скрипты. Последние 3 профы реже всего встречаются на профессиональном уровне.
×
×
  • Создать...