Форум - Скриптинг в GTA
21 Ноября 2017, 21:10:12 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
   Начало   Помощь Поиск Календарь Войти Регистрация  
Страниц: 1 2 3 [4] 5 6 ... 17   Вниз
  Печать  
Автор Тема: Помощь начинающим скриптерам  (Прочитано 107200 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Gadina
Пользователь
**
Офлайн Офлайн

Сообщений: 148


мастерство не пропьёш...


« Ответ #45 : 04 Июня 2008, 08:13:07 »

Yelmi А вААпще не понимаю почему не работает  команда возврата одежды в твоём скрипте GIMP.
Хоть абассысь но стоит в трусах если 2 раза переоденется.
Код:
//-------------MAIN---------------
0000: NOP           //ЭТо что означает?

:NONAME_2
wait 0
if and
   Player.Defined($PLAYER_CHAR)
  $ONMISSION == 0
   Actor.DrivingVehicleType($PLAYER_ACTOR, #MARQUIS)
else_jump @NONAME_2
if and
0AB0:   key_pressed 71
8500:   not player $PLAYER_CHAR skin == "BOXINGCAP" on_bodypart 17
else_jump @NONAME_133
fade 0 0
wait 0
Player.SetClothes($PLAYER_CHAR, "BOXINGCAP", "BOXINGCAP", Special)
Player.Build($PLAYER_CHAR)
wait 1000
fade 1 500
jump @NONAME_2

:NONAME_133
if and
0AB0:   key_pressed 71
0500:   player $PLAYER_CHAR skin == "BOXINGCAP" on_bodypart 17
else_jump @NONAME_2
fade 0 0
wait 0
0794: restore_player_clothes  //Я так понял это именно возврат одежды.
Player.Build($PLAYER_CHAR)
wait 1000
fade 1 500
jump @NONAME_2

Далее лазив по булдеру в Хелпе прочёл вот это :
0965: actor $PLAYER_ACTOR swimming_in_water - актёр плавает в воде.
04E7: object $Obj in water - объект $Obj в воде.
Но не нашёл ничего чтобы можно было остановить Утечку кислорода в воде.
Эксперименты с этими штуками продолжаю, но без твоих советов ВААПще попа полная.

 Смеющийся
p.s. Слушай, а клёво скриптить, я вникаю по маленьку =)
__________________________________________________________
Застрял с анимацией.
Код:
{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
:COP_1
wait 0
if and                               //Условие если:
  Player.Defined($PLAYER_CHAR)     // Загружен персонаж Карл
  $ONMISSION == 0                   // Включатель скрипта
  not Actor.Driving($PLAYER_ACTOR)  // Персонаж не сидит в машине
  actor.HasWeapon($ACTOR,3)        //У персонажа есть оружие 3-дубинка
else_jump @COP_1                    //продолжить выполнять далее и вернуться на COP_1
if and                              //Новое условие, Если:
0AB0:   key_pressed 71              // Нажата клавиша
else_jump @NONAME_133               // продолжить выполнять далее и вернуться на  @NONAME_133
wait 0                              // Ожидание
04EE: animation "POLICE" loaded     // Загрузить блок анимации POLICE
wait 1000                           // ожидание
jump @COP_1                        // Безусловный переход на :COP_1

:NONAME_133
if and                      //Если:
0AB0:   key_pressed 71        //Нажата клавиша
0605: actor 0 perform_animation_sequence "POLICE" from_file "door_kick" 4.0 loop 0 0 0 1 //Использовать блок анимации и использовать Анимацию   door_kick                                                                                      Выдаёт ошибку в Анимации, что не правильно?
else_jump @COP_1                //продолжить выполнять далее и вернуться на COP_1
wait 0                          //Ожидание
038B: load_requested_models    //Закрываю анимацию- в учебнике писали что анимацию надо закрывать.       
wait 1000                      // Ожидание
jump @COP_1               //Безусловный переход на :COP_1

Смотрел в скрипте, где Карл сидит, увидел там вот такое:
06B0: AS_actor $PLAYER_ACTOR sit_down 999999 ms  - Даже пробовал свою анимацию вставить Но Карл Упорно продолжал присаживаться. Сделал вывод, что не зависимо от всех замененных мною Фраз с Анимацией главное тут 06B0: AS_actor $PLAYER_ACTOR
Эта штука, код только для Анимации Садиться?
А как же найти нужный код анимации...Продолжаю изучать учебник, но там ведь не клео вариант. Тяжко разбираться, но как сказал LAMO:
- Жутха Ентэресна!!!
 Смеющийся
« Последнее редактирование: 04 Июня 2008, 14:26:25 от Gadina » Записан
yelmi
Администратор
*****
Офлайн Офлайн

Сообщений: 321



« Ответ #46 : 04 Июня 2008, 12:38:21 »

Любая одежда привязана к определенной части тела игрока, для BOXINGCAP это HATS (16)

06B0: AS_actor $PLAYER_ACTOR sit_down 999999 ms – актер садится и сидит 999999 ms поменяй 999999 ms на 2000 ms и актер будет сидеть 2 секунды.

Игра опкод (0000:) не обрабатывает, здесь он нужен для того, чтобы не дать «склеить» метки. В CLEO скриптах не должно быть возврата на первую метку скрипта, для того чтобы отделить первую метку скрипта от второй используется этот опкод.
Код:
{$CLEO}
0000: NOP         

:NONAME_2
wait 0
if and
   Player.Defined($PLAYER_CHAR)
  $ONMISSION == 0
   Actor.DrivingVehicleType($PLAYER_ACTOR, #MARQUIS)
else_jump @NONAME_2
if and
0AB0:   key_pressed 71
8500:   not player $PLAYER_CHAR skin == "BOXINGCAP" on_bodypart 16
else_jump @NONAME_133
fade 0 0
wait 0
Player.SetClothes($PLAYER_CHAR, "BOXINGCAP", "BOXINGCAP", 16)
Player.Build($PLAYER_CHAR)
wait 1000
fade 1 500
jump @NONAME_2

:NONAME_133
if and
0AB0:   key_pressed 71
0500:   player $PLAYER_CHAR skin == "BOXINGCAP" on_bodypart 16
else_jump @NONAME_2
fade 0 0
wait 0
0794: restore_player_clothes 
Player.Build($PLAYER_CHAR)
wait 1000
fade 1 500
jump @NONAME_2

Код:
{$CLEO}
0000:

:COP_1
wait 0
if and                               
  Player.Defined($PLAYER_CHAR)     
  $ONMISSION == 0                   
  not Actor.Driving($PLAYER_ACTOR) 
//  actor.HasWeapon($ACTOR,3)       
else_jump @COP_1                   
if                             
0AB0:   key_pressed 72             
else_jump @COP_1               
04ED: load_animation "POLICE" 


:NONAME_133
wait 0
if
04EE: animation "POLICE" loaded       
else_jump @NONAME_133
0605: actor $PLAYER_ACTOR perform_animation_sequence "door_kick" from_file "POLICE" 4.0 loop 0 0 0 1 time -1 
//09F1: play_audio_at_actor $PLAYER_ACTOR event 1009                 
wait 700                     
09F1: play_audio_at_actor $PLAYER_ACTOR event 1009
wait 300   
04EF: release_animation "LOWRIDER"     
0792: disembark_instantly_actor $PLAYER_ACTOR
jump @COP_1
Записан
Gadina
Пользователь
**
Офлайн Офлайн

Сообщений: 148


мастерство не пропьёш...


« Ответ #47 : 04 Июня 2008, 14:10:22 »

Вот сделал Дополнение к Аквалангу. Если игрок находится в воде в Акваланге и Жизнь его меньше 99 то автоматически восполняется до 100.
Но вот проблема:
-Любой головной убор приравнивается к аквалангу.
-Подскажи, звук вздоха и выдоха.

Код:
{$CLEO}
0000: NUB

:AKVA_1
wait 0
if and
 Player.Defined($PLAYER_CHAR)
  $ONMISSION == 0
  0965: actor $PLAYER_ACTOR swimming_in_water
  8500:  player $PLAYER_CHAR skin == "BOXINGCAP" on_bodypart 16
  8184: not actor $PLAYER_ACTOR health >= 99
else_jump @AKVA_2 
Jump @AKVA_1

:AKVA_2
wait 2000
if and
 0965: actor $PLAYER_ACTOR swimming_in_water
else_jump @AKVA_1
 actor.health($PLAYER_ACTOR) = 100
Jump @AKVA_1   
   

Второе, что меня интересует, можно ли персонажам встречающимся в игре изменять их поведение.
Пример:
Карл целится в персонажа Наркодиллера, наркодиллер показывает нужную анимацию.
Код:
0000: NOP

:NONAME_2
wait 0
if and
   Player.Defined($PLAYER_CHAR)
  $ONMISSION == 0
//0457:   player $PLAYER_CHAR aiming_at_actor $WMYDRUG
0457:   player $PLAYER_CHAR aiming_at_actor $HMYDRUG
else_jump @NONAME_44
jump @NONAME_2

:NONAME_44
 wait 10
if and
04EE:   animation "POLICE" loaded
 else_jump @NONAME_44
//0605: actor $WMYDRUG perform_animation_sequence "crm_drgbst_01" IFP_file "POLICE" 4.0 loop 0 0 0 1 time -1 // versionA
 wait 10
0605: actor $HMYDRUG perform_animation_sequence "crm_drgbst_01" IFP_file "POLICE" 4.0 loop 0 0 0 1 time -1 // versionA
 wait 700
 04EF: release_animation "LOWRIDER"     
 0792: disembark_instantly_actor $PLAYER_ACTOR
 jump @NONAME_2


p.s. Сегодня включил анимацию на веб страницах, классный всё таки у меня аватор.  Крутой



« Последнее редактирование: 04 Июня 2008, 21:08:12 от Gadina » Записан
Gadina
Пользователь
**
Офлайн Офлайн

Сообщений: 148


мастерство не пропьёш...


« Ответ #48 : 05 Июня 2008, 18:57:12 »

Столкнулся с проблемой в учебнике от Булдера, много мелочей которые приходится искать.
Так пример создания объектов.
Вот так правильно?
Код:
{$CLEO}
0000: NOP         


wait 0
model.Load(1437)           //Загружаю модель лесенки  (писать нужно "ид" объекта)
model.Load(1598)           //Загружаю модель мяча
else_jump @Example1_2        //Делаю переход к следующему блоку.
0A93: end_custom_thread     //Останавливаю выполнение загрузки модели.

:Example1_2
wait 0
if and
model.Available(1437)                 //Проверяю загрузилась ли модель
model.Available(1598)                 //
else_jump @Example1_2                  //зацикливаю проверку и делаю переход далее.
object.Create(1@,1437,2504.7883,-1668.9213,12.0) //Установка загруженных моделей по координатам.
object.Angle(1@) = 380.0                         //Угол поворота объекта
object.Create(2@,1598,2499.9551,-1675.63,13.0)
object.Angle(2@) = 380.0
0A93: end_custom_thread                   //Остановить скрипт.
Второе что меня озадачило это как дать Оружие созданным Актёрам.
Как пользоваться вот этим:
01B2: give_actor 1@ weapon 38 ammo 6000
01B2: give_actor $Actor weapon 38 ammo 2000 - даёт актёру оружее, сначало загрузите модель.
Цифра 38-это номер оружия...
Пробуем создать Балласов с автоматами возле Дома CJ
Код:
{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP
wait 3000
Model.Load(#BALLAS1)       //Загружаем модель Актёра Балласа
Model.load(#M4)            //Загружаем модель Автомата
else_jump @NONAME_20
038B: load_requested_models  //Останавливаем загрузку моделей

:NONAME_20
wait 0
if and
   Model.Available(#BALLAS1)  //Проверяем загрузку модели актёра
    Model.Available(#M4)      //Проверяем загрузку оружия
else_jump @NONAME_20           //Если модель загружена то выполняем следующие действия.
wait 1000
1@ = Actor.Create(Gang1, #BALLAS1, 2494.462, -1680.92, 13.3385) //Именуем актёра 1@ и создаём его в заданных координатах.
2@ = Actor.Create(Gang1, #BALLAS1, 2498.462, -1680.92, 13.3385) //Именуем актёра 2@ и создаём его в заданных координатах.
3@ = Actor.Create(Gang1, #BALLAS1, 2490.462, -1680.92, 13.3385) //Именуем актёра 3@ и создаём его в заданных координатах.
wait 1000
01B2: give_actor 1@ weapon 31 ammo 6000   //Даём Актёру с именем 1@ Автомат 31 и патронов 6000
01B2: give_actor 2@ weapon 31 ammo 6000   //Даём Актёру с именем 1@ Автомат
01B2: give_actor 3@ weapon 31 ammo 6000   //Даём Актёру с именем 1@ Автомат
Model.Destroy(#BALLAS1)  //Убираем модель из загрузки
Model.Destroy(#M4)       //
0A93: end_custom_thread  //Останавливаем скрипт.

Далее я попробовал создать машину возле дома CJ.
Меня интересует, может я могу проще её создать?
Код:
{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP
:CAR_2
wait 3000
if
Model.Load(#BROADWAY)    //Загружаем модель машины
Jump @NONAME_11
038B: load_requested_models   //Останавливаем выгрузку модели

:NONAME_11
wait 0
if and
   Model.Available(#BROADWAY) //Проверяем наличие загрузки машины.
else_jump @NONAME_11         //Если загрузилась то продолжаем выполнять условия дальше
wait 3000                               //Ожидаем 3 секунды
1@ = Car.Create(#BROADWAY, 2488.74, -1670.0, 13.34) // Именуем машину переменной 1@ и создаём её в нужном месте
Model.Destroy(1@)               //Убираем машину из загрузки.
0A93: end_custom_thread         //Останавливаем скрипт.
Yelmy Пожалуйста Обознач косяки в моих Каракулях, Давай вместе создадим Уроки для начинающих.
Простые примеры на которых можно понять как пользоваться булдером.
Я учусь сам и показываю то, что получается, а от тебя требуется пояснение, того что не смог объяснить хелп булдера. LAMO правильно заметил, что учебник должен быть содержательным и доступным для каждого начинающего. Я там с трудом чего либо понимаю.
« Последнее редактирование: 06 Июня 2008, 08:52:56 от Gadina » Записан
yelmi
Администратор
*****
Офлайн Офлайн

Сообщений: 321



« Ответ #49 : 06 Июня 2008, 17:11:27 »

Для того, чтобы назначить анимацию определенному актеру необходимо:
Создать актера или получить случайного актера.
Чтобы получить случайного актера необходимо воспользоваться CLEO опкодом
Код:
0AB5: store_actor $PLAYER_ACTOR closest_vehicle_to 0@ closest_ped_to 1@ .
Данный опкод записывает в переменные хэндлы ближайших к актеру машины и прохожего.
Далее необходимо проверить существует ли актер
Код:
if
056D:   actor 1@ defined
jf @NONAME_2
Если есть желание присвоить анимацию определенной модели актеров необходимо включить еще одно условие
Код:
if
02F2:   actor 1@ model == #HMYDRUG  //#HMYDRUG – модель актера
jf @NONAME_2

затем загрузить анимацию, проверить загружена ли она и назначить данную анимацию актеру.
Код:
04ED: load_animation "POLICE"

:NONAME_4
 wait 0
if
04EE:   animation "POLICE" loaded
jf @NONAME_4
0605: actor 1@ perform_animation_sequence "crm_drgbst_01" IFP_file "POLICE" 4.0 loop 0 0 0 1 time -1 // versionA

Загружать объекты нужно так:
Код:
{$CLEO}
model.Load(1437)         
model.Load(1598)
038B: load_requested_models

:Example1_2
wait 0
if and
model.Available(1437)                 
model.Available(1598)                 
else_jump @Example1_2                 
object.Create(1@,1437,2504.7883,-1668.9213,12.0)
object.Angle(1@) = 380.0                       
object.Create(2@,1598,2499.9551,-1675.63,13.0)
object.Angle(2@) = 380.0
0A93: end_custom_thread

Код:
Model.load(#M4)            //Загружаем модель Автомата
else_jump @NONAME_20  // Этот опкод здесь не нужен, он может применяться только в паре с IF
038B: load_requested_models // загрузить перечисленные выше модели

Код:
{$CLEO}
wait 3000
Model.Load(#BROADWAY)    //Загружаем модель машины
038B: load_requested_models   // загрузить перечисленные выше модели

:NONAME_11
wait 0
if
   Model.Available(#BROADWAY) //Проверяем наличие загрузки машины.
else_jump @NONAME_11    //Если модель не загружена переходим на метку NONAME_11
1@ = Car.Create(#BROADWAY, 2488.74, -1670.0, 13.34)
Model.Destroy(#BROADWAY)               //Удаляем модель
01C3: remove_references_to_car 1@  // Like turning a car into any random car
0A93: end_custom_thread         //Останавливаем скрипт.
« Последнее редактирование: 06 Июня 2008, 17:17:18 от yelmi » Записан
Gadina
Пользователь
**
Офлайн Офлайн

Сообщений: 148


мастерство не пропьёш...


« Ответ #50 : 06 Июня 2008, 21:55:01 »

Вопрос.
Если объект можно создать Object.Create(#models)
То, какой командой его удалить? object.Destroy(#models)
 Рот на замке  Показывает язык

ААААААААааа Шокированный
 чё значит что больше 8 условий быть не может?
Это получается что я могу использовать всего лиш 8 моделей для миссии ?!
Это стена?

[___][___][___][___]
_][___][___][___][__
[___][___][___][___]  А подкоп есть?                           
_][___][___][___][__  Как то можно увеличить лимит условий?
[___][___][___][___]

« Последнее редактирование: 07 Июня 2008, 00:15:34 от Gadina » Записан
yelmi
Администратор
*****
Офлайн Офлайн

Сообщений: 321



« Ответ #51 : 06 Июня 2008, 22:49:50 »

model.Load(#model)
038B: load_requested_models

if
model.Available(#model) // проверить загружена ли модель
jf @...


object.Create(2@,#model,x,y,z) //создать объект

object.Destroy(2@) //уничтожить объект
model.Destroy(#model) //удалить модель
Записан
maximuch
Новичок
*
Офлайн Офлайн

Сообщений: 12


« Ответ #52 : 07 Июня 2008, 02:46:07 »

Начицо предпринял я жалкую попытку скриптинга (более серьезную, нежели предыдущую).  Улыбающийся

2 с половиной часа увлекательной хоботни и в итоге - нифига приличного  Смеющийся

Код:
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 04.08.2007

{$VERSION 3.1.0023}
{$CLEO .cs}

//-------------MAIN---------------

:NONAME_1
0001: wait 250 ms
0256:   player $PLAYER_CHAR defined
004D: jump_if_false @NONAME_1
00D6: if and
00DF:   actor $PLAYER_ACTOR driving
84A7:   not actor $PLAYER_ACTOR driving_boat
84A9:   not actor $PLAYER_ACTOR driving_heli
84AB:   not actor $PLAYER_ACTOR driving_plane
84C8:   not actor $PLAYER_ACTOR driving_flying_vehicle
89AE:   not actor $PLAYER_ACTOR driving_train
004D: jump_if_false @NONAME_1
077E: get_active_interior_to $ACTIVE_INTERIOR
00D6: if
0038:   $ACTIVE_INTERIOR == 0
004D: jump_if_false @NONAME_707
03C0: 10@ = actor $PLAYER_ACTOR car
046C: 20@ = car 10@ driver
003B:   20@ == $PLAYER_ACTOR // (int)
00E1:   player 20@ pressed_key 8
004D: jump_if_false @NONAME_739
0247: load_model #MAFFA
0247: load_model #VMAFF1
0247: load_model #VMAFF2
0247: load_model #AK47
0247: load_model #FBIRANCH
038B: load_requested_models

:NONAME_143
00D6: if or
8248:   not model #MAFFA available
8248:   not model #VMAFF1 available
8248:   not model #VMAFF2 available
8248:   not model #AK47 available
8248:   not model #FBIRANCH available
004D: jump_if_false @NONAME_187
0001: wait 0 ms
0002: jump @NONAME_143

:NONAME_187
0407: store_coords_to 3@ 4@ 5@ from_car 10@ with_offset 0.0 -10.0 0.0
0174: 6@ = car 10@ Z_angle
0002: jump @NONAME_288
0407: store_coords_to 0@ 1@ 2@ from_car 10@ with_offset 0.0 -50.0 0.0
02C1: store_to 3@ 4@ 5@ car_path_coords_closest_to 0@ 1@ 2@
0174: 6@ = car 10@ Z_angle

:NONAME_288
01EC: make_car 10@ very_heavy 1
00A5: 30@ = create_car #FBIRANCH at 3@ 4@ 5@
0175: set_car 30@ Z_angle_to 6@
0397: toggle_car 30@ siren 1
0229: set_car 30@ primary_color_to 0 secondary_color_to 0
02AC: set_car 30@ immunities BP 1 FP 1 EP 1 CP 1 MP 1
00AD: set_car 30@ max_speed_to 60.0
01EC: make_car 30@ very_heavy 1
00AE: set_car 30@ traffic_behavior_to 4
0519: toggle_car 30@ locked 1
004D: jump_if_false @NONAME_143
0129: 11@ = create_actor_pedtype 24 model #MAFFA in_car 30@ driverseat
01C8: 12@ = create_actor_pedtype 8 model #VMAFF1 in_car 30@ passenger_seat 0
01C8: 13@ = create_actor_pedtype 8 model #VMAFF2 in_car 30@ passenger_seat 1
01C8: 14@ = create_actor_pedtype 8 model #VMAFF1 in_car 30@ passenger_seat 2
039E: toggle_actor 11@ locked 1 while_in_car
039E: toggle_actor 12@ locked 1 while_in_car
039E: toggle_actor 13@ locked 1 while_in_car
039E: toggle_actor 14@ locked 1 while_in_car
0223: set_actor 11@ health_to 10000
0223: set_actor 12@ health_to 10000
0223: set_actor 13@ health_to 10000
0223: set_actor 14@ health_to 10000
01B2: give_actor 11@ weapon 355 ammo 10000 // Load the weapon model before using this
01B2: give_actor 12@ weapon 355 ammo 10000 // Load the weapon model before using this
01B2: give_actor 13@ weapon 355 ammo 10000 // Load the weapon model before using this
01B2: give_actor 14@ weapon 355 ammo 10000 // Load the weapon model before using this
0446: toggle_actor 11@ immune_to_headshots 0
0446: toggle_actor 12@ immune_to_headshots 0
0446: toggle_actor 13@ immune_to_headshots 0
0446: toggle_actor 14@ immune_to_headshots 0
004D: jump_if_false @NONAME_288

:NONAME_582
07F8: car 30@ follow_car 10@ radius 17
00AD: set_car 30@ max_speed_to 150.0
06E1: AS_actor 11@ using_car 30@ target_car 10@ with_order 31 max_speed 200.0 traffic_flag 2
04BA: set_car 30@ speed_to 10.0
004D: jump_if_false @NONAME_582
0249: release_model #FBIRANCH
0249: release_model #VMAFF1
0249: release_model #VMAFF2
0249: release_model #MAFFA
0249: release_model #AK47

:NONAME_661
0001: wait 500 ms
004D: jump_if_false @NONAME_661
00D6: if and
8119:   not car 30@ wrecked
82BF:   not car 30@ sunk
8118:   not actor 11@ dead
0448:   actor 11@ in_car 30@
004D: jump_if_false @NONAME_707

:NONAME_707
01C3: remove_references_to_car 30@ // Like turning a car into any random car
01C2: remove_references_to_actor 11@ // Like turning an actor into a random pedestrian
0001: wait 1000 ms
01C2: remove_references_to_actor 12@ // Like turning an actor into a random pedestrian
01C2: remove_references_to_actor 13@ // Like turning an actor into a random pedestrian
01C2: remove_references_to_actor 14@ // Like turning an actor into a random pedestrian
004E: end_thread

:NONAME_739
0002: jump @NONAME_1

Проблемы:

1. При загрузке сохранения, начинаеся сцена начала игры (Лос Сантос интерн. эйрпорт и т.д.), потом СДЖ каким-то фигом переносится на стартовую игровую точку (у меня мод, поэтому не грув стрит). На радаре показывается местность где ты сохранился в последн. раз, но на самом деле - находишься на стартовой игровой точке. решено

2. Не срабатывает сам скрипт. Т.е. при нажатии в данном случае "М", ничего непроисходит...

3. При открытии скрипта (через билдер), обратил внимание, что сбились названия потоков. "Переименовались" на ноунейм и у некотрых пропали номера. Кста. Есть ли вообще какие-то принципы присвоения имен и номеров потоковв? решено

Кто шарит, поправьте, если не затруднит и объясните в чем мои ошибки...
« Последнее редактирование: 07 Июня 2008, 12:24:31 от maximuch » Записан
Gadina
Пользователь
**
Офлайн Офлайн

Сообщений: 148


мастерство не пропьёш...


« Ответ #53 : 07 Июня 2008, 14:38:50 »

Yelmi  в хелпе булдера наткнулся на эту фразу:

0407: create_coordinate $X1 $Y1 $Z1 from_car $Car offset 0.0 10.8 3.0
0683: attach_car $Car_1 to_car $Car_2 at_offset 0.0 -4.6 0.65 rotation 0.0 0.0 0.0 -
прицепляет одну машину к другой на опред. расстоянии под опред. углами вращения.

Это 2 разных кода или они в паре работают?

Не нашёл как поворачивать машину в нужную сторону.
Есть команда Car.Anjel(model)Но не получается использовать , покажи на примере.

И вот ещё что меня интересует.
Я назначил загрузку модели Автомата, но не делал проверки . Автомат исправно появляется в игре, ничего не вылетает.
Код:
Model.Load(#M4)
038B: load_requested_models

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






« Последнее редактирование: 08 Июня 2008, 19:48:03 от Gadina » Записан
yelmi
Администратор
*****
Офлайн Офлайн

Сообщений: 321



« Ответ #54 : 08 Июня 2008, 20:19:40 »

maximuch
004D: jump_if_false @  всегда должен идти в паре с if

if
< условие>
jf @

Если условных опкодов больше одного (до 9) пишем if and //or – читаем хелп.

00E1:   player 20@ pressed_key 8 ? ??

Код:
if and
003B:   20@ == $PLAYER_ACTOR // (int)
00E1:   player 0 pressed_key 8
004D: jump_if_false @NONAME_739


Код:
004D: jump_if_false @NONAME_288 // где условный опкод

:NONAME_582
07F8: car 30@ follow_car 10@ radius 17
00AD: set_car 30@ max_speed_to 150.0
06E1: AS_actor 11@ using_car 30@ target_car 10@ with_order 31 max_speed 200.0 traffic_flag 2
04BA: set_car 30@ speed_to 10.0
004D: jump_if_false @NONAME_582 // где условный опкод
0249: release_model #FBIRANCH
0249: release_model #VMAFF1
0249: release_model #VMAFF2
0249: release_model #MAFFA
0249: release_model #AK47

:NONAME_661
0001: wait 500 ms
004D: jump_if_false @NONAME_661 // где условный опкод

2Gadina
0407: create_coordinate $X1 $Y1 $Z1 from_car $Car offset 0.0 10.8 3.0 - Записывает координаты $X1 $Y1 $Z1 относительно автомобиля $Car offset X Y Z

Car.Anjel($Car)

Все модели необходимо загружать, то что незагруженная модель появляется это возможно из-за того что в каком то скрипте майна эта модель загружена, но в случае если такого не будет – игра будет сильно недовольна. Вывод один все всегда грузить в своем скрипте.
Записан
Gadina
Пользователь
**
Офлайн Офлайн

Сообщений: 148


мастерство не пропьёш...


« Ответ #55 : 08 Июня 2008, 21:20:32 »

Долго мучался но всё прояснилось.
Вот вам пример как сделать Отметку с которой начиналасьбы миссия.
Код:
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP //Метка чтобы клео скрипты не могли пересекаться
Model.Load(#COPCARLA) //Загружаю модель для миссии
marker.CreateIconAndSphere($Mark,18,2506.4521, -1650.9073, 13.6991) //Устанавливаю красный маркер
038B: load_requested_models  //заканчиваю загрузку моделей для миссии

:NONAME_1
wait 0                       // Ждём 0 сек чтобы проверка началась
if and                         //Если выполнены следующие условия:
Player.Defined($PLAYER_CHAR)   //Загружен игрок
not Actor.Driving($PLAYER_ACTOR)  //Актёр не водитель
Model.Available(#COPCARLA)     //Загружена модель машины
0101: actor $PLAYER_ACTOR stopped_near_point 2506.4521 -1650.9073 13.6991 radius 3.0 3.0 10.0 sphere 1 //Актёр находится на красном маркере.
else_jump @NONAME_1 //Проверяем выполнение условия, если всё верно то идём дальше, если нет то Начинаем снова проверять.
if
0101: actor $PLAYER_ACTOR stopped_near_point 2506.4521 -1650.9073 13.6991 radius 3.0 3.0 10.0 sphere 1 //Проверяем ЕЩЁ РАЗ чтобы Актёр находился на красном маркере.
else_jump @NONAME_1
if
$ONMISSION == 0    //Проверяем чтобы другие миссии не были активны.
jump @STA_1  //переходим к началу выполнения миссии
Наконец то до меня дошло но правда не всё ясно с некотрыми деталями.
« Последнее редактирование: 08 Июня 2008, 23:10:37 от Gadina » Записан
yelmi
Администратор
*****
Офлайн Офлайн

Сообщений: 321



« Ответ #56 : 08 Июня 2008, 22:29:00 »

Код:
if
0102: actor $PLAYER_ACTOR stopped_near_point_on_foot 2506.4521 -1650.9073 13.6991 radius 5 5 6 sphere 0
jf @NONAME_1

Цитировать
чё значит что больше 8 условий быть не может?
Код:
if and//or
<условие0>
<условие8>
jf @
if and//or
<условие0>
<условие8>
jf @
if and//or
<условие0>
<условие8>
jf @
if and//or
<условие0>
<условие8>
jf @
« Последнее редактирование: 08 Июня 2008, 22:33:40 от yelmi » Записан
maximuch
Новичок
*
Офлайн Офлайн

Сообщений: 12


« Ответ #57 : 08 Июня 2008, 22:30:50 »

гм... поправил

Код:
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 04.08.2007

{$VERSION 3.1.0023}
{$CLEO .cs}

//-------------MAIN---------------
03A4: name_thread 'GUARD'

:GUARD_11
0001: wait 250 ms
00D6: if
0256:   player $PLAYER_CHAR defined
004D: jump_if_false @GUARD_743
00D6: if and
00DF:   actor $PLAYER_ACTOR driving
84A7:   not actor $PLAYER_ACTOR driving_boat
84A9:   not actor $PLAYER_ACTOR driving_heli
84AB:   not actor $PLAYER_ACTOR driving_plane
84C8:   not actor $PLAYER_ACTOR driving_flying_vehicle
89AE:   not actor $PLAYER_ACTOR driving_train
004D: jump_if_false @GUARD_11
00D6: if or
80DF:   not actor $PLAYER_ACTOR driving  
077E: get_active_interior_to $ACTIVE_INTERIOR
00D6: if
0038:   $ACTIVE_INTERIOR == 0
004D: jump_if_false @GUARD_743
00D6: if and
03C0:   10@ = actor $PLAYER_ACTOR car
046C:   20@ = car 10@ driver
003B:   20@ == $PLAYER_ACTOR // (int)
004D: jump_if_false @GUARD_11
00D6: if and
00E1:   player 20@ pressed_key 78
004D:   jump_if_false @GUARD_779
0247:   load_model #MAFFA
0247:   load_model #VMAFF1
0247:   load_model #VMAFF2
0247:   load_model #AK47
0247:   load_model #FBIRANCH
038B:   load_requested_models

:GUARD_173
00D6: if or
8248:   not model #MAFFA available
8248:   not model #VMAFF1 available
8248:   not model #VMAFF2 available
8248:   not model #AK47 available
8248:   not model #FBIRANCH available
004D: jump_if_false @GUARD_11
0001: wait 0 ms
0002: jump @GUARD_217

:GUARD_217
00D6: if and
0407:   store_coords_to 3@ 4@ 5@ from_actor $PLAYER_ACTOR with_offset -100.0 -100.0 0.0
0407:   store_coords_to 0@ 1@ 2@ from_actor $PLAYER_ACTOR with_offset 100.0 100.0 0.0  
0174:   6@ = car 10@ Z_angle
004D: jump_if_false @GUARD_217
00D6: if
02C1:   store_to 3@ 4@ 5@ car_path_coords_closest_to 0@ 1@ 2@
0002: jump @GUARD_322

:GUARD_322
00D6: if and
01EC:   make_car 10@ very_heavy 1
00A5:   30@ = create_car #FBIRANCH at 3@ 4@ 5@
0175:   set_car 30@ Z_angle_to 6@
0397:   toggle_car 30@ siren 1
0229:   set_car 30@ primary_color_to 0 secondary_color_to 0
02AC:   set_car 30@ immunities BP 1 FP 1 EP 1 CP 1 MP 1
00AD:   set_car 30@ max_speed_to 60.0
01EC:   make_car 30@ very_heavy 1
00AE:   set_car 30@ traffic_behavior_to 4
0519:   toggle_car 30@ locked 1
00D6: if
0129:   11@ = create_actor_pedtype 24 model #MAFFA in_car 30@ driverseat
01C8:   12@ = create_actor_pedtype 8 model #VMAFF1 in_car 30@ passenger_seat 0
01C8:   13@ = create_actor_pedtype 8 model #VMAFF2 in_car 30@ passenger_seat 1
01C8:   14@ = create_actor_pedtype 8 model #VMAFF1 in_car 30@ passenger_seat 2
039E:   toggle_actor 11@ locked 1 while_in_car
039E:   toggle_actor 12@ locked 1 while_in_car
039E:   toggle_actor 13@ locked 1 while_in_car
039E:   toggle_actor 14@ locked 1 while_in_car
0223:   set_actor 11@ health_to 10000
0223:   set_actor 12@ health_to 10000
0223:   set_actor 13@ health_to 10000
0223:   set_actor 14@ health_to 10000
01B2:   give_actor 11@ weapon 355 ammo 10000 // Load the weapon model before using this
01B2:   give_actor 12@ weapon 355 ammo 10000 // Load the weapon model before using this
01B2:   give_actor 13@ weapon 355 ammo 10000 // Load the weapon model before using this
01B2:   give_actor 14@ weapon 355 ammo 10000 // Load the weapon model before using this
0446:   toggle_actor 11@ immune_to_headshots 0
0446:   toggle_actor 12@ immune_to_headshots 0
0446:   toggle_actor 13@ immune_to_headshots 0
0446:   toggle_actor 14@ immune_to_headshots 0

:GUARD_610
00D6: if and
07F8:   car 30@ follow_car 10@ radius 7
00AD:   set_car 30@ max_speed_to 150.0
06E1:   AS_actor 11@ using_car 30@ target_car 10@ with_order 31 max_speed 200.0 traffic_flag 2
04BA:   set_car 30@ speed_to 10.0
004D: jump_if_false @GUARD_610
00D6: if and
0249:   release_model #FBIRANCH
0249:   release_model #VMAFF1
0249:   release_model #VMAFF2
0249:   release_model #MAFFA
0249:   release_model #AK47
004D: jump_if_false @GUARD_610
0001: wait 500 ms
00D6: if and
8119:   not car 30@ wrecked
82BF:   not car 30@ sunk
8118:   not actor 11@ dead
0448:   actor 11@ in_car 30@
004D: jump_if_false @GUARD_743

:GUARD_743
00D6: if and
01C3:   remove_references_to_car 30@ // Like turning a car into any random car
01C2:   remove_references_to_actor 11@ // Like turning an actor into a random pedestrian
01C2:   remove_references_to_actor 12@ // Like turning an actor into a random pedestrian
01C2:   remove_references_to_actor 13@ // Like turning an actor into a random pedestrian
01C2:   remove_references_to_actor 14@ // Like turning an actor into a random pedestrian
004E: end_thread

:GUARD_779
0002: jump @GUARD_11

вроде... так..

и  Обеспокоенный Показывает язык
опять же, ничего не происходит. Надеюсь суть самого скрипта понял? Подмигивающий

При нажатии "N" должен появится #FBIRANCH с #VMAFFами (с #AK47), который должен сопровождать CJя (если он в машине не смотря на то водитель он, или пассажир)....

Что я могу забыть?  Шокированный Непонимающий


upd
"условный опкод"?  Плачущий
« Последнее редактирование: 08 Июня 2008, 22:38:01 от maximuch » Записан
yelmi
Администратор
*****
Офлайн Офлайн

Сообщений: 321



« Ответ #58 : 08 Июня 2008, 22:44:06 »

Смотри список клавиш для игрока находящегося в автомобиле где 8 - next radio station

Код:
03C0:   10@ = actor $PLAYER_ACTOR car
046C:   20@ = car 10@ driver
эти опкоды не являются условиями.
Первый записывает в переменную10@ хендл автомобиля игрока, а второй записывает в переменную 20@ водителя автомобиля 10@
Опкодом
003B:   20@ == $PLAYER_ACTOR // (int)
проверяем является ли игрок водителем

Записан
maximuch
Новичок
*
Офлайн Офлайн

Сообщений: 12


« Ответ #59 : 08 Июня 2008, 22:49:46 »

дык при чем тут 8?

у меня же
Код:
00E1:   player 20@ pressed_key 78

соглано хелпе (внутренней, что в самом билдере)

Код:
N or n     78

Смотри список клавиш для игрока находящегося в автомобиле где 8 - next radio station

Код:
03C0:   10@ = actor $PLAYER_ACTOR car
046C:   20@ = car 10@ driver
эти опкоды не являются условиями.
Первый записывает в переменную10@ хендл автомобиля игрока, а второй записывает в переменную 20@ водителя автомобиля 10@
Опкодом
003B:   20@ == $PLAYER_ACTOR // (int)
проверяем является ли игрок водителем


Непонимающий
Как будет правильнО?
Если честно, смотрел по другим скриптам.. там использовали такую строку. К примеру скрипт, по которому ПРОСТО приезжают хлопцы (подкрепление)..
« Последнее редактирование: 08 Июня 2008, 22:56:40 от maximuch » Записан
Страниц: 1 2 3 [4] 5 6 ... 17   Вверх
  Печать  
 
Перейти в:  

Яндекс.Метрика Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!
Страница сгенерирована за 0.465 секунд. Запросов: 20.

Google visited last this page 19 Ноября 2017, 14:11:30