(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'у, а к команде ВоГа и ТЕ.
Bes, зачем тебе дефрагментация? Она автоматом при щелчке на кнопку прокрутки влево. Удаление арта корректное есть в коде Феникса. А алгоритмов дефрагментации основных два:
1) До тех пор, пока поиск пустого слота не вернёт ошибку определяем размер сплошного блока за пустым местом (не слотом!) и переносим его влево к сплошному ряду.
2) Проходимся в цикле по всем слотам, при этом Left указывает на текущую левую границу сплошного ряда артефактов, а i - на индекс слота (0..63). Если очередной слот не пустой, то A[Left]:=A[i]; A[i]:=-1; Left++; Иными словами, если слот не пустой, то массив артов в индексе Left получает значение арта массива в индексе i. А слот, на который указывает i обнуляется (или -1 забивается, что вернее).
можно переносить все блоки одновременно (в одном цикле), при этом пустые ячейки добавляют +1 к размеру пустоты. это сдвиг на х позиций влево, где х меняется по ходу сдвига.
Добавлено:
хотя если порядок артов не важен, то алгоритм этопростоего будет работать намного быстрее.
Спасибо за советы.
1. Удаление арта корректное в коде ФМ конечно есть, но вот в чём проблема - там удаляет первый попавшийся такой арт в рюкзаке, что весьма неподходяще в случе когда нам надо удалить второй такой же арт дальше по цепочке.. в итоге у нас не закроется "прогал" в середине рюкзака, а появится ещё один но только ранее (в уже отдефрагментированной части)
2. Я благодарен за столь продуманные алгоритмы, но, к сожалению, не имея знаний в программировании, мне весьма размыто представляется что стоит за словами "блок", "ряд" и что подразумевается под "перенос блока". Хотя бы приведите маленький пример адаптированный под "парадигмы ЕРМ", ну скажем на таком примере: в рюкзаке 2 артa..
[
-1][
-1][
12][
45][
-1]

адаптированный не приведу, но на псевдокоде - пожалуйста:
Code:
счетчик=1
граница=1
вечный цикл:
пока счетчик<=количество_слотов и слот(счетчик) пустой:
счетчик=счетчик+1
конец цикла
если счетчик>количество_слотов: выход из цикла
слот(граница)=слот(счетчик)
граница=граница+1
конец цикла
У меня не совсем корректно работает код:
Code:
!#HE152:X6/138/139/143;
!#UN:G2/152/1/245G2/152/2/245G2/152/3/245;
Должно быть:
Специальность — апгрейд крестьян и хальфлингов до воров. Картинка специальности — изображение вора, и соответствующий текст.
Получается только картинка. Описание старое. Апгрейд не работает.
Как можно добиться желаемого?
заметка по UN:G2/$/2/#;
Здесь надо в третьем параметре указывать номер z-переменной с описанием, а не номер картинки
P.S.: а что такое UN:G2/$/1/# ???
(13.04.2010 13:07)Bes Wrote: [ -> ]заметка по UN:G2/$/2/#;
Здесь надо в третьем параметре указывать номер z-переменной с описанием, а не номер картинки
Я думал, описание стандартное генерируется. Или здесь нужно сначала обьявить переменную, присвоить ей текст, а потом использовать?
(13.04.2010 13:07)Bes Wrote: [ -> ]P.S.: а что такое UN:G2/$/1/# ???
Это замена картинки специализации. Вроде работает.
У меня подозрение, что просто конфликтует с встроенными скриптами вогификации, и в итоге получается первоначальное значение

(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.: насчёт вашего позозрения - а вы назначьте смену спецухи не через инструкции, а, например в теле триггера !?PI

Bes, спасибо, попробую испытать, отпишусь
З.Ы. Что-то почта перестала доставлять сообщения о новых ответах

(13.04.2010 22:39)Bes Wrote: [ -> ]...
Назначте свою, неиспользуемую в стандартных скриптах, z-переменную (к примеру, z850)..
Заработало, правда, ради этого пришлось отключить вогификацию.

Хотелось чтобы были доступны все опции вогификации, только с некоторыми изменениями. Может кто что уже придумал?
(13.04.2010 22:39)Bes Wrote: [ -> ]...
P.S.: насчёт вашего позозрения - а вы назначьте смену спецухи не через инструкции, а, например в теле триггера !?PI
Не могу сообразить, как его использовать
(16.04.2010 19:44)etoprostoya Wrote: [ -> ]Может фильтрует в "Спам? Или это так форум работает
Форум как-будто услышал мои слова. Сразу посыпались сообщения.

!?PI;
!!HE152:X6/138/139/143;
!!UN:G2/152/1/245 G2/152/2/245 G2/152/3/245; -???
что за параметр 1
2 это текст
3 это картинка
DracoLich, спасибо, проверю.
Я то пытался записать команду в одну строчку

ну, если имеешь в виду именно команды (т.е. UN:G2/152/1/245G2/152/2/245G2/152/3/245; то это ничего страшного. Парсер позволяет даже конструкции нечитабельного вида !!UNG2/152/1/245G2/152/2/245G2/152/3/245). А вот мешать ресиверы друг с другом естесственно не надо
(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;
В начале игры запускается вогификация. Новый текст не появляется.
Апгрейд работает, но после второй битвы пропадает.
Думаю, может исходные скрипты править, но дело это неблагодарное
