Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - xanser

Страницы: 1 ... 32 33 [34] 35 36 ... 40
496
Идеи / Re: Океан 10000x10000 (Реализовано)
« : Март 03, 2014, 08:44:15 am »
Интерес только в том, чтобы были дополнительные ссылки оттуда на этот сайт, может кто-то придет, да и для поднятия рейтинга в поисковых системах.

497
Идеи / Re: Океан 10000x10000 (Реализовано)
« : Март 03, 2014, 05:24:34 am »
Ну тогда сюда еще http://www.mediafire.com/download/78fbvd4a0sbro9b/WaterMod.rar
Если можно перезалить на GTABuilder, будет здорово.

498
Идеи / Re: Океан 10000x10000 (Реализовано)
« : Март 02, 2014, 08:33:25 pm »
Мод будет доступен здесь: http://www.gtagarage.com/mods/show.php?id=25707 после одобрения.

499
О сайте и форумах / Re: Спонсорство сайта.
« : Март 02, 2014, 08:05:09 am »
Ну возможно стоит сделать размещение рекламы, не слишком навязчивой, чтобы не портить внешний вид сайта, но хотя бы сайт сам себя окупал.

500
Идеи / Re: Океан 10000x10000 (Реализовано)
« : Март 01, 2014, 08:26:36 pm »
Sektor, подумай, как можно расширить аудиторию, привлечь пользователей, разместить ссылки на таких сайтах как gtaforums и в плане финансирования сайта можно снять с тебя хотя бы частично это бремя, рассмотреть варианты финансовой поддержки сайта, получается ты делаешь работу для всех и сам один за это платишь.

501
Идеи / Re: Океан 10000x10000 (Реализовано)
« : Март 01, 2014, 05:58:45 am »
Не знал с какого боку подойти. Материалы этого сайта подтолкнули что-то изучать, разбирать ассемлерный код, конечно я только в начале этого пути, и больше на интуиции пока, но уже что-то начало получаться. Я тут переписал код без замены переменных, а только заменой значений, сохранив алгоритм самой игры

Код: C++
  1. void ProtectBYTE(BYTE *Address, BYTE Value) {
  2.         DWORD OldProtect;       VirtualProtect(Address,sizeof(BYTE),PAGE_READWRITE,&OldProtect);
  3.         *Address = Value;       VirtualProtect(Address,sizeof(BYTE),OldProtect,&OldProtect);
  4. }
  5. void LoadWater() {
  6.         BYTE * WaterRender = (BYTE *) 0x5C1710;                 // функция рендера воды
  7.         if  (* WaterRender == 0xDE)  WaterRender += 0x20;       // VC 1.1
  8.         BYTE   WaterLines  = 40;                                // количество линий внешней воды 5
  9. //      *(float *)0x69CC58 = 0;                                 // сдвиг всей воды на запад 400
  10.         *(float *)0x69CD7C = 10000;                             // радиус видимости внутренней воды ниже 60 метров (z-15)*800*0.022+1200
  11.         *(float *)0x69CD80 = 10000;                             // радиус видимости внутренней воды выше 60 метров 2000
  12.         *(float *)0x69CDCC = WaterLines*256;                    // сдвиг на количество внешней воды 1280 = 5*256
  13.         ProtectBYTE(WaterRender+0xDC1, WaterLines);             // количество внешней воды севера и юга
  14.         ProtectBYTE(WaterRender+0xDCB,(WaterLines-5)*2+26);     // расширение внешней воды севера и юга на восток
  15.         ProtectBYTE(WaterRender+0xDD3, WaterLines);             // сдвиг внешней воды запада и востока на север
  16.         ProtectBYTE(WaterRender+0x11D1,WaterLines);             // количество внешней воды запада и востока
  17.         ProtectBYTE(WaterRender+0x11DB,WaterLines+16);          // расширение внешней воды запада и востока на север
  18. }

Можно также убрать дырки под островами программой WaterEditor, нарисовав полностью черную текстуру, мне кажется они вообще не нужны, кстати появятся птицы над землей.



xanser мм.. будет ли это в общем доступе для всех.. ?  :o

Берите этот код в свои моды, ну или могу скомпилировать в отдельную asi-шку

502
Идеи / Re: Океан 10000x10000
« : Февраль 28, 2014, 04:20:09 pm »
Все, я доделал окончательно. В моем варианте были строки:

Код: C++
  1. ProtectBYTE(WaterDraw+0x11D1,WaterLines+5+8);           // пересчет линий внешней воды запада и востока
  2. ProtectBYTE(WaterDraw+0xDC1, WaterLines+5);             // пересчет линий внешней воды севера и юга

WaterLines это дополнительные внешние линии
+5 это стандартные внешние линии
+8 это дополнительные внешние линии, временно закрывающие центр, теперь я их убрал и расширил видимость центральной части, которая была ограничена радиусом камеры 2000

Код: C++
  1. *(float*)0x69CD7C = 10000;
  2. *(float*)0x69CD80 = 10000;

В итоге весь пазл сложился



Ну и наконец итог, которого я ждал 7 лет, прекрасный вид океана!


503
Идеи / Re: Океан 10000x10000
« : Февраль 27, 2014, 07:33:09 pm »
Я немного схитрил, и заполнил внутренние дырки внешней водой. Разницы не видно, но я заметил, что вроде бы подводные объекты пропадают. А внутренняя вода рисуется в радиусе игрока, поэтому там реальные дырки по углам, надо дальше копать, чтобы их залепить по-нормальному.

504
Идеи / Re: Океан 10000x10000
« : Февраль 26, 2014, 04:57:58 pm »
Три последних дня, в воскресенье это была только идея, хотя возникла она очень давно, но не хватало знаний.

505
Идеи / Re: Океан 10000x10000
« : Февраль 26, 2014, 04:29:20 pm »
Вроде бы получилось.



Код: C++
  1. BYTE  * WaterDraw  = (BYTE *)  0x5C1710;        // блок рисования внешней воды
  2. float   WaterShift;                             // замена переменной сдвига внешней воды
  3.  
  4. void ProtectBYTE(BYTE *Address, BYTE Value)
  5. {
  6.         DWORD OldProtect;       VirtualProtect(Address,sizeof(BYTE),PAGE_READWRITE,&OldProtect);
  7.         *Address = Value;       VirtualProtect(Address,sizeof(BYTE),OldProtect,&OldProtect);
  8. }
  9.        
  10. void ProtectDWORD(DWORD *Address, DWORD Value)
  11. {
  12.         DWORD OldProtect;       VirtualProtect(Address,sizeof(DWORD),PAGE_READWRITE,&OldProtect);
  13.         *Address = Value;       VirtualProtect(Address,sizeof(DWORD),OldProtect,&OldProtect);
  14. }
  15.        
  16. void LoadWater()
  17. {
  18.         BYTE WaterLines = 40;                                           // дополнительные линии внешней воды, добавляются к 5-ти стандартным
  19.         WaterShift = WaterLines*256+2048;                               // сдвиг внешней воды
  20.  
  21.         ProtectDWORD((DWORD*)(WaterDraw+0x9F4), (DWORD)&WaterShift);    // сдвиг северной и южной на запад
  22.         ProtectDWORD((DWORD*)(WaterDraw+0xA41), (DWORD)&WaterShift);    // сдвиг южной на юг
  23.         ProtectDWORD((DWORD*)(WaterDraw+0xC0B), (DWORD)&WaterShift);    // сдвиг северной на север
  24.         ProtectDWORD((DWORD*)(WaterDraw+0xE2B), (DWORD)&WaterShift);    // сдвиг западной на запад
  25.         ProtectDWORD((DWORD*)(WaterDraw+0x100F),(DWORD)&WaterShift);    // сдвиг восточной на восток
  26.         ProtectBYTE(WaterDraw+0xDCB, WaterLines*2+26);                  // пересчет линий внешней воды севера и юга дополнительно на востоке
  27.         ProtectBYTE(WaterDraw+0x11D1,WaterLines+5+8);                   // пересчет линий внешней воды запада и востока, 8 - заполнение внешней водой центра
  28.         ProtectBYTE(WaterDraw+0xDC1, WaterLines+5);                     // пересчет линий внешней воды севера и юга
  29.  
  30. //      *(float *) 0x69CC58 = 0;        // по умолчанию 400, вся вода сдвинута на запад на 400, можно вернуть в центр в 0
  31.  
  32. }

506
Идеи / Re: Океан 10000x10000
« : Февраль 25, 2014, 04:49:52 pm »
Все оказалось не сложно, если поискать. Оказывается внешний периметр состоит из пяти уровней воды по 256, можно его отодвинуть и заполнить еще уровнями.
Думаю мозаика близка к завершению. Вид из стратосферы.


507
Идеи / Re: Пора сделать нормальный танк
« : Февраль 24, 2014, 12:11:15 pm »
DK, ты конечно все верно говоришь, но думаю, вряд ли кто-то реально сможет это реализовать на сегодняшний день. С дополнительными компонентами наиболее доступным мог бы быть способ через экстры, если понять, как ими управлять после создания машины. Фэйк основан на том, что после каждого реплея эктры меняются, но боюсь что вместе с пересозданием самой машины.


508
Идеи / Океан 10000x10000 (Реализовано)
« : Февраль 23, 2014, 08:57:49 pm »
То, что я вижу сложно назвать океаном. Прорисовка внутренней воды ограничена по расстоянию, внешний периметр образует заметные углы. Хотелось бы наблюдать воду до горизонта, хотя бы до границ скайбокса, точнее сферы. Думаю реально расширить внешний периметр и увеличить дисстанцию прорисовки внутреннего. Речь не идет о плавании, только о видимости.


509
Такая прицельная стрельба реализована здесь: http://www.gtagarage.com/mods/show.php?id=1823
Жаль не приложен исходный код.

510
Программирование / Re: Trails - вызов на лету
« : Февраль 20, 2014, 05:47:11 am »
Если говорить о моде, хорошо бы понять, как изменить еще стиль походки на шатающуюся из SA. Можно поставить такую анимацию ходьбы какому-то типу педов, но как ее на время передать игроку?
Но все-таки хотелось бы заострить внимание не на моде, а на этом эффекте. Было бы полезно его реализовать и применять для каких-то задач. Может кто-то пытался с этим разобраться?

Страницы: 1 ... 32 33 [34] 35 36 ... 40