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

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


Сообщения - Saint

Страницы: [1] 2 3 ... 6
1
Видимо кишки опкода не дают тебе заменять столбы и шлагбаумы, поэтому весь код тебе не нужен, а только функция CEntity::ReplaceWithNewModel(). Во вложении пример замены столбов на светофоры при их первом появлении. Кстати кроме объекта ты можешь там же поменять и его координаты. Заметил, что свойства нового объекта остаются теми же, что были у старого. А как удалять объект полностью с карты, я не знаю.

хорошо, спасибо

2
спасибо за ответ, но всё же

в опкоде по замене моделей перед его вызовом я просто занупил  вызов
.text:0045A0D0 E8 BB EC FF FF                          call    CTheScripts::AddToBuildingSwapArray(CBuilding *,int,int)
и тем самым у меня получилось менять на карте более 25 объектов

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

можешь пожалуйста привести пример как удалить допустим так называемый шлагбаум на военной базе?

379, smashbar, 0, -1721.86, -293.002, 15.1086, 1, 1, 1, -0.707107, -0.707107, 4.4827E-8, 4.4827E-8

может конечно то что нельзя подменять ломающиеся объекты както задаётся в этих функциях

.text:00459F28 E8 43 C8 07 00                          call    CWorld::FindObjectsOfTypeInRange(uint,CVector  const&,float,bool,short *,short,CEntity **,bool,bool,bool,bool,bool)
.text:00459F88 E8 13 C7 07 00                          call    CWorld::FindObjectsOfTypeInRangeSectorList(uint,CPtrList &,CVector  const&,float,bool,short *,short,CEntity **)
.text:0045A02F E8 6C C6 07 00                          call    CWorld::FindObjectsOfTypeInRangeSectorList(uint,CPtrList &,CVector  const&,float,bool,short *,short,CEntity **)

если я правильно понимаю то CEntity ** это как раз для получения указателя на найденный объект карты?

3
Общие вопросы / Re: Лимиты Игры
« : Сентябрь 06, 2020, 01:24:19 pm »
cпасибо за ответ, я примерно так и думал

Тут мне кажется, можно создать до 110, поскольку это размер пула машин CPools::pVehiclePool->size

размер пула я увеличил и могу создать хоть 500 машин (тестил до 250) но только одной модели или разных моделей до 50 штук

так же есть ещё такая особенноть если прямо во  время игры создать больше 180 ТС то начинает пропадать звуки у авто

в вайсе модели авто начинаются с 130 до 236 получаем что всего 106 моделей транспортных средств. вообщем создать одновременно можно любые 50 из этих 106

если же превысить этот лимит в 50 моделей ТС игра вылетает с ошибкой Exception At Address: 0x00541109 // превышение лимита моделей авто = 50

в лагине от ThirteenAG есть лимит повышения VehicleModels я думал что это как раз то, что мне нужно, но нет там это лимит моделей для IDE файлов, короче сколько мы можем прописывать моделей в ide

так же чем больше мы увеличаем лимиты, и создаём в игре всего, необходимо увеличивать и StreamMemory

4
Общие вопросы / Лимиты Игры
« : Сентябрь 05, 2020, 03:32:15 pm »
все наверняка знаю такую программу как VC Limit Adjuster от Steve-M и её более новую версию, а так же есть 2 плагина.
1й - это от ThirteenAG и 2й от fastman92 (более продвинутый) но последнии версии этих плагинов не работают на XP

вообщем дело не в этом.

Меня интересует 3 лимита.

1 - это лимит TXD
2 - это лимит ID
3 - лимит модей транспорта которые могут быть созданны в игре одновременно (он равен примерно 50, если создать больше игра зависает)

вообщем программой VC Limit Adjuster я пропатчил exe на первые 2 лимита, нашел все адресса которые программа поменяла значения,

лимит TXD меняет 9 адрессов
лимит ID меня значения в 150 адрессах

сделал вот такую функцию

Код: C++
  1. void ReCreateGameTXDLimit()
  2. {//------------------------------------------------------------------------------------------------------------------------
  3. /*     
  4.         // TXD Limit
  5.  
  6.         TXD Numbers - multiple instances (3160 bytes)
  7.  
  8.         Maximum number of TXDs allowed in gta3.img.
  9.         When VC loads TXD objects, it assigns ID numbers to them just above the rangeused for map objects.
  10.         Valid values range from the game default of 1385 to 32700.
  11. */
  12.         //---------------------------------------------------------------------------------------------------------------------
  13.  
  14.         DWORD dwNewLimit = 5000;
  15.  
  16.        
  17.         // .text:0041065D 81 FB 69 05 00 00                       cmp     ebx, 569h
  18.         CMemory::InstallPatch<DWORD>( 0x41065D+2 , dwNewLimit);
  19.  
  20.         // .text:00580FD4 81 FB 69 05 00 00                       cmp     ebx, 569h
  21.         CMemory::InstallPatch<DWORD>( 0x580FD4+2 , dwNewLimit);
  22.  
  23.         // .text:0058102C 68 69 05 00 00                          push    569h
  24.         CMemory::InstallPatch<DWORD>( 0x58102C+1 , dwNewLimit);
  25.  
  26.         // .text:0061D98B 68 69 05 00 00                          push    569h
  27.         CMemory::InstallPatch<DWORD>( 0x61D98B+1 , dwNewLimit);
  28.  
  29.         // .text:0061D9E5 68 69 05 00 00                          push    569h
  30.         CMemory::InstallPatch<DWORD>( 0x61D9E5+1 , dwNewLimit);
  31.  
  32.         // .text:0061DAA5 68 69 05 00 00                          push    1385
  33.         CMemory::InstallPatch<DWORD>( 0x61DAA5+1 , dwNewLimit);
  34.  
  35.         // .text:0061DBA5 68 69 05 00 00                          push    569h
  36.         CMemory::InstallPatch<DWORD>( 0x61DBA5+1 , dwNewLimit);
  37.  
  38.         // .text:0061DCFA 81 FB 69 05 00 00                       cmp     ebx, 569h
  39.         CMemory::InstallPatch<DWORD>( 0x61DCFA+2 , dwNewLimit);
  40.  
  41.         // .text:0061DD39 68 69 05 00 00                          push    569h
  42.         CMemory::InstallPatch<DWORD>( 0x61DD39+1 , dwNewLimit);
  43.  
  44.         // end
  45.  
  46. }//------------------------------------------------------------------------------------------------------------------------
  47.  

но при загрузке игры происходит краш


5
может кто помочь переписать опкоды 0363 и 03B6 в нормальный код?

хочется всё таки норм удалять объекты, а не подменять их, так как тем же опкодом 03B6 нельзя заменять объекты карты которые игрок может разрушить.

6
Справочная информация / Re: CFont - Информация.
« : Сентябрь 05, 2020, 03:12:24 pm »
Ребят может кто знает но при использовании функции 0x550100 в VC моя игра просто зависает, в чём дело?

Код: C++
  1.  
  2. // вариант 1
  3.  
  4. void _declspec(naked) Font_SetLineWidth(float width)
  5. {
  6.        
  7. //      _asm mov eax, 0x7194D0 // SA // CFont::SetWrapx(float value)
  8.         _asm mov eax, 0x550100 // VC // CFont::SetWrapx(float wrap)
  9.         _asm jmp eax
  10.  
  11. }
  12.  
  13. // вариант 2
  14.  
  15. void CFont::SetWrapx(float value)
  16. {
  17.  
  18. //      ((void (__cdecl *)(float))0x7194D0)(value); // SA
  19.         ((void (__cdecl *)(float))0x550100)(value); // VC
  20.  
  21. }
  22.  

7
реально круто, молодец

8
Скриптинг / Re: Описание структуры объекта
« : Август 18, 2020, 10:23:08 pm »
Криминальная Россия

структуру объекта можно посмотреть тут https://github.com/DK22Pac/plugin-sdk/blob/master/plugin_vc/game_vc/CObject.h

ответь мне в ВК

9
Скриптинг / Re: Описание структуры объекта
« : Август 16, 2020, 10:51:00 pm »
Shagg_E, спасибо. Попытался сделать динамическую дверь в вайсе: https://youtu.be/lr-4obAvf6w

выглядит круто, что за мод?

10
Почему-то не могу получить 5 или 6 звёзд розыска с помощью скриптовой команды , 

cначало надо установить максимальный уровень розыска https://gtamods.com/wiki/01F0

11
а не подскажешь пожалуйста участок кода который отвечает за посадку игрока в Авто когда он нажимает F
Пока это не разбирал, к сожалению. Ты есть на Discord сервере SDK? Там могут помочь найти этот участок.

пользуюсь только ВК

12
тоесть если мы будем нажимать кнопку огонь (ЛКМ) то игрок не будет выполнять никаких действий?
Да. Будто и нет такой механики. При этом, в отличии от отключения всех драк(ранее в этой теме) - педы не теряют возможности атаковать. Да и игрок под управлением ИИ сможет атаковать.
Т.е. выключается только сама привязка контроллера к атакам.

а не подскажешь пожалуйста участок кода который отвечает за посадку игрока в Авто когда он нажимает F

13
Общие вопросы / Опкоды 0179 и 023B
« : Март 04, 2020, 11:42:21 pm »
их в Вайсе нету(

https://gtamods.com/wiki/0178
https://gtamods.com/wiki/0179
https://gtamods.com/wiki/023B
https://gtamods.com/wiki/023A

кто может выложить кусок кода из базы от GTA 3, чтобы посмотреть как они устроены для того чтобы реализовать их в вайсе?

14
Общие вопросы / Re: Ротация и Матрица
« : Февраль 26, 2020, 10:13:43 pm »
ладно это другой вопрос, большое спасибо за помощь.

15
Общие вопросы / Re: Ротация и Матрица
« : Февраль 26, 2020, 08:30:59 pm »
так как же мне сделать именно так как надо? есть вариант?
Ну это зависит от твоих целей. Если X 180 Y 180 Z 0 и X 0 Y 0 Z 180 с технической стороны - это одно и то же, почему тебе это не подходит?

я думаю потому что могут возникнуть ошибки в синхронизации Ротации между Клиентами (игроками/играми)
например когда создаётся какой нибуть шлагбаум и мы будем менять только один параметр, ну или в синхронизации объектов с которыми игрок может взаимодействовать, толкать их перемещать и т.д.

Страницы: [1] 2 3 ... 6