Current time: 30.11.2024, 10:08 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Замена Сопряжения
» готовый туториал
Author Message
gamecreator Offline

Posts: 7107
Post: #46

Ищешь что такое SetMonMagic, находишь все ссылки на неё, просматриваешь подозрительные (вот у тебя тут 2 вызова рядом). Выполняешь рекурсивно пока в коде не найдётся прямой адрес, который легко найти.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
07.01.2016 23:14
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #47

в чем искать? в ida, артмани или олке?


game bug fixes extended.dll || My Plugins || My GitHub
07.01.2016 23:57
Visit this user's website Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 624
Post: #48

Quote:вуаля
если напилишь адрес возврата для трехэтажной ГМ, буду благодарен :D
у меня пока костылями

Quote:gamecreator, подскажи как найти адрес в сорцах WoG'a по вот этому (строка 4882 в Monsters.cpp)
я бы искал в олли через Search for -> All constants -> 9E, вогсекция.
Quote:И я так понимаю, что "char Ytown = *(char*)(c->esi+4); if (Ytown == 8) " можно было описать как-то проще

   if (*(char*)(c->esi+4)== 8) :D

на самом деле
Town* town = (Town*)c->esi;
if(town->type == 8) ..
(This post was last modified: 08.01.2016 00:10 by feanor.)
08.01.2016 00:09
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #49

ну как бы даже и не знаю, не костыль ли у меня :D
для трехэтажки хук 0x00460FA6
разврат 0x00460F80


game bug fixes extended.dll || My Plugins || My GitHub
08.01.2016 00:35
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #50

(08.01.2016 00:09)feanor Wrote:  я бы искал в олли через Search for -> All constants -> 9E, вогсекция.
Спасибо. Таким образом я нашел и второй адрес


game bug fixes extended.dll || My Plugins || My GitHub
(This post was last modified: 08.01.2016 01:42 by igrik.)
08.01.2016 01:42
Visit this user's website Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #51

(07.01.2016 23:57)igrik Wrote:  в чем искать? в ida, артмани или олке?
Где удобнее. Я в олли ищу, иды у меня нет.

(08.01.2016 01:42)igrik Wrote:  снять огненный щит и палач с фена 8 ур и передать их закаленному снайперу
А чего просто не удалить? Изменить условный прыжок на безусловный после проверки условия.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
(This post was last modified: 08.01.2016 03:13 by gamecreator.)
08.01.2016 03:12
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #52

(08.01.2016 03:12)gamecreator Wrote:  А чего просто не удалить? Изменить условный прыжок на безусловный после проверки условия.
Привычка. Если честно - даже и не задумался


game bug fixes extended.dll || My Plugins || My GitHub
(This post was last modified: 08.01.2016 13:57 by igrik.)
08.01.2016 13:57
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #53

feanor, можешь объяснить по массиву (вроде так называется) приоритетов отображения строений в экране города. Нифига не могу въехать.
Это предпоследний штрих, и я наконец закончу.


game bug fixes extended.dll || My Plugins || My GitHub
09.01.2016 17:50
Visit this user's website Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 624
Post: #54

А чего там такого?

Code:
char priorities[44] =
{22,7,8,9,23,26,36,43,33,40,31,38,27,28,34,41,16,15,21,10,11,12,13,0,1,2,3,4,32,​39,24,25,14,17,29,35,42,30,37,18,19,5,-1,-1};
memcpy((void*)(0x642EC4 + 44*8), priorities, 44);
от дальнего к ближнему
09.01.2016 23:08
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #55

в том то и оно. Тогда как можно понять на примере гильдии магов:
{22,7,8,9,23,26} Она же первой идет в данной сетке.
22 то выше 7, 8, 9!
Я понимаю, что
22 - ГМ 0
7 - ГМ 1
8 - ГМ 2
и т.д.
Я ставил граааль в "0" и в "43" приоритет, а он все равно перекрывает некоторые (одни и те же) строения каждом из этих параметров. Отсюда я и туплю как пробка


game bug fixes extended.dll || My Plugins || My GitHub
(This post was last modified: 10.01.2016 01:14 by igrik.)
10.01.2016 00:51
Visit this user's website Find all posts by this user Quote this message in a reply
StasPV Offline

Posts: 130
Post: #56

Цифры в массиве - номера городских строений (в ерм-хелпе есть таблица с числами). 22-спец строение, 7 - форт, 8 - цитадель, 9 - замок, 23 - спец строение. То есть, если в Причале на переднем плане ратуша-капитолий, и рынок - хранилище ресурсов, а на дальнем плане - генератор 4 и 5 уровня, то массив будет начинаться с 10,11,12,13,14,15 а заканчиваться 33, 40, 34, 41, а середину распределить.

То есть числа здесь не приоритет а именно номера зданий по порядку убывания от переднего плана к заднему.
(This post was last modified: 10.01.2016 01:51 by StasPV.)
10.01.2016 01:46
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #57

Всё верно. Спасибо. Только от заднего плана к ближнему.


game bug fixes extended.dll || My Plugins || My GitHub
10.01.2016 11:48
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #58

feanor, как ты обошел вложенные файлы в "_HD3_Data\Common\Fix.Cosmetic", а именно:
- AVWPHX.def
- Cphx.def
- TOELup_6.bmp
- TZELup_6.bmp
- TBELdw_6.def
- TBELup_6.def

или что мне записать в 8 байт по адресу 0х6890B8
long, double или long double. Я хочу в духе
*(double*)0x6890B8 = (double)"TbElDw_7";


game bug fixes extended.dll || My Plugins || My GitHub
(This post was last modified: 10.01.2016 23:29 by igrik.)
10.01.2016 23:19
Visit this user's website Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #59

long double не влезет в 8 байт. Если ты просто пытаешься быстро скопировать туда 8 символов, то:
*(double*)0x6890B8 = *(double*)"TbElDw_7";
Ну или любой 8-байтный тип вместо double.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
10.01.2016 23:39
Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 624
Post: #60

Quote:feanor, как ты обошел вложенные файлы в "_HD3_Data\Common\Fix.Cosmetic", а именно:
никак, я не использую HD (=
почему бы не заткнуть их средствами эры - та же папка _HD.., только в каталоге мода?

Quote:или что мне записать в 8 байт по адресу 0х6890B8
кришна с тобой, зачем так?
*(int*)0x6436A0 /*указатель на 6890B8*/ = (int)"tbeldw-6";
можно и memcpy/strcpy, конечно, но зачем?
(This post was last modified: 11.01.2016 23:35 by feanor.)
11.01.2016 23:28
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group