Последние сообщения

Страницы: [1] 2 3 ... 10
1
Общие вопросы / Re: Помощь с CLEO
« Последний ответ от GeniusZ Июль 23, 2017, 08:24:20 am »
Судя по коду, Вы декомпилируете свой же скрипт. Это делать не стоит, когда у вас есть исходники. Просто открываете .txt файл с кодом и продолжаете работать, иначе при декомпиляции вы теряете часть информации и получаете плохочитабельный код.

Что касается маркера на карте, то используйте вместо опкода:
02A7: 13@ = create_icon_marker_and_sphere 31 at -1107.25 -517.35 11.20вот эти:
0570: 13@ = create_asset_radar_marker_with_icon 31 at -1107.25 -517.35 11.20
03BC: 14@ = create_sphere -1107.25 -517.35 11.20

Только потом не забудьте выключить сферу:
...
:car_tuning_3
0164: disable_marker 13@
03BD: destroy_sphere 14@

Что касается условий: зачем проверять каждое условие отдельно, если можно проверить все разом?
{$CLEO}

0570: 13@ = create_asset_radar_marker_with_icon 31 at -1107.25 -517.35 11.20
03BC: 14@ = create_sphere -1107.25 -517.35 11.20 2.0

:car_tuning_1
wait 0
if and
  0256:   player $PLAYER_CHAR defined
  00E0:   player $PLAYER_CHAR driving
  00F5:   player $player_char in_sphere 0 near_point -1107.25 -517.35 11.20 radius 30.0 30.0 30.0
  0103:   actor $PLAYER_ACTOR stopped_near_point_in_car -1107.25 -517.35 11.20 radius 3.0 3.0 3.0 sphere 0 // never used in VC
  0122:   player $PLAYER_CHAR pressing_horn
  010A:   player $PLAYER_CHAR money > 10000
jf @car_tuning_1
0109: player $PLAYER_CHAR money += -10000
016A: fade 0 1000 ms
0001: wait 1500 ms 
03C0: 0@ = actor $PLAYER_ACTOR car
053F: set_car 0@ tires_vulnerable 0
016A: fade 1 1000 ms
0001: wait 1500 ms
0394: play_music 1
0164: disable_marker 13@
03BD: destroy_sphere 14@
05DC: end_custom_thread

Вообще я мог бы рекомендовать вам сайт ru-script.3dn.ru. Правда там уроки скриптинга по SA, но он мало чем отличается от скриптинга в VC.
2
Общие вопросы / Re: Помощь с CLEO
« Последний ответ от egor230 Июль 22, 2017, 09:04:31 pm »
 Shagg_E
Благодарю за Ваш ответ. По Вашим советам, учусь скриптингу, конечно, не все всегда получается. Опираясь на ответы в теме, написал скрипт.
Огромное Вам спасибо за ответ по блокировке дверей, теперь скрипт благодаря совету эксперту стал лучше!!!!!!!!!
Заезжайте на маркер, сигналите, за деньги получайте непробиваемые шины.
Единственная проблема, значок маркер с радара не пропадает, когда покидаешь радиус. Подскажите, пожалуйста, где ошибка?
Ищу также опкод или адрес памяти, который отвечает за включения\отк фар авто. Ну люблю vice city?, хоть и 28 лет, скоро отцом стану.
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP

:car_tuning_1
00D6: if
0256:   player $PLAYER_CHAR defined
004D: jump_if_false @car_tuning_1

:car_tuning_2
0001: wait 0 ms
00D6: if
00E0:   player $PLAYER_CHAR driving
004D: jump_if_false @car_tuning_2
00D6: if
00F5:   player $player_char in_sphere 0 near_point -1107.25 -517.35 11.20 radius 30.0 30.0 30.0
004D: jump_if_false @car_tuning_2
02A7: 13@ = create_icon_marker_and_sphere 31 at -1107.25 -517.35 11.20
0103:   actor $PLAYER_ACTOR stopped_near_point_in_car -1107.25 -517.35 11.20 radius 3.0 3.0 3.0 sphere 0 // never used in VC
004D: jump_if_false @car_tuning_2
if
0122:   player $PLAYER_CHAR pressing_horn
004D: jump_if_false @car_tuning_2
if
010A:   player $PLAYER_CHAR money > 10000
004D: jump_if_false @car_tuning_2
0109: player $PLAYER_CHAR money += -10000
016A: fade 0 1000 ms
0001: wait 1500 ms 
03C0: $PLAYER_CAR = actor $PLAYER_ACTOR car
053F: set_car $PLAYER_CAR tires_vulnerable 0
016A: fade 1 1000 ms
0001: wait 1500 ms
0394: play_music 1
00D6: if
00F5:  player $player_char in_sphere 0 near_point -1107.25 -517.35 11.20 radius 30.0 30.0 30.0
jf @car_tuning_3
:car_tuning_3
0164: disable_marker 13@
0002: jump @car_tuning_1

3
Скриптинг / Re: Новые опкоды(ваши предложения)
« Последний ответ от Shagg_E Июль 21, 2017, 11:46:50 am »
Shagg_E сможешь такое реализовать в своем плагине? - http://www.gtagarage.com/mods/show.php?id=22350

Хмм, честно говоря, не совсем понимаю, как это связано с новыми опкодами...
4
Скриптинг / Re: Новые опкоды(ваши предложения)
« Последний ответ от GHOST Июль 21, 2017, 09:57:56 am »
Shagg_E сможешь такое реализовать в своем плагине? - http://www.gtagarage.com/mods/show.php?id=22350
5
Общие вопросы / Re: Помощь с CLEO
« Последний ответ от Shagg_E Июль 20, 2017, 07:40:22 pm »
Скажите, пожалуйста, как создать пикап, только на один раз? Взял и больше не появляется.

Абсолютно точно также, как в примере из этого поста, только заменить
Код: Text
  1. jump @PICKU01_03
на
Код: Text
  1. 0215: destroy_pickup 0@
  2. 0A93: end_custom_thread

Т.е. финальный вариант будет выглядеть так:
Код: Text
  1. {$CLEO}
  2. 0000:
  3. thread 'PICKU01'
  4.  
  5. :PICKU01_01
  6. wait 0
  7. if
  8. 00F5:   player $player_char in_sphere 0 near_point 109.39 -808.28 10.46 radius 30.0 30.0 30.0   // проверяется нахождение игрока в радиусе 30 метров
  9. jf @PICKU01_01
  10. model.Load(337) // ставим в очередь на загрузку модель денег под номером 337(см. в Vice City\data\maps\generic.ide)
  11. 038B: load_requested_models // принудительная загрузка всех моделей, стоящих в очереди на загрузку
  12.  
  13. :PICKU01_02
  14. wait 0
  15. if
  16. Model.Available(337) // на всякий пожарный проверяем, загрузилась ли модель
  17. jf @PICKU01_02
  18. 0@ = Pickup.Create(337,8,109.39, -808.28, 10.46) // создаем пикап денег, автоматически исчезающий через 30 секунд
  19. 0249: release_model 337 // обязательно выгружаем модель из памяти игры, ведь пикап мы уже создали, и модель нам не нужна
  20.  
  21. :PICKU01_03
  22. wait 0
  23. if
  24. 00F5:   player $player_char in_sphere 0 near_point 109.39 -808.28 10.46 radius 30.0 30.0 30.0   // проверяется нахождение игрока в радиусе 30 метров
  25. jf @PICKU01_04 // если игрок покинул этот радиус - переход на метку "3", где удаляется пикап
  26. if
  27. pickup.Picked_up(0@) // если пикап был подобран
  28. jf @PICKU01_03
  29. 0109: player $player_char money += 10000 // даем игроку 10000 долларов
  30. 0215: destroy_pickup 0@
  31. 0A93: end_custom_thread
  32. //jump @PICKU01_03
  33.  
  34. :PICKU01_04
  35. 0215: destroy_pickup 0@
  36. jump @PICKU01_01



Сегодня написал скрипт блокировка дверей авто. Если зайти двери блокируются, выйдешь они разблокируется сами,
в машине также это можно сделать нажатием клавишей F. Конечно, есть ошибки. Вам виднее сделать его лучше.


Код: Text
  1. {$CLEO .cs}
  2. //-------------MAIN---------------
  3. 0000: NOP
  4.  
  5. :BLOCK_1 // первый цикл                          
  6. wait 0
  7. if
  8. 0256: player $PLAYER_CHAR defined  // если игрок существует
  9. jf @BLOCK_1
  10. if
  11. 00E0: player $PLAYER_CHAR driving  // если игрок водит авто
  12. jf @BLOCK_1
  13. 03C1: 0@ = player $PLAYER_CHAR car  // записываем хэндл авто в переменную 0@
  14. 020A: set_car 0@ door_status_to 2   // блокируем двери
  15.  
  16. :BLOCK_2  // далее начинает работать второй цикл
  17. wait 0
  18. if
  19. 8443: NOT player $PLAYER_CHAR in_a_car  // если игрок покинул авто
  20. jf @BLOCK_2
  21. if
  22. 8039:   NOT 0@ == -1 // если авто существует(хэндл этого авто не равен -1)
  23. jf @BLOCK_1
  24. 020A: set_car 0@ door_status_to 1  // разблокируем двери
  25. jump @BLOCK_1
6
Общие вопросы / Re: Помощь с CLEO
« Последний ответ от egor230 Июль 20, 2017, 05:24:26 pm »
Спасибо всем за Ваши ответы, очень приятно.
Прошу прощение, что не сразу Вам ответил, дела- работа, кредиты, семья.
GeniusZ, кейворды очень удобная и полезная вещь при написания скрипта.
DK, читаю, изучаю. Так интересно, жаль всегда есть свободного время. Более широкие возможности дает работа с памятью.
Shagg_E спасибо за Ваш ответ, к сожалению не все опкоды имеют понятно описания.
Прошу прощения за мою оплошность, его создал до прочтения Вашего мудрого совет.
Скажите, пожалуйста, как создать пикап, только на один раз? Взял и больше не появляется.
Сегодня написал скрипт блокировка дверей авто. Если зайти двери блокируются, выйдешь они разблокируется сами,
в машине также это можно сделать нажатием клавишей F. Конечно, есть ошибки. Вам виднее сделать его лучше.
{$CLEO .cs}
//-------------MAIN---------------
0000: NOP
:BLOCK_1                           
0001: wait 0 ms
00D6: if
0256: player $PLAYER_CHAR defined
004D: jump_if_false @BLOCK_1
00D6: if
00E0: player $PLAYER_CHAR driving
004D: jump_if_false @BLOCK_1
:1
03C1: 10@ = player $PLAYER_CHAR car
020A: set_car 10@ door_status_to 2
:3
wait 1
00D6: if   
05EE: key_pressed 66 //VK_...
004D: jump_if_false @2
:4
wait 1
00D6: if   
85EE: not key_pressed 66 //VK_...
004D: jump_if_false @3
:5
020A: set_car 10@ door_status_to 1
01E5: text_1number_highpriority 'NUMBER' 1 flag 1000 time 1  // ~1~
wait 500
00BE: text_clear_all
:6
wait 1
00D6: if   
05EE: key_pressed 66 //VK_...
004D: jump_if_false @6
:7
wait 1
00D6: if   
85EE: not key_pressed 66 //VK_...
004D: jump_if_false @6
:8
020A: set_car 10@ door_status_to 2
01E5: text_1number_highpriority 'NUMBER' 2 flag 1000 time 1  // ~1~
wait 500
00BE: text_clear_all
:2
00D6: if
8443: NOT player $PLAYER_CHAR in_a_car
004D: jump_if_false @BLOCK_1
020A: set_car 10@ door_status_to 1
01E5: text_1number_highpriority 'NUMBER' 1 flag 1000 time 1  // ~1~
jump @BLOCK_1
7
Общие вопросы / Re: Помощь с CLEO
« Последний ответ от Shagg_E Июль 20, 2017, 03:30:13 pm »
также думаю, может быть этот опкод на коробку передач.
0428: set_car $4226 avoid_level_transitions 1
Нет, этот опкод запрещает тачке кататься по всей карте, заставляя её колесить по одному району(не точно, но как-то так)

Написал скрипт добавление новой недвижимости  со сохранением. Конечно, много ошибок.
Опять создание пикапа без проверок нахождения игрока в определенном радиусе. Этот пикап сохранится в файле сохранения и его потом оттуда не выковыришь.

Далее есть проверка
Код: Text
  1. Model.Available(1277)
Но опять нет jump_if_false на случай, если модель не доступна. Тем более - выше не написано
Код: Text
  1. 038B: load_requested_models
, чтобы загрузить модели(читай мой предыдущий пост с примерами и комментами к опкодам).


В остальном согласен с GeniusZ и DK
8
Скриптинг / Re: Новые опкоды(ваши предложения)
« Последний ответ от Shagg_E Июль 20, 2017, 12:26:01 pm »
все равно не особо удобно, потому что приходится узнавать какие-то там номера, ставить плагины на подгрузку своих ifp...

Я пишу альтернативу стандартной вайсовской системе анимаций. Думаю, она-то и станет удобной альтернативой(для конечного игрока).
Скриптеру нужно будет любым способом воспроизвести свою анимацию(например - заменить любую существующую), потом "записать" свою анимацию или вообще любое действие(по принципу "CarRec") специальным опкодом и получить на выходе файл анимации нового формата, который можно будет просто закидывать в любую папку и использовать оттуда уже без всяких ограничений.
Возможно, в далеком будущем даже запилю скрипт для 3ds max-а, при помощи которого можно будет обойтись без "записи" в игре.

Но в любом случае - рассмотрю любые идеи по новым опкодам, если мне это будет под силам или список не накопится слишком огромный...
Как вариант - взять за основу те опкоды, что были добавлены в клео для SA и в плагине от DK NewOpcodes. Из них уже выбрать те, что в принципе можно реализовать для VC, а из них соответственно те, что сможешь сделать.

Да, видел - это как раз из разряда
Цитировать
или список не накопится слишком огромный

 ;D
Пару идей оттуда взял(типа получение даты и времени винды, стрельба пулями/взрывчаткой, получение вектора нормали кола), но остальное - очень специфичные вещи, которые только зря отнимут у меня время, и никому не пригодятся. Например - работа с матрицами/кватернионами(добрая треть опкодов). Это дает большую свободу скриптеру, но я решил всё упростить.
У меня вместо этого будет лишь
get object rotation
set object rotation
get vehicle rotation
set vehicle rotation
get actor rotation
set actor rotation
в градусах(и то же самое для компонентов педов/авто). И никаких проблем для рядового скриптера с его рядовыми проблемами.
Аудио опкоды у меня будут, но пока хз какие(еще не знаю, какую аудио библиотеку буду юзать - сейчас не до этого)...
9
Скриптинг / Re: Новые опкоды(ваши предложения)
« Последний ответ от kenking Июль 20, 2017, 06:43:01 am »
Но в любом случае - рассмотрю любые идеи по новым опкодам, если мне это будет под силам или список не накопится слишком огромный...
Как вариант - взять за основу те опкоды, что были добавлены в клео для SA и в плагине от DK NewOpcodes. Из них уже выбрать те, что в принципе можно реализовать для VC, а из них соответственно те, что сможешь сделать.
10
Скриптинг / Re: Новые опкоды(ваши предложения)
« Последний ответ от ilufir Июль 18, 2017, 09:22:30 pm »
Ого! Не заметил, что есть ответ в теме :o
вау, выглядит неплохо. еще бы создать возможность без геморроя проигрывать свою анимацию...
Это уже запилили:
Код: Text
  1. 0673: play_animation on actor $PLAYER_ACTOR animgroup 61 anim 512 blendfactor 30.0 // play dance animation from cj_dance
нужно лишь помимо CLEO 2 поставить один плагин.

СПИСОК ОБНОВЛЕН!
Если у вас есть идеи, как можно реализовать вещи из списка FAIL - помогите плиз.

Но в любом случае - рассмотрю любые идеи по новым опкодам, если мне это будет под силам или список не накопится слишком огромный...
все равно не особо удобно, потому что приходится узнавать какие-то там номера, ставить плагины на подгрузку своих ifp...
Страницы: [1] 2 3 ... 10