| Berserker   
   
   Posts: 16786
 
 |  | 
	| 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: 16786
 
 |  | 
	| 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: 16786
 
 |  | 
	| 17.08.2011 19:30 |  |