| 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 ).
 Последняя версия лежит в драконьем архиве.
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;Если текущая разность отрицательна, завершаем цикл.
, может теперь скрипт у тебя заработает. У меня он работает прекрасно. 
Выложенный мной 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 |  |