ElfbI 
 
 
		
		
		
			
			
			
 
 
			
Posts: 325 
	
		
	 | 
	
		
			
			 
			
				Berserker, кто по Era Scripts Rus может изменения вносить? 
опция 790 mana arrow 
строка 23:
 
Разве должно быть не:
 
Без второго параметра при касте вылезает часть интерфейса.
			  
			
			
  
The dreams you kill will break your heart
			
		 |  
	 
 | 
	| 23.08.2019 23:06 | 
	
		
	 | 
	
		
		ElfbI 
 
 
		
		
		
			
			
			
 
 
			
Posts: 325 
	
		
	 | 
	
		
			
			 
			
				daemon_n, хорошо, учту.
			 
			
			
  
The dreams you kill will break your heart
			
		 |  
	 
 | 
	| 24.08.2019 01:18 | 
	
		
	 | 
	
		
		igrik 
 
 
		
		
		
			
			
			
 
 
			
Posts: 2821 
	
		
	 | 
	
		
 | 
	| 03.09.2019 17:12 | 
	
		
	 | 
	
		
		Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
 | 
	| 03.09.2019 19:58 | 
	
		
	 | 
	
		
		PerryR 
 
 
		
		
		
			
			
			 
			
Posts: 460 
	
		
	 | 
	
		
			
			 
			
				Enhanced Warmachines I 
apart from that I found no other, but I will keep looking, I think there are some more
			  
			
			
			
		 |  
	 
 | 
	| 03.09.2019 20:40 | 
	
		
	 | 
	
		
		Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
 | 
	| 03.09.2019 21:48 | 
	
		
	 | 
	
		
		igrik 
 
 
		
		
		
			
			
			
 
 
			
Posts: 2821 
	
		
	 | 
	
		
			
			 
			
				 (03.09.2019 19:58)Berserker Wrote:  igrik, обе группы временные. На вскидку не удалось найти место, где использовались бы в одном триггере и те, и другие. Если кто найдёт — буду благодарен. 
Для более простого понимания примем что  y-1 это  y-1 ... y-100, а  y1 это  y1...y100
Разве y-1 временная? 
На сколько я знаю y-1 это глобальная переменная для данного для неё скрипта (т.е. в одном файле скрипта она будет иметь одинаковое значения для всех триггеров. А в разных файлах скриптов она будет разная). А y1 временная, которая будет иметь свои значения для каждого триггера.
 UPD: ага, простейший тест показал, что это уже не так. Хм. Буду знать. Давно ли уже y-1 стала временной переменной?
			  
			
			
  
game bug fixes extended.dll  ||  My Plugins  ||  My GitHub
			
		 |  
	 
 | 
	| 04.09.2019 13:28 | 
	
		
	 | 
	
		
		PerryR 
 
 
		
		
		
			
			
			 
			
Posts: 460 
	
		
	 | 
	
		
			
			 
			
				What would happen with the spell function? 
any script that uses this function expects y-99 to hold the spell :/  not sure if it would also work with y99.
			  
			
			
			
				
(This post was last modified: 04.09.2019 14:02 by PerryR.)
 
			 
		 |  
	 
 | 
	| 04.09.2019 13:57 | 
	
		
	 | 
	
		
		Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
			
			 
			
				igrik, ЕРМ руководство всегда было точно в отношении отрицательных y-переменных: 
y-1...y-100 Trigger-based local variables. Integer vars 
y1 through y100 Function local variables (unique for each function) 
 
То есть, локальные для триггеров переменные. 
А y1+..y+100 — локальные для триггеров-функций. 
 
Этот бардак — рассадник багов. Поскольку функции не считались триггерами, а значит в них нет сохранения/восстановления отрицательных y-переменных. С другой стороны, в обычных триггерах не сохранялись/восстанавливались положительные y-переменные. То есть функция рассчитывает, что её y-переменные никто не тронет, генерирует событие !?BA, где переменные спокойно портятся. 
 
Было принято стратегическое решение для ВСЕХ событий/триггеров/функций сохранять и восстанавливать положительные y-переменные, сделав их всегда локальными. 
А отрицательные y-переменные предать анафеме. 
 
Воговская FU$spell$ рассматривает отрицательные y-переменные как принадлежащие триггеру, который вызвал функцию (так и есть!), и использует их как глобальную память для возвращения результата. 
 
Это ещё не всё. 
z-1 through z-10 Function string variables (unique to each function) 
 
То есть нельзя в обычном триггере использовать z-1..z-10! 
 
И это не всё. 
e1..e100 Function floating point variables 
e-1...e-100 Trigger-based local variables. Floating point vars 
 
То есть с e-ками такая же проблема. Обычные триггеры и триггеры-функции могут портить переменные друг друга. 
 
По=хорошему разницы между !?XX и !?FU быть не должно. Отрицательные переменные не нужны (кроме z-1..z-10, которые долны быть локальными везде). Вопрос, как быть с обратной совместимостью.
			 
			
			
  
Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов 
Поддержать проект 
			
		 |  
	 
 | 
	| 05.09.2019 17:14 | 
	
		
	 | 
	
		
		igrik 
 
 
		
		
		
			
			
			
 
 
			
Posts: 2821 
	
		
	 | 
	
		
			
			 
			
				Эх. Что делать с обратной совместимостью - ума не приложу.  
Видимо нужно сделать решение через опцию (пока что), например в heroes3.ini сделать твик, чтобы можно было в случае чего отменить решение - как временный испытательный костыль для проверки на бажность/безопасность такого кардинального для ERM изменения. 
В любом случае нужно делать изменение и испытывать его. Самые конфликтные скрипты в любом случае придется править. Надеюсь их не слишком много.
			 
			
			
  
game bug fixes extended.dll  ||  My Plugins  ||  My GitHub
			
		 |  
	 
 | 
	| 05.09.2019 17:33 | 
	
		
	 | 
	
		
		Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
 | 
	| 06.09.2019 23:39 | 
	
		
	 |