IPB

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Скрипт "Dragon bones", ... нужен взгляд со стороны
Bes
сообщение 25 Aug 2007, 23:22 (Сообщение отредактировал Bes - 09 Sep 2007, 23:35)
Сообщение #1

замолкаю.
Сообщений: 2 340
Спасибо сказали: 1010 раз




Скрипт "Dragon bones" (script88, Опция 88)
или **(wog-файл)

Опиание:
  • Поддержка: WoG3.58f, Феникс-Мод.
    ТЕ пока не включён в поддержку, т.к. используемые в скрипте переменные (z,v,w,flags,FU) могут пересекаться...
  • Используемые переменные:
    1. v48, v49, v69, v72, v917-v919
    2. z177-z183
    3. w95, w96
    4. флаги: 29-31, 38, 39
    5. ф-ции FU48, FU149, FU177-FU179
  • Диалоги и комментарии в скрипте полностью на русском языке!
  • Скрипт был написан для новых объектов "Скелет Дракона" и "Кладбище Драконов" (соответственно, avxskds1 и avxskds3)
    На картинке видно, какие размеры имеют эти объекты в сравнении со Скелетом/Трупом (стандартным объектом Героев III)
    Имеется также ещё один Скелет Дракона (декоративный объект), для которого прописана лишь выводимая подсказка.

  • "Кладбище Драконов" - это своего рода банк существ, где в качестве стражников выступают Костяные и Призрачные Драконы. В случае преодоления "испытания" появится хранитель этого места, Кровавый Дракон по имени Талгор, который "поведает" игроку о секрете силы рода Драконов, а также предложит вам взять его в своё войско...
    Отличительной особенностью данного объекта от остальных банков существ является то, что вход на кладбище не так то просто "найти", т.к. он всё время "покрыт" мраком wink.gif

    "Скелет Дракона" - этот объект был задуман по аналогии с человеческим Скелетом/Трупом... Т.е. герой, полазив среди бренных останков умершего Дракона, сможет с вероятностью 35% найти неплохо сохранившуюся часть тела Дракона, будь то зубы, или глаз, или чашуя, или кожа с крыльев, или кости. Находку герой отдаёт своему мастеру, который уже на следующий день может либо принести хозяину сделанный из этого останка тела дракона артефакт, либо предложит выручить от находки неплохую сумму золота на рынке...
  • Обсуждение баланса:
    Некоторые параметры скрипта завязаны на выбранную игроком сложность:
    1. Лёгкая - Стража кладбища: 4 Костяных и 2 Призрачных Драконов; Сумма выручки на рынке: 33% от стоимости соответсвующего арта (только для 39 и 44 арта)
      Для ИИ: 5 Призрачных Драконов; Мастер всегда делает арт
    2. Нормальная и Сложная - Стража кладбища: 4 Костяных и 3 Призрачных Драконов; Сумма выручки на рынке: 42% от стоимости соответсвующего арта (только для 39 и 44 арта)
      Для ИИ: 6 Призрачных Драконов; Мастер всегда делает арт
    3. Экспертная и Невозможная - Стража кладбища: 6 Костяных и 2 Призрачных Драконов; Сумма выручки на рынке: 50% от стоимости соответсвующего арта (только для 39 и 44 арта)
      Для ИИ: 7 Призрачных Драконов; Мастер всегда делает арт
    Если у кого-то есть замечания по выбранным мною величинам, высказывайтесь... smile.gif

    Особенности скрипта:
    Скрипт включает и действия для ИИ, причём комп всегда вступает в бой со стражниками кладбища, всегда присоединяет хранителя (Кровавого Дракона), а также всегда получает от мастера сделанный из останка дракона артефакт, причём в тот же день (а человек получает на след. день!)

    Т.к. новые объекты относятся к типу №22, то герой не становится на "точку входа" объекта, он всё время посещает объект с расстояния (как для скелета/трупа)
    Эта особенность наложила свой отпечаток на скрипт, поэтому я для всех объектов использую перезапись координат объекта: !!VRv917:Cv998/v999/v1000;
    Как показала практика, иногда содержимое v998-v1000 изменяется, а это влияет на общую настройку объектов. Вот и пришлось взять др. три переменные для хранения координат объекта

    Если кто-то из хорошо знающих ЕРМ людей увидит избыточность в некоторых местах скрипта, или найдёт др. более простое решение какого-то действия, то пишите... smile.gif

    P.S.властям: извините, что создал отдельную тему, просто пришлось бы кучу вопросов обсуждать и обговаривать в разных местах, а так всё в одной ветке... и удобно, и места меньше в итоге! sorry.gif
    Как всё решится, её можно будет потом удалить, а посты перекинуть в "Авторские скрипты" и "Флэйм"


    "Графическое" отступление:
    1 и 2 объекты были взяты из игры StarCraft (да не ополчатся на меня "Blizzard" biggrin.gif)
    3 объект был взят из игры BFMEII (соответственно, простите меня "EA Games" biggrin.gif)


    Из-за цветовой гаммы объектов, где преимущественно преобладают белые оттенки, пришлось ввести ограничения по ландшафту:
    - для 1 объекта: запрет на Снег
    - для 2 и 3 объектов: запрет на Песок, Снег, Подземелье

    Если кто из художников сможет это как-то разрулить, я буду только рад smile.gif


    --------------------
    Go to the top of the pageAdd Nick
     
    +Quote Post
    Гость_Berserker_*
    сообщение 26 Aug 2007, 19:30
    Сообщение #2







    Молодцы, Бес. Только не хватает тестовой карты, а то так сразу не потестишь...
    Go to the top of the pageAdd Nick
     
    +Quote Post
    Docent Picolan
    сообщение 26 Aug 2007, 21:07
    Сообщение #3

       
    Сообщений: 29 680
    Спасибо сказали: 18143 раза




    интересно. и объекты красивые.
    Go to the top of the pageAdd Nick
     
    +Quote Post
    Bes
    сообщение 27 Aug 2007, 02:34
    Сообщение #4

    замолкаю.
    Сообщений: 2 340
    Спасибо сказали: 1010 раз




    Блин, хоть бы кто придрался к чему-либо biggrin.gif
    (извините, что показываю невежливость sorry.gif )


    У меня есть своя тестовая карта (даже две: для ИИ и Человека), но смысла нет их выкладывать... просто поставьте скрипт, влепите объекты на любую карту и lupa.gif (иньдьжёй)

    Про скрипт:
    Есть один серьёзный недостаток в скрипте ( sorry.gif ), признаться честно... Если покапаться в скелете и найти полезную "находку", а на следующий день ни сделать ни одного хода этим героем, то мастер так и не появиться, а этот герой больше никогда не найдёт подобной вещи в др. скелете дракона dry.gif banghead.gif
    Я всё надеелся, что никто такого делать не будет, но всё же, из-за своей придирчивости ко всему (даже к собственным делам) я не мог долго об этом умалчивать... Но самое страшное - я не знаю как исправить это sad.gif
    Вся загвоздка лежит здесь:
    Цитата(см. в самом низу скрипта)
    !?HM-1&88;
    !!IF:W-1;
    !!FU&w95<>1:E;
    !!VRy3:Sc; !!VRy3:-w96;
    !!FU|w96=0/y3<>1:E;
    ...
    Может кто подскажет, как выкрутиться, и доработать условие? smile.gif

    4 Berserker
    Кстати, я тут чуть добавил в скрипт маленьких финтиклюшек (не заметных на первый взгляд), так что теперь к списку используемых переменных добавились ещё v9700-v9702 (назначение как в Феникс-Моде © Berserker).. Надеюсь, Berserker, их назначение не изменится в след. версии вашего мода (щас они задействованы для !!CM2)
    Berserker, может возмёте эти объекты для Мода? ;-)


    --------------------
    Go to the top of the pageAdd Nick
     
    +Quote Post
    Deo
    сообщение 27 Aug 2007, 05:48
    Сообщение #5

    Immortal
    Сообщений: 483
    Спасибо сказали: 5 раз




    Сделал бы чтобы рандомно некоторые объекты на карте заменялись на скелет дракона, так качать в ломы, самому кидать на карты, а потом играть...(((


    --------------------
    У нас тоже есть хорошие люди, но они либо бедные, либо пьяные с утра.
    Go to the top of the pageAdd Nick
     
    +Quote Post
    lotus13
    сообщение 27 Aug 2007, 10:56
    Сообщение #6

    Power Member
    Сообщений: 167
    Спасибо сказали: 1 раз




    глупий вопрос....
    но как его ставить?
    кусок кода копировать в целий файл или вог сам пропишет(я ето имел ввиду.)


    --------------------
    Если хочеш быть счасливым - будь им.
    Go to the top of the pageAdd Nick
     
    +Quote Post
    Aleee
    сообщение 27 Aug 2007, 11:13
    Сообщение #7

    Immortal
    Сообщений: 2 149
    Спасибо сказали: 697 раз




    Кидаешь в Data/s. Затем включаешь в Вог-настройках.
    Go to the top of the pageAdd Nick
     
    +Quote Post
    Bes
    сообщение 27 Aug 2007, 12:40 (Сообщение отредактировал Bes - 27 Aug 2007, 13:04)
    Сообщение #8

    замолкаю.
    Сообщений: 2 340
    Спасибо сказали: 1010 раз




    Прошу прощения у всех, кто у же скачал архив и не смог найти в редакторе 3-й объект sorry.gif (я забыл исправить имя в объектном текстовике)
    Всё исправил, ссылка таже... (обновился и скрипт)
    Объекты в редакторе находятся в закладках Песчаный, Каменистый и Все ландшафты

    Deo, если б я знал как это делать dry.gif

    Как ставить...
    • копируете скриптовые файлы (*.erm, *.ers) в папку "Datat\s"
      А сам скрипт активируете в "WoG Options" (нижняя закладка)
    • wog-файл копируете в папку "Update", затем запускаете H3wUpd.ехе
    • После этого переходите в папку Data и открываете файл ZEOBJTS.TXT (если его там нет, вытаскиваете из h3bitmap.lod)
      Копируете в самый низ списка три строчки из файла "кусокZEOBJTS.txt", а в самом верху прибавляете к числу цифру 3


    --------------------
    Go to the top of the pageAdd Nick
     
    +Quote Post
    gamecreator
    сообщение 27 Aug 2007, 12:51
    Сообщение #9

    Яблочный произвол!
    Сообщений: 11 080
    Спасибо сказали: 3988 раз




    Цитата(Bes @ 27 Aug 2007, 02:34)
    Может кто подскажет, как выкрутиться, и доработать условие?

    а что задумывалось?
    Go to the top of the pageAdd Nick
     
    +Quote Post
    Bes
    сообщение 27 Aug 2007, 13:29
    Сообщение #10

    замолкаю.
    Сообщений: 2 340
    Спасибо сказали: 1010 раз




    Короче, если герой что-то находит,то в...
    w95 записывается 1, т.е. находка была
    w96 записывается день, когда была находка
    w89 записывается тип находки (т.е. номер арта, который мастер сможет сделать)

    Фишка в том, что арт герой получает только на след. день

    Т.к. это геройские переменные, я не смогу ими оперировать пользуясь таймерами (по крайней мере я не знаю как)
    Поэтому я решил использовать !?HM-1
    Но этот триггер имеет один характерный для него недостаток - он срабатывает перед очередным ходом героя. Но если герой не будет двигаться, то моё условие (|w96=0/y3<>1) летит к чертям dry.gif

    Распишу действия по пунктам
    !!FU&w95<>1:E; - если находки небыло, то ничего не делать

    !!VRy3:Sc; - если была, то в y3 записываем текущий день

    !!VRy3:-w96; - затем вычитаем из полученного значения день находки

    !!FU|w96=0/y3<>1:E; дальше смотрим, если w96=0 (т.е. исключаем возникновение ошибки в случае находки в первый же день, когда в w96 запишется 1); или если разность текущего дня и дня находки не равняется 1 (y1=y1-w96=1 показыввает наступление след. дня), то ничего не делать.
    Пока писал пояснения, понял что w96=0 в принципе не делает погоды, но и не мешает. Оно нужно, если бы не было !!FU&w95<>1:E;
    , я просто забыл его убрать...

    В общем, спасибо gamecreator, что своим вопросом заставили меня пораскинуть мозгами... пошёл проверять своё проззрение на практике biggrin.gif


    --------------------
    Go to the top of the pageAdd Nick
     
    +Quote Post
    gamecreator
    сообщение 27 Aug 2007, 14:40
    Сообщение #11

    Яблочный произвол!
    Сообщений: 11 080
    Спасибо сказали: 3988 раз




    Цитата(Bes @ 27 Aug 2007, 13:29)
    я не смогу ими оперировать пользуясь таймерами (по крайней мере я не знаю как)

    запомни номер героя и ставь таймер на след. день, а в таймере IF:W
    Go to the top of the pageAdd Nick
     
    +Quote Post
    Deo
    сообщение 27 Aug 2007, 15:00
    Сообщение #12

    Immortal
    Сообщений: 483
    Спасибо сказали: 5 раз




    Бес, а зачем w95 и w96 использовать? Если день находки не равняется 0 ==>> находка была и не нужно w95 использовать.


    --------------------
    У нас тоже есть хорошие люди, но они либо бедные, либо пьяные с утра.
    Go to the top of the pageAdd Nick
     
    +Quote Post
    lotus13
    сообщение 27 Aug 2007, 16:37
    Сообщение #13

    Power Member
    Сообщений: 167
    Спасибо сказали: 1 раз




    После этого переходите в папку Data и открываете файл ZEOBJTS.TXT (если его там нет, вытаскиваете из h3bitmap.lod)

    может я сильно по нубовски спрошу.
    а нельзя ли чеби ето автоматом делалось?
    никада не рился в "прошивках" героев. все *def ипрочее...
    просто сие для меня темний лес...


    --------------------
    Если хочеш быть счасливым - будь им.
    Go to the top of the pageAdd Nick
     
    +Quote Post
    gamecreator
    сообщение 27 Aug 2007, 17:22 (Сообщение отредактировал gamecreator - 27 Aug 2007, 17:22)
    Сообщение #14

    Яблочный произвол!
    Сообщений: 11 080
    Спасибо сказали: 3988 раз




    запакуй деф, мск, мсг и строку и zeobjts.txt в obj-файл и установи его прогой simple lod
    Go to the top of the pageAdd Nick
     
    +Quote Post
    Bes
    сообщение 27 Aug 2007, 18:30
    Сообщение #15

    замолкаю.
    Сообщений: 2 340
    Спасибо сказали: 1010 раз




    Всё, описанный ранее баг был устранён smile.gif
    (Скрипт обновил, объект №3 тоже несколько видоизменился)

    2 gamecreator
    Не, лишние таймеры заводить, запоминать номер героя... ну их, я оставлю !?HM-1, благо всё теперь работает smile.gif

    2 Deo
    yes.gif Я уже понял свою ошибку... А w95 в др. местах тоже нужна.

    2 lotus13
    сорри sorry.gifэто самый простой вариант


    --------------------
    Go to the top of the pageAdd Nick
     
    +Quote Post
    lotus13
    сообщение 28 Aug 2007, 10:10
    Сообщение #16

    Power Member
    Сообщений: 167
    Спасибо сказали: 1 раз




    креатор...
    пасибки.
    я так понял ти поиздевался, да?
    gigi.gif)))
    попитался на работе на ТЕ поставить...(на работе токо ета версия)
    извлек resedit даний файл....
    в ворде дописал все 3 строки(блокнотом не открилось)
    .
    но назад не запаковивалось -я опции едд не увидел. оставил файл просто в каталоге дата.
    запустил бил глюк- в меню вог опции показовало токо табличку приветствия и тотальний зависон.
    дома еще попробую.
    ето из-за те или из-за того что файл не бил залит в лод файл?
    + симпллод мгновено откривался и сразу закривался - дос окно в винде, аля вирус...-я поетому resedit использовал...


    --------------------
    Если хочеш быть счасливым - будь им.
    Go to the top of the pageAdd Nick
     
    +Quote Post
    lotus13
    сообщение 28 Aug 2007, 10:57
    Сообщение #17

    Power Member
    Сообщений: 167
    Спасибо сказали: 1 раз




    получилось.....


    Занимается добавлением файлов в .lod, совпадающий с ним по имени.
    Скопируете в Data под именем "h3bitmap.exe" и "h3sprite.exe", вытащите ярлыки на рабочий стол и таскайте на них файлы для добавления.
    (Так же, можно добавлять @ перед именем файла, как это делалось с оригинальными h3sprite.exe и h3bitmap.exe, но не обязательно)

    - Понимает .bmp вместо .pcx. Т.е. чтобы заменить aaa.pcx в .lod'е, перетащите aaa.bmp на ярлык. (здесь совместимости с оригинальными h3sprite.exe и h3bitmap.exe нет, т.к. .pcx не поддерживается)
    - Понимает .obj'ы от ModHomm'а.


    нашел описаловку.....
    запаковал.
    но вот что странно....
    прикаждом распаковивании сума вверху разная......
    то1415
    то 1567
    то 1557
    .....
    + имена каждих обьектов начинаються с большой букви- а у тебя в твоем куске с маленькой....
    .
    + 2-й раз ресорседом витащил файл -у меня в каталоге дата уже 2!!! одинакових файла лежит.


    .
    бля.
    опять увидел.
    есть
    Zaobjts.txt
    Zeobjts.txt

    гы.
    и там и там прописал.
    пришлось менять......
    .
    раздуплился.
    уже все пашеть....
    gigi.gif0
    но вопрос в силе если в дате извлечений файл есть -паковать его нада?


    --------------------
    Если хочеш быть счасливым - будь им.
    Go to the top of the pageAdd Nick
     
    +Quote Post
    Bes
    сообщение 28 Aug 2007, 13:30
    Сообщение #18

    замолкаю.
    Сообщений: 2 340
    Спасибо сказали: 1010 раз




    2 lotus13
    Нет, паковать его нада, имхо, он будет первостепенней yes.gif
    P.S.: у вас что ни пост, то полная история ошибок, хоть и с хэпи_эндом biggrin.gif
    Не надо излагать свои действия столь детально, а то модераторы начнут нервничать unsure.gif


    =========================

    1) Хотел, по совету Deo, реализовать замену в картах при загрузке определённого объекта кладбищем - хрен там, если использовать !!UN:I появляется не указанный объект (тип=22/подтип=3), а кружок с надписью "MON" (а это тип=71/подтип=0) dry.gif
    А др. способа случайной замены объектов, как при WoG-ицикациии, я не знаю. sad.gif
    (а затирать в h3sprite.lod какой-то объект WoG своим я не стану, если только в каком-нибудь моде wink.gif)

    2)
    Цитата(балBes)
    Цитата(gamecreator)
    запомни номер героя и ставь таймер на след. день, а в таймере IF:W
    Не, лишние таймеры заводить, запоминать номер героя... ну их, я оставлю !?HM-1
    К тому же, что мне делать если в один день два разных героя найдут что-то? Ведь придётся уже использовать 2 переменные для номеров... надо предусмотреть все возможные повороты событий...
    И HM-1 довольно неплохо с этим справляется, нежели таймер, имхо smile.gif


    --------------------
    Go to the top of the pageAdd Nick
     
    +Quote Post
    gamecreator
    сообщение 28 Aug 2007, 16:46
    Сообщение #19

    Яблочный произвол!
    Сообщений: 11 080
    Спасибо сказали: 3988 раз




    Цитата(Bes @ 28 Aug 2007, 13:30)
    Нет, паковать его нада, имхо, он будет первостепенней yes.gif

    сначала игра проверяет на наличие файла в папке дата. если он там, то игра пакует его в лод, а старую версию помещает в папку бекап. потом используется файл из лода.
    Go to the top of the pageAdd Nick
     
    +Quote Post
    DracoLich
    сообщение 28 Aug 2007, 17:26
    Сообщение #20

    Banished
    Сообщений: 1 782
    Спасибо сказали: 116 раз




    Цитата
    если использовать !!UN:I появляется не указанный объект (тип=22/подтип=3), а кружок с надписью "MON"

    Наверное, подтип не зарегестрирован в игре...


    --------------------
    Go to the top of the pageAdd Nick
     
    +Quote Post

    3 страниц V   1 2 3 >
    Reply to this topicStart new topic
    1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
    Пользователей: 0

     



    Текстовая версия Сейчас: 20 June 2025 - 13:17
    Copyright by Алексей Крючков
    Strategy Gamez by GrayMage
    Programming by Degtyarev Dmitry
      Яндекс.Метрика