• Добро пожаловать, Гость. Войдите или зарегистрируйтесь.

Автор Тема: Плагин "Изготовление стрел"  (Прочитано 3065 раз)

Описание: первый опыт

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн INFERNO

  • *
  • Сообщений: 33
  • Репутация: 0
    • Просмотр профиля
Плагин "Изготовление стрел"
« : 01 Январь, 2010, 20:27:44 »
0
Привет всем кто еще уважает обливу!

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

Суть плагина: В имперском городе в портовый район добавлены 2 вещи - наковальня и горн.. С помощью этих вещей можно сделать меч. Но меч делается по навыку оружейника - до 25 - отстой, 25-50 неплохо 50-75 хорошо 75-100 отлично >100 великолепно... а делается с помощью горна (там серебрянные самородки переделываются в руду). 12 слитков руды - готов меч. посоветуйте, что еще можно добавить, помимо измененной модели мечей(1 уровень с ржавчиной, а 5 сияет), создания отдельной кузницы с квестом на нее, зачарования на последний меч при имеющемся черепе(соли, другого меча)

Вот ссылка: http://narod.ru/disk/16521851000/MakeSilverWeapons.esp.html

Пожалста, не судите строго, ведь как-никак только первый удачный плагин

Оффлайн zOmb

  • *
  • Сообщений: 504
  • Репутация: 0
    • ICQ клиент - 272034714
    • Просмотр профиля
    • Email
Re: Первый плагин
« Ответ #1 : 03 Январь, 2010, 15:37:45 »
0
посоветуйте, что еще можно добавить
Несколько стадий производства, как в готике: выплавить, выковать, остудить, заточить.
Глава проекта "Сыны Кагренака"
Награды Награждаются форумчане, заставшие зарождение Румора

Оффлайн Poison Angel

  • Супермодератор форума
  • *
  • Сообщений: 662
  • Репутация: 4.7
  • Пол: Мужской
    • ICQ клиент - 282758820
    • Просмотр профиля
Re: Первый плагин
« Ответ #2 : 03 Январь, 2010, 17:32:16 »
0
Можно попробовать как-то заинтересовать игрока, чтобы он занимался всем этим. :) А то вроде получается много действий ради получения меча, который вовсе и не нужен - оружия в игре очень много.



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

Оффлайн zOmb

  • *
  • Сообщений: 504
  • Репутация: 0
    • ICQ клиент - 272034714
    • Просмотр профиля
    • Email
Re: Первый плагин
« Ответ #3 : 03 Январь, 2010, 18:05:13 »
0
Прибыль. Меч должен быть дороже, чем исходный материал.
Глава проекта "Сыны Кагренака"
Награды Награждаются форумчане, заставшие зарождение Румора

Оффлайн Poison Angel

  • Супермодератор форума
  • *
  • Сообщений: 662
  • Репутация: 4.7
  • Пол: Мужской
    • ICQ клиент - 282758820
    • Просмотр профиля
Re: Первый плагин
« Ответ #4 : 03 Январь, 2010, 22:22:36 »
0
Прибыль. Меч должен быть дороже, чем исходный материал.
Ну, как минимум. В начале игры, наверное, пойдет. Но когда денег и так куча, этого мало будет.



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

Оффлайн LiLu

  • *
  • Сообщений: 873
  • Репутация: 13.4
  • Пол: Мужской
  • подозрительная личность
    • Просмотр профиля
    • lizard's burrow
Re: Первый плагин
« Ответ #5 : 03 Январь, 2010, 23:14:32 »
0
Прибыль. Меч должен быть дороже, чем исходный материал.
Ну, как минимум. В начале игры, наверное, пойдет. Но когда денег и так куча, этого мало будет.
В начале игры никто плагины не ставит, т.к. и так много есть много чего интересного. Я бы делал упор на красивость и возможность подстроить под себя клинок. Что-нить вроде выбора цвета, узора, формы...

Оффлайн Poison Angel

  • Супермодератор форума
  • *
  • Сообщений: 662
  • Репутация: 4.7
  • Пол: Мужской
    • ICQ клиент - 282758820
    • Просмотр профиля
Re: Первый плагин
« Ответ #6 : 04 Январь, 2010, 01:00:11 »
0
В начале игры никто плагины не ставит, т.к. и так много есть много чего интересного.
Если начинаешь играть заново, то уже с любимыми модами. Ну или с теми, которые будут полезны вначале. ;)

А насчет разных моделей я что-то сомневаюсь - по ссылке скачивается только esp. Я, правда, не смотрел, что в нем.



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

Оффлайн INFERNO

  • *
  • Сообщений: 33
  • Репутация: 0
    • Просмотр профиля
Re: Первый плагин
« Ответ #7 : 04 Январь, 2010, 19:09:51 »
0
zOmb, Да, насчет действий ты и прав и неправ одновременно... Зачем кликать дофига раз если результат один и тот-же? У тебя 4 действия получилось, у меня 2, разница только в действиях  :)

Poison Angel, Ты несомненно прав, я делал этот плагин ради расширения торговли и безграничных мечей  :)  и есть стимул качать оружейника, т.к 100 уровень - и с выкованным мечом несравнится почти ничего. А вот насчет моделей ты уж точно неправ! Можно создать свой BSA архив и скинуть 2 фаила - ЕСП и БСА  :)

LiLu, Чтобы подстроить под себя клинок придется искать много моделей, создавать менюшки, и это наверное геморойно  :)


Конечно, спасибо за подсказки, я постараюсь переделать плаг (хотя он уже и так по моим меркам классный)
Кстати, может создать еще наковальни 2-3 на которых 7 слитков - короткий меч, 4 - кинжал, 18 - двуручник?

Оффлайн Poison Angel

  • Супермодератор форума
  • *
  • Сообщений: 662
  • Репутация: 4.7
  • Пол: Мужской
    • ICQ клиент - 282758820
    • Просмотр профиля
Re: Первый плагин
« Ответ #8 : 04 Январь, 2010, 21:38:09 »
0
А вот насчет моделей ты уж точно неправ! Можно создать свой BSA архив и скинуть 2 фаила - ЕСП и БСА  :)
В чем именно я не прав? В том, что этот плагин использует стандартные модели из игры? :)

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

Кстати, может создать еще наковальни 2-3 на которых 7 слитков - короткий меч, 4 - кинжал, 18 - двуручник?
А что, в одну наковальню такой выбор нельзя добавить?



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

Оффлайн INFERNO

  • *
  • Сообщений: 33
  • Репутация: 0
    • Просмотр профиля
Re: Первый плагин
« Ответ #9 : 05 Январь, 2010, 14:56:03 »
0
Poison Angel
Цитировать (выделенное)
В чем именно я не прав? В том, что этот плагин использует стандартные модели из игры?
это при нестандартных моделях  :). А при стандартных, конечно только один ЕСП  :yes:

Цитировать (выделенное)
Вот и получается, что поначалу мод не останется ненужным дополнением, будет стимул зарабатывать, пусть даже и мастеря ржавые мечи, а потом либо станет неинтересным - оружие найдено хорошее, денег в достатке, либо - сломает весь баланс суперкрутым мечом.
Меч не суперкрутой, это точно... А вот стрелы (монета + обработанное дерево или дерево+наконечник) например не утратят популярности (если например они какие получше)

Цитировать (выделенное)
А что, в одну наковальню такой выбор нельзя добавить?
Если бы знать как делать менюшки  :D

Оффлайн zOmb

  • *
  • Сообщений: 504
  • Репутация: 0
    • ICQ клиент - 272034714
    • Просмотр профиля
    • Email
Глава проекта "Сыны Кагренака"
Награды Награждаются форумчане, заставшие зарождение Румора

Оффлайн Poison Angel

  • Супермодератор форума
  • *
  • Сообщений: 662
  • Репутация: 4.7
  • Пол: Мужской
    • ICQ клиент - 282758820
    • Просмотр профиля
Re: Первый плагин
« Ответ #11 : 05 Январь, 2010, 16:29:55 »
0
Я что-то не увидел в туториалах по скриптингу обучение работе с messagebox. Выложу переведенное начало какой-то статьи, чтобы понять основы должно хватить...
----
Учебник по MessageBox.

Вступление.

Основная часть ошибок при использовании MessageBox делается, когда простые скрипты используются как основа для более сложных меню-скриптов. Чтобы избежать подобного, это учебное пособие приведет к одиночному универсальному скрипту, который может быть использован  и расширен для любой ситуации. К концу мы будем знать о проблемах, которые возникают в скриптах всплывающих меню, как их предотвратить, а также, зачем нужна каждая строка универсального скрипта.
Начнем с некоторых основных механизмов MessageBox и связанных функций, сопровождаемых стандартными ошибками в сложных скриптах, и далее – к универсальному скрипту и его настройке. В итоге, мы рассмотрим использование скрипта для перемещения между многоуровневыми меню и некоторые вещи, которыми можно его дополнить. 
Стоит помнить, что есть четыре сущности, к которым может быть прикреплено скриптовое меню: активаторы, квесты, маркеры (объектные скрипты на предметах, принадлежащих игроку) и заклинания (или скрипты магических эффектов). Эта статья в основном будет рассматривать активаторы, а другие методы, их отличия и как их применение будут рассмотрены отдельно. Активаторы выбраны потому, что их проще и безопаснее использовать во многих ситуациях (причины описаны в статье «В которой я пытаюсь убедить вас использовать активаторы», поэтому рекомендуется предварительно с ней ознакомиться.)

Основные механизмы MessageBox и связанных с ним функций.

Каждое меню обязательно использует две функции: MessageBox чтобы вывести меню и GetButtonPressed для определения пункта меню, выбранного игроком. Есть несколько важных вещей, которые надо помнить:
GetButtonPressed
1.   GetButtonPressed возвращает числа от «-1» до «9»:
 a.   -1 означает, что никакой выбор не был сделан
 b.   0 означает, что был выбран первый пункт меню
 c.   1 для второго пункта
 d.   ...
 e.   9 для десятого (вы можете использовать максимум 10 пунктов)
2.   GetButtonPressed возвращает корректное значение текущего выбора игрока только при первом вызове в скрипте, все последующие вызовы будут возвращать «-1». Например, если игрок выберет первый пункт, то в следующем скрипте
if (GetButtonPressed == -1)
...
elseif (GetButtonPressed == 0)
GetButtonPressed вернет число «0» при первой проверке, далее будет вызвана проверка elseif, в которой  GetButtonPressed вернет уже число «-1», что не позволит нам корректно обработать выбор игрока. Чтобы избежать такой ошибки, следует значение выбора запоминать в переменной и в дальнейшем проверять уже её значение:
short Choice
...
set Choice to GetButtonPressed
if (Choice == -1)
...
elseif (Choice == 0)

Также, GetButtonPressed будет возвращать «-1» во всех последующих фреймах (до тех пор пока скрипт не вызовет снова/следующий MessageBox)

Согласование по времени.

MessageBox использует один фрейм, чтобы отобразиться, поэтому его можно использовать в любом блоке. Тем не менее, может потребоваться до 15 фреймов, прежде чем GetButtonPressed вернет значение кнопки, выбранной игроком (даже если игрок нажал кнопку в том же фрейме, где была  использована функция MessageBox).  Следовательно, он должен быть в блоке, который выполняется каждый фрейм, таких как GameMode, MenuMode и ScriptEffectUpdate. Также он должен быть в скрипте, который выполняется в каждом фрейме. Для объектов это означает, что они должны быть в загруженной ячейке; для квестов – что fQuestDelayTime должен быть установлен в .001 и они должны быть запущены; a для спеллов – что их продолжительность должна быть достаточно большой (больше, чем в секции Spell конструктора).

Разделяйте.

Записывая всё рядом, мы в итоге получим скрипт подобный такому:
short Choice
...
messagebox "Your menu" "Button 0" ... "Button 9"
set Choice to GetButtonPressed
if (Choice == -1)
...
elseif (Choice == 0)
...

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

short Choosing
short Choice
...
if (Choosing == -1)
  messagebox "Your menu" "Button 0" ... "Button 9"
  set Choosing to 1
  set Choice to GetButtonPressed
elseif (Choosing == 1)
  set Choice to GetButtonPressed
  if (Choice == -1)
  ...
  elseif (Choice == 0)
  ...

Как избежать стандартных ошибок при использовании более сложных меню

Старт, завершение и первое меню.

Вы не захотите, чтобы ваш скрипт работал все время, поэтому ему нужен корректный старт и корректное же завершение. На активаторах вы можете использовать блок OnActivate, а в нем – “ReferenceEditorID.Activate Player, 1”, чтобы показать меню:
begin onActivate
  messagebox "Что вы хотите сделать?" "Button 0" ... "Button 9"
  set Choosing to 1
end

begin GameMode
  if (Choosing == 1)
    set Choice to GetButtonPressed
...
Это сработает, но вы никак не сможете вернуться к этому меню. Чтобы исправить ситуацию, поместите меню в блок GameMode. Установим Choosing в -1 в блоке OnActiavte, чтобы показать меню:

begin onActivate
  set Choosing to -1
end

begin GameMode
  if (Choosing == -1)
    messagebox "What would you like to do?" "Button 0" ... "Button 9"
  elseif (Choosing == 1)
    set Choice to GetButtonPressed
...
Чтобы завершить этот процесс, установите Choosing обратно в 0. Однако, учтите, что блок GameMode все равно будет выполняться. Чтобы уменьшить количество проверок If, выполняющихся каждый фрейм, используйте команду Return:

begin onActivate
  set Choosing to -1
end

begin GameMode
  if (Choosing == 0)
    return

  elseif (Choosing == -1)
...
  set Choosing to 0 ;Когда захотите выйти

Разделяем вызов нескольких меню.

Множественные меню требуют осторожного обращения с управляющими переменными, чтобы меню не сбивали работу друг друга. Самая частая ошибка – поместить вызов второго меню в блоке обработки выбора первого меню:
begin onActivate
  messagebox "Что вы хотите восстановить?" "Доспехи" ... "Оружие"
end

begin GameMode
  set Choice to GetButtonPressed
  if (Choice == -1)
  ...
  elseif (Choice == 0) ;Доспехи
    messagebox "Какие доспехи вы хотите восстановить?" "Шлем" ... "Сапоги"
    set Choice2 to GetButtonPressed
    if Choice2 == -1
    ...
    elseif (Choice2 == 0) ;Шлем
    ...
    elseif (Choice2 == 9) ;Сапоги
    ...
    endif

  elseif (Choice == 9) ;Оружие
    messagebox "Какое оружие вы хотите восстановить?" "Меч" ... "Лук"
...

Если игрок выберет “Доспехи” из первого меню, второе меню (“Какие доспехи вы хотите восстановить?”) будет показано, но выбор, который игрок сделает в нем будет обработан как выбор из первого меню. Например, если игрок выберет «Сапоги» во втором меню, будет показано меню «Какое оружие вы хотите восстановить?»
Проследив за выполнением скрипта, мы поймем, почему. Игроку будет показано меню “Что вы хотите восстановить?”. Он выберет “Доспехи”. На несколько фреймов GetButtonPressed установит Choice в -1 и ничего не будет происходить. Примерно 15 фреймов спустя после выбора GetButtonPressed вернет 0. Это приведет к показу второго меню “Какие доспехи вы хотите восстановить?”. Choice2 будет установлено в -1, как еще не обработавшее действие игрока. Игрок выберет “Сапоги”. Снова пройдет несколько фреймов, и GetButtonPressed вернет выбор, сделанный игроком. При этом скрипт будет снова выполняться с начала блока GameMode. И в этот раз Choice будет установлено в 9 (потому что “Сапоги” были десятой кнопкой), и будет показано меню "Какое оружие вы хотите восстановить?".
Чтобы предотвратить возникновение таких ситуаций, используйте переменную Choosing для разделения меню:
begin onActivate
  set Choosing to -1
end

begin GameMode
  if (Choosing == 0)
    return
  elseif (Choosing == -1)
    messagebox "Что вы хотите восстановить?" "Доспехи" ... "Оружие"
    set Choosing to 1
  elseif (Choosing == 1)
    set Choice to GetButtonPressed
    if (Choice == -1)
    ...
    elseif (Choice == 0) ;Доспехи
      set Choosing to -10
    ...
    elseif (Choice == 9) ;Оружие
      set Choosing to -11
    endif

  elseif (Choosing == -10) ;Доспехи
    messagebox "Какие доспехи вы хотите восстановить?" "Шлем" ... "Сапоги"
    set Choosing to 10
  elseif (Choosing == 10)
    set Choice to GetButtonPressed
    if (Choice == -1)
    ...
    elseif (Choice == 0) ;Шлем
      set Choosing to 0 ;Чтобы в дальнейшем выйти
    ...
    elseif (Choice == 9) ;Boots
      set Choosing to 0 ;Чтобы в дальнейшем выйти
    endif

  elseif (Choosing == -11) ;Оружие
    messagebox "Какое оружие вы хотите восстановить?" "Меч" ... "Лук"
    set Choosing to 11
  elseif (Choosing == 11)
    set Choice to GetButtonPressed
    if (Choice == -1)
    ...
    elseif (Choice == 0) ;Клинки
      set Choosing to 0 ;Чтобы в дальнейшем выйти
    ...
    elseif (Choice == 9) ;Лук
      set Choosing to 0 ;Чтобы в дальнейшем выйти
    endif
  endif
end

Заметьте, что за каждое меню отвечает пара значений: Главное меню, -1/1; Меню доспехов, -10/10, Меню оружия, -11/11. Когда вы присваиваете Choosing значение, будет показано соответсвующее меню. Больше информации на этот счет вы можете найти в секции   “Навигация по нескольким меню”.



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

Оффлайн INFERNO

  • *
  • Сообщений: 33
  • Репутация: 0
    • Просмотр профиля
Re: Первый плагин
« Ответ #12 : 06 Январь, 2010, 18:56:40 »
0
Ой, спасиба =))). Теперь с этим разбираться надо =)))

Кстати, простой вопрос =\
Если я сделаю на оружие скрипт:

OnHit
set victim to getself
victim.pushactoraway 200
end

То при ударе данной пушкой ты оттолкнешь бедную жертву? Или станет ошибка?

Оффлайн Visman

  • *
  • Сообщений: 185
  • Репутация: 0
  • Пол: Мужской
    • Просмотр профиля
    • AllTES: Плагины и моды
Re: Первый плагин
« Ответ #13 : 06 Январь, 2010, 19:43:22 »
0
Ни чего не будет, так как этот блок работает только на актерах, а не на предметах.
Чтобы жертва отлетала нужно на оружие навесить заклинание в котором прописать в блоке ScriptEffectStart команду pushactoraway.
Вам не кажется, что plаygrоund.ru есть синоним слову ворье?

Оффлайн INFERNO

  • *
  • Сообщений: 33
  • Репутация: 0
    • Просмотр профиля
Re: Первый плагин
« Ответ #14 : 09 Январь, 2010, 18:34:25 »
0
Вот! Мой второй плаг, основан на этом но он теперь в 1000 раз нужнее чем другие. Этот плаг будет создавать стрелы, причем независимо от навыков, зато разные типы стрел.

http://oblivion4u.ucoz.ru/load/2-1-0-1

Посмотрите  :) , я хочу узнать, мне удался плагин или нет.

Оффлайн Poison Angel

  • Супермодератор форума
  • *
  • Сообщений: 662
  • Репутация: 4.7
  • Пол: Мужской
    • ICQ клиент - 282758820
    • Просмотр профиля
Re: Первый плагин
« Ответ #15 : 09 Январь, 2010, 20:28:07 »
0
Вот! Мой второй плаг, основан на этом но он теперь в 1000 раз нужнее чем другие. Этот плаг будет создавать стрелы, причем независимо от навыков, зато разные типы стрел.
Поздравляю. Ты получил полезный опыт в плане создания модов. :)
Еще бы кто проанализировал все моды подобного типа и собрал что-то идеально-максимальное.
*можно выполнить поиск на tesnexus по слову arrows в категории oblivion files*



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

Теги:
 

Плагин "старый Замок"

Автор ~Max960~Раздел Плагины для TES 3: Morrowind

Ответов: 4
Просмотров: 5208
Последний ответ 20 Январь, 2006, 09:10:01
от ~Max960~
Работа над заказным плагином Dan"а

Автор DanРаздел Плагины для TES 3: Morrowind

Ответов: 31
Просмотров: 17849
Последний ответ 30 Октябрь, 2005, 11:27:41
от N 34
О проекте "Систематизация Lore".

Автор FinveРаздел Вселенная TES

Ответов: 1
Просмотров: 2623
Последний ответ 10 Март, 2011, 06:54:20
от Tiara
Учебник "OSFM v1.0"

Автор GarinРаздел Скриптинг под TES IV

Ответов: 67
Просмотров: 70508
Последний ответ 03 Март, 2007, 22:46:04
от Garin
Туториал "Лошадь на продажу" (Horse For Sale Tutorial)

Автор GarinРаздел Туториалы по TES 4 Oblivion

Ответов: 0
Просмотров: 1792
Последний ответ 09 Декабрь, 2006, 01:19:04
от Garin
Removing "placeatme Objects"

Автор GarinРаздел Туториалы по TES 4 Oblivion

Ответов: 0
Просмотров: 1232
Последний ответ 09 Декабрь, 2006, 02:04:02
от Garin
"без Ключа Не Пройдешь!"

Автор GL.SamРаздел Архив готовых скриптовых решений

Ответов: 0
Просмотров: 2107
Последний ответ 08 Январь, 2007, 04:05:14
от GL.Sam
Учебник по созданию квестов "Quest Tutorial"

Автор GarinРаздел Туториалы по TES 4 Oblivion

Ответов: 0
Просмотров: 5620
Последний ответ 13 Январь, 2007, 23:12:49
от Garin
Руководство для начинающих "a Beginner's Guide"

Автор GarinРаздел Туториалы по TES 4 Oblivion

Ответов: 1
Просмотров: 5442
Последний ответ 14 Январь, 2007, 01:30:40
от Garin
Запись в команду "OSFM Team"

Автор GarinРаздел Скриптинг под TES IV

Ответов: 3
Просмотров: 6157
Последний ответ 13 Декабрь, 2007, 00:42:25
от Garin

Поиск

 
Top
SimplePortal 2.3.5 © 2008-2012, SimplePortal