Полная модификация (total conversion) Gostown Paradise Beta 0.066c RC2 (Призрачный город) игры GTA SA, по мнению авторов, завершена на 30% и работа над ней остановлена в середине 2009 года. Тем не менее она является довольно любопытной и, с подачи vlad_dm, было решено запустить на ней игровой сервер Парадиза.
По завершению работ будет запущен сервер парадиза, а также дан полный комплект файлов сервера и клиента, чтобы любой желающий смог создать свой сервер на этой замечательной модификации.
Сервер будет на базе SA-MP 0.3a
Список текущих задач:
Починить парашют (scm, решено в R4, огромная признательность Luft)
Поменять одежду сиджея на ту, которая в гостауне (scm, устранено в R2)
Посадка водителем в поезд (scm)
Поднять облака (гта) - не нашел как
Убрать (увеличить) ограничение на высоту подъема воздушного транспорта (гта)
Разрешить анимации секс (самп)
Убрать ограничения на аэрографию (самп)
Убрать ограничения на тюнинг (самп)
Поправить стартовое лого (гта)
Установить камеру при подключении к серверу в красивое место (самп)
Включить отображение травы (самп или гта)
При подключении к серверу звук устанавливается на минимальное значение (как яркость в СА), пока можно лечить входом/выходом в меню игры (scm, решено в R4, огромная признательность Luft)
Если игра установлена в папку с кириллицей, то мультиплеер не запускатся (устранено в R2)
Включена поддержка всех разрешений экрана внутри ГТА (устранено в R3)
Убрать мелькание экрана при загрузки игры (устранено в R4)
Таким образом, в R4 все критические проблемы решены, что дает полагать что это будет последним тестом
1. Ставим чистую ГТА или Копируем ее в новую папку (например, в C:\Program Files\Rockstar Games\GTA Gostown6)
2. Ставим в эту папку мод Гостаун
3. Ставим в эту папку Gostown6 Multiplayer
После установки в меню пуск должен появиться ярлык Gostown6 Multiplayer. Теперь можно подключиться к серверу 83.222.115.139:8902 (он должен быть на закладке интернет клиента)
вот на форуме gtamodding нашел пост про адреса памяти загрузки файлов.
внимание привлекли адреса загрузки текстур травы и модели травы (просто с адресами я мало работал и с какими их параметрами прописывать не знаю)
привожу ниже текст поста с подчеркнутыми адресами касательно травы
Код
OK here's some stuff i picked up about these more advanced file loads:
Only need to figure out the DFF's now
COL's:
0x5B4E60 : ReadCOLFile ( int unk, char* Filename )
0xB744A4 : Pointer to the COL Pool
0x4113D0 : SetupCollisionFiles
0x5B2CC0 : COLPoolConstructAndAllocate
0x416260 : AllocateLiveCols
Theoretical COL File Load while in game:
CODE
char* pCOL = "MODELS/COLL/TEST.COL";
__asm
{
mov esp, 0x22FD8C
mov esi, pCOL
push 0
push esi
call ReadCOLFile
}
* Untested with the ESP registar patch
TXD's:
0x5A4220 : LoadTXDFile
0x5A6040 : AddTexture
0x7319C0 : AddToTextDict
0x731C80 : _texDictionaryAdd
0xC8800C : Pointer to the Texture Pool
0x7320B0 : _loadTxdFile ( char* Libname, char* Filename )
Theoretical Code:
CODE
char* pTXD = "MODELS/TEST/ESPERANT.TXD";
char* pLib = "vehicles";
__asm
{
mov esi, pLib
push pTXD
push esi
call _loadTxdFile
}
* Tested
Texture Lib's:
"fonts"
"vehicles"
"skin"
"weapons"
"frontend1"
"frontend2"
"frontend3"
"frontendpc"
"loadscs"
"particle"
"ps2btns"
"generic"
"fx"
"grass_pc" ----------------------------------ВОООТ ЭЭЭТОООО ИМЯ ПОДСТАВЛЯЛИ В КОД ВИДИМО с++ ВЫШЕ!!!!!!!!!!!!!!!!!!!!!!!!!!!!-------------------------------
DFF's:
0x5B39D0 : ReadDFFFile
0x5DD220 : LoadGrassDFF ------------------------------------------------ИИИИ ВОООТ ЭЭЭТООООТТТ!!!!!!!!!!!!!!!!!!!!!!!!!!!!-------------------------------
0x5A55A0 : LoadDFFFile
IFP's:
0x4D47F0 : ReadIFPFile
0x85C718 : "ANIM\PED.IFP"
0x4D5620 : LoadAnimPedIFP ()
UPDATE
How to load IFP's directly into the game:
i used this keyhook, using my own .IFP as a modified PED.IFP (Please note you must do this after the loading screen)
Tested*
CODE
case VK_SPACE:
{
WriteProcessMemory ( hGlobal, (LPVOID) 0x85C718, "ANIM/TES.IFP", 12, NULL );
__asm call LoadAnimPedIFP
}
Sound's:
0x5389E0 : ReadAudioDAT
0x5B9C60 : AllocateAudioPools
0x747300 : LoadAudioStream
0x4F4A20 : LoadUserTracks
0x4E0590 : LoadAudioConfigBankslotDat ()
Theoretical Code for loading audio DAT's on the fly (Untested):
CODE
WriteProcessMemory ( hGlobal, (LPVOID) 0x85F15C, "AUDIO/CONFIG/BANKSLOT.DAT", 25, NULL );
__asm call LoadAudioConfigBankslotDat
Misc:
0x874754 : "GTA:San Andreas", the string that gets chucked in the window name
SCM:
0x404910 : GetActorHandle ( DWORD actorid )
There is a problem with the vehicle limit posted before, while it may work to increase the memory, the SCM limits it by only accepting byte parameters from its SCM ID table (informed by J-Fox), we are currently working on a fix for that
Researching IPL's at the moment:
0x5B8700 : LoadIPL ( char* FileName )
0x538690 : ReadIPLInstLine ( char* Line )
0x5B4AB0 : ReadZonLine ( char* Line )
0x5B47B0 : ReadPickLine ( char* Line ) (Write 0xC3 here to make the game ignore all pickup's defined in IPL's)
0x5B4740 : ReadVehicleLine ( char* Line ) (Writing 0xC3 here gets rid of some of the static cars, not all)
0x5B8030 : ReadEnexLine ( char* Line )
0x406080 : LoadBinaryIPL
0x406279 : jb short loc_406260 (Nop to disable binary IPL static vehicles)
The IPL Block (Pointers and block sizes are documented in my previous posts):
0x1C : (float) X
0x20 : (float) Y
0x24 : (float) Z
0x28 : (float) rX
0x2C : (float) rY
0x30 : (float) rZ
0x34 : (float) rW
The Enex Block:
0x96A7D8 : Pointer to the Enex Block
0x3C : Enex Block Size
вот еще поинтеры на текстуры травы
Код
0xC039A0 : Pointer to txgrass0_1
0xC039A4 : Pointer to txgrass0_2
0xC039A8 : Pointer to txgrass0_3
0xC039AC : Pointer to txgrass1_0
0xC039B0 : Pointer to txgrass1_1
0xC039B4 : Pointer to txgrass1_2
0xC039B8 : Pointer to txgrass1_3
0xC039BC : Pointer to gras07Si
0x53DFF5 jnz short CarsFoliage into jmp short CarsFoliage
мож эти адреса и отвечают за траву в игре я не знаю
FroZeN, я тебя потом спросил что именно ты увидел во мне читерское. Ты сказал "увидишь" и не объяснил что именно. (Ты почему-то не все ответы в чате заскринил). Насчёт моего ответа "ага)" это я всегда на всех серверах реагирую так на обвинения в читерестве. Ведь для этого есть /жалоба.
Наверное то, что мы совершали прыжки с тачками с обрыва, ты это воспринял как полёт на тачках. Если это так, то я молчу))
Sacramento пишет:
FroZeN, я тебя потом спросил что именно ты увидел во мне читерское. Ты сказал "увидишь" и не объяснил что именно. (Ты почему-то не все ответы в чате заскринил). Насчёт моего ответа "ага)" это я всегда на всех серверах реагирую так на обвинения в читерестве. Ведь для этого есть /жалоба.
Наверное то, что мы совершали прыжки с тачками с обрыва, ты это воспринял как полёт на тачках. Если это так, то я молчу))
появился, но я не смог понять почему
А от того, в каком месте спавн это будет зависеть? На парадизе он в одном месте, на другом сервере будет в другом?
ну в начале скрипта я сместил позже появление камеры (игрок создавался тамже и в определенный момент падал) и сделал координаты создания NULL актёра в координатах спавна (выбора игрока) - на платформе поезда в городе, чтоб он появлялся на твердой земле и звук появился!!! переделал на старый вариант звук опять пропал. Видимо в точке создания камеры игрока нельзя создавать. + координаты создания были заданы переменными, которые небыли определены численно перед созданием, я задал конкретное значение - место выбора персонажа (может быть и эта причина тоже влияла).
в других модах сменить координаты создания NULL актёра на место выбора персонажа (можно приблизительно, лишь-бы попадал на твердую поверхность)
Люфт я имел в виду другое. Координаты выбора персонажа - это параметры которые хозяин сервера прописывает на павне. На парадизе это одни координаты, на другом сервере могут быть другие. Вопрос был в том, что тогда на другом сервере звука не будет?