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 | 
	
		
	 |