Перейти к содержимому


gadina

Регистрация: 17 Feb 2009
Offline Активность: 18 Nov 2009 05:38
*----

Мои сообщения

В теме: Прицел Снайперкской винтовки в СА

12 April 2009 - 06:37

Вопрос по SannyBuilder 3.4.
Столкнулся с проблемой с приточкой объектов.
Максимальное колличество Притачиваемых Объектов сильно сократилось по сравнению с версие 3.0.

Пишем простенький код для проверки.
По нажатию кнопки Z создаются Объекты и притачиваются к одному Объекту.
Выводится Число притачиваемых Объектов, можно посмотреть максимум.
Для СБ 3.0 максимума не было, там Зашкаливало аж за 500 штук.
А вот в СБ 3.4 непонятные ограничения.
{$CLEO .cs}

//-------------MAIN---------------
0000:nop 
wait 7500

:KEY_PRESS_1
wait 0
if 
0AB0:   key_pressed 90//-=Z=-
else_jump @KEY_PRESS_1

29@ = 2636
gosub @load_id_1 //Загрузка ИД -29@
04C4: store_coords_to 21@ 22@ 23@ from_actor $PLAYER_ACTOR with_offset 0.0 6.0 -0.9
object.Create(1@,29@,21@, 22@, 23@)
21@ = actor.Angle($PLAYER_ACTOR)
21@ += 90.0
object.Angle(1@) = 21@
24@ = 0.7
25@ = 0.0
26@ = 0

:GO_ATTACH_1
wait 100
object.Create(2@,29@,21@, 22@, 23@)
069A: attach_object 2@ to_object 1@ at_offset 24@ 25@ 0.0 rotation 0.0 0.0 0.0 
24@ += 0.7
26@ += 1
01E3: text_1number_styled 'dollar' 26@ 5000 ms 4
if and
 model.Available(29@)
 24@ > 20.0
 else_jump @GO_ATTACH_1
 wait 0
 24@ = 0.0
 25@ += 0.7
 if
  25@ > 20.0
  else_jump @GO_ATTACH_1 
 model.Destroy(29@)
 object.Destroy(1@)
  wait 1000
  jump @KEY_PRESS_1
  
//===============================================
//=========ЗАгрузка ИД===========================
//===============================================
:LOAD_ID_1
Model.Load(29@)//
038B: load_requested_models 
:load_id_2
wait 0
if
 model.Available(29@)
else_jump @load_id_2
return

Причём за пределами СА Гдето в 52000.0 км от центра притачивать можно не больше 3 штук.
В разных частях SA Колличество притачиваемых Объектов будет разным.
И относительно помещений тоже Колличество разное.
Также появился Лимит на Загрузку ЛОДОВ , Объектов местности.

Такого ограничения в СБ 3.0 небыло у меня скрипт есть, там строится Гараж и Части гаража притачивались к Одному Объекту. ТАк вот скрипт этот не работает в СБ 3.4.

Также появилась просто НИПАНЯТНАЯ штука по Ограничению Прицепки Объектов на Машины.
Допустим в зоне СА этот Лимит 12 штук (Хотя может быть и меньше)
А вот за пределами. ВООБЩЕ 2 и те два дают сбой если в зоне есть какой либо транспорт .
Допустим вы За пределами СА летите на самолёте и под крыльями по 2 ракеты. Встречный самолёт если увидите то произойдёт выкидышь из игры .... Вапще Крень полная и нипанятная.

В теме: Номера костей (Bones) для опкода 070A

11 April 2009 - 23:50

Я сам эти опкоды Тестил и разговаривал с человеком который костит Актёров. Так вот когда я ему показал Следующие опкоды то получилась вот такая картина: ============================================================= ===============КРЕПИМ ОБЪЕКТ на ИГРОКА============================================== ============================================================= 070A: AS_actor $PLAYER_ACTOR attach_to_object 1@ offset 0.0 0.0 -0.38 on_bone 6 0 perform_animation "NULL" IFP_file "NULL" time 1 //-Прикрепить Объект в правую руку (on_bone 6) Где : offset 0.0 0.0 -0.38 -Смещение от центра крепления. on_bone 6 0 //6-Это часть тела игрока 0-это угол крепления. Может быть 0-Объект захватывается и угол не меняется , 16-Объект захватывается и ставится угол автоматически. Крепите объекты в свободном захвате, потаму, что Игра начинает считать, что карл Одевает шмотку и может вылететь на некоторых частях. Поэтому используйте всегда 0 для крепления. Части тела куда крепиться Объект : 1-таз 7-Левое бедро 13-левый локоть 2-грудь 8-Правое бедро 14-правый локоть 3-Левый бок 9-Левая ступня 15-спина (Спина у карла из 4 веток) 4-Правый бок 10-правая ступня 16-спина 5-Левая рука 11-правая икра 17-спина 6-Правая рука 12-левая икра 18-спина Следующий Опкод используется для крепления второй вещи, он работает только если использован преведущий опкод. 09A0: actor $PLAYER_ACTOR attach_object 1@ with_offset 0.0 0.0 0.0 on_bone 5 16 perform_animation "NULL" IFP_file "NULL" time -1 Вот тут можно использовать Вариант свободного и стандартного крепления Либо 0 либо 16 всё будет работать. Тут всё тоже самое кроме частей. Другие используются суставы карла для крепления. 1-Левая лапатка 7-таз 13-правый локоть 2-Левое плечо 8-правый локоть 14-голова 3-Левая рука Бицепс 9-левая икра 15-плечи(От одной руки до Другой Живёт палка к ней и крепиться) 4-Правая лапатка 10-правое колено 16-плечи 5-Левая рука 11-левое колено 17-левое плечо 6-Правая рука 12-левый локоть 18-шея -1 Убирает закреплённый объект после анимации, включает модели оружия. 0- 1- Второй предмет, Будет при стрельбе отваливаться.

В теме: Скриптинг в GTA IV

18 February 2009 - 05:55

А мануал по Паскалю ? И много много таких вот примеров. Я хочу попробовать. Чёрт его знает может и получится.

В теме: Использование "Базы Адресов Памяти".

17 February 2009 - 20:34

Начинаю Коренным образом разбирать, по собственной логике. Итак я знаю что: 0xB6F980 - Is the direct pointer to the pool start (CVehicle) 0xB74494 - Contains a pointer Я так понимаю Это сумма любой Машины. Известно что: +1120 = [dword] Pointer to driver +1124 = [dword] Pointer to passenger 1 (Front-right seat) +1128 = [dword] Pointer to passenger 2 (Rear-left seat) +1132 = [dword] Pointer to passenger 3 (Rear-right seat) Теперь Основываясь на Хелпе СБ. Производим исчисления колличества мест в машине. 0@ = 0xB6F980 0@ -= 0xA49960 //Глобальный Адрес scm (help SB) 0@ /= 4 //Разделим на 4 байта 008B: 1@ = &0(0@,1i) //Чтото Присвоили К глобальной Всё получили хреновину. Как ещё можно извратится чтобы ничего не получилось? И главное куда Это вставить: +1120 +1124 +1128.... Вообщем лес тёмный и жутко густой. Да ну нафиг. Ваще Дурдом, хрен пойми что и комп завис. :( Поменял блин. Это явно не для меня. Тут надо институт закончить, чтобы разобраться.

В теме: Использование "Базы Адресов Памяти".

17 February 2009 - 12:57

Я не понимаю как использовать полученную информацию О мемори :
http://gtamodding.ru...i/Ад%...1и_(SA)

Объясните на примере, как Создать проверку на колличество Пассажирских Сидений в машине.
Допустим я Знаю Машину, стою возле неё. И делаю проверку колличества пассажирских мест, перед посадкой в Машину.

1128 = [DWORD] Указатель на пассажирском 2 (заднего левого сиденья) 
1132 = [DWORD] Указатель на пассажирские 3 (заднего правого сиденья)

0A97: 11@ = car 0@ struct 
11@ += 1128 //Что именно прибавлять И что проверять после?
0A8D: 12@ = read_memory 11@ size 1 virtual_protect 0 //Я так понимаю либо 1 либо 0


:SET_CAR_ZONE_5   //Координаты проверки-ДВЕРЬ левая задняя
0407: store_coords_to 21@ 22@ 23@ from_car 0@ with_offset -1.50 -0.90 0.0 
if and
12@ == 0
00EC:   actor $PLAYER_ACTOR 0 near_point 21@ 22@ radius 1.0 1.0 
else_jump @SET_CAR_ZONE_5
05CA: AS_actor $PLAYER_ACTOR enter_car 0@ passenger_seat 2 -1 ms