GhostManSD
Posts: 1054
|
Обновил архив. Изменения:
1) Обновлена программа для подсчёта
2) Обновлён скрипт
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
(This post was last modified: 18.09.2010 20:57 by GhostManSD.)
|
|
07.07.2010 22:54 |
|
Sav
Posts: 2180
|
Изменил скрипт: теперь всё нормально с сопротивлением, также постарался сделать более понятными комментарии, избавил их от опечаток.
Ссылку удалил. Далее в теме есть новая версия.
Ссылку и текст в сообщении выше (№212) тоже обновил. Добавлено:
Эх, GhostManSD, я чуть-чуть опоздал, а ты чуть-чуть поспешил...
(This post was last modified: 08.07.2010 20:00 by Sav.)
|
|
07.07.2010 22:57 |
|
gamecreator
Posts: 7107
|
|
07.07.2010 23:38 |
|
Sav
Posts: 2180
|
GhostManSD Wrote:Что оформил? Формулу или сообщение?
По-моему gamecreator имеет ввиду написать результаты после каждого месяца, как в 139 посте.
|
|
08.07.2010 00:18 |
|
GhostManSD
Posts: 1054
|
А gamecreator не наделён руками, дабы скачать программу и посмотреть? Нет, похоже, здесь что-то другое.
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
|
|
08.07.2010 03:27 |
|
gamecreator
Posts: 7107
|
|
08.07.2010 15:06 |
|
Sav
Posts: 2180
|
Чуть-чуть изменил программку по просьбе GhostManSD. Теперь она снова показывает результаты на момент начала последнего дня.
Последняя версия лежит в драконьем архиве.
Предыдущую ссылку также обновил.
(This post was last modified: 10.07.2010 15:07 by Sav.)
|
|
08.07.2010 18:04 |
|
Sav
Posts: 2180
|
Обновил скрипт: сделал формулу cr=2,5*(корень из dr) (квадратный корень реализовал способом, подсказанным gamecreatorом), также общие переменные, где возможно, заменил триггерными.
Скрипт:
Code:
ZVSE
;Кристальный дракон.
!#MA : X133/d+131056;Делаем кристального дракона неживым и неподверженным боевому духу и страху.
;Убираем гномье сопротивление.
!?MR2;Когда срабатывает гномье сопротивление.
!!MR : M?y-1;Запоминаем, у кого срабатывает сопротивление.
!!MR&y-1=133 : F0;Если сопротивление сработало у кристальных драконов, делаем шанс на срабатывание нулевым.
;Добавляем сопротивление, как у големов.
!?MR1;При срабатывании големового сопротивления.
!!MR : M?y-1 D?y-2;Запоминаем, у кого срабатывает сопротивлениеи его урон.
!!VRy-2 : Sy-2:2;Делим запомненный урон на 2.
!!MR&y-1=133 : Fy-2;Если сопротивление сработало у кристальных драконов, изменяем урон на новое, (уменьшенное в 2 раза) значение.
;Прибавка кристаллов по новой формуле.
!#TM65:S8/999/7/255;Таймер каждому игроку на первый день каждой недели, начиная со второй.
!?TM65;При срабатывании таймера.
!!FU9005 : P;Вызываем функцию прибавки кристаллов.
;Функция счёта кристаллов, прибавляемых игроку.
!?FU9005;Функция прибавки кристаллов.
!!VRv6001 : C0;Очищаем переменную для счёта общего кол-ва кристальных драконов.
!!OW : O-1/?y9/?y1/?y2/?y3/?y4/?y5/?y6/?y7/?y8;Записываем номера активных героев игрока в переменные.
!!DO9001/1/y9/1 : Py1/y2/y3/y4/y5/y6/y7/y8;Запускаем цикл, проверяющий героев игрока.
!!OW : C?y1;Считываем цвет игрока.
!!UN : U98/-1/?y2;Считаем количество городов на карте.
!!VRy2 : Sy2-1;Считаем номер последнего города.
!!DO9003/0/y2/1 : Py1;Запускаем цикл, проверяющий все города на карте.
!!OW&v6001>0 : R-1/4/d-3;Забираем 3 кристалла у игрока, если у него есть кристальные драконы.
!!FU9006 : Pv6001/?v6001;Вызываем функцию, вычисляющую целочисленный квадратный корень из числа кристальных драконов (с округлением вниз).
!!VRv6001 : Sv6001*5:2;Умножаем целочисленный квадратный корень из числа кристальных драконов на 2,5.
!!OW : R-1/4/dv6001;Прибавляем кристаллы за кристальных драконов.
;Функции счёта кристальных драконов в городе.
!?FU9003;Функция определения хозяина города и проверки слотов его гарнизона или армии гарнизонного героя.
!!CA0/x16 : O?y1;Узнаём цвет хозяина города.
!!CA0/x16 : H0/?i;Проверяем, нет ли героя на гарнизоне города, если есть, запоминаем его номер.
!!DO9004/0/6/1&x1=y1/i<0 : Px16;Если хозяин города - текущий игрок, и на гарнизоне городе нет героя, запускаем цикл, считающий кристальных драконов в городе.
!!DO9002/0/6/1&x1=y1/i>=0 : Pi;Если хозяин города - текущий игрок, и на гарнизоне города городе есть герой, запускаем цикл, считающий кристальных драконов в армии этого героя.
!?FU9004;Функция вычисления кол-ва кристальных драконов в слоте гарнизона города.
!!CA0/x1 : M2/x16/?y1/?y2;Считываем информацию о типе существ в слоте гарнизона города и их количестве.
!!VRv6001&y1=133 : Sv6001+y2;Если существа - кристальные драконы, то прибавляем их количество к переменной для счёта общего кол-ва драконов.
;Функции вычисления кол-ва кристальных драконов у героя.
!?FU9001;Функция проверки слотов армии героя.
!!DO9002/0/6/1 : Pxx16;Запускаем цикл, проверяющий количество кристальных драконов в слотах армии героя.
!?FU9002;Функция вычисления кол-ва кристальных драконов в слоте армии героя.
!!HEx1 : C0/x16/?y1/?y2;Считываем информацию о типе существ в слоте армии героя и их количестве.
!!VRv6001&y1=133 : Sv6001+y2;Если существа - кристальные драконы, то прибавляем их количество к переменной для счёта общего кол-ва драконов.
;Функции вычисления целочисленного квадратного корня числа (с округлением вниз).
!?FU9006;Функция настройки и запуска цикла вычисления целочисленного квадратного корня числа.
!!DO9007/1/x1/1 : Px1/?y1/x1/-1;Настраиваем первую разность и предпервое нечётное число и запускаем цикл, вычисляющий целочисленный квадратный корень числа.
!!VRx2 : Sy1;Возвращаем значение целочисленного квадратного корня.
!?FU9007;Функция
!!VRx4 : Sx4+2;Вычисляем новое текущее нечётное число (следующее за предыдущим).
!!VRx3 : Sx3-x4;Отнимаем текущее нечётное число от текущей разности, что даёт новую текущую разность.
!!VRx2 : Sx4:2;Записываем половину текущего нечётного числа (с округлением вниз) в переменную возвращаемого значения.
!!VRx16&x3<0 : Sx1;Если текущая разность отрицательна, завершаем цикл.
Ссылку удалил. Далее в теме есть новая версия.
Формула, скорее всего окончательная, зависит от мнения gamecreatorа.
(This post was last modified: 09.07.2010 20:30 by Sav.)
|
|
08.07.2010 19:58 |
|
GhostManSD
Posts: 1054
|
Sav, у меня вылет при загрузке игры. Добавлено:
Вылет, похоже, связан с прибавкой кристаллов. В первой части скрипта (сделать из драконов големов) ошибок нет.
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
(This post was last modified: 09.07.2010 16:20 by GhostManSD.)
|
|
09.07.2010 16:16 |
|
GhostManSD
Posts: 1054
|
Камрады, раз мы меняем свойства драконов, значит, игрок должен об этом знать. Хотя бы по клику ПКМ на существе. Посему выкладываю набитое на скорую руку приложение к скрипту от Sav.
Code:
ZVSE
!?PI; Пост-триггер
*Настройка текстовых переменных*
!!VRz753:S^Страшный.^; Лазурный дракон
!!VRz754:S^Неживой. Бесстрашный. Природа голема 50%. Производит кристаллы.^; Кристальный дракон
!!VRz755:S^Волшебное зеркало. Колдует наступательную магию.^; Волшебный дракон
!!VRz756:S^Кислотное дыхание. Регенерация.^; Ржавый дракон
!!VRz757:S^Атакует всех вокруг.^; Горыныч
*Изменение описаний монстров*
!!UN:G1/132/2/z753; Установить описание для лазурного дракона
!!UN:G1/133/2/z754; Установить описание для кристального дракона
!!UN:G1/134/2/z755; Установить описание для волшебного дракона
!!UN:G1/135/2/z756; Установить описание для ржавого дракона
!!UN:G1/168/2/z757; Установить описание для горыныча
Как видите, мелочь, а всё же нужно. Переменные взял неиспользуемые. На тот случай, если кто забудет, выкладываю сюда также сопроводительную картинку.
Добавлено:
Также из этого ряда свободны ещё z758 и z759.
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
(This post was last modified: 09.07.2010 18:10 by GhostManSD.)
|
|
09.07.2010 18:04 |
|
Sav
Posts: 2180
|
Вот, значит, как менять описания. А то я так и не смог этого найти.
GhostManSD, тогда по мере написания основного скрипта я буду вставлять эти описания (чтобы не нарушать структуры), хорошо?
P.S. Можно было и не занимать столько переменных, а прогонять все описания через одну.
(This post was last modified: 09.07.2010 19:21 by Sav.)
|
|
09.07.2010 19:04 |
|
Sav
Posts: 2180
|
Изменил скрипт. Исправил ошибки в вычислении квадратного корня и добавил описание кристального дракона (я изменил его под свой вкус, на сколько влезло в выделенное в игре место, но, если не нравится, могу вернуть описание GhostManSD).
Code:
ZVSE
;Кристальный дракон.
!#MA : X133/d+131056;Делаем кристального дракона неживым и неподверженным боевому духу и страху.
;Настройка описания для кристального дракона.
!?PI;Триггер на пост-инструкцию.
!!VRz754 : S^Неживой. Бесстрашен, нет боевого духа. Сопротивление магии 50%. Производит кристаллы раз в неделю.^;Записываем описание кристального дракона в переменную.
!!UN : G1/133/2/z754;Установить описание для кристального дракона.
;Убираем гномье сопротивление.
!?MR2;Когда срабатывает гномье сопротивление.
!!MR : M?y-1;Запоминаем, у кого срабатывает сопротивление.
!!MR&y-1=133 : F0;Если сопротивление сработало у кристальных драконов, делаем шанс на срабатывание нулевым.
;Добавляем сопротивление, как у големов.
!?MR1;При срабатывании големового сопротивления.
!!MR : M?y-1 D?y-2;Запоминаем, у кого срабатывает сопротивлениеи его урон.
!!VRy-2 : Sy-2:2;Делим запомненный урон на 2.
!!MR&y-1=133 : Fy-2;Если сопротивление сработало у кристальных драконов, изменяем урон на новое, (уменьшенное в 2 раза) значение.
;Прибавка кристаллов по новой формуле.
!#TM65 : S8/999/7/255;Таймер каждому игроку на первый день каждой недели, начиная со второй.
!?TM65;При срабатывании таймера.
!!FU9005 : P;Вызываем функцию прибавки кристаллов.
;Функция счёта кристаллов, прибавляемых игроку.
!?FU9005;Функция прибавки кристаллов.
!!VRv6001 : C0;Очищаем переменную для счёта общего кол-ва кристальных драконов.
!!OW : O-1/?y9/?y1/?y2/?y3/?y4/?y5/?y6/?y7/?y8;Записываем номера активных героев игрока в переменные.
!!DO9001/1/y9/1 : Py1/y2/y3/y4/y5/y6/y7/y8;Запускаем цикл, проверяющий героев игрока.
!!OW : C?y1;Считываем цвет игрока.
!!UN : U98/-1/?y2;Считаем количество городов на карте.
!!VRy2 : Sy2-1;Считаем номер последнего города.
!!DO9003/0/y2/1 : Py1;Запускаем цикл, проверяющий все города на карте.
!!OW&v6001>0 : R-1/4/d-3;Забираем 3 кристалла у игрока, если у него есть кристальные драконы.
!!FU9006 : Pv6001/?v6001;Вызываем функцию, вычисляющую целочисленный квадратный корень из числа кристальных драконов (с округлением вниз).
!!VRv6001 : Sv6001*5:2;Умножаем целочисленный квадратный корень из числа кристальных драконов на 2,5.
!!OW : R-1/4/dv6001;Прибавляем кристаллы за кристальных драконов.
;Функции счёта кристальных драконов в городе.
!?FU9003;Функция определения хозяина города и проверки слотов его гарнизона или армии гарнизонного героя.
!!CA0/x16 : O?y1;Узнаём цвет хозяина города.
!!CA0/x16 : H0/?i;Проверяем, нет ли героя на гарнизоне города, если есть, запоминаем его номер.
!!DO9004/0/6/1&x1=y1/i<0 : Px16;Если хозяин города - текущий игрок, и на гарнизоне городе нет героя, запускаем цикл, считающий кристальных драконов в городе.
!!DO9002/0/6/1&x1=y1/i>=0 : Pi;Если хозяин города - текущий игрок, и на гарнизоне города городе есть герой, запускаем цикл, считающий кристальных драконов в армии этого героя.
!?FU9004;Функция вычисления кол-ва кристальных драконов в слоте гарнизона города.
!!CA0/x1 : M2/x16/?y1/?y2;Считываем информацию о типе существ в слоте гарнизона города и их количестве.
!!VRv6001&y1=133 : Sv6001+y2;Если существа - кристальные драконы, то прибавляем их количество к переменной для счёта общего кол-ва драконов.
;Функции вычисления кол-ва кристальных драконов у героя.
!?FU9001;Функция проверки слотов армии героя.
!!DO9002/0/6/1 : Pxx16;Запускаем цикл, проверяющий количество кристальных драконов в слотах армии героя.
!?FU9002;Функция вычисления кол-ва кристальных драконов в слоте армии героя.
!!HEx1 : C0/x16/?y1/?y2;Считываем информацию о типе существ в слоте армии героя и их количестве.
!!VRv6001&y1=133 : Sv6001+y2;Если существа - кристальные драконы, то прибавляем их количество к переменной для счёта общего кол-ва драконов.
;Функции вычисления целочисленного квадратного корня числа (с округлением вниз).
!?FU9006;Функция настройки и запуска цикла вычисления целочисленного квадратного корня числа.
!!VRy1 : Sx1+2;
!!DO9007/1/y1/2 : Py1/?y1/x1;Настраиваем первую разность и запускаем цикл, вычисляющий целочисленный квадратный корень числа.
!!VRx2 : Sy1;Возвращаем значение целочисленного квадратного корня.
!?FU9007;Функция шага вычисления целочисленного квадратного корня числа.
!!VRx3 : Sx3-x16;Отнимаем текущее нечётное число от текущей разности, что даёт новую текущую разность.
!!VRx2&x3<0 : Sx16:2;Если текущая разность отрицательна, записываем половину текущего нечётного числа (с округлением вниз) в переменную возвращаемого значения.
!!VRx16&x3<0 : Sx1;Если текущая разность отрицательна, завершаем цикл.
Последняя версия лежит в драконьем архиве.
GhostManSD, может теперь скрипт у тебя заработает. У меня он работает прекрасно.
Выложенный мной erm-файл скрипта надо поместить в Data/s. Карту надо вогифицировать. Попробуй отключить все скрипты в ВоГ-опциях. Может быть у тебя устаревшая версия WoG или, наоборот, стоит какой-нибудь мод/скрипт?
P. S. Прошу прощения, за то, что говорю очевидные вещи, но я не могу найти другой причины, из-за которой скрипт бы у тебя не работал.
(This post was last modified: 10.07.2010 15:07 by Sav.)
|
|
09.07.2010 20:28 |
|
Sav
Posts: 2180
|
Специально для gamecreatorа расписываю формулу cr = 2,5 * корень из dr на 5 месяцев:
(День 29) Месяц: 2, неделя: 1, день: 1. Драконов: 1; кристаллов: 8.
(День 57) Месяц: 3, неделя: 1, день: 1. Драконов: 2; кристаллов: 6.
(День 85) Месяц: 4, неделя: 1, день: 1. Драконов: 3; кристаллов: 4.
(День 113) Месяц: 5, неделя: 1, день: 1. Драконов: 4; кристаллов: 5.
(День 141) Месяц: 6, неделя: 1, день: 1. Драконов: 6; кристаллов: 5.
(День 29) Месяц: 2, неделя: 1, день: 1. Драконов: 4; кристаллов: 6.
(День 57) Месяц: 3, неделя: 1, день: 1. Драконов: 9; кристаллов: 4.
(День 85) Месяц: 4, неделя: 1, день: 1. Драконов: 15; кристаллов: 0.
(День 113) Месяц: 5, неделя: 1, день: 1. Драконов: 21; кристаллов: 5.
(День 141) Месяц: 6, неделя: 1, день: 1. Драконов: 28; кристаллов: 5.
(День 29) Месяц: 2, неделя: 1, день: 1. Драконов: 8; кристаллов: 0.
(День 57) Месяц: 3, неделя: 1, день: 1. Драконов: 16; кристаллов: 2.
(День 85) Месяц: 4, неделя: 1, день: 1. Драконов: 25; кристаллов: 8.
(День 113) Месяц: 5, неделя: 1, день: 1. Драконов: 36; кристаллов: 2.
(День 141) Месяц: 6, неделя: 1, день: 1. Драконов: 47; кристаллов: 8.
(This post was last modified: 10.07.2010 15:14 by Sav.)
|
|
09.07.2010 20:39 |
|
GhostManSD
Posts: 1054
|
Sav, поясняю, почему я сделал не такое ёмкое описание, как у тебя. Твоё описание не влезает в окошко информации о монстре.
Скрипт заработал. 4001 дракон дал +150 кристаллов за неделю. Добавлено:
Sav, одна просьба. Не выпускай всё это пока что цельным скриптом: мы же драконов по очереди делаем. Вот потом уже давай скомпонуем. Добавлено:
Sav, кстати, ты намеренно ограничил число драконов тысячью?
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
(This post was last modified: 09.07.2010 20:53 by GhostManSD.)
|
|
09.07.2010 20:49 |
|
Sav
Posts: 2180
|
Моё описание как раз влезает, специально проверял (иначе я бы сделал его больше).
4001 дракон должен дать 157 кристаллов, нет?
Насчёт ограничения - не понял, но я ничего такого не делал.
Скрипт кристального дракона уже готов, разве нет? Поэтому я и вставил туда описание.
Насчёт остальных скриптов - просто давай договоримся, кто что делает.
|
|
09.07.2010 21:12 |
|