Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
 | 
	| 17.08.2011 03:34 | 
	
		
	 | 
	
		
		feanor 
 
 
		
		
		
			
			
			 
			
Posts: 624 
	
		
	 | 
	
		
			
			 
			
				Нет. Все равно отсутствие видимой загрузки. 
Если занопить загрузку cmpmusic.txt - дойдет до выбора карты, где и рухнет с вышеупомянутыми симптомами.
			 
			
			
			
		 |  
	 
 | 
	| 17.08.2011 09:18 | 
	
		
	 | 
	
		
		Sav 
 
 
		
		
		
			
			
			 
			
Posts: 2180 
	
		
	 | 
	
		
			
			 
			
				Berserker Wrote:Сав, грузить h3sprite/bitmap нужно первыми, чтобы остальные лоды имели больший приоритет и потому, что в воге есть места, где вещи ищутся именно в этих лодах. 
Ну, я в плагине так и делаю (если они существуют). Или это к чему-то друому относится?
 Berserker Wrote:Поправка, новые лоды не во все типы заносятся, wav нет. Не знаю, ошибка в коде или ещё какая-то причина. 
Вроде как специально. По крайней мере в ассемблерном виде сделанные для этого приспособления выглядит слишком громозкими, чтобы быть ошибкой.   
			 
			
			
			
		 |  
	 
 | 
	| 17.08.2011 10:10 | 
	
		
	 | 
	
		
		Sav 
 
 
		
		
		
			
			
			 
			
Posts: 2180 
	
		
	 | 
	
		
			
			 
			
				С dll из поста 215 такая фигня: если в Data есть H3bitmap.lod и/или H3sprite.lod, то игра будет ругаться на отсутствие различных ресурсов (каких - зависит от наличия других lod`ов). Если их оба переименовать и оставить в Data, всё работает. 
 
P. S. Вроде как залил плагин на вогархив, слабо понял, куда и как ставить пометку, вставил в описание, в общем, сами отредактируете (там же премодерация?)
			 
			
			
			
				
(This post was last modified: 17.08.2011 15:03 by Sav.)
 
			 
		 |  
	 
 | 
	| 17.08.2011 14:38 | 
	
		
	 | 
	
		
		Sav 
 
 
		
		
		
			
			
			 
			
Posts: 2180 
	
		
	 | 
	
		
			
			 
			
				В общем, тестирую на версии dll без автоподгрузки lod`ов. 
Так вот, второй красный - почему-то чёрный. Закономерность установить не удалось: с некоторыми цветами всё нормально, некоторые изменяются (по-разному).
			  
			
			
			
				
(This post was last modified: 17.08.2011 15:36 by Sav.)
 
			 
		 |  
	 
 | 
	| 17.08.2011 15:35 | 
	
		
	 | 
	
		
		etoprostoya 
 
 
		
		
		
			
			
			 
			
Posts: 1809 
	
		
	 | 
	
		
 | 
	| 17.08.2011 15:38 | 
	
		
	 | 
	
		
		Sav 
 
 
		
		
		
			
			
			 
			
Posts: 2180 
	
		
	 | 
	
		
			
			 
			
				По поводу автозаполнения имён в хотсите: 
В H3 всегда можно было сохранить имя первого игрока (чтобы оно вставлялось автоматически). Для этого надо: Новая игра - Одиночная игра - Показать дополнительные опции - щёлкнуть по имени игрока рядом с флагом и изменить его. Изменённый вариант будет заменять "Player 1" или "Игрок 1". 
Изменил таким образом имя на Sav. Автозаполнение после этого выдало: "Sav 1" и "Sav 2".   
			 
			
			
			
				
(This post was last modified: 17.08.2011 15:49 by Sav.)
 
			 
		 |  
	 
 | 
	| 17.08.2011 15:48 | 
	
		
	 | 
	
		
		Sav 
 
 
		
		
		
			
			
			 
			
Posts: 2180 
	
		
	 | 
	
		
			
			 
			
				В справочнике: 
Получить адрес машинной функции из библиотеки ↑ 
!!SN:[описатель загруженной библиотеки]/[название функции]/?[адрес функции]; Подразумевается !!SN:A же?
 
Выполнить машинную функцию ↑ 
!!SN:E[адрес функции]/[соглашение о вызове]/аргументы... 
 
Пример: 
!!SN:L^kernel32.dll^/?y1 Ay1/^lstrcpyA^/?y2; 
 
Соглашение о вызове: 
- 0 (PASCAL) 
- 1 (CDECL или STDCALL) 
- 2 (THISCALL) 
- 3 (FASTCALL) 
 
По умолчанию от функции ожидается целочисленный результат, который будет помещён в переменную v1. Если же функция возвращает вещественный результат, то к номеру соглашения нужно прибавить 4. Все системные библиотеки используют соглашение STDCALL. 
 
Пример: 
!!SN:L^kernel32.dll^/?y1; 
!!SN:Ay1/^lstrcpyA^/?y2; 
!!SN:Ey2/1/z1/z2; Скопировать содержимое z2 в z1. Аналог !!VRz1:Sz2; 
Первый пример как-то не в тему.
			  
			
			
			
				
(This post was last modified: 17.08.2011 16:59 by Sav.)
 
			 
		 |  
	 
 | 
	| 17.08.2011 16:52 | 
	
		
	 | 
	
		
		etoprostoya 
 
 
		
		
		
			
			
			 
			
Posts: 1809 
	
		
	 | 
	
		
			
			 
			
				Quote:Соглашение о вызове:    - 0 (PASCAL)    - 1 (CDECL или STDCALL) 
Ну вот, а меня всё убеждают, что cdecl и stdcall - разные вещи.   
			 
			
			
			
		 |  
	 
 | 
	| 17.08.2011 17:05 | 
	
		
	 | 
	
		
		gamecreator 
 
 
		
		
		
			
			
			
 
 
			
Posts: 7107 
	
		
	 | 
	
		
 | 
	| 17.08.2011 17:07 | 
	
		
	 | 
	
		
		Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
 | 
	| 17.08.2011 17:09 | 
	
		
	 | 
	
		
		etoprostoya 
 
 
		
		
		
			
			
			 
			
Posts: 1809 
	
		
	 | 
	
		
			
			 
			
				Ну, в общем-то я и сам знаю, что это разные соглашения.    Но сколько ни компилировал, cdecl и stdcall в коде ведут себя взаимозаменяемо. Возможно, это особенность майкрософтского компилятора (в настройках по умолчанию или постоянно), возможно ещё что-то.
			  
			
			
			
		 |  
	 
 | 
	| 17.08.2011 17:27 | 
	
		
	 | 
	
		
		gamecreator 
 
 
		
		
		
			
			
			
 
 
			
Posts: 7107 
	
		
	 | 
	
		
 | 
	| 17.08.2011 19:00 | 
	
		
	 | 
	
		
		feanor 
 
 
		
		
		
			
			
			 
			
Posts: 624 
	
		
	 | 
	
		
			
			 
			
				Quote:взаимозаменяемы только thiscall и stdcall 
только в одном направлении же: вызов stdcall'ой функции как thiscall'овской запишет ненужный this в ecx, а наоборот - не передаст уже нужный this в ecx. 
Аналогично, можно thiscall'овскую функцию можно вызывать как fastcall'овскую, ручками передав this и зaписав фигню во второй параметр, но не наоборот.
 Если пишу фигню - скажите, я, походу, траванулся 
			 
			
			
			
		 |  
	 
 | 
	| 17.08.2011 19:13 | 
	
		
	 | 
	
		
		Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
 | 
	| 17.08.2011 19:30 | 
	
		
	 |