Current time: 25.11.2024, 23:02 Hello There, Guest! (LoginRegister)
Language: english | russian  

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

Posts: 1809
Post: #511

(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: 16657
Post: #512

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

Posts: 7107
Post: #513

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


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

Posts: 5422
Post: #514

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

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

Sorry
23.03.2010 12:34
Visit this user's website Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #515

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

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: #516

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

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: 5422
Post: #517

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

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

P.S.: а что такое UN:G2/$/1/# ???
(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: #518

(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: 5422
Post: #519

(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
13.04.2010 22:39
Visit this user's website Find all posts by this user Quote this message in a reply
Harvester Offline

Posts: 20
Post: #520

Bes, спасибо, попробую испытать, отпишусь Ab

З.Ы. Что-то почта перестала доставлять сообщения о новых ответах Bad
16.04.2010 19:04
Find all posts by this user Quote this message in a reply
Harvester Offline

Posts: 20
Post: #521

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

Заработало, правда, ради этого пришлось отключить вогификацию. BadХотелось чтобы были доступны все опции вогификации, только с некоторыми изменениями. Может кто что уже придумал?

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

Не могу сообразить, как его использовать Bad

(16.04.2010 19:44)etoprostoya Wrote:  Может фильтрует в "Спам? Или это так форум работает

Форум как-будто услышал мои слова. Сразу посыпались сообщения. Sm
(This post was last modified: 19.04.2010 14:27 by Harvester.)
19.04.2010 14:26
Find all posts by this user Quote this message in a reply
DracoLich Offline

Posts: 251
Post: #522

!?PI;
!!HE152:X6/138/139/143;
!!UN:G2/152/1/245 G2/152/2/245 G2/152/3/245; -???
что за параметр 1
2 это текст
3 это картинка
20.04.2010 08:49
Visit this user's website Find all posts by this user Quote this message in a reply
Harvester Offline

Posts: 20
Post: #523

DracoLich, спасибо, проверю.
Я то пытался записать команду в одну строчку 147
20.04.2010 10:23
Find all posts by this user Quote this message in a reply
DracoLich Offline

Posts: 251
Post: #524

ну, если имеешь в виду именно команды (т.е. UN:G2/152/1/245G2/152/2/245G2/152/3/245; то это ничего страшного. Парсер позволяет даже конструкции нечитабельного вида !!UNG2/152/1/245G2/152/2/245G2/152/3/245). А вот мешать ресиверы друг с другом естесственно не надо
20.04.2010 13:04
Visit this user's website Find all posts by this user Quote this message in a reply
Harvester Offline

Posts: 20
Post: #525

(20.04.2010 08:49)DracoLich Wrote:  !?PI;
!!HE152:X6/138/139/143;
!!UN:G2/152/1/245 G2/152/2/245 G2/152/3/245; -???
...

Работает, но ограничено, вот код:

Code:
!?PI;
!!VRz850:S^Sir Roland can upgrade peasants to rogues^;
!!UN:G2/152/1/245G2/152/2/z850G2/152/3/245;
!!HE152:X6/138/139/143;

В начале игры запускается вогификация. Новый текст не появляется.
Апгрейд работает, но после второй битвы пропадает.

Думаю, может исходные скрипты править, но дело это неблагодарное Bad
21.04.2010 13:28
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-2024 MyBB Group