Current time: 27.09.2020, 05:20 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Ваши вопросы по ERM-скриптам
Author Message
M.A.K.C. Offline

Posts: 467
Post: #511

А эта функция должна быть в тексте этого скрипта, или отдельно?

Вот что получилось

Code:
!?CM2&v9701=118/v9702=12/v9700=4;
!!CM:R0;
!!IF:W-1;
!!en:;
!!HE-1:E?y1/?y2;
!!IF:Q2^Вы хотите, чтобы ваш герой сменил свой класс на {Эконом}?
При этом герой сперва будет полностью обнулён^;
!!FU&-2:E;
!!VRy50:S0;
!!VRy50&y2=1/w46=3000:S3000;
!!FU50003:P-1;
!!VRw200:S1;
!!OW:C?y3;
!!VRz1:S^class_0.WAV^;
!!SN:Pz1;
!!IF:Q2/10/y3/1^Примите поздравления! Отныне Вы {Эконом}.
Герой-Эконом получает {Продв. Имущество} и {1000} очков вторичных навыков в момент посвящения!^;
!!HE-1:N?y1;
!!DO22507/0/27/1:Py1;
!!HE-1:S13/2 X0/13;
!!UN:G2/y1/1/4 G2/y1/3/4;
!!VRw46:S1000+y50;
!!FU836:P2003/0/0/y1/0;      Random Hero - Estates
!!FU22512:P;
!!UN:R3/-1;

Этот скрипт уже доделан, работает.
Суть скрипта, при щелчке левой кнопкой мыши на окошке специализации герой меняет класс на эконом (Продвинутое поместье + специализация на поместье) сделано для того. чтобы играть было не грустно. Мой друг при игре на случайной карте не очень радовался, когда у меня появлялся герой Лорд Хаарт, очень большое финансовое преимущество. теперь получить такую специализацию может любой герой.


Все свежие обновления я выкладываю на своем сайте здесь.
(This post was last modified: 10.03.2010 19:36 by M.A.K.C..)
07.03.2010 16:32
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 4197
Post: #512

Помогите..
При определённом действии, необходимо чтобы рюкзак героя "отфрагментировался". Т.е. чтобы пустоты между артефактами исчезли и все артефакты выстроились друг за другом, начиная с первого слота рюкзака.

Мне не нужен сам скрипт, мне хотя бы написать как правильно это организовать, т.е. оптимальный алгоритм.. дальше бы я сам всё сделал Sorry

Я вот, к примеру это вижу так:
1. проверяю слот 19 (он же первый в рюкзаке)
2. если занят, иду к следующему..
3. если занят - к следующему.. и так первые 4 слота рюкзака проверить
4. если хоть один из первых четырёх будет занят, то ничего дальше не требуется - делаю вывод что всё ровненько
5. если к примеру 20 слот пустой, то запускаю цикл
6. Цикл: все артефакты сместить на один слот слева, после чего возобновить проверку слотов начиная с 21..

Имхо,уж больно мудрёно всё, потому и взываю к помощи..



Image: 237506073ac7.gif
22.03.2010 12:39
Visit this user's website Find all posts by this user Quote this message in a reply
etoprostoya Offline

Posts: 1831
Post: #513

А если убрать артефакт из рюкзака, а потом добавить его же и так со всеми? Не знаю, но по идее рюкзак должен автоматически "дефрагментироваться".
22.03.2010 12:51
Find all posts by this user Quote this message in a reply
Efrit Offline
Administrators

Posts: 6174
Post: #514

Quote:А если убрать артефакт из рюкзака, а потом добавить его же и так со всеми? Не знаю, но по идее рюкзак должен автоматически "дефрагментироваться".

Вроде как есть баг, что при убирании ERMом артефакта из рюкзака - сам артефакт убирается, а занятый им слот не освобождается... То есть для большого числа артефактов твой алгоритм вполне может привести к переполнению рюкзака...


Welcome to the soldier side,
Where there is no one here but me.
People all grow up to die,
There is no one here but me...
22.03.2010 13:03
Find all posts by this user Quote this message in a reply
etoprostoya Offline

Posts: 1831
Post: #515

(22.03.2010 13:03)Efrit Wrote:  
Quote:А если убрать артефакт из рюкзака, а потом добавить его же и так со всеми? Не знаю, но по идее рюкзак должен автоматически "дефрагментироваться".

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

Не знал, а знал бы - не предлагал бы. Sm Вот есть ещё над чем поработать перед выпуском новой версии ВоГа. Было бы замечательно, если бы возможность проверить запреты на строительство здания в городе также была реализована.

Размечтался, да?

Предложение №2. Ищем конец рюкзака, то есть последний артефакт, и ставим этот артефакт в первую попавшуюся с начала пустОту. И так по всем артефактам, пока будут находиться пустоты. Нет пустот - выход из цикла.
Добавлено:
Ммм... Надеюсь понятно выразил свой алгоритм? Если нет, то могу пошагово расписать его, но без ЕРМ.
(This post was last modified: 22.03.2010 13:20 by etoprostoya.)
22.03.2010 13:17
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 4197
Post: #516

Quote:Было бы замечательно, если бы возможность проверить запреты на строительство здания в городе также была реализована.
Размечтался, да?
Хм.. не помню,здесь это работает или нет?
Quote:New command CD:B
    Syntax:
    B0/town/struct/ENdis - global enable/disable structure
Details:
    B0/#1/#2/$;
    Enable/disable #2 structure to build in any towns of #1 type.
    $ - flag (0=disabled, 1=enabled).

===

За идею спасибо..
Подожду ещё, может кто что другое посоветует.. а может кто это когда-то для себя реализовывал Sorry



Image: 237506073ac7.gif
22.03.2010 18:32
Visit this user's website Find all posts by this user Quote this message in a reply
etoprostoya Offline

Posts: 1831
Post: #517

(22.03.2010 18:32)Bes Wrote:  
Quote:Было бы замечательно, если бы возможность проверить запреты на строительство здания в городе также была реализована.
Размечтался, да?
Хм.. не помню,здесь это работает или нет?
Quote:New command CD:B
    Syntax:
    B0/town/struct/ENdis - global enable/disable structure
Details:
    B0/#1/#2/$;
    Enable/disable #2 structure to build in any towns of #1 type.
    $ - flag (0=disabled, 1=enabled).

Тут ведь только установка, а не проверка?
Добавлено:
Это вопрос скорее не к Bes'у, а к команде ВоГа и ТЕ.
(This post was last modified: 22.03.2010 18:42 by etoprostoya.)
22.03.2010 18:41
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 13085
Post: #518

Bes, зачем тебе дефрагментация? Она автоматом при щелчке на кнопку прокрутки влево. Удаление арта корректное есть в коде Феникса. А алгоритмов дефрагментации основных два:
1) До тех пор, пока поиск пустого слота не вернёт ошибку определяем размер сплошного блока за пустым местом (не слотом!) и переносим его влево к сплошному ряду.
2) Проходимся в цикле по всем слотам, при этом Left указывает на текущую левую границу сплошного ряда артефактов, а i - на индекс слота (0..63). Если очередной слот не пустой, то A[Left]:=A[i]; A[i]:=-1; Left++; Иными словами, если слот не пустой, то массив артов в индексе Left получает значение арта массива в индексе i. А слот, на который указывает i обнуляется (или -1 забивается, что вернее).


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
22.03.2010 19:48
Find all posts by this user Quote this message in a reply
gamecreator Offline
Administrators

Posts: 7146
Post: #519

можно переносить все блоки одновременно (в одном цикле), при этом пустые ячейки добавляют +1 к размеру пустоты. это сдвиг на х позиций влево, где х меняется по ходу сдвига.
Добавлено:
хотя если порядок артов не важен, то алгоритм этопростоего будет работать намного быстрее.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
22.03.2010 20:35
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 4197
Post: #520

Спасибо за советы.
1. Удаление арта корректное в коде ФМ конечно есть, но вот в чём проблема - там удаляет первый попавшийся такой арт в рюкзаке, что весьма неподходяще в случе когда нам надо удалить второй такой же арт дальше по цепочке.. в итоге у нас не закроется "прогал" в середине рюкзака, а появится ещё один но только ранее (в уже отдефрагментированной части)

2. Я благодарен за столь продуманные алгоритмы, но, к сожалению, не имея знаний в программировании, мне весьма размыто представляется что стоит за словами "блок", "ряд" и что подразумевается под "перенос блока". Хотя бы приведите маленький пример адаптированный под "парадигмы ЕРМ", ну скажем на таком примере: в рюкзаке 2 артa..
[-1][-1][12][45][-1]

Sorry



Image: 237506073ac7.gif
23.03.2010 12:34
Visit this user's website Find all posts by this user Quote this message in a reply
gamecreator Offline
Administrators

Posts: 7146
Post: #521

адаптированный не приведу, но на псевдокоде - пожалуйста:

Code:
счетчик=1
граница=1
вечный цикл:
    пока счетчик<=количество_слотов и слот(счетчик) пустой:
        счетчик=счетчик+1
    конец цикла
    если счетчик>количество_слотов: выход из цикла
    слот(граница)=слот(счетчик)
    граница=граница+1
конец цикла


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
23.03.2010 19:27
Find all posts by this user Quote this message in a reply
Harvester Offline

Posts: 20
Post: #522

У меня не совсем корректно работает код:

Code:
!#HE152:X6/138/139/143;
!#UN:G2/152/1/245G2/152/2/245G2/152/3/245;

Должно быть:
Специальность — апгрейд крестьян и хальфлингов до воров. Картинка специальности — изображение вора, и соответствующий текст.

Получается только картинка. Описание старое. Апгрейд не работает.
Как можно добиться желаемого?
12.04.2010 13:00
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 4197
Post: #523

заметка по UN:G2/$/2/#;

Здесь надо в третьем параметре указывать номер z-переменной с описанием, а не номер картинки

P.S.: а что такое UN:G2/$/1/# ???



Image: 237506073ac7.gif
(This post was last modified: 13.04.2010 13:10 by Bes.)
13.04.2010 13:07
Visit this user's website Find all posts by this user Quote this message in a reply
Harvester Offline

Posts: 20
Post: #524

(13.04.2010 13:07)Bes Wrote:  заметка по UN:G2/$/2/#;

Здесь надо в третьем параметре указывать номер z-переменной с описанием, а не номер картинки

Я думал, описание стандартное генерируется. Или здесь нужно сначала обьявить переменную, присвоить ей текст, а потом использовать?

(13.04.2010 13:07)Bes Wrote:  P.S.: а что такое UN:G2/$/1/# ???

Это замена картинки специализации. Вроде работает.

У меня подозрение, что просто конфликтует с встроенными скриптами вогификации, и в итоге получается первоначальное значение Unsure
13.04.2010 17:09
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 4197
Post: #525

(13.04.2010 17:09)Harvester Wrote:  Я думал, описание стандартное генерируется. Или здесь нужно сначала обьявить переменную, присвоить ей текст, а потом использовать?
Я не про то..
Вот, вы пишите..
Quote:У меня не совсем корректно работает код:
Код:
!#UN:G2/152/2/245;
А теперь смотрим справку:
Quote:G2/#1/#2/#3;
#3- is z-variable index (0 to restore) if #2=2
А вы там используете, видимо, номер картинки 245..

Назначте свою, неиспользуемую в стандартных скриптах, z-переменную (к примеру, z850)..

P.S.: насчёт вашего позозрения - а вы назначьте смену спецухи не через инструкции, а, например в теле триггера !?PIYes



Image: 237506073ac7.gif
13.04.2010 22:39
Visit this user's website Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2020 MyBB Group