| Sav   
 Posts: 2180
 
 | 
			| 
 
				Для переменных нужно выделять память.
			 |  | 
	| 11.09.2010 18:07 |  | 
	
		| GhostManSD   
   Posts: 1054
 
 | 
			| 
 
				Для функций её нашли, а переменные не менее важны. К тому же, вдруг это можно реализовать в отдельной DLL. 
 Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
 |  | 
	| 11.09.2010 19:13 |  | 
	
		| Sav   
 Posts: 2180
 
 | 
			| 
 
				Каждая переменная, даже неиспользуемая, - это область памяти, равная сколько-то (v по-моему 4) байтов. Номер функции же - это просто название и затраты памяти на увеличение их количества незначительны, если я правильно понимаю.
			 |  | 
	| 11.09.2010 19:39 |  | 
	
		| Berserker   
   
   Posts: 16786
 
 |  | 
	| 11.09.2010 20:20 |  | 
	
		| ROSOMAHA   
 Posts: 67
 
 | 
			| 
 
				какая версия героев WoG вышла уже последняя? Нигде не могу актуальной инфы на эту тему найти. Плиз напишите и дайте ссылку.
			 |  | 
	| 12.09.2010 11:50 |  | 
	
		| Sav   
 Posts: 2180
 
 | 
			| 
 
				3.58f + Era. В личку кинул (очень  ) краткое описание и ссылки.
			 |  | 
	| 12.09.2010 11:53 |  | 
	
		| etoprostoya   
 Posts: 1809
 
 | 
			| 
 
				 (11.09.2010 02:17)GrayFace Wrote:  Большинство. Есть несколько несовместимостей, я их где-то здесь писал. 2 очень мелкие, а в одну могут попасться какие-то скрипты - в 3.58 локальные переменные инициализировались 0 при каждом вызове триггера, а в 3.59 - не инициализируются. Еще, вероятно, несовместимостей добавят баги  
Разве большинство? Что-то мне подсказывает, что в большинство серьёзных модов и карт-модов уже не возможно будет поиграть, так как там часто используются переменные, которые изначально предполагаются равными нулю.
			 |  | 
	| 13.09.2010 01:22 |  | 
	
		| GhostManSD   
   Posts: 1054
 
 | 
			| 
 
				Можно с самого начала запустить цикл, устанавливающий все переменные на 0.
 !?FU99999;
 !!VRvx16:S0;
 !!VRzx16&x16<1001:S^^;
 !#DO99999/1/10000/1:P;
 
 Как-то так. При условии, что количество v- и z- переменных не увеличат (а хотелось бы побольше).
 В идеале, если такое не повредит работоспособности игры, такое можно вшить в игру. Я не знаю, как это выглядит на LUA, поэтому написал на ERM.
 
 Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
 |  | 
	| 13.09.2010 01:32 |  | 
	
		| etoprostoya   
 Posts: 1809
 
 | 
			| 
 
				 (13.09.2010 01:32)GhostManSD Wrote:  Можно с самого начала запустить цикл, устанавливающий все переменные на 0. 
Для этого нужно изменять скрипты мода или карты. Не каждый игрок это сможет. Да и захочет ли? Проще остаться на 3.58f, в которой нет никаких проблем с такими скриптами.
			 |  | 
	| 13.09.2010 01:50 |  | 
	
		| GhostManSD   
   Posts: 1054
 
 | 
			| 
 
				etoprostoya, ты просто не дочитал до конца. Я описал сам принцип, подразумевая, что этот принцип будет вшит намертво в загрузку игры. Или хотя бы в загрузку карты.Сейчас, кстати, понял, что лопухнулся. Сергей писал не про стандартные переменные, а про переменные y-# и y#. А они, к сожалению или счастью, для каждого триггера свои, и изменение их по принципу, изложенному выше (т.е. в отдельной функции), не изменит их в другой функции (т.е. с отличным от нуля номером FU#).
 
 Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
 |  | 
	| 13.09.2010 02:03 |  | 
	
		| GhostManSD   
   Posts: 1054
 
 | 
			| 
 
				Кстати, локальные переменные предназначены для длительного хранения? Например, я установил переменные y1 и y-1 для объекта x/y/l. Если я поброжу по карте месяцок-другой, активирую пару скриптов и вернусь к этому же объекту, я получу то самое значение?
			 
 Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
 |  | 
	| 13.09.2010 02:09 |  | 
	
		| Sav   
 Posts: 2180
 
 | 
			| 
 
				А зачем вообще не обнулять их? В этом есть какой-то смысл?
			 |  | 
	| 13.09.2010 09:33 |  | 
	
		| GrayFace   
   
   Posts: 1233
 
 | 
			| 
 
				 (13.09.2010 01:22)etoprostoya Wrote:  Разве большинство? Что-то мне подсказывает, что в большинство серьёзных модов и карт-модов уже не возможно будет поиграть, так как там часто используются переменные, которые изначально предполагаются равными нулю. 
Именно локальные предполагаются равными нулю? 
  (13.09.2010 01:50)etoprostoya Wrote:   (13.09.2010 01:32)GhostManSD Wrote:  Можно с самого начала запустить цикл, устанавливающий все переменные на 0.Для этого нужно изменять скрипты мода или карты. Не каждый игрок это сможет. Да и захочет ли? Проще остаться на 3.58f, в которой нет никаких проблем с такими скриптами. 
На самом деле, можно будет даже для карт, которые не вогифицируются, выполнить код при загрузке.
  (13.09.2010 02:09)GhostManSD Wrote:  Кстати, локальные переменные предназначены для длительного хранения? Например, я установил переменные y1 и y-1 для объекта x/y/l. Если я поброжу по карте месяцок-другой, активирую пару скриптов и вернусь к этому же объекту, я получу то самое значение? 
У объектов нет локальных переменных. Для них есть переменные !!PO.
  (13.09.2010 09:33)Sav Wrote:  А зачем вообще не обнулять их? В этом есть какой-то смысл? 
Можно использовать их на протяжении нескольких триггеров. Особенно, с новой командой GoTo:
 
Code:
 !?FU255;!!VRy1:S100;
 
 !?FU255&y1>0;
 (...)
 !!VRy1:-1;
 !!FU:E-1; [goto]
 
В 3.58 после каждой !?FU255 локальные переменные занулялись. 
Еще увеличивается быстродействие.
 
В общем, если есть карты и моды, для которых это важно, наверное, придется вернуть зануление. Мне все-равно уже мало нравится этот вариант GoTo.
			 
 Вся правда обо мне
 |  | 
	| 15.09.2010 06:29 |  | 
	
		| etoprostoya   
 Posts: 1809
 
 | 
			| 
 
				Quote:Именно локальные предполагаются равными нулю? 
Да.
 Quote:В общем, если есть карты и моды, для которых это важно, наверное, придется вернуть зануление. Мне все-равно уже мало нравится этот вариант GoTo. 
Это хорошо.    |  | 
	| 15.09.2010 10:42 |  |