Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Если нужен скрипт
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
MasterOfPuppets
Безусловно надо. А то артефакты в Героях плодятся, а комбо всё так же ограничены.
*Новая задача для Берса в деле улучшения .exe)* spiteful.gif
         
Провёл детальный анализ. Довольно нелегко, но можно попробовать. Только вот это уже обширный код и данные и патчем это не сделать. Только для Эры подходит, а сколько человек её юзают?...
DmitriyK
К сожалению, я заметил очень неприятный баг, проклятие на лок слота глючитsad.gif Если накладывать проклятие на слот где есть артефакт, то при снятии проклятия командой Y2/#/999/0 проклятие то снимается, но артефакт не появляется в этом слотеsad.gif Если проклятие проходит с течением времени, то все ок, арт появляется.

Можно как нибудь обмануть скрипт и смоделировать что якобы прошел день и чтобы счетчик проклятия сам закончился? Разумеется при этом день должен остатьтя тем же, ресурсы и прочее...
gamecreator
изменить дату?
DmitriyK
Цитата(gamecreator @ 26 Jan 2009, 22:55)
изменить дату?


как?

ну вот допустим кусок кода снимающий проклятие:

!?CM2;
!!UN:P312/?v9512;
!!FU&v9512<>1:E;
!!VRv1:S-1;
!!CM:I?v2 F?v3;
!!VRv3:&512;
!!HE-1&v2=11/v3<>0:A1/?v1/9;
!!HE-1&v2=12/v3<>0:A1/?v1/10;
!!HE-1&v2=13/v3<>0:A1/?v1/11;
!!HE-1&v2=14/v3<>0:A1/?v1/12;
!!HE-1&v2=20/v3<>0:A1/?v1/18;
!!CM&v1=170:R0;
!!IF&v1=170:Q1^%Z140111^;
!!HE-1&v1=170/1:Y2/1029/0/0;

В какое место и что надо вставить, чтобы скрипт подумал что день прошел , но при этом реально в игре день остался тем же??

P.S.

Последняя строчка будет выглядеть разумеется несколько иначе...ну допустим вот так:

!!HE-1&v1=170/1:Y2/1029/0/1;
MasterOfPuppets
Поменяй 1029, допустим, на 600. Всё равно столько дней в игре фактически не играют, а из-за больших сроков могут быть глюки.

Добавлено ([mergetime]1233029563[/mergetime]):
!!VRv3:&512; - тут какая-то ошибка. & - это условие, и его после : не ставят. Правильней, видимо - !!VRv3&512:... Что-то хотели сделать с переменной при условии, что клик правый. А что (...) - понять не могу.
DmitriyK
Цитата(Master Of Puppets @ 27 Jan 2009, 07:05)
Поменяй 1029, допустим, на 600. Всё равно столько дней в игре фактически не играют, а из-за больших сроков могут быть глюки.


1029 это совсем другое значение и оно более чем нормальное(в реальном коде должно будет использоваться еще большее), вопрос в том: как заставить скрипты подумать что прошел день.

Мне ответили "изменить дату"

Как? Я например не умею...Вот я привел конкретный кусок кода, последняя строка в котором снимает проклятие, как его заставить думать что после этого прошел еще 1 день (разумеется чтобы в игре день оставался тем же какой и был)?

Добавлено ([mergetime]1233029702[/mergetime]):
Master Of Puppets

!!VRv3:&512;

Поверь никакой ошибки нет, это 200% рабочий код, просто помоги мне со временем разобратьсяsmile.gif
MasterOfPuppets
Ах, я только сейчас понял, что второе значение - это вообще-то не срок, а слот, который заблокируется. 1029 - такого слота нет. Посмотри таблицу слотов. 0 - например, голова, 1 - плечи...

Добавлено ([mergetime]1233029910[/mergetime]):
Если !!VRv3:&512; - верно, то объясните мне, пожалуйста, что хотели сделать с v3.
Не всегда ERM выдаёт сообщение об ошибке, даже если она есть.
DmitriyK
ты мне можешь со временем помочь? banghead.gif
MasterOfPuppets
DmitriyK - ты сам пишешь этот скрипт?
DmitriyK
Цитата(Master Of Puppets @ 27 Jan 2009, 07:21)
DmitriyK - ты сам пишешь этот скрипт?


в данный момент да, но основа скрипта не моя. точнее изначально он был другим.
MasterOfPuppets
Цитата
В какое место и что надо вставить, чтобы скрипт подумал что день прошел

Да нельзя так. Простой выход - наложить, снять... Скажи просто, при каком действии надо наложить проклятие Забл.слота и на какой слот, а при каком действии - снять это проклятие, чтобы арт появился. А то из приведённого куска мне ничего не понятно. Клик... на чём?
DmitriyK
!!VRi:&33554432;

вот пример приведенный в хелпе по ЕРМ, а ты говоришь что & не ставят после :

это вполне нормальная конструкция : Check or remove specific bit of a variable

Добавлено ([mergetime]1233030497[/mergetime]):
Цитата(Master Of Puppets @ 27 Jan 2009, 07:26)
Цитата
В какое место и что надо вставить, чтобы скрипт подумал что день прошел

Да нельзя так. Простой выход - наложить, снять... Скажи просто, при каком действии надо наложить проклятие Забл.слота и на какой слот, а при каком действии - снять это проклятие, чтобы арт появился. А то из приведённого куска мне ничего не понятно. Клик... на чём?


клик на арте 170 (хотя наверно не совсем понятно что это арт 170 бгыгы), в коде же это есть smile.gif

"простой выход" - не годится, после него остается замок в слоте, по крайней мере у меня, для это и нужен трикс со временем.

P.S.

Я это объяснил в первом посте. что проклятие - глючит. После снятия командой - арт не проявляется, только если проклятие проходит "само", тобишь путем перехода хода. Вот это и надо как то "смоделировать".
MasterOfPuppets
Гм. Выходит, я просто не пользовался проверкой на биты. Каюсь.

Добавлено ([mergetime]1233030837[/mergetime]):
Так, теперь более и менее понял. Кликаешь на арте-170... а какой слот остаётся блокированным?
DmitriyK
Цитата(Master Of Puppets @ 27 Jan 2009, 07:33)
Добавлено ([mergetime]1233030837[/mergetime]):
Так, теперь более и менее понял. А какой слот остаётся блокированным?


Тот на который накладывается проклятие. в моем случае это торс, но разницы нет, я проверял... если накладывать проклятие на слот где есть арт, то при снятии его командой замок остается.

P.S.

и меня это бесит если честноsmile.gif

P.P.S.

раз уж залезли в дебри...то 1029 - это значение для Armor of Wonder заблокированного на 20 ходов.

это чтобы ты не мучался что за 1029. да-да я знаю, кажется нелепо, но так вот. для разных артов - это значение свое. С длительностью тоже есть некоторые изменения, но они несколько другого порядка.
MasterOfPuppets
В справке ERM просто ошибка. Правильное значение команды:

!!HE#:Y$1/$2/$3/$4;

Для Забл.слота:
$1 - 2
$2 - номер слота
$3 - срок проклятия (в днях)
$4 - 1 - дать, 0 - убрать.

У тебя стоит 1029 на месте $2. Как я уже говорил, такого слота нет.
DmitriyK
ну по большому счету, если нельзя "смоделировать" прошедший день, то смысла во всем этом нетsad.gif

Добавлено ([mergetime]1233031366[/mergetime]):
Цитата(Master Of Puppets @ 27 Jan 2009, 07:41)
В справке ERM просто ошибка. Правльное значение команды:

!!HE#:Y$1/$2/$3/$4;

Для Забл.слота:
$1 - 2
$2 - номер слота
$3 - срок проклятия (в днях)
$4 - 1 - дать, 0 - убрать.

У тебя стоит 1029 на месте $2. Как я уже говорил, такого слота нет.


читай выше что я написал. это не ошибка, это селяви biggrin.gif Это значение сохраняется чтобы не перепутать что именно хранится под замком. Это не ошибка. Ибо со слотом можно производить различные операции (добавление длительности проклятия/уменьшение и итд).
MasterOfPuppets
Я не знаю, что это за селяви и откуда ты его взял, но лучше сделай по-нормальному.

Я, например, сделал так:
!!HE45:Y2/1/500/1; - наложить замок на слот плаща. И наложилось.

Добавлено ([mergetime]1233031640[/mergetime]):
И снял тоже нормально.
DmitriyK
Цитата(Master Of Puppets @ 27 Jan 2009, 07:47)
Я не знаю, что это за селяви и откуда ты его взял, но лучше сделай по-нормальному.

Я, например, сделал так:
!!HE45:Y2/1/500/1; - наложить замок на слот плаща. И наложилось.

Добавлено ([mergetime]1233031640[/mergetime]):
И снял тоже нормально.


я и не говорю что оно не накладывается.

я говорю что после снятия командой - замок остается, можешь проверитьsmile.gif

P.S.

Тогда можно полный кусок кода, только не HE, а HE-1 использую. Сомневаюсь что пробелма в этом, но тем не менее...

P.P.S.

Сейчас попробую конечно перегенерить карту, возможно изза этого глюки, но сильно сомневаюсь.
MasterOfPuppets
Ну так попробуй нормально наложить и снять! Без всяких селяви. Тогда и не будет замка.
!!HE-1:Y2/5/600/1;
!!HE-1:Y2/5/600/0;


Добавлено ([mergetime]1233031794[/mergetime]):
DmitriyK
Цитата(Master Of Puppets @ 27 Jan 2009, 07:49)
Ну так попробуй нормально наложить и снять! Без всяких селяви. Тогда и не будет замка.

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


Жаль что ты не понял...

Накладывается у меня вот этой командой, совсем в другом куске кода:

!!HE-1:Y2/5/20/1;

Вот это вот:

!!HE-1:Y2/1029/0/1; нужно для того чтобы не "перепутать артефакт" и изменить длительность проклятия на 0 дней. 0 дней означает что на следующий день - проклятие проходит. Именно этот день и надо "смоделировать"


Как я уже говорил, при снятии командой - замок остается, сейчас перегенерю карту на новом скрипте, возмжно проблема в этом.
MasterOfPuppets
А откуда такие фичи про слоты? Ничего я про это не слыхал.

Добавлено ([mergetime]1233032286[/mergetime]):
Если надо, чтобы на следующий день прошло - наложи на один день. В чём проблема?
major
DmitriyK, вот по этому адресу находится текущий день 042CF686, на два байта выше неделя и еще два - месяц. адреса как видно в 16-ной системе. меняй дату с помощью UN:C, может поможет.
DmitriyK
Цитата(Master Of Puppets @ 27 Jan 2009, 07:49)
Ну так попробуй нормально наложить и снять! Без всяких селяви. Тогда и не будет замка.
!!HE-1:Y2/5/600/1;
!!HE-1:Y2/5/600/0;


Ну вобщем проверил на вновь сгенеренной карте - замок остается... У тебя точно ВОГ ?smile.gif
MasterOfPuppets
Таймеры собьются. Да и извращение это - менять дату.

Добавлено ([mergetime]1233032914[/mergetime]):
У меня exe TE, но это никак не влияет на нашу беседу.
DmitriyK
Цитата(Master Of Puppets @ 27 Jan 2009, 07:58)
А откуда такие фичи про слоты? Ничего я про это не слыхал.

Добавлено ([mergetime]1233032286[/mergetime]):
Если надо, чтобы на следующий день прошло - наложи на один день. В чём проблема?


Фичи про слоты я выяснил в битве с проклятием слота smile.gif

Мне не надо чтобы прошло на следующий день, мне надо чтобы прошло тогда, когда я хочу. при реализации это командой !!HE-1&v1=170/1:Y2/5/600/0; - замок остается. Я не знаю почему у тебя нет замка.
MasterOfPuppets
Я сделал так:

ZVSE
!?PI;
!!HE45:Y2/1/1/1;

На утро третьего дня слот разблокировался.
DmitriyK
Цитата(Master Of Puppets @ 27 Jan 2009, 08:08)
Добавлено ([mergetime]1233032914[/mergetime]):
У меня exe TE, но это никак не влияет на нашу беседу.


Других вариантов я не вижу ибо у меня ВОГ и после снятия проклятия командой - замок остается...

Добавлено ([mergetime]1233033107[/mergetime]):
Цитата(Master Of Puppets @ 27 Jan 2009, 08:10)
Я сделал так:

ZVSE
!?PI;
!!HE45:Y2/1/1/1;

На утро третьего дня слот разблокировался.


НУ разумеется , я сразу написал что сам он нормально разблокируется по времени.

по команде же - остается замок в этом сесте.
MasterOfPuppets
Видимо, у тебя флаг 1 на нуле. Поэтому не катит.)
DmitriyK
Цитата(major @ 27 Jan 2009, 08:04)
DmitriyK, вот по этому адресу находится текущий день 042CF686, на два байта выше неделя и еще два - месяц. адреса как видно в 16-ной системе. меняй дату с помощью UN:C, может поможет.


мм..чтото я не могу найти в своем описании UN:C это воговская команда?

у меня почему то после !!UN:B идет !!UN:D
MasterOfPuppets
Хотя не знаю... Вроде всё нормально.

Добавлено ([mergetime]1233033329[/mergetime]):
Цитата
у меня почему то после !!UN:B идет !!UN:D

По UN:C - последний раздел справки (Работа с памятью).
DmitriyK
Цитата(Master Of Puppets @ 27 Jan 2009, 08:12)
Видимо, у тебя флаг 1 на нуле. Поэтому не катит.)


что за флаг? на что он влияет, почему у меня 0, а у тебя нет, как его поменять и на что это повлияет?

хехе, сколько вопросов сразуsmile.gif
MasterOfPuppets
Так попробуй.

!!FU&-1:E;
!!HE-1:Y2/5/600/0;
DmitriyK
Цитата(Master Of Puppets @ 27 Jan 2009, 08:17)
Так попробуй.

!!FU&-1:E;
!!HE-1:Y2/5/600/0;


не, тоже самое


Я не понимаю что за фигня, попробовал запустить ТЕ, все тоже самое. Почему у тебя нет замка, а у меня есть?
MasterOfPuppets
Убрав избыточные условия, написал так:

!?CM2;
!!CM:I?v5500 F?v5501;
!?CM2&v5501=512;
!!UN:P312/?y1;
!!FU&y1=0:E;
!!HE-1&v5500=11:A1/?y2/9;
!!HE-1&v5500=12:A1/?y2/10;
!!HE-1&v5500=13:A1/?y2/11;
!!HE-1&v5500=14:A1/?y2/12;
!!HE-1&v5500=18:A1/?y2/18;
!!CM&y2=170:R0;
!!IF&y2=170:Q1^%Z140111^;
!!FU&-1:E;
!!HE-1:Y2/1029/0/0;
!!UN:R3/-1;

Если после этого не подействует - значит, ты открыл какой-то баг ERM.
major
UN:C работает напрямую с памятью игры,
!!UN:C#1/#2/#3;
#1 - адрес в 10-ной системе,
#2 - кол-во изменяемых байт,
#3 - само значение.
MasterOfPuppets
C UN:C сейчас ничего не делают, хотя раньше она была популярна. Слишком много багов.
DmitriyK
Цитата(Master Of Puppets @ 27 Jan 2009, 08:31)
Убрав избыточные условия, написал так:

!?CM2;
!!CM:I?v5500 F?v5501;
!?CM2&v5501=512;
!!UN:P312/?y1;
!!FU&y1=0:E;
!!HE-1&v5500=11:A1/?y2/9;
!!HE-1&v5500=12:A1/?y2/10;
!!HE-1&v5500=13:A1/?y2/11;
!!HE-1&v5500=14:A1/?y2/12;
!!HE-1&v5500=18:A1/?y2/18;
!!CM&y2=170:R0;
!!IF&y2=170:Q1^%Z140111^;
!!FU&-1:E;
!!HE-1:Y2/1029/0/0;
!!UN:R3/-1;

Если после этого не подействует - значит, ты открыл какой-то баг ERM.



данная конструкция в моем скрипте вобще не работает. похоже что одновременно и сборка и разборка сразу действует, в результате проклятия нет, но замок в слоте торса появляется
major
возможно, но у меня этой фишкой много че изменено, и работает без глюков.
MasterOfPuppets
А-а... измени Y2/1029/0/0 на Y2/5/600/0. Посмотрим.

Добавлено ([mergetime]1233034850[/mergetime]):
Цитата
возможно, но у меня этой фишкой много че изменено, и работает без глюков.

Ну да. Но это на твоём компе, где ты всё и сделал. Дашь кому-нибудь свои скрипты - тот тебя обругает за баги, наверное.
DmitriyK
Цитата(major @ 27 Jan 2009, 08:37)
возможно, но у меня этой фишкой много че изменено, и работает без глюков.


я не думаю что могу сам чтото сделать с этой UN:C sad.gif с трудом представляю куда и что надо подставлять чтобы внутри конкретного скрипта была иммитация пройденного дня и чтобы это не отразилось на игре в целомsmile.gif
MasterOfPuppets
DmitriyK - ради бога, дай мне весь исходный скрипт, а я посмотрю и, если возможно, выправлю. А то сейчас меня с компа сгонят.

Добавлено ([mergetime]1233035018[/mergetime]):
UN:C и ArtMoney неразделимы.
DmitriyK
Цитата(Master Of Puppets @ 27 Jan 2009, 08:40)
А-а... измени Y2/1029/0/0 на Y2/5/600/0. Посмотрим.



ну проверил все так же замок остается.

специально добавил внутрь добавление еще одного арта в инвентарь, действительно сборка-проклятие/разборка-снятие проклятия происходят одновременно при таких конструкциях. Но суть не в этом, а в том, что замок есть мать его....
MasterOfPuppets
Цитата
замок в слоте торса появляется

В смысле? Его там до этого не было, что ли?
DmitriyK
Цитата(Master Of Puppets @ 27 Jan 2009, 08:46)
Цитата
замок в слоте торса появляется

В смысле? Его там до этого не было, что ли?


нет разумеетсяsmile.gif

Замок там появляется только после того как накладывается проклятие. До того как проклятие накладывается там артефакт.

P.S.

сейчас скрипт выложу, только в порядок приведу немногоsmile.gif
MasterOfPuppets
Зачэм в порядок привадыть, дарагой?
Я же исходник просил.
DmitriyK
Цитата(Master Of Puppets @ 27 Jan 2009, 08:52)
Зачэм в порядок привадыть, дарагой? 
Я же исходник просил.


http://ifolder.ru/10243679

в порядок - чтобы он хотя бы не глючил ибо я тут постоянно чтото меняю чтобы заставить работатьsmile.gif

собственно это старый скрипт про сборные арты, я просто пытаюсь его переделать.

вот код который собирает арт и вешает проклятие:

!?CM2;
!!UN:P312/?v9512;
!!FU&v9512<>1:E;
!!CM:I?v1 S?v2;
!!FU5&v1>=2/v1<=10/v2=14:P;
!!CM&v1>=2/v1<=10/v2=14/v109<>0:R0;
!?FU5;
!!IF:V1/0;
!!VRv100:C0/0/0/0/0/0/0/0/0/0;
!!HE-1:A2/161/>0/>0; !!VRv100&1:S1; !!IF:V1/0;
!!HE-1:A2/162/>0/>0; !!VRv101&1:S1; !!IF:V1/0;
!!HE-1:A2/163/>0/>0; !!VRv102&1:S1; !!IF:V1/0;
!!HE-1:A2/164/>0/>0; !!VRv103&1:S1; !!IF:V1/0;
!!HE-1:A2/165/>0/>0; !!VRv104&1:S1; !!IF:V1/0;
!!HE-1:A2/166/>0/>0; !!VRv105&1:S1; !!IF:V1/0;
!!HE-1:A2/167/>0/>0; !!VRv106&1:S1; !!IF:V1/0;
!!HE-1:A2/168/>0/>0; !!VRv107&1:S1; !!IF:V1/0;
!!HE-1:A2/169/>0/>0; !!VRv108&1:S1; !!IF:V1/0;
!!VRv110:Sv100 *v101 *v102 *v103 *v104 *v105 *v106 *v107 *v108;
!!FU&v110=0:E;
!!IF:Q1/8/170/2^%Z140110^;
!!FU&-1:E;
!!HE-1:A-161 A-162 A-163 A-164 A-165 A-166 A-167 A-168 A-169;
!!HE-1:Fd-4/d-14/d-9/d-4;
!!HE-1:A4/170;
!!HE-1:A4/31;
!!HE-1:Fd-16/d-16/d-16/d-16;
!!HE-1:Y2/5/600/1;
!!UN:R3/-1;

строки:

!!HE-1:A4/31;
!!HE-1:Fd-16/d-16/d-16/d-16;

добавлены специально, они нужны в дальнейшем..



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

!?CM2;
!!UN:P312/?v9512;
!!FU&v9512<>1:E;
!!VRv1:S-1;
!!CM:I?v2 F?v3;
!!VRv3:&512;
!!HE-1&v2=11/v3<>0:A1/?v1/9;
!!HE-1&v2=12/v3<>0:A1/?v1/10;
!!HE-1&v2=13/v3<>0:A1/?v1/11;
!!HE-1&v2=14/v3<>0:A1/?v1/12;
!!HE-1&v2=20/v3<>0:A1/?v1/18;
!!CM&v1=170:R0;
!!IF&v1=170:Q1^%Z140111^;
!!HE-1&v1=170/1: Y2/5/600/0;
MasterOfPuppets
Значит, я снимал проклятие, которого нет? Что-то я ни фига не понимаю уже... Вообще, мне всегда надо "це щё треба розжуваты" - чёткий алгоритм, всё до деталей. Многие ругаются из-за этого, но когда мне понятна вся последовательность функций, то и делаю я легче.

Добавлено ([mergetime]1233035819[/mergetime]):
Блин... Это ведь тот самый скрипт. Я-то думал, другой уже...
DmitriyK
Цитата(Master Of Puppets @ 27 Jan 2009, 08:56)
Добавлено ([mergetime]1233035819[/mergetime]):
Блин... Это ведь тот самый скрипт. Я-то думал, другой уже...


да тот самый, читай я дописал комменты
MasterOfPuppets
А зачем ты оставил в конце эти команды?

!!HE-1:A2/170/>0/=0; !!HE-1:A-134;
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.