Изменение параметров корон - Форум
Понедельник, 05.12.2016, 15:32
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Форум » Игры серии ГТА » Справочная информация » Изменение параметров корон
Изменение параметров корон
DK22PacДата: Суббота, 06.08.2011, 15:16 | Сообщение # 1
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Из ничего вывожу всё... Начал исследования по коронам.
dword_C3E000 --> Старт массива RwTexture*, текстур корон.
В CCoronas_addCorona, в отличии от GTA III, RwTexture* не передаётся как параметр. Вместо него передаётся "тип" короны.
Преобразование "типа" в RwTexture*
{
movzx edx, [esp+arg_24]
mov eax, dword_C3E000[edx*4]
mov dword ptr [esp+arg_24], eax
}
arg_24 - параметр "тип", esp - старт стека. Как всё просто, гы)
sub_6FC180 --> FillCoronaStruct

Стек процедуры

arg_8 --> red
arg_C --> green
arg_10 --> blue
arg_14 --> alpha
arg_1C --> radius
arg_20 --> far_clip
arg_24 --> corona_type, влияет на RwTexture*
arg_44 - значение, которое влияет на fade_status (0/255). Если arg_44 > 0, то fade_status равен 255, иначе - 0.

Структура CCoronas (привожу адресса первой структуры , потом переведу в локальные оффсеты)

0xC3E058 float point.X
0xC3E05C float point.Y
0xC3E060 float point.Z
0xC3E084 byte red
0xC3E085 byte green
0xC3E086 byte blue
0xC3E087 byte alpha
0xC3E088 byte fade_status (0/255)


Сообщение отредактировал DK22Pac - Суббота, 06.08.2011, 18:55
 
d88Дата: Вторник, 09.08.2011, 10:18 | Сообщение # 2
Группа: Проверенные
Сообщений: 113
Статус: Offline
DK22Pac, так здесь можно сделать что-то, чего нельзя сделать обычными кодами?
 
DK22PacДата: Вторник, 09.08.2011, 13:50 | Сообщение # 3
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Да, можно. Например, можно использовать свои текстуры для корон.
Обновление )))
0x6FC5A0 void CCoronas__DoSunAndMoon (void)
Процедура занимается созданием игровых солнца и луны biggrin


Сообщение отредактировал DK22Pac - Вторник, 09.08.2011, 14:58
 
d88Дата: Вторник, 09.08.2011, 16:38 | Сообщение # 4
Группа: Проверенные
Сообщений: 113
Статус: Offline
Ну Луна и так и была в списке, а можно какие-то новые формы создать?
 
DK22PacДата: Среда, 10.08.2011, 03:07 | Сообщение # 5
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Да что угодно можно.
Code
{$CLEO .cs}
wait 500
0390: load_txd_dictionary 'load0uk'
038F: load_texture "load0uk" as 10
while not player.Defined(0)
      003D:
end
04C4: store_coords_to 0@ 1@ 2@ from_actor $player_actor with_offset 3.0 3.0 2.0
0AC7: 3@ = var 0@ offset
0A9F: 4@ = current_thread_pointer
0A8D: 5@ = read_memory 0xA94B8C size 4 virtual_protect 0
while true
      0AA5: call 0x6FC180 21 21 1 0 0x41700000 0 0x3FC00000 0 0 0 0 0 0 5@ 0x43160000 1.0 3@ 255 255 255 255 0 4@
      003D:
end

Добавлено (10.08.2011, 03:07)
---------------------------------------------

Quote (DK22Pac)
0x6FC5A0 void CCoronas__DoSunAndMoon (void)

Отключил эту фигню, солнце и луна всё ещё присутствуют. angry
PS
Поменял интенсивность и тип корон, которые создаются для задних огней авто:



Сообщение отредактировал DK22Pac - Вторник, 09.08.2011, 18:26
 
d88Дата: Среда, 10.08.2011, 09:49 | Сообщение # 6
Группа: Проверенные
Сообщений: 113
Статус: Offline
Quote (DK22Pac)
Да что угодно можно.

Не, а вот те которые светятся – есть четыре формы: шар, шероховатый, удлинённый в ширину и кольцо. А можно создать новую форму, например сосульку?
 
DK22PacДата: Среда, 10.08.2011, 12:10 | Сообщение # 7
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
По-моему, ты всё неправильно воспринимаешь. Корона - это просто текстура, "висящая" в 3д-пространтстве.
 
d88Дата: Среда, 10.08.2011, 17:09 | Сообщение # 8
Группа: Проверенные
Сообщений: 113
Статус: Offline
Quote (DK22Pac)
По-моему, ты всё неправильно воспринимаешь. Корона - это просто текстура, "висящая" в 3д-пространтстве.

Ну да, но какая тогда текстура у тех которые я назвал? Ведь они ещё и светятся, но не так как Луна.
 
DK22PacДата: Пятница, 22.06.2012, 13:38 | Сообщение # 9
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Quote (d88)
Ну да, но какая тогда текстура у тех которые я назвал? Ведь они ещё и светятся, но не так как Луна.

Их можно найти в particle.txd:
coronastar
coronaringb
coronareflect
coronamoon
coronaheadlightline

Quote (d88)
Ведь они ещё и светятся, но не так как Луна.

Другие текстуры тоже должны светиться, по-моему, чем "белее" цвет, - тем ярче.

Добавлено (25.09.2011, 20:43)
---------------------------------------------
0x6FC663 указатель на текстуру солнца
0x6FC6EF указатель на текстуру солнца №2
Для солнца есть 2 короны - большая и маленькая.
word_B7C4D6 цвет солнца, R ?
word_B7C4D8 цвет солнца, G ?
word_B7C4DA цвет солнца, B ?
dword_6FC731 альфа ?
dword_6FC6A6 альфа №2 ?

Добавлено (25.09.2011, 20:52)
---------------------------------------------
MTA:
0xC813E0 fWindSpeedX
0xC813E4 fWindSpeedY
0xC813E8 fWindSpeedZ
0xB7C4F0 fFarClipDistance
0xB7C4F4 fFogDistance
0xB7C4D0 ucSunCoreR
0xB7C4D2 ucSunCoreG
0xB7C4D4 ucSunCoreB
0xB7C4D6 ucSunCoronaR
0xB7C4D8 ucSunCoronaG
0xB7C4DA ucSunCoronaB

Добавлено (25.09.2011, 21:04)
---------------------------------------------
0x6FC5A0 void CCoronas__DrawSun (void)

Добавлено (22.06.2012, 13:38)
---------------------------------------------
Если корона с таким ID уже существует, то новая не будет создана, а старая - удалена?
Code
for(j = 0; j < 64; j++)
{
    if(Coronas[j].uniqueID == ID )
      break;
}
if ( j != 64 )
{
    if(!Coronas[j].FadeState && !alpha2 )
    {
      Coronas[j].uniqueID = 0;
      gNumCoronas = gNumCoronas - 1;
      return;
    }
    goto LABEL_30;
}


Сообщение отредактировал DK22Pac - Пятница, 22.06.2012, 13:38
 
Den_spbДата: Пятница, 22.06.2012, 16:31 | Сообщение # 10
Создатель сайта
Группа: Администраторы
Сообщений: 1536
Статус: Offline
Quote (DK22Pac)
Если корона с таким ID уже существует, то новая не будет создана, а старая - удалена?

Новая будет создана, а старая будет удалена (судя по всему структура новой короны пишется на месте старой).
 
DK22PacДата: Вторник, 26.06.2012, 23:43 | Сообщение # 11
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Параметры для
0x6FC180 void __cdecl CCoronas__registerCoronaByTexture

int ID
CEntity *entity
char red
char green
char blue
char alpha
RwV3D *pos
float radius
float farClip
RwTexture *texture
char nFlareType
boolean enableReflection
boolean checkObstacles // stored as flag to CCoronas.flags1 - Если корона за каким-то обьектом, она не будет рисоваться (например - дерево)
char notUsed // Вероятно, это был какой-то флаг. Использовалось для короны лазерной точки.
float normalAngle
boolean longDistance // Корону видно, если отойти на 35 метров (если ближе - то не видно). Применять только для корон со статической позицией.
float nearClip
boolean flashWhileFading // Корона будет мигать при затухании
float fadeSpeed
boolean onlyFromBelow // stored as flag to CCoronas.flags2 - Корону видно только снизу
char flags2 // stored as flag to CCoronas.flags2 - Используется при создании корон мигалок

Сочетание флагов:
Code
if (flashWhileFading && onlyFromBelow && camPos.z > coronaPos.z)
{
     Корона будет мигать
}


Сообщение отредактировал DK22Pac - Четверг, 28.06.2012, 01:04
 
Den_spbДата: Среда, 27.06.2012, 04:35 | Сообщение # 12
Создатель сайта
Группа: Администраторы
Сообщений: 1536
Статус: Offline
Хорошо, только 5-й параметр снизу это не минимальное расстояние видимости, а максимальная толщина объекта, сквозь который корона будет видна.
 
DK22PacДата: Среда, 27.06.2012, 13:25 | Сообщение # 13
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Нет, это всё же nearClip, я проверял.
 
Den_spbДата: Среда, 27.06.2012, 18:37 | Сообщение # 14
Создатель сайта
Группа: Администраторы
Сообщений: 1536
Статус: Offline
Действительно, если расстояние от камеры до центра короны меньше, чем значение параметра, то короны не видно.
Но на проникающую способность этот параметр тоже влияет. Вот как выглядят поворотники при значениях параметра 0.01, 0.1, 1.0:







Видно, что если толщина объекта превышает указанную величину, то соответствующая часть короны не отображается. Схематично это выглядит так:

Прикрепления: 6499189.jpg(12Kb) · 5548745.jpg(10Kb) · 0046605.jpg(12Kb) · 6720196.png(4Kb)
 
DK22PacДата: Четверг, 28.06.2012, 01:09 | Сообщение # 15
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Спасибо, буду знать.
Остался только один неизвестный параметр.
 
Форум » Игры серии ГТА » Справочная информация » Изменение параметров корон
Страница 1 из 212»
Поиск: