Модератор форума: Влесам, Врыл, Detect_Life, Монгольчик  
Все о моддинге в ПЗ
DroyДата: Вторник, 2010.02.02, 23:24 | Сообщение # 221
Droy
Ранг 3
Группа: Пользователи
Сообщений: 182
Репутация: 0
Статус: Временно отсутствует
ВРЫЫЫЫЛЛЛЛЛЛЛЛ!!! Ну напиши как создать новый Юнит в Сургеоне. А то при AddMob измененные монстры уходят в среду обитания. Копированием они тоже будут шлепать в свое начальное место?

Добавлено (2010/Фев/02, 23:00)
---------------------------------------------
Оу, есть же команда охраны точки =) Ладно мы не ищем легких путей, щас попробую по другому.

Добавлено (2010/Фев/02, 23:24)
---------------------------------------------
в скриптах параметр "i, object" - это лидер?


...If I only had a heart © Sonata Arctica

Сообщение отредактировал Droy - Вторник, 2010.02.02, 22:59
 
DroyДата: Среда, 2010.02.03, 00:26 | Сообщение # 222
Droy
Ранг 3
Группа: Пользователи
Сообщений: 182
Репутация: 0
Статус: Временно отсутствует
ФУУУУУУУУУУУХХХХ!!!
С гордостью представляю свою первую гордость!! Новый квест с невероятными приключениями, не оставит равнодушным никого!!
Название квеста: Яйцо Дракона
Сюжет: Охотники видели как ящеры в Средних горах несли яйцо в деревню. Один шустрый малый проведал что это яйцо дракона!
Описание: Казалось бы обычная миссия - пойти забрать предмет, НО НЕТ! Вас ждет неожиданный сюрприз, и невероятный поворот событий!
Награда: непомню =)
Недостатки:
- Вместо яйца дракона пока-что используется текстура магического шара, скоро переделаю.
- Так и не смог сделать привязку скриптового имени к монстру который добавляеться на карту отдельной подгрузкой моб файла. ( в точности OCheaf = GetObjectByID( "1000170" ) )
- К сожалению не ставиться условие на жив\мертв монстр который появляется при подгрузке моб файла. Пока что думаю над проблемой как выставить провал миссии при смерти сопровождаемого. Сделал пока что сопровождаемого нейтральным к монстрам на карте.
Прикрепления: EggQuest.rar (286.8 Kb)


...If I only had a heart © Sonata Arctica

Сообщение отредактировал Droy - Среда, 2010.02.03, 00:36
 
ТанкДата: Среда, 2010.02.03, 11:18 | Сообщение # 223
Танк
Ранг 3
Группа: Пользователи
Сообщений: 117
Репутация: 1
Статус: Временно отсутствует
после создания нового оружия по мануалу http://allods.gipat.ru/index.php?p=eimodzsozdanijeunikalnogomeca вылетает вот такая ошибка (прикрепляю). в чем дело?
Прикрепления: 7630287.jpg (7.0 Kb)
 
МонгольчикДата: Среда, 2010.02.03, 11:49 | Сообщение # 224
Монгольчик
Отец основатель
Группа: Администраторы
Сообщений: 5076
Репутация: 25
Статус: Временно отсутствует
Танк,Ты в датабазе предмет прописал с таким же названием ? где то ошибка в названии предмета, перепроверь еще раз.


 
ТанкДата: Среда, 2010.02.03, 13:37 | Сообщение # 225
Танк
Ранг 3
Группа: Пользователи
Сообщений: 117
Репутация: 1
Статус: Временно отсутствует
Я закончил свой аттестационный мод. Теперь описание.

Название: Kot-Mod v.0.1.0
Автор: Я :D
Изменения: 1) исправлены грамматические ошибки. :D
2) добавлен эксклюзивный неразборный кинджал "кинжал из руин".
3) Переписан единственный квест "Огромный вепрь" теперь наградой с него можно получить "кинжал из руин".
4) добавлен полностью описанный материал, камень "Мрамор".

Этим модом я хотел показать, что освоил создание простейших квестов, эксклюзивного оружия и новых материалов. Надеюсь, что качество исполнения вам понравиться и я получу зачет :D .

Далее планирую освоить изменение баланса (силы мобов, получение опыта цены магазина и.т.д.) и создание нового металла.

Файл мода под стартер, прикрепляю.

Добавлено (2010/Фев/03, 13:37)
---------------------------------------------
Нашел первый глюк, кинжал дает защиты и атаки на 100 больше чем должен.(((

Прикрепления: Kot-Mod_v.0.1.0.rar (166.7 Kb)


Сообщение отредактировал Танк - Среда, 2010.02.03, 12:49
 
ВрылДата: Среда, 2010.02.03, 15:59 | Сообщение # 226
Врыл
Ранг 7
Группа: Модераторы
Сообщений: 2229
Репутация: 29
Статус: Временно отсутствует
Quote (Droy)
ВРЫЫЫЫЛЛЛЛЛЛЛЛ!!! Ну напиши как создать новый Юнит в Сургеоне. А то при AddMob измененные монстры уходят в среду обитания. Копированием они тоже будут шлепать в свое начальное место?

Cтранно, я вроде думал, что понятно объясняю. Ну да ладно...
Если в кратце, то все делается через массовые изменения.
Подробней:
Например нужно скопировать объект из одного моба в другой. Открываем тот моб ИЗ которого будем копировать, смотрим параметр ScriptVariableName - он должен быть уникальным иначе скопируем больше объектов чем нам нужно. Идем в "Критерии отбора объектов" Заполняем поле ScriptVariableName которое нам нужно, отмечаем справа тип объекта (юнит, объект, рычаг и т.д.) и переключаемся на закладку "Действия над отобраными объектами" . Выбираем опцию "копировать в целевой моб" выбираем моб В который будем копировать (галочка "заменять при совпадении ID" должна быть снята) И жамкаем на "Выполнить изменения!". Если жамкнем 2 раза - скопируем 2 одинаковых объекта :) . Если все правильно, то в нужном нам мобе должны появиться новые объекты, нужно не забыть присвоить им уникальные ID.

Далее, как я уже объяснял, сургеон не дает редактировать логику поведения юнитов (охранные точки, патрули и т.д.). Частично это можно сделать с помощью MRT, но гораздо проще настроить ее с помощью скриптов.

Добавлено (2010/Фев/03, 15:11)
---------------------------------------------
Droy, Прикольный квест, а главное все работает! class
Из замечаний:
Псле того как появляется детеныш, ящеры и орковские патрули становятся нейтральными, но это скорее всего так и задумывалось.
Ящер-вождь не влезает в рамку :D , нужно бы настроть чтоб влезал (в EIEdit это поле Graphics Data Info Window Scale)
Яйцо хорошобы чтобы называлось именно яйцом - создай из шаблона магического шара новый квестовый предмет.
Детеныша я бы сделал еще поменьше размером.
ИМХО слишком большая денежная награда: Рог лечения 1225 + Гобл. кукла 16254
Ну и самое главное - при смерти сервера или при перезаходе на карту отвести детеныша будет невозможно и квест завершить не получится. Такая же ошибка была у меня раньше в квесте "пропавший мастер".

Вот универсальный скрипт для всех подобных случаев:

Code

DeclareScript #Follow#1 ( this : object )
DeclareScript #Follow#2 ( this : object )

Script #Follow#1
(
     if
     (
       IsGreater( DistanceUnitUnit( GetUnitOfPlayer( 0,0 ) , this ) , 15 )
     )
     then
     (
       KillScript()
       Guard( this , GetX( this ) , GetY( this ) , 5 )
       #Follow#2 ( this )
     )
)

Script #Follow#2
(
     if
     (
       IsLess( DistanceUnitUnit( GetUnitOfPlayer( 0,0 ) , this ) , 7 )
       Not( GsGetVar(0,"bFollow") )
     )
     then
     (
       KillScript()
       UMClear ( this )
       UMAg ( this , 1 )
       UMFollow ( this , GetUnitOfPlayer( 0,0 ) )
       #Follow#1 ( this )
     )
)

И вместо UMFollow ( GetObject( 2013 ) , GetUnitOfPlayer( 0 , 0 ) ) используй :
#Follow#2 ( GetObject( 2013 ) )
и ящер уже не отстанет.

Чтобы остановить скрит (например когда детеныш уже дошел до нужного места):
GsSetVar(0, "bFollow", 1)

Добавлено (2010/Фев/03, 15:59)
---------------------------------------------
Танк, Все отлично! Новый материал порадовал - прописанны все тексты и все текстуры каменных вещей присутсвуют, даже мраморный жезл не забыл! Учишся дальше на текстурщика ПЗ? ;)


- Папа, а правда, что от форумов тупеют?
- ГыыЫ... сынок...ЛоЛ...


Сообщение отредактировал Врыл - Среда, 2010.02.03, 15:56
 
МонгольчикДата: Среда, 2010.02.03, 16:26 | Сообщение # 227
Монгольчик
Отец основатель
Группа: Администраторы
Сообщений: 5076
Репутация: 25
Статус: Временно отсутствует
Quote (Врыл)
Рог лечения 1225 + Гобл. кукла 16254

Помоему это лишнее, эти вещи уже падают с других квестов...советую создать новые уникальные вещи и поместить их в квест)
Quote (Врыл)
Учишся дальше на текстурщика ПЗ?

Это тогда ко мне, правда я сам не мастер, ну это что-бы Врыла не нагружать)
Дроу будет работать по направлению квестомастерства я так понял ? пусть он будет учеником Врыла)
А Танк тогда моим)



 
DroyДата: Среда, 2010.02.03, 17:10 | Сообщение # 228
Droy
Ранг 3
Группа: Пользователи
Сообщений: 182
Репутация: 0
Статус: Временно отсутствует
Quote
Псле того как появляется детеныш, ящеры и орковские патрули становятся нейтральными, но это скорее всего так и задумывалось.
#Done#
ну это прописано специально скриптами, непомню уже почему =) но я собираюсь еще переделать на - Ящеры нейтральные к игрокам потмоу что ждут что ты вернеш им детеныша, и остальные фракции нейтральные к детенышу, что б не убили (изза то го что монстр подгружаеться отдельно, он не вписываеться в скрипт "если умер то мисия провалена"
Quote (Врыл)
Ящер-вождь не влезает в рамку :D , нужно бы настроть чтоб влезал (в EIEdit это поле Graphics Data Info Window Scale)
#Done#
Ога, я видел, но сил небыло исправить, болею, а делал уже ночью. Хотел показать вам этоту бета-стадию квеста.
Quote (Врыл)
Яйцо хорошобы чтобы называлось именно яйцом - создай из шаблона магического шара новый квестовый предмет.
#In Progress#
Это написано в недостатках квеста =) и что я пожже займусь.

Quote (Mongol)
Детеныша я бы сделал еще поменьше размером.
#Done#
посмотрю =)

Quote (Врыл)
ИМХО слишком большая денежная награда: Рог лечения 1225 + Гобл. кукла 16254
#Done#(кукла снята, ящер убран)
Дела на 2 плевка =) я задумывал наградой только куклу, но я так понял она уже где то есть. А рог откуда? С того ящера в обсерватории? Нуууу =) я что т опридумаю ага, я ж вас не кусаю за жопу мол срочно ставьте квест в мод.
Quote (Mongol)
при смерти сервера или при перезаходе на карту отвести детеныша будет невозможно и квест завершить не получится
#WTF#
Вот это не пробовал =) но опять таки изза того что вождь и детеных подгружаемые я не смог выставить условие "если детеных увидит папу то вы маладец", в скриптах выставлено что если лидер дойдеи до вождя даже сам то квест засчитаеться.

Quote
Cтранно, я вроде думал, что понятно объясняю. Ну да ладно...
Если в кратце, то все делается через массовые изменения.
Подробней:
Например нужно скопировать объект из одного моба в другой. Открываем тот моб ИЗ которого будем копировать, смотрим параметр ScriptVariableName - он должен быть уникальным иначе скопируем больше объектов чем нам нужно. Идем в "Критерии отбора объектов" Заполняем поле ScriptVariableName которое нам нужно, отмечаем справа тип объекта (юнит, объект, рычаг и т.д.) и переключаемся на закладку "Действия над отобраными объектами" . Выбираем опцию "копировать в целевой моб" выбираем моб В который будем копировать (галочка "заменять при совпадении ID" должна быть снята) И жамкаем на "Выполнить изменения!". Если жамкнем 2 раза - скопируем 2 одинаковых объекта :) . Если все правильно, то в нужном нам мобе должны появиться новые объекты, нужно не забыть присвоить им уникальные ID.

Далее, как я уже объяснял, сургеон не дает редактировать логику поведения юнитов (охранные точки, патрули и т.д.). Частично это можно сделать с помощью MRT, но гораздо проще настроить ее с помощью скриптов.


Ога, я вчера худо бедно сам дотюхал, вот только что убило - я не смог удалить рычаги из моб файла, пришлось брать моб файл без рычагов, удалять оттуда всех монстров и обьекты, и добавлять 2х новых монстров, а потом использовал его для подгрузки. Самое интересное, что если подгружать файл с річагами, то при попытке вернуться в поселок выбивает ошибку.

Добавлено (2010/Фев/03, 16:58)
---------------------------------------------

Quote
Not( GsGetVar(0,"bFollow") )

непонятно...обьясни =)
Quote
UMClear ( this )
UMAg ( this , 1 )

Почему this О_О

Добавлено (2010/Фев/03, 17:10)
---------------------------------------------
Танк,
Молодец, хорошо сделано.


...If I only had a heart © Sonata Arctica

Сообщение отредактировал Droy - Среда, 2010.02.03, 17:21
 
ВрылДата: Среда, 2010.02.03, 17:14 | Сообщение # 229
Врыл
Ранг 7
Группа: Модераторы
Сообщений: 2229
Репутация: 29
Статус: Временно отсутствует
Quote (Droy)
изза то го что монстр подгружаеться отдельно, он не вписываеться в скрипт "если умер то мисия провалена"

Тут не должно быть никаких проблем, просто нужно запускать скрипт провала миссии уже ПОСЛЕ того как подгружен новый моб

Quote (Droy)
Вот это не пробовал =) но опять таки изза того что вождь и детеных подгружаемые я не смог выставить условие "если детеных увидит папу то вы маладец",

аналогично
Quote (Droy)
Ога, я вчера худо бедно сам дотюхал, вот только что убило - я не смог удалить рычаги из моб файла, пришлось брать моб файл без рычагов, удалять оттуда всех монстров и обьекты, и добавлять 2х новых монстров, а потом использовал его для подгрузки.

Странно, может ты чегото не так настроил в параметрах? Галочка должна быть только напротив "Рычаг"
Quote (Droy)
Not( GsGetVar(0,"bFollow") )

непонятно...обьясни =)


Если глобальной переменной не задавали значения, то она по умолчанию будет иметь значение 0 или FALSE, А запись Not( GsGetVar(0,"bFollow") ) будет иметь значение TRUE пока переменной не присвоят значение 1.

Quote (Droy)
UMClear ( this )
UMAg ( this , 1 )

Почему this О_О


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


- Папа, а правда, что от форумов тупеют?
- ГыыЫ... сынок...ЛоЛ...
 
ТанкДата: Среда, 2010.02.03, 17:16 | Сообщение # 230
Танк
Ранг 3
Группа: Пользователи
Сообщений: 117
Репутация: 1
Статус: Временно отсутствует
Все кинжал в своем аттестационном моде я переделал, выкладываю.
Все-же жду: зачет, незачет? :)
Прикрепления: 8379824.rar (167.8 Kb)
 
DroyДата: Среда, 2010.02.03, 17:24 | Сообщение # 231
Droy
Ранг 3
Группа: Пользователи
Сообщений: 182
Репутация: 0
Статус: Временно отсутствует
Quote (Танк)
Если глобальной переменной не задавали значения, то она по умолчанию будет иметь значение 0 или FALSE, А запись Not( GsGetVar(0,"bFollow") ) будет иметь значение TRUE пока переменной не присвоят значение 1.

ШО?! Ы я не програмист, руским по белому если можно =) Будет держаться фоллов пока не отменять, ага?
Quote (Врыл)
Это изменит поведение ведомого - он будет стараться избегать врагов во время следования за игроком, вместо того чтобы нападать на каждого как это было бы по умолчанию.

Слава богу гуглом я тоже умею пользоваться, и знаю что делаю эти команды. Почему аргумент this? мне менять на GetObject( 2012 )? Он бы не нападал =) ибо
Code
SetDiplomacy ( 3 , 1 , 0 )
      SetDiplomacy ( 1 , 3 , 0 )
      SetDiplomacy ( 3 , 8 , 0 )
      SetDiplomacy ( 8 , 3 , 0 )


...If I only had a heart © Sonata Arctica

Сообщение отредактировал Droy - Среда, 2010.02.03, 17:26
 
ВрылДата: Среда, 2010.02.03, 17:34 | Сообщение # 232
Врыл
Ранг 7
Группа: Модераторы
Сообщений: 2229
Репутация: 29
Статус: Временно отсутствует
Quote (Droy)
ШО?! Ы я не програмист, руским по белому если можно =)

Это сложнее, но попробую.
В проверке условия
if
(
)
Присутсвуют выражения которые в результате дают 0 (FALSE - ложь) или 1 (TRUE - истина). Если все условия истиные то скрипт выполниться, если одно из них ложное, то нет.
Quote (Droy)
Почему аргумент this? мне менять на GetObject( 2012 )?

в данном случае this это внутренняя переманная скрипта типа object, ты задаешь ее при декларировании скрипта:
DeclareScript #Follow#1 ( this : object )

Т.е. при обращении к скрипту #Follow#2 ( GetObject( 2013 ) ) переменная this приймет значение GetObject( 2013 ) - т.е. детеныша ящера.


- Папа, а правда, что от форумов тупеют?
- ГыыЫ... сынок...ЛоЛ...


Сообщение отредактировал Врыл - Среда, 2010.02.03, 17:35
 
DroyДата: Среда, 2010.02.03, 17:40 | Сообщение # 233
Droy
Ранг 3
Группа: Пользователи
Сообщений: 182
Репутация: 0
Статус: Временно отсутствует
Quote (Врыл)
Это сложнее, но попробую.
В проверке условия
if
(
)
Присутсвуют выражения которые в результате дают 0 (FALSE - ложь) или 1 (TRUE - истина). Если все условия истиные то скрипт выполниться, если одно из них ложное, то нет.

О боже....в принципе понятно, фиг с ним. Что такое "bFollow"?

Добавлено (2010/Фев/03, 17:40)
---------------------------------------------

Quote
Т.е. при обращении к скрипту #Follow#2 ( GetObject( 2013 ) ) переменная this приймет значение GetObject( 2013 ) - т.е. детеныша ящера.

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


...If I only had a heart © Sonata Arctica
 
ВрылДата: Среда, 2010.02.03, 17:43 | Сообщение # 234
Врыл
Ранг 7
Группа: Модераторы
Сообщений: 2229
Репутация: 29
Статус: Временно отсутствует
Quote (Droy)
О боже....в принципе понятно, фиг с ним. Что такое "bFollow"?

bFollow - я сам придумал как имя глобальной переменной :) b - потомучто переменная Boolean (т.е. должна иметь значение только 0 или 1 Так я привык их называть :) )


- Папа, а правда, что от форумов тупеют?
- ГыыЫ... сынок...ЛоЛ...
 
DroyДата: Среда, 2010.02.03, 17:44 | Сообщение # 235
Droy
Ранг 3
Группа: Пользователи
Сообщений: 182
Репутация: 0
Статус: Временно отсутствует
где Modcreator раздобыть? =)

Добавлено (2010/Фев/03, 17:44)
---------------------------------------------
Я знаю что такое Bool =) но что значит эта переменная? что туда писать?


...If I only had a heart © Sonata Arctica
 
ВрылДата: Среда, 2010.02.03, 17:49 | Сообщение # 236
Врыл
Ранг 7
Группа: Модераторы
Сообщений: 2229
Репутация: 29
Статус: Временно отсутствует
Quote (Droy)
А как она обратиться если ящера нема еще то, он еще не подгрузился, а скрипт уже обьявлен.

Так я об этом уже говорил. Запускаешь скрипт ПОСЛЕ того как новый моб подгружен. То что скритп объявлен это ничего не значит - это всего лиш инструкция(сценарий), которая начнет выполнятся только тогда, когда к ней обратятся.
Quote (Droy)
где Modcreator раздобыть? =)

Я не помню где я брал, у меня гдето лежит на харде... а зачем он тебе?


- Папа, а правда, что от форумов тупеют?
- ГыыЫ... сынок...ЛоЛ...
 
DroyДата: Среда, 2010.02.03, 18:11 | Сообщение # 237
Droy
Ранг 3
Группа: Пользователи
Сообщений: 182
Репутация: 0
Статус: Временно отсутствует
Quote (Врыл)
Я не помню где я брал, у меня гдето лежит на харде... а зачем он тебе?

Надо яйцо сделать для квеста.


...If I only had a heart © Sonata Arctica
 
ВрылДата: Среда, 2010.02.03, 18:31 | Сообщение # 238
Врыл
Ранг 7
Группа: Модераторы
Сообщений: 2229
Репутация: 29
Статус: Временно отсутствует
Так используй EIEdit - это намного проще.

- Папа, а правда, что от форумов тупеют?
- ГыыЫ... сынок...ЛоЛ...
 
МонгольчикДата: Среда, 2010.02.03, 18:43 | Сообщение # 239
Монгольчик
Отец основатель
Группа: Администраторы
Сообщений: 5076
Репутация: 25
Статус: Временно отсутствует
Quote (Танк)
Все кинжал в своем аттестационном моде я переделал, выкладываю. Все-же жду: зачет, незачет?

Зачет, буду тебя на текстурщика учить, а в последствии на моделлера)
Теперь для тебя я наставник, сенсей, бог, как угодно))) шучу))
Желаешь вступить в группу модмейкеров ?



 
DroyДата: Среда, 2010.02.03, 18:54 | Сообщение # 240
Droy
Ранг 3
Группа: Пользователи
Сообщений: 182
Репутация: 0
Статус: Временно отсутствует
Quote (Врыл)
Так используй EIEdit - это намного проще.

Ок, попробую. Посмотрел твой квест на Пропавшего Мастера...fRand это типа выбросить чистую случайность да? Повезет не повезет?

Добавлено (2010/Фев/03, 18:54)
---------------------------------------------
ConsoleString ( "#Follow#1 OK" ) это надо писать в скрипте или уже в Ворлд?


...If I only had a heart © Sonata Arctica
 
Поиск:
Copyright by Honest Group © 2024. All rights reserved. Используются технологии uCoz Created & Supported by Ash