Таверна | Столик Картостроителей
Автор | Сообщение | |
---|---|---|
Сэр E r i c
Сообщения: 12 |
Еще такой вопрос, Уважаемые Сэры.
Можно ли с помощью !!UN:C прочитать/записать текстовые параметры в z-переменную? |
|
Сэр E r i c
Сообщения: 12 |
Благодарю Справка есть, перерыл всю.
Прочитал... Много думал... вроде смысл понял, буду изучать дальше)) Рисую кампанию, задача была изменить названия артефактов не влезая в текстовые ресурсы. Возможно будет целесообразнее все таки влезть)) |
|
Сэр E r i c
Сообщения: 12 |
Да, с артефактами я протупил)) плохо справку читал. Уже разобрался, что велосипед изобретать заново нет необходимости
|
|
Сэр pHOMMM
Сообщения: 18 |
Замечательно!!!
И ещё , как говорится, feel free, задавай мне вопросы в аське, 421*049*471 Изменено 10.11.2010 17:32 модератором Gorbik |
|
Сэр wiskio
Сообщения: 12 |
Всем привет, я тут новенький, и в скриптах почти не шарю, но хотел бы попросить насчёт такого скрипта,
нужно чтобы когда герой посещал монолит выхода(8/5/0) с секирой кентавра, у него задавался вопрос с двумя вариантами ответов: Вы хотите использовать этот артефакт?Если нажать да, то герой телепортируется в другое место (15/23/0), а если нажать нет, то всё осталось бы без изменений. Буду весьма благодарен! |
|
Сэр Kirinyale
HoMM V: Рыцарь |
Скрипт (из расчёта на WoG 3.58f):
ZVSE !?OB8/5/0&1000; !!HE-1:A2/7/?y-1/d; !!FU&y-1=0:E; !!IF:Q1/8/7/2^Вы хотите использовать этот артефакт?^; !!HE-1&1:P15/23/0; Пояснения: !?OB8/5/0&1000; - триггер, срабатывающий при посещении объекта в точке 8/5/0 любым героем, за которого играет человек (проверка флага 1000) !!HE-1:A2/7/?y-1/d; - HE:A2 - подсчёт количества артефактов заданного типа у героя; -1 - текущий герой (тот, который активировал триггер); 7 - секира кентавра; ?y-1 - чтение общего количества таких артефактов; d - "оставить как есть" - здесь могло быть чтение количества только надетых артефактов, но оно нас сейчас не интересует. !!FU&y-1=0:E; - FU:E - команда мгновенного выхода из текущего триггера; в данном случае проверяем количество секир кентавра у героя (оно только что считалось в локальную переменную триггера y-1), если 0 - не выполняем дальнейшие команды. !!IF:Q1/8/7/2^Вы хотите использовать этот артефакт?^; - задаём вопрос игроку, показывая вместе с текстом картинку секиры кентавра; 1 - номер флага, в который будет записан ответ; 8 - тип картинки (артефакт); 7 - тип артефакта (секира кентавра); 2 - тип сообщения (вопрос "да"/"нет"). !!HE-1&1:P15/23/0; - если флаг 1 установлен (т.е. на вопрос был дан ответ "да"), телепортируем текущего героя в точку 15/23/0. Примечание: Этот скрипт не выключит стандартное сообщение, вылазящее при посещении монолита выхода. Если нужно это сделать, один из самых простых способов - изменение (в инструкции или в триггере !?PI) типа/подтипа объекта на 63/1 (это первый из воговских "пустых" объектов, ничего не делающих при выключенных вогификациях),.Правда, я не уверен, как после этого будет вести себя монолит входа, связанный с данным выходом (надо проверять). Ещё один вариант - команда OB:S (отключение объекта), но я давненько ей не пользовался, а потому не помню, не отключает ли она, случайно, ещё и скриптовые триггеры, повешенные на объект. :) |
|
Сэр Lord Fador
Сообщения: 6 |
Привет всем! Моя история на счёт скриптов в WoG довольно длинна и я её не буду рассказывать, в общем вы можете мне помочь. Мне нужно, чтобы когда я встал на точку 11/4/0, то можно было бы там нанять один раз либо 1 одного лазурного дракона, либо 3 ржавых. Заранее спасибо большое!
|
|
Сэр Kirinyale
HoMM V: Рыцарь |
Поставьте в этой точке событие (галочку "убирать после первого посещения" снимите, если хотите, чтобы игрок мог в первый раз отказаться, но позже передумать и вернуться).
Далее скрипт: Это простейший, т.е. не идеальный вариант скрипта. Для красоты и удобства его можно переписать на использование красивого диалога с тремя вариантами выбора (см. команды IF:D и IF:E, примеров и в хелпе, и здесь уже наверняка найдётся достаточно) вместо обычных вопросов "да/нет". Это несколько сложнее и требует использования дополнительных переменных (в основном строковых). Также можно поменять цифры используемого золота (я их вписывал с потолка) и добавить стоимость в ресурсах. Если в событии будет собственный текст и/или другие эффекты, заданные в редакторе, !!LE следует поменять на !$LE, чтобы скрипт выполнялся уже после них. |
|
Сэр Xromes
HoMM V: Безземельный |
Прошу помочь советом.
Есть две проблемы: 1) На карте есть тюрьма, в которой сидит герой. Я хочу сделать так, чтобы освободить героя мог, только игрок под управлением компьютера. 2) На карте есть ещё одна тюрьма. С этой тюрьмой я хочу сделать то же самое, что с первой, но героя могут освободить только некоторые компы. То есть здесь уже должно быть 2 проверки: игрок находится под управлением компа и принадлежит одному из указанных цветов. |
Особый статус: |
Сэр Kirinyale
HoMM V: Рыцарь |
1)
Вместо 10/4/0 - координаты тюрьмы. 2) Можно примерно так же, только проверка флага 1000 (ходит человек) переносится куда-нибудь в другое место, а рядом со строчкой !!FU&y-1<>62:E; (выход, если не тюрьма) добавляется ещё одна похожая, проверяющая цвет текущего игрока (он к тому моменту уже есть в переменной y-2). Ну и не выдавать текстовое сообщение, если ходит комп. Однако в этом случае есть (точнее, я подозреваю, что есть) вероятность "тупика" у AI неправильного цвета, который застрянет, тыкаясь в одну и ту же тюрьму. Чтобы это решить - советую воспользоваться идеей, которую я уже успешно реализовал в двух своих картах: делать некоторые "ключевые" клетки (например, подход к тюрьме; с непосредственно клеткой входа лучше не баловаться, т.к. это может оказаться багоопаснее) непроходимыми во время хода определённого игрока, и снова проходимыми, когда ходят другие. Скрипты можно посмотреть в A Dragon In My Heart или Karma Crossroads, там они находятся ближе к концу и посвящаются наглым компам. :) Только таймер, которыми они пользуются, не упустить - он там общий, инициализируется где-то в других скриптах. |
|
Сэр Treiser
Сообщения: 3 |
Здраствуйте..такая проблема...карта готова, неоднократно проверял, но вот нашел небольшой баг, за один из финалов сценария.. главный герой после того как посещает замок по сюжету появляется текст и после начинается битва, если одержишь победу то сценарий пройден, если проиграешь эту битву, то сценарий тоже остается пройденным((( никак не могу изменить..получается нет смысла выигрывать последнее сражение..карта РПГ и в последнем сражении в одной из концовок своих перса 2, дак вот хотелось бы попросить помощи в объяснении, как сделать так, что если убьют главного персонажа во время битвы, за кого проходишь весь основной сюжет, чтоб битва считалась проигранной...а то получается полный абсурд, главный герой погиб, остался помощник, но все награды отходят главному герою...
заранее спасибо за помощь... |
|
Сэр Kirinyale
HoMM V: Рыцарь |
Попробуйте так:
1) Перед запуском битвы, в каком-нибудь триггере (например, в !?OB замка) устанавливайте какой-нибудь уникальный флаг (для наглядности назовём его 555). 2) Добавьте триггер на окончание этой битвы: !?BA1&555; 3) В этом триггере проверьте владельца героя: !!HExx:O?y-1; (xx - номер вашего героя) 4) Если владелец героя отрицательный, завершите игру поражением (хелпа прямо сейчас под рукой нет, поэтому букву команды наизусть не помню, но поищите в !!UN или !!OW). Задача упрощается ещё сильнее, если вы битву запускаете сами прямо из скрипта (командой !!HE:T). В этом случае можно прямо в той же строчке следующей командой проверить владельца героя и т.д. (команда HE:T передаёт выполнение дальше по скрипту только когда бой закончился). Правда, в этом случае вам, скорее всего, всё равно придётся пользоваться флагами и триггером !?BA0 для настройки врагов в бою (HE:T позволяет указать только один тип монстров). |
|
Сэр Lord Fador
Сообщения: 6 |
Сэр Kirinyale, 16.01.2011 15:48 |
|
Сэр wiskio
Сообщения: 12 |
И ещё кое-что, я бы хотел что бы после того как герой телепортируется, у него пропадал это артефакт-Секира Кентавра.
Кстати, скрипт в целом сработал, но почему-то при посещении монолита выхода у меня выскакивает ошибка: ERM syntax Error File: erm Line: 2411 Reason: "GetNum"-wrong variable index(1...[1000]). а потом следующее: ERM syntax Error File: erm Line: 188 Reason: "FU"-wrong command. а потом два раза подряд такое: ERM command has a wrong syntax.Skipped. =0:E; Почему они выскакивают, и можно ли от них избавиться?! |
|
Сэр Kirinyale
HoMM V: Рыцарь |
Ошибка выскакивает, потому что где-то указан неправильный номер переменной (как там и написано). Судя по последнему сообщению, это указывает на следующую строчку:
!!FU&y-1=0:E; Если вы оставили её без изменений - есть подозрение, что у вас не последняя версия WoG (локальные переменные, т.е. y с отрицательным номером, появились только в 3.58). Если дело в этом - скачайте последнюю версию из "Сокровищницы" на моём сайте (ссылка в анкете). Либо поменяйте (всюду, а не только в этой строчке) на какую-нибудь v-переменную (например, v200), которая больше нигде не используется. Желательно не из числа первых десяти (они могут меняться в неожиданных местах). |
|
Сэр wiskio
Сообщения: 12 |
Большое спасибо, хотя и скрипт почти работает.Я вместо "y-1" подставил "v200", только вот выдаёт ошибку: "!!FU"-wrong command.И выдаёт следующее сообщение с ошибкой: E;.
И ещё бы я хотел узнать, как сделать так, чтобы после телепортации(т.е. если жмёшь "да", пропадал этот артефакт(Секира Кентавра). Кстати, у меня версия 3.5! |
|
Сэр Kirinyale
HoMM V: Рыцарь |
Да, FU:E тоже вроде бы добавилась только в 3.58. Если нет возможности обновиться - придётся эту строчку выкинуть, а все следующие за ней (целых две) обвешать проверками одних и тех же условий, противоположных условиям на FU:E. Т.е. так:
!!IF&v200>0:Q1/8/7/2^Вы хотите использовать этот артефакт?^; !!HE-1&v200>0/1:P15/23/0; Чтобы убрать секиру, добавьте ещё одну строчку: !!HE-1&v200>0/1:A3/7/1/0; Версия 3.5 - это, конечно, реликт. Я бы на вашем месте всё-таки при первой же возможности поставил что-нибудь посвежее. Т.к. я даже не представляю, что ещё там может не сработать. Сам когда-то давно начинал с 3.54... |
|
Сэр wiskio
Сообщения: 12 |
А вот как например сделать так, чтобы во время посещений монолита, но когда нету артефакта, выдавалось одно и то же какое-то сообщение, а после телепортации, когда пропадёт этот артефакт,(Секира Кентавра) при посещении монолита, выдавалось бы всё время другое какое-нибудь сообщение.
P.S.Скрипт получился, только я его хочу чуть улучшить. |
|
Сэр Treiser
Сообщения: 3 |
Здраствуйте..вот возникла такая проблема...помню что уже задавал вопрос на похожую тему, но всё же..я всё с тем нападением на замок...времени не было исправлять. учёба. сейчас сел проверить карту и вот опять всё тот же баг((( Герой когда посещает замок, выскакивает текст по сюжету и далее битва..расскажу всё подробно, потому что кое-что уже изменил)) теперь по сценарию герой один,так как повторюсь карта РПГ и посчитал, что второй герой ни к чему, только мешает)) дак вот армия состоит из 1 оборотня и 1 призрака( довольно прокаченых, но это не важно) и смысл победить 3 паладинов (3 чемпиона) дак вот всё та же проблема...пробовал сделать как вы говорили, но не вышло...как бы не пытался всё равно выходит так что при нападении, не важен исход битвы...всё равно сценарий считается пройденным((( Прошу вас помогите с полным описанием этого пункта..хочу отправить карту уже давно, но не хочу чтоб были лаги((( заранее спасибо..
В простом варианте (как было) всё выглядит так, как пытался сделать не пишу, потому что ничего не выходит((( !?OB19/8/1; !!IF&v2=1:M^текст^; !!HE-1&v2=1:T19/8/1/11/3; !!HE-1&v2=1:P19/10/1; !!TR19/8/1&v2=1:P0; !!IF&v2=1:Q1/21/194/21/159/1^текст^; !!UN&v2=1:Q1; П.С. ещё хотел спросить, а возможно ли такое, чтоб при убийстве одного из твоих существ ВО ВРЕМЯ БИТВЫ( в данном случае ОБОРОТЕНЬ, т.к. гланый герой) игра вылетала, ну или считалось поражение |
|
Сэр wiskio
Сообщения: 12 |
Насчёт скрипта не знаю, но по-моему сделать сценарий выигранным при захвате замка можно и без скрипта, если залезть в настройки карты, потом выбрать "особые условия победы", а потом выбрать "захватить определённый город", ну, и, следовательно, указать тот замок, который нужно захватить.Там будет строчка город, и вам нужно будет лишь указать из перечисленных всех замков нужный для захвата.
Насчёт убийства существ и проигрыша такого не знаю, к тому же я пишу карты для WoG 3.5, но как картостроитель я бы сделал по-другому: 1.Сделал бы карту, и сюжет в основном связанным с этим оборотнем и героем. 2.Поставил бы поражение при потере данного нам героя. И в целом, по-моему, получается, что не надо ничего изобретать, всё не так уж сложно.) |
|
Сэр Kirinyale
HoMM V: Рыцарь |
Сэр wiskio, 14.03.2011 16:26Ну, например, сразу после убирания секиры и телепортации установить какой-нибудь флаг (например, 333) в единицу: !!IF&v200>0/1:V333/1; А перед строчкой с вопросом (но после проверки количества секир у героя добавить что-нибудь подобное: !!IF&v200=0/-333:M^Нет секиры.^; !!IF&v200=0/333:M^Секира уже использована.^; А вообще, рекомендую всё-таки почитать на досуге документацию (можно даже последнюю - самые основные вещи со времён 3.5 вряд ли сильно изменились) хотя бы на тему переменных (всё, что касается ресивера !!VR) и флагов (команда IF:V + общий синтаксис проверок флагов), т.к. через них реализовывается большая часть того, что обычно нужно реализовывать. А я всё же надеюсь, что цель посещения "школы ERM" для вас - не только писать скрипты (причём едва ли не простейшие из всех возможных) чужими руками, но и хотя бы минимально учиться этому на будущее. Сэр Treiser, если не сложно, вышлите мне тестовую карту с этим скриптом и прочими минимально необходимыми условиями по почте ([email protected]). Сходу сложно понять, что происходит, и проблема вроде не самая тривиальная, так что лучше посмотреть на примере... Что касается поражения из-за потери конкретного монстра в бою - поройте скрипты моей карты "С драконом в сердце", конкретно - скрипт "эльфийка и дракон". Там что-то похожее реализовано: игрок начинает с одним мечником, по ходу боя призываются дополнительные войска, но если мечник потерян - герой после боя гибнет (даже если бой выигран). Прямо во время боя, если не ошибаюсь, поражение вызвать нельзя (разве что, как вариант, накидать скриптом смертельных повреждений всем оставшимся юнитам той же стороны), зато можно проверить по итогам. |
|
Сэр wiskio
Сообщения: 12 |
Большое спасибо Сэр Кириньял, вопросов теперь у меня пока нету.Думаю, что чуть по лучше стал разбираться в скриптах.Жалко, что ответа я долго ждал, но в этом есть и свои плюсы.Я почти закончил свою карту, но никак не мог до конца отработать(так как хотел) скрипт с монолитом, но тем не менее, пока ещё не было ответа, я разбирал свою карту(в деталях), и думал, что бы ещё добавить.Теперь карта закончилась и я могу её спокойно опубликовывать, надеюсь она понравится(всем тем кто в неё сыграет).Кстати, а как или где могут оценить мою карту?
|
|
Сэр Kirinyale
HoMM V: Рыцарь |
Сэр wiskio, 2.04.2011 13:06Кириньяль Сэр wiskio, 2.04.2011 13:06Вот здесь подробно расписано, куда и в каком виде можно отправить карту для её размещения в базе Портала. А ещё можете после размещения выставить своё творение на конкурс Лиги Картографов (см. соответствующие темы за этим же столиком) в номинации "Лучшая скриптовая карта" - там как раз пока нет ни одного участника. И в других номинациях тоже можно, конечно. |
|
Сэр wiskio
Сообщения: 12 |
Сэр Кириньяль, когда я залез к вам в сокровищницу, чтобы скачать 3.58 версию вога, я её скачал, но...После скачивания, когда я завожу этот архив зип, у меня выскакивает одна ошибка, в которой написано: "неожиданный конец архива", причём сколько раз я не пытался его скачать, всё впустую.
Что делать?! Ладно, всё, я уже разобрался, скачал не 3.58, но скачал 3.75, там тоже карты читаются для 3.58! |
|
Сэр Kirinyale
HoMM V: Рыцарь |
Только что скачал у себя архив 3.58, распаковал - никаких неожиданных концов архива. Так что с файлом и сайтом точно всё в порядке (по крайней мере, в данный момент)...
|
|
Сэр nutnotdead
HoMM III: Безземельный |
Доброго времени суток , Серы.Меня интересует как можно пенести координаты в переменные для дальнейшего их использования...читал справку на сколько понял такое творить с координатами нельзя(. просьба сказать мне что я неправ и наставить на путь истинный так сказать)
Сэры.Где же вы? неужели никто не может помочь заблудшей душе? |
|
Сэр Lord Fador
Сообщения: 6 |
Здравствуйте, Сэры и Лорды. У меня есть вопрос по моему скрипту с драконами. Я сначала скопировал в редщактор и запустил, но он не срабатывает, я его как не пытался наладить, всё-равно не хочет работать.
P.S. Ещё, не подскажите как сделать, чтобы после посещения объект удалялся с карты? Зараннее спасибо, ваш сотоварищ Сэр Lord Fador... |
|
Сэр nutnotdead
HoMM III: Безземельный |
пришли сюда посмотри вместе.на сколько я понимаю все поюросали мечи и замки , а сами свалили на драконах в тёплые края июо лето)
|
|
Сэр Lord Fador
Сообщения: 6 |
ERM -syntax Error
File: erm Line 576 Reason Var is out of set(y1...y100) GetVar Это выскакивает если я вставляю скрипт Сэра Kirinyale, а моём куча ошибок, так как я новичок. ZVSE !?OB11/4/0; !!IF:Q1^Хотите нанять дракона?^; !!IF:Q1/6/0/21/132/21/34/2^1 лазурный или 3 ржавых?^; !!OW:R-1/6/?y3; !!OW:R-1/1/?y5; !!IF&y2=0/-1:M^Эх, а денег как не было, так и нет...^; !!IF&y2=0/-1/y3>10000:M^А ржавого?^; !!IF&y2=0/1/y3>=20000/y5>8:M^Он будет вам верой и правдой служить!^; !!IF&y2=0/1/y3<20000/y5<8:M^У вас не хватает денег!^; !!VRy4:S0 R1; [поясните эту строчку если можно] !!IF&y2=1:V1/y4;[поясните эту строчку если можно] !!OW&1/y3>=20000:R-1/6/d-20000; !!OW&1/y3>=8:R-1/1/d-8; !!HE:C2/132/1/1; !!VRy6:S0 R1; [поясните эту строчку если можно] !!IF&y2=-1:V1/y6; [поясните эту строчку если можно] !!OW&1/y3>=10000:R-1/6/d-10000; !!HE:C2/135/1/1; В своё скрипте я вообще запутался, буду очень признателен. |
|
Сэр nutnotdead
HoMM III: Безземельный |
Пошаримся]я сам новый в этом деле но голову поломать тоже интересно может чем и помогу
!!VRy4:S0 R1; устонавливаем y4 на ноль а потом генерируем случайное значение от 0 до 1 и прибавляем к y4 !!IF&y2=1:V1/y4; если y2=1 то устонавливаем флаг 1 в значение у4 (оно должно быть либо 0 либо 1 т.к флаги имеют только два варианта "да"=1 и "нет"=0) вот что то тип такого .... теперь постараюсь найти где ошибка...отпишусь ближе к вечеру !!VRy6:S0 R1; [поясните эту строчку если можно] !!IF&y2=-1:V1/y6; [поясните эту строчку если можно] эти строчки аналогичны предыдущим только несут другие переменные !!VRy4:S0 R1; [поясните эту строчку если можно] !!IF&y2=1:V1/y4;[поясните эту строчку если можно] они для того что если данный обьект посетит компьютер а не игрок то при помощи рандома который написан в первой строчке...будет зависеть захочет он купить или нет этих дракончиков |
|