Как увеличить размер карты, до произвольного размера.
Имею ввиду не стандартный максимальный размер карты 256 х 256 , а более большой, к примеру 8000х8000.

Принятый ответ

C101Nine, вот код снятия ограничения на размер карты, используемый в grimoire:
раскрыть
char *MapSizeLimitAddress;
char MapSizeLimitBackup[sizeof(MapSizeLimitPatch)] = {0x8B};
void hack_MapSizeLimit(int enable)
{
	if(enable) {
		//memcpy(MapSizeLimitBackup,MapSizeLimitAddress,sizeof(MapSizeLimitPatch));
		patchbytes(MapSizeLimitAddress,MapSizeLimitPatch,sizeof(MapSizeLimitPatch));
	} else {
		patchbytes(MapSizeLimitAddress,MapSizeLimitBackup,sizeof(MapSizeLimitPatch));
	}
}*/

char *MapSizeLimitAddress;
char MapSizeLimitBackup1[sizeof(MapSizeLimitPatch1)] = {0xC3,0x90,0x90,0x90,0x90,0x90};
char MapSizeLimitBackup2[sizeof(MapSizeLimitPatch2)] = {0xC3,0x90,0x90,0x90,0x90,0x90};
void hack_MapSizeLimit(int enable)
{
	if(enable) {
		patchbytes(MapSizeLimitAddress+0x21,MapSizeLimitPatch1,sizeof(MapSizeLimitPatch1));
		patchbytes(MapSizeLimitAddress+0x41,MapSizeLimitPatch2,sizeof(MapSizeLimitPatch2));
	} else {
		patchbytes(MapSizeLimitAddress+0x21,MapSizeLimitBackup1,sizeof(MapSizeLimitPatch1));
		patchbytes(MapSizeLimitAddress+0x41,MapSizeLimitBackup2,sizeof(MapSizeLimitPatch2));
	}
}

char *MapCellsLimitAddress;
char MapCellsLimitBackup[sizeof(MapCellsLimitPatch)] = {0xC0,0x00,0x00,0x00,0x7C,0x05,0xB8,0x00,0x01,0x00,0x00};
void hack_MapCellsLimit(int enable)
{
	if (enable) {
		patchbytes(MapCellsLimitAddress+0x10,MapCellsLimitPatch,sizeof(MapCellsLimitPatch));
	} else {
		patchbytes(MapCellsLimitAddress+0x10,MapCellsLimitBackup,sizeof(MapCellsLimitPatch));	
	}
}
А вот ссылка на его исходники: svn.code.sf.net/p/w3grimoire/code/source/wehack.cpp
Если не сделали фикс на большее увеличения размера карты, значит на то есть какая-то причина. Позже попробую самостоятельно увеличить размер, но, думаю, ничего получится.
`
ОЖИДАНИЕ РЕКЛАМЫ...
2
6
8 лет назад
2
Никак. Максимальный размер, которого можно достигнуть 480x480 при помощи JNGP.
0
2
8 лет назад
0
А как его увеличили с 256х256 до 480х480?
Может так же можно увеличить еще больше?
0
6
8 лет назад
0
C101Nine, нет нельзя. Jass New Gen Pack - позволяет расширить карту до размера 480х480 и расширяет возможности пользователя.
0
2
8 лет назад
Отредактирован C101Nine
0
JNGP как он позволяет увеличить размер карты до 480х480 ?
То есть, что в нем такого особенного что он увеличил макс размер карты?
Если ты его разрабатывал, то скажи. что именно ты изменил в редакторе, что бы он позволил создавать карты такого размера. И почему нельзя увеличить данный лимит?
Уточню - мой вопрос не в том , как с помощью средств редактора увеличить его - а как вообще его увеличивали?
То есть, что варик не может переварить карты больше 480 х 480?
То же самое говорили про карты весом больше 8 мб, сейчас переваривает.
0
18
8 лет назад
0
C101Nine, Собственно, зачем тебе? Если хочешь сделать суперкрутую рпгшку, то делай переходом между локациями через -save -load.
0
2
8 лет назад
0
Система save/load это само собой, куда же без этого.
Но мне именно нужно узнать способ увеличить размер карты до произвольной.
Всякие мелочи, что карта будет много весить или загружаться целый час меня не волнуют.
0
18
8 лет назад
0
C101Nine, поверь, даже 256х256 сделать проблематично, а уж 480х480 - подавно.
2
2
8 лет назад
2
Верю, но вопрос то не в этом.
Вопрос в том, как?
0
28
8 лет назад
0
C101Nine, 480 это предел варика
C101Nine:
То же самое говорили про карты весом больше 8 мб, сейчас переваривает.
пруф в студию
2
6
8 лет назад
2
nvc123:
C101Nine, 480 это предел варика
C101Nine:
То же самое говорили про карты весом больше 8 мб, сейчас переваривает.
пруф в студию
Там используется модифицированный storm.dll.
0
2
8 лет назад
0
карта весом 16 мегабайт
Загруженные файлы
0
28
8 лет назад
Отредактирован nvc123
0
BaHeK, я спрашивал про варик
без каких либо стороних модификаций
то что можно переписать все файлы игры и получить совсем иное это и ежу понятно
вот только заставить качать всех игроков свой варик сложновато будет
C101Nine, а о том что она весит 16 метров я должен с помощью телепатии узнать?
8000х8000
у тебя оперативки не хватит на столько
короче вопрос закрыт
C101Nine, если тебе чтото не нравится в устройстве этого мира можешь написать богу с просьбой исправить
1
13
8 лет назад
Отредактирован ENAleksey
1
C101Nine, вот код снятия ограничения на размер карты, используемый в grimoire:
раскрыть
char *MapSizeLimitAddress;
char MapSizeLimitBackup[sizeof(MapSizeLimitPatch)] = {0x8B};
void hack_MapSizeLimit(int enable)
{
	if(enable) {
		//memcpy(MapSizeLimitBackup,MapSizeLimitAddress,sizeof(MapSizeLimitPatch));
		patchbytes(MapSizeLimitAddress,MapSizeLimitPatch,sizeof(MapSizeLimitPatch));
	} else {
		patchbytes(MapSizeLimitAddress,MapSizeLimitBackup,sizeof(MapSizeLimitPatch));
	}
}*/

char *MapSizeLimitAddress;
char MapSizeLimitBackup1[sizeof(MapSizeLimitPatch1)] = {0xC3,0x90,0x90,0x90,0x90,0x90};
char MapSizeLimitBackup2[sizeof(MapSizeLimitPatch2)] = {0xC3,0x90,0x90,0x90,0x90,0x90};
void hack_MapSizeLimit(int enable)
{
	if(enable) {
		patchbytes(MapSizeLimitAddress+0x21,MapSizeLimitPatch1,sizeof(MapSizeLimitPatch1));
		patchbytes(MapSizeLimitAddress+0x41,MapSizeLimitPatch2,sizeof(MapSizeLimitPatch2));
	} else {
		patchbytes(MapSizeLimitAddress+0x21,MapSizeLimitBackup1,sizeof(MapSizeLimitPatch1));
		patchbytes(MapSizeLimitAddress+0x41,MapSizeLimitBackup2,sizeof(MapSizeLimitPatch2));
	}
}

char *MapCellsLimitAddress;
char MapCellsLimitBackup[sizeof(MapCellsLimitPatch)] = {0xC0,0x00,0x00,0x00,0x7C,0x05,0xB8,0x00,0x01,0x00,0x00};
void hack_MapCellsLimit(int enable)
{
	if (enable) {
		patchbytes(MapCellsLimitAddress+0x10,MapCellsLimitPatch,sizeof(MapCellsLimitPatch));
	} else {
		patchbytes(MapCellsLimitAddress+0x10,MapCellsLimitBackup,sizeof(MapCellsLimitPatch));	
	}
}
А вот ссылка на его исходники: svn.code.sf.net/p/w3grimoire/code/source/wehack.cpp
Если не сделали фикс на большее увеличения размера карты, значит на то есть какая-то причина. Позже попробую самостоятельно увеличить размер, но, думаю, ничего получится.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.