Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Если нужен скрипт
DF2 :: ФОРУМЫ > Игровые форумы > Heroes of Might & Magic III > Моды > Скрипты
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67
DracoLich
ЕРМ текущим не получится..
Sergiyua
Одно замечание, рост популяции нейтральных сущест должен быть отключен.
Warrior of Light
Мне нужен вот такой скрипт:
Герой оставляет рядом с объектом монстра->на следующий день объект загорается->а ещё через день объект исчезает. Всё. Напишите пожалуйста как это сделать. Заранее спасибо.
DracoLich
Зажечь объект нельзя... Или рисуй анимацию )
Paladin
А можно сделать скрипт который записывает в переменную определенный квадрат рядом с данным объектом
gamecreator
подробнее
Paladin
Заходишь героем в обьект и появляется здание рядом с обьектом.
Но на каждой карте этот обьект в разных местах.
А я хочу что здание все равно появлялось рядом с обьектом.
gamecreator
к координатам обьекта добавляешь нужное число не забыв проверить не будет ли оно выходить за рамки карты
Paladin
Ну а если этих зданий куча не буду же я у каждого координаты писать
DracoLich
Переменные v998,v999, v1000 всегда хранят координаты послежднего посещенного объекта (x y l соответственно)
Druin
Цитата
ЕРМ текущим не получится..

Вроде в одной компании вога был такой момент: При посщении одной клетки ты теряешь пару дней... Если я правильно помню, то можно там покопать...
DracoLich
В кампаниях это реализованно обычным полным отниманием хода у героя. А в ERM я знаю все команды, но промотка времени еще не появилась
Druin
Цитата(DracoLich @ 02 Dec 2006, 03:12)
В кампаниях это реализованно обычным полным отниманием хода у героя. А в ERM я знаю все команды, но промотка времени еще не появилась

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

Цитата(izrukvruki @ 30 Nov 2006, 09:47)
А можно сделать ПРОПУСК ХОДОВ: т.е. например я отстроил город, посетил все-все-все, но на пути стоит БОЛЬШОЙ отряд нейтралов убить которых у меня не хватает сил, и нужно 2-3 недели ждать - накапливать армию, приходиться нажимать закончить ход много раз, а так бы (напрмер правым кликом по ЧАСИКАМ) и вопрос "сколько дней будете спать?" - я и компьютер все эти дни стоим на месте и ничего не делаем, если есть обучение - то опыт должен прибавляться, недели существ тоже чтоб появлялись, ресурсы прибавлялись.

Я так понял что izrukvruki просто хочется сократить время, которое он потратит на переходы хода... И врятли его будет волновать что потом будет нарисовано в календаре...
А если мы отнимем у него ход (чтоб хоть один раз пришлось переход сделать)... Выполним все добавления по монстрам и ресурсам у всех игроков... И т.д. и т.п... То получим то, что клиент заказывал (или почти то)...
Теперь встает другой вопрос - кто этим займется, так как скрипт скорее всего выйдет громоздкий и много чего надо будет предусмотреть имхо... wink.gif
izrukvruki
Не, ну если очень долго и заморочено - то не надо время тратить, я так просто спросил, без особой надобности (переживу) - думал что это легко...
Lindar
Народ, научите как можно накидать перед битвой на свою армию отрицательные заклинания, типа слабости и болезни, вроде делается с помощью !!BM... но в нем так и не разобрался.
SnoRT
Так. Объясню на пальцах.

!?BR; Т.е. триггер, срабатывающий каждый раунд боя.
!!VRv20:S0; Это нам пригодится дальше.
!!DO11/0/20/1&v997=0/v10=1:P; Если у нас выполняются условия "v997=0" (Это значит, что выполняем только при первом раунде боя. Если поставим 1 - то второй раунд и далее соответственно. Если надо чтобы выполнялось каждый раунд - вообще не ставим этого условия) и "v10=1" (Это написано для примера. Чтобы не в каждой битве происходила функция, а при определённых условиях. Это уже на усмотрение мапмейкера), то запускаем функцию №11 21 раз.
!?FU11; Непосредственно сама функция.
!!BMv20:M45/50/3; Монстру номер v20 на поле боя ставим слабость (45) на 50 ходов (50) уровня эксперт (3). Номер v20 у нас изначально 0.
!!VRv20:Sv20+1; Увеличиваем номер v20 на 1, чтобы при следующем повторе функции кастовали викнесс уже на следующего монстра.

Вот, собственно, и весь скрипт.

Код
!?BR;  
!!VRv20:S0;
!!DO11/0/20/1&v997=0/v10=1:P;  
!?FU11;
!!BMv20:M45/50/3;  
!!VRv20:Sv20+1;


Примечательно, что на поле боя юниты под номерами 0-20 - монстры левой стороны, а 21-41 - правой. Т.е. в этом скрипте мы делали слабость не на кричей игрока, а на кричей с правой стороны. Ну чаще всего это и есть игрок. Если же нужно направить заклинание на левую сторону, то переменной v20 изночально ставим значение 21. Если мы не знаем с какой стороны нужные монстры - придётся высчитывать. Но это уже к другой теме.

Добавлено ([mergetime]1165483475[/mergetime]):
P.S. Это наверное к теме "Обучение ЕРМ".
Druin
А нафиха v20? Имхо в данном примере и x16 подойдет...
SnoRT
Я не совсем знаю... x-переменные - это специальные для циклов, да?
Druin
Справка по DO
Код
Комментарии:

x16 переменная (используется в функциях, вызванных DO приёмником), хранит номер текущего цикла функции. Например, если функция повторялась 12 раз (от 1 до 12), в первый раз x16 будет равняться 1, во второй раз - 2 и т.д.. Если вы поменяете значение x16 переменной, вы можете фактически "ускорить" или "замедлить" цикл функции, или даже выйти из неё полностью, выставляя x16 равным конечному значению (или выше), которое было определено в DO приёмнике.
Итак, если вы меняете x16 в функции, вы замедляете, ускоряете, повторяете или заканчиваете её цикл. Кроме того, все параметры выставляются во время первого ввода в функцию. Вы можете менять их в пределах функции.

Пример1:
!!DO1/2/10/2:P5;
...
!?FU1;
!!IF:M^Var x1=%X1 and x16=%X16^;
!!VRx1:+1; !!VRx16:+1;

Должно показать:
Var x1=5 and x16=2
Var x1=6 and x16=5
Var x1=7 and x16=8
SnoRT
Хмм... Спасибо...
А откуда скопировал? unsure.gif
Lindar
Так все...спасибо....я уже сам додумался laugh.gif)))
Druin
C ЕРМ хелпа...
Lindar
А можно записать пределы значений переменной v2, например от -3 до 8. Что бы при !!VRv2:Sd-1; значение не опускалось меньше -3.
Или надо использовать значения -2147483647 и -2147483636?
SnoRT
Ну тут просто.
!!VRv2&v2>-3:Sd-1;

Добавлено ([mergetime]1165564455[/mergetime]):
Цитата(Druin @ 07 Dec 2006, 22:32)
C ЕРМ хелпа...

Эт я понял, я про перевод idontno.gif
DracoLich
Цитата(Lindar @ 08 Dec 2006, 14:35)
А можно записать пределы значений переменной v2, например от -3 до 8. Что бы при !!VRv2:Sd-1; значение не опускалось меньше -3.
Или надо использовать значения -2147483647 и -2147483636?

Проверяешь на значение, и если за рамки выходит - делаешь как нуно:
...
!!VRv2|v2<-3/v2>8:S0; - обнулить v2 при значении меньше трех или больше 8
Lindar
Все понял..... а можно менять названия ресурсов?
DracoLich
Нет. Только монстров, артов....
Druin
Цитата(Lindar @ 08 Dec 2006, 15:13)
Все понял..... а можно менять названия ресурсов?

Странный вопрос... а тебе зачем?...
Lindar
Ну скажем, это для сценария, для общей картины хотелось бы поменять названия ресурсов, просто я их использую не по прямому назначению.
...и еще вопрос, можно записать в переменную текущий день?
DracoLich
!!VRv12:Sc; - теперь v12 хранит номер дня (счет идет с начала игры)
Berserker
По идее можно smile.gif Только адреса текста найти надо. И размер новых названий не должен быть больше старых.
gamecreator
как сделать чтобы стреляющее существо отвечало на выстрелы как суккубы в 5-х.
DracoLich
Попробуй юзать !?BG1; и затем узнавать цель и тип атаки, и затем наносить урон атакующему... У меня не получилось
Lindar
Как можно сделать так, что бы после посещения объекта, следущее посещение может произойти только через неделю.
DracoLich
Если объект один на карте, то можно просто присвоить ему переменную, например
!?OBx/y/l&v50=0; - только если Не посещено
...
!!VRv50:S1; - установить переменную на посещено (1)
!#TM1:S1/999/7/255; - установить таймер раз в неделю
!?TM1; - таймер тикнул...
!!VRv50:S0; - переменную v50 ставим на не посещено (0),
Но и здесь много нюансов...
Можно, если объектов много, давать им свой номер квадрата:
!?OBx/y/l;
...
!!POx/y/l:N?y1;
!!FU&y1=1:E;
...
!!POx/y/l:N1; - уст. посетил
!#TM1:S1/999/7/255; - см выше
!?TM1;
...
!!POx/y/l:N0; - обнулить посещение

Может, не очень понятно...
Lindar
Так...вроде все получилось, но.... таймер работает каждый день, а это значит что если я посетил объект в понедельник, то в следущий раз смогу через 7 дней, а если в воскресенье - то завтра. А надо что бы в любой день отсчитывалось ровно 7 дней ...
DracoLich
Тогда заноси день в переменную и после каждого посещения устанавливая таймер. Пример:
...
!!VRv1:Sc; - текущий день
!!VRv2:Sc+8; - через неделю
!!TM1:Sv1/v2/7/255; - устанавливаем таймер
Далее как раньше
Lindar
Cпасибо, все работает! = )))
Lindar
Можно ли дать бехольдерам, на всей карте, способность заражать ядом, как виверны?
DracoLich
Способоность - нельзя... Только скриптом для боя...

Добавлено ([mergetime]1166345814[/mergetime]):
Для всех Бехолдеров или только нейтральных?

Добавлено ([mergetime]1166346757[/mergetime]):
Накладывает любой Бехолдер перед стрельбой
ZVSE

!?BG0;
!!BG:A?y1 N?y2;
!!BMy2:T?y3;
!!FU|y1<>7/y3<>74:E;
!!BG:D?y4;
!!BU:Ey4/?y5;
!!FU&y5=-1:E;
!!BMy5:M71/3/2 V67;
Lindar
Попробовал... ну не знаю..... как то странно.... не успел бехольдер напасть, а монстр уже отравлен... подругому никак нельзя? Что бы сначала удар, потом эффект.
DracoLich
А вот после атаки чего-то не получается... Попробую еще..
cancer
Я делал такое с использованием !?MF и !?BG1.
izrukvruki
А кто-нибудь может похвастаться скриптами корректно работающие на поле боя???
DracoLich
Ага ) ВоГ-тим )
Druin
У меня есть... правда не полноценный скрипт а некая вспомогательная функция к скрипту... да и хвастаться ей не стоит, бо простенькая... определяет типы всех монстров и их координаты на поле боя... работает стабильно...
DracoLich
Не, нужно на тему
Цитата
Накладывает любой Бехолдер перед стрельбой Яд


Добавлено ([mergetime]1166465872[/mergetime]):
Фактически, я тут одну деталь не понимаю... Если использовать !?BG1;, то тип удара не сохраняется... Потому приходится пользовать так..
Druin
Я ответил на пост извруквруки...
А про бехолдеров надо пробовать... А так щас ленява... rolleyes.gif

Добавлено ([mergetime]1166466242[/mergetime]):
Цитата(DracoLich @ 18 Dec 2006, 21:17)
Фактически, я тут одну деталь не понимаю... Если использовать !?BG1;, то тип удара не сохраняется... Потому приходится пользовать так..

Чисто по теории не проверяя...
Кто тебе мешает использовать комбинацию

!?BG0;
!!BG:A?v1 N?v2;
...
!?BG1;
...
DracoLich
Аа, блин, как всегда, все гениальное просто!

Добавлено ([mergetime]1166466453[/mergetime]):
ZVSE

!?BG0;
!!BG:A?y1 N?y2;
!!BMy2:T?y3;
!!FU|y1<>7/y3<>74:E;
!!BG:D?y4;
!!BU:Ey4/?v5004;
!!FU&v5004=-1:E;
!!IF:V501/1;
!?BG1&501;
!!IF:V501/0;
!!BMv5004:M71/3/2 V67;
izrukvruki
У меня что то не получается в карте героям портреты привязать? Может кто-нибудь поможет... Выдает ошибку и игра вылетает...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.