Вопросы по созданию скриптов
dim1988
Дата: Воскресенье, 19.07.2009, 18:43 | Сообщение # 1
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
Ответы на самые часто задаваемые вопросы Как сохранить (компилировать) скрипт? Почему не следует использовать в клео скриптах глобальные переменные? Как узнать координаты мест, через какую прогу? Как поместить игрока в интерьер? Опкод, который открывает все дома в СА Запись в переменную ближайшего педа и проверка его модели Как заставить актёров ходить по определённым координатам Проверка нажатия определённой клавиши Пак пути с анимацией Как сделать так, чтоб 2 миссии следовали друг за другом? Как актёру дать оружие? Как создать транспорт Как создать жёлтый маркер для входа в интерьер? При компиляции выдаёт ошибку перехода на нулевой оффсет,что это и как исправить? Как транспорту присвоить определённый цвет? Что делать если пишет ожидалось 'x' параметров? Как написать цветной текст? Номера костей актёра Что такое gosub? Опкоды, связанные с созданием огня Как изменить оружие банд? Образец добавления в игру объектов Проверка нажатия клавиши в игре и список значений Путь или scmpath Как изменить цвет затемнения экрана? Как записать в переменную случайное число из интервала Список стилей боя Как привязать эффект к кости актёра? Как произвести действия, над педами, созданными игрой Как заменить модель игрока Как заставить актёра поднять руки, как при аресте Сброс анимации Как метнуть объект? Как из одного скрипта запустить другой? + файл от пользователя нашего сайта Absolute . Здесь перечислены все вопросы из этой этой темы и ответы на них. Скачать
Innocent
Дата: Воскресенье, 17.10.2010, 16:03 | Сообщение # 1591
Скриптер
Группа: Проверенные
Сообщений: 105
Замечания:
20%
Статус: Offline
SkyG , Достаточно присвоить твоему актеру ( вернее актрисе ) - 0245: set_actor $Actor walk_style_to "WOMAN"
И актер будет использовать женскую походку, следовательно если и модель женская то всё будет как положено. Хотя можно присваивать и мужчинам женскую походку)) и наоборот соответственно.
А есть еще какието операции связаные с женской пренадлежностью : проверки там и опкоды касающийся только женского пола ? - Я думаю нет.
Разве только несколько опкодов связаные с проститутками.
Сообщение отредактировал Innocent - Воскресенье, 17.10.2010, 16:06
dim1988
Дата: Воскресенье, 17.10.2010, 16:30 | Сообщение # 1592
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
Quote (Innocent )
А есть еще какието операции связаные с женской пренадлежностью : проверки там и опкоды касающийся только женского пола ?
Можно проверить пол 03A3: actor 9@ male - актёр 9@ самец
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность
DK22Pac
Дата: Воскресенье, 17.10.2010, 16:35 | Сообщение # 1593
Группа: Проверенные
Сообщений: 205
Замечания:
0%
Статус: Offline
Quote (DK22Pac )
Quote (Den_spb )
Тут мне нужно поставить перебор пула в цикл, ведь могут создаваться новые актёры...
Посмотри внимательно код, там пул и так перебирается в цикле while true..end(постоянно).
Тут-то и моя проблема. Если, например, создавать маркеры над существующими актёрами - согласен, маркеры создадутся над всеми, если включен флаг "find_next". Но так я ставлю это дело в цикл, игра будет брать тех же актёров и опять ставить маркеры... В итоге выходит месиво крутящихся маркеров над актёрами...
Мои скрипты Grand Theft Auto III HD Development Team
Сообщение отредактировал DK22Pac - Воскресенье, 17.10.2010, 16:35
Innocent
Дата: Воскресенье, 17.10.2010, 16:53 | Сообщение # 1594
Скриптер
Группа: Проверенные
Сообщений: 105
Замечания:
20%
Статус: Offline
Ахах и ведь точно! Только что пробежался по оригинальному мэйну - наткнулся несколько раз на это во внешних скриптах На танцах в клубе, на продавцов бургеров, парикмахерская и еще несколько.
03A3: actor 0@ male - мужык 83A3: not actor 0@ male - не мужык xD
Вот только не совсем ясно зачем нужны были такие извращения !?
К примеру скрипт продовца в закусочных если не ошибаюсь Там типо проверка если актер мужчина, тогда идут его фразы пицерийщика.Если же нет тогда всё равно идут его же фразы
Вот
:BURGLAR_5541 00D6: if 03A3: actor 0@ male 004D: jump_if_false @BURGLAR_5580 09D5: play_sound_of_actor 0@ soundslot 110 flags 1 0 0 as 13@ 0002: jump @BURGLAR_5596
:BURGLAR_5580 09D5: play_sound_of_actor 0@ soundslot 110 flags 1 0 0 as 13@
:BURGLAR_5596 0002: jump @BURGLAR_5603
А вот 83A3: not actor 0@ male встречаеться только на миссиях сутенера, там всё ясно.Дотошные проверки этих "ночных бабочек".
Всегда знал что внешние скрипты это геморой.Но не на столько же...
LikeBAX
Дата: Воскресенье, 17.10.2010, 21:30 | Сообщение # 1595
Группа: Проверенные
Сообщений: 152
Замечания:
0%
Статус: Offline
Срочно помогите с миссией, пожалуйста. Траблы: 1.Игрок берет телефон, выводится только текст CL3 2.катсцена не запускается! Засунул новые файлы в cuts.img, с FXT тож все в порядке. Стартер:
{$CLEO .cs}
0000: NOP
wait 0 Model.Load(#CELLPHONE)
:ST1 wait 0 if and Player.Defined($PLAYER_CHAR) $ONMISSION == 0 84AD: not actor $PLAYER_ACTOR in_water 8449: not actor $PLAYER_ACTOR in_a_car Model.Available(#CELLPHONE) jf @ST1 wait 1000 0729: AS_actor $PLAYER_ACTOR hold_cellphone 1 wait 2000 0967: actor $PLAYER_ACTOR move_mouth 3000 ms 00BC: show_text_highpriority GXT 'CL1' time 3000 flag 1 00BC: show_text_highpriority GXT 'CL2' time 6000 flag 1 0967: actor $PLAYER_ACTOR move_mouth 3000 ms 00BC: show_text_highpriority GXT 'CL3' time 3000 flag 1 0729: AS_actor $PLAYER_ACTOR hold_cellphone 0
:START wait 0 1@ = Marker.CreateIconAndSphere(38, 2514.5601, -1674.1101, 13.6567)
:START_2 wait 250 if and Player.Defined($PLAYER_CHAR) 0102: actor $PLAYER_ACTOR in_sphere 2514.5601 -1674.1101 13.6567 radius 2.0 2.0 1.0 sphere 1 stopped_on_foot jf @START_2 Marker.Disable(1@) Player.CanMove($PLAYER_CHAR) = False 05D3: AS_actor $PLAYER_ACTOR goto_point 2521.1069 -1678.751 15.2944 mode 4 5000 ms // versionA 02A3: enable_widescreen 1 Camera.SetPosition(2513.1199, -1675.2979, 13.5483, 0.0, 0.0, 0.0) Camera.PointAt(2517.0132, -1676.0728, 14.0945, 2) wait 5000 00BA: show_text_styled 'NAM' time 5000 style 2 0A94: start_custom_mission "PLEDOM" Player.CanMove($PLAYER_CHAR) = True $ONMISSION = 1 0A93: end_custom_thread
Миссия (старт катсцены взял из Invasion, в миссии должна быть только катсцена и надпись МИССИЯ ВЫПОЛНЕНА):
{$CLEO .cm}
//-------------MAIN--------------- thread 'PLEDOM' increment_mission_attempts $ONMISSION = 1 Player.CanMove($PLAYER_CHAR) = False fade 0 2000 wait 3000 02E4: load_cutscene_data "PLEDOM_1"
:M1_59 if 86B9: not cutscene_data_loaded jf @M1_83 wait 0 jump @M1_59
:M1_83 02E7: start_cutscene fade 1 1000
:M1_92 if 82E9: not cutscene_reached_end jf @M1_116 wait 0 jump @M1_92
:M1_116 Player.CanMove($PLAYER_CHAR) = False fade 0 0
:M1_129 if fading else_jump @M1_153 wait 0 jump @M1_129
:M1_153 02EA: end_cutscene jump @LabelMis1
:LabelMis1 gosub @KOD_MISSII if wasted_or_busted Jf @PROPUSK_KODA gosub @KOD_PROVALA
:PROPUSK_KODA gosub @UDALENIE_KODA end_thread
:KOD_MISSII increment_mission_attempts $ONMISSION = 1 jump @LabelMis1_4 :LabelMis1_3 wait 0 if wasted_or_busted jf @LabelMis1_4 jump @KOD_PROVALA :LabelMis1_4 wait 0 jump @UDACHNO :UDACHNO 01E3: show_text_1number_styled GXT 'M_PASSD' number 0 time 5000 style 1 0110: clear_player $PLAYER_CHAR wanted_level 0394: play_music 1 gosub @PROPUSK_KODA return
:KOD_PROVALA 00BA: text_styled 'M_FAIL' 5000 ms 1 $ONMISSION = 0 mission_cleanup end_thread
:UDALENIE_KODA $ONMISSION = 0 mission_cleanup end_thread
dim1988
Дата: Воскресенье, 17.10.2010, 21:35 | Сообщение # 1596
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
SkyG , вроде бы название сцены должно быть максимум 7 символов.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность
LikeBAX
Дата: Воскресенье, 17.10.2010, 21:52 | Сообщение # 1597
Группа: Проверенные
Сообщений: 152
Замечания:
0%
Статус: Offline
dim1988 , все изменил на 6 символов, теперь игра летит. А проблему с текстом как решить?
dim1988
Дата: Понедельник, 18.10.2010, 18:53 | Сообщение # 1598
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
Какая проблема-то?
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность
aiaks
Дата: Понедельник, 18.10.2010, 20:32 | Сообщение # 1599
Группа: Пользователи
Сообщений: 1
Замечания:
0%
Статус: Offline
А можно создать такой cleo который позволит в sa-mp видеть всех на карте... для рп серверов. Или такой уже существует?
Scripter100
Дата: Понедельник, 18.10.2010, 20:37 | Сообщение # 1600
Группа: Проверенные
Сообщений: 108
Замечания:
0%
Статус: Offline
Вот прочитал твою статью дим "С чего начать скриптинг" я написал всё как надо, а где писать все коды команды и т.д
Sanya1990
Дата: Вторник, 19.10.2010, 11:56 | Сообщение # 1601
Группа: Проверенные
Сообщений: 86
Замечания:
0%
Статус: Offline
Iron-man3 , команды пишутся после определённого условия.
Scripter100
Дата: Вторник, 19.10.2010, 12:54 | Сообщение # 1602
Группа: Проверенные
Сообщений: 108
Замечания:
0%
Статус: Offline
Quote (СержантКели )
Iron-man3, команды пишутся после определённого условия
Спасибо! а как скомпилировать скрипт в формате .cs? я компилирую а он сохраняется в формате .scm
dim1988
Дата: Вторник, 19.10.2010, 13:17 | Сообщение # 1603
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
Iron-man3 , если ты читал статью, там же написано, что надо писать {$CLEO .cs} в начале. Тогда и будет компилироваться в cs.Quote (aiaks )
А можно создать такой cleo который позволит в sa-mp видеть всех на карте... для рп серверов. Или такой уже существует?
Не играл в самп, но я думал там и так всех видно. Но думаю скрипт написать не получится.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность
Sanya1990
Дата: Вторник, 19.10.2010, 17:01 | Сообщение # 1604
Группа: Проверенные
Сообщений: 86
Замечания:
0%
Статус: Offline
dim1988 , вроде и по этой специализации есть скриптинг.Но он вроде сложнее. Подскажи проверку на пед тип.Чтобы можно было дать имунитет любому педу.Пробывал по пулу,ничего не вышло. И ещё нужна проверка.Типа актёр стреляет в тачку.
Сообщение отредактировал СержантКели - Вторник, 19.10.2010, 17:03
dim1988
Дата: Вторник, 19.10.2010, 17:21 | Сообщение # 1605
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
Quote (СержантКели )
Подскажи проверку на пед тип
089F: get_actor 1@ pedtype_to 5@ if 5@ == 4
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность
Den_spb
Дата: Вторник, 19.10.2010, 19:36 | Сообщение # 1606
Мастер по скриптингу
Группа: Проверенные
Сообщений: 295
Замечания:
0%
Статус: Offline
Quote (aiaks )
А можно создать такой cleo который позволит в sa-mp видеть всех на карте... для рп серверов. Или такой уже существует?
CLEO создавалась для одиночной игры и не предназначена для сампа. Quote (Iron-man3 )
Вот прочитал твою статью дим "С чего начать скриптинг" я написал всё как надо, а где писать все коды команды и т.д
В окне программы Sanny Builder. Первой строчкой идёт директива {$CLEO}, за ней пишешь остальные команды (в каждой строчке - одна команда)
Sanya1990
Дата: Вторник, 19.10.2010, 20:37 | Сообщение # 1607
Группа: Проверенные
Сообщений: 86
Замечания:
0%
Статус: Offline
dim1988 , Den_spb , Как заставить тачку ехать в каторую сел CJ в качестве пассажира?
dim1988
Дата: Среда, 20.10.2010, 07:53 | Сообщение # 1608
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
Quote (СержантКели )
Как заставить тачку ехать в каторую сел CJ в качестве пассажира?
00AE: set_car 5@ traffic_behaviour_to 2 Car.SetDriverBehaviour(5@, FollowRoad)
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность
Sanya1990
Дата: Среда, 20.10.2010, 10:56 | Сообщение # 1609
Группа: Проверенные
Сообщений: 86
Замечания:
0%
Статус: Offline
Quote (dim1988 )
00AE: set_car 5@ traffic_behaviour_to 2 Car.SetDriverBehaviour(5@, FollowRoad)
вылетело,вот посмотри может код не в порядке:
{$CLEO .cs}
//-------------MAIN--------------- 03A4: name_thread "PASSAZHIR"
:PASSAZHIR_13 0001: wait 0 ms 00D6: if 0AB0: key_pressed 9 004D: jump_if_false @PASSAZHIR_13 073E: get_car_in_sphere 1@ 2@ 3@ radius 50.0 model -1 handle_as 20@ 00A0: store_actor $PLAYER_ACTOR position_to 1@ 2@ 3@ 05CA: AS_actor $PLAYER_ACTOR enter_car 20@ passenger_seat -1 100000 ms 00AE: set_car 20@ traffic_behaviour_to 2 00AF: set_car 20@ driver_behaviour_to 1 0002: jump @PASSAZHIR_13
dim1988
Дата: Среда, 20.10.2010, 15:11 | Сообщение # 1610
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
Quote (СержантКели )
вылетело,вот посмотри может код не в порядке:
Так у тебя нет проверки на существование игрока.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность
Sanya1990
Дата: Среда, 20.10.2010, 16:59 | Сообщение # 1611
Группа: Проверенные
Сообщений: 86
Замечания:
0%
Статус: Offline
dim1988 , не имеет значения,всё равно вылет.
DK22Pac
Дата: Среда, 20.10.2010, 17:25 | Сообщение # 1612
Группа: Проверенные
Сообщений: 205
Замечания:
0%
Статус: Offline
Нет проверки на существование кара.
Мои скрипты Grand Theft Auto III HD Development Team
dim1988
Дата: Среда, 20.10.2010, 17:56 | Сообщение # 1613
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
Quote (СержантКели )
dim1988, не имеет значения,всё равно вылет.
Значение имеет, просто есть и другие причины. Попробуй после Quote (СержантКели )
073E: get_car_in_sphere 1@ 2@ 3@ radius 50.0 model -1 handle_as 20@
сделать проверку not 20@ == -1
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность
Sanya1990
Дата: Среда, 20.10.2010, 19:17 | Сообщение # 1614
Группа: Проверенные
Сообщений: 86
Замечания:
0%
Статус: Offline
dim1988 , теперь он в тачку не садится.А почему проверка на отрицание?
yelmi
Дата: Среда, 20.10.2010, 19:22 | Сообщение # 1615
Мастер по скриптингу
Группа: Пользователи
Сообщений: 25
Замечания:
0%
Статус: Offline
Ты пытаешься получить автомобиль в нулевых координатах, потом записываешь координаты игрока. Нет проверки на существование автомобиля. Пытаешься посадить актера в автомобиль наличие, которого не проверил и тд.
Демо-версия мода GTA SA “Another Story”
Сообщение отредактировал yelmi - Среда, 20.10.2010, 19:30
Sanya1990
Дата: Среда, 20.10.2010, 20:33 | Сообщение # 1616
Группа: Проверенные
Сообщений: 86
Замечания:
0%
Статус: Offline
yelmi , с этого места по подробней пожалуста.Добавлено (20.10.2010, 20:33) ---------------------------------------------yelmi , вот код:
{$CLEO .cs}
//-------------MAIN--------------- 03A4: name_thread "PASSAZHIR"
:PASSAZHIR_13 0001: wait 0 ms 0256: player $PLAYER_CHAR defined 056E: car 20@ defined 004D: jump_if_false @PASSAZHIR_13
:PASSAZHIR_34 0001: wait 0 ms 00D6: if 0AB0: key_pressed 9 004D: jump_if_false @PASSAZHIR_34 073E: get_car_in_sphere 1@ 2@ 3@ radius 50.0 model -1 handle_as 20@ 00A0: store_actor $PLAYER_ACTOR position_to 1@ 2@ 3@ 05CA: AS_actor $PLAYER_ACTOR enter_car 20@ passenger_seat -1 100000 ms 00AE: set_car 20@ traffic_behaviour_to 2 00AF: set_car 20@ driver_behaviour_to 1 0002: jump @PASSAZHIR_34
проверка на существование игрока есть,на машину тоже. однако игрок всё равно отказывается садиться в машину в качестве пассажира.
dim1988
Дата: Среда, 20.10.2010, 20:42 | Сообщение # 1617
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
СержантКели , ну как по твоему сработает проверка на существование машины, если ты её ещё не поймал? Проверку надо делать после кода 073E: Далее, yelmi тебе уже сказал, сначала надо отметить координаты исходящие от игрока, а потом уже в них ловить машину, т.е. сначала код 00A0: а потом 073E:. И ещё перед 0002: jump @PASSAZHIR_34 советую поставить wait 1000.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность
Sanya1990
Дата: Среда, 20.10.2010, 21:16 | Сообщение # 1618
Группа: Проверенные
Сообщений: 86
Замечания:
0%
Статус: Offline
dim1988 , тачка стоит на месте.
{$CLEO .cs}
//-------------MAIN--------------- 03A4: name_thread "PASSAZHIR"
:PASSAZHIR_13 0001: wait 0 ms 0256: player $PLAYER_CHAR defined 004D: jump_if_false @PASSAZHIR_13
:PASSAZHIR_29 0001: wait 0 ms 00D6: if 0AB0: key_pressed 9 004D: jump_if_false @PASSAZHIR_29 00A0: store_actor $PLAYER_ACTOR position_to 1@ 2@ 3@ 073E: get_car_in_sphere 1@ 2@ 3@ radius 50.0 model -1 handle_as 20@ 0001: wait 0 ms 00D6: if 056E: car 20@ defined jf @PASSAZHIR_29 05CA: AS_actor $PLAYER_ACTOR enter_car 20@ passenger_seat -1 100000 ms 00AE: set_car 20@ traffic_behaviour_to 2 00AF: set_car 20@ driver_behaviour_to 1 0001: wait 1000 ms 0002: jump @PASSAZHIR_29
Сообщение отредактировал СержантКели - Среда, 20.10.2010, 21:24
Innocent
Дата: Четверг, 21.10.2010, 22:17 | Сообщение # 1619
Скриптер
Группа: Проверенные
Сообщений: 105
Замечания:
20%
Статус: Offline
:PASSAZHIR_13 0001: wait 0 ms ЗДЕСЬ ДОЛЖЕН БЫТЬ IF 0256: player $PLAYER_CHAR defined 004D: jump_if_false @PASSAZHIR_13 ЗДЕСЬ ДОЛЖЕН БЫТЬ JUMP @PASSAZHIR_29 И вот что еще : 05CA: AS_actor $PLAYER_ACTOR enter_car 20@ passenger_seat -1 100000 ms = помоему -1 стоять не должно : там вроде место в траноспорте обозначаеться ( 0 1 и 2 )
Sanya1990
Дата: Четверг, 21.10.2010, 23:04 | Сообщение # 1620
Группа: Проверенные
Сообщений: 86
Замечания:
0%
Статус: Offline
Innocent , значение не изменилось,по прежниму машина стоит.И кстати забыл написать,она продолжает стоят даже если игрок вышел.
{$CLEO .cs}
//-------------MAIN--------------- 03A4: name_thread "PASSAZHIR"
:PASSAZHIR_13 0001: wait 0 ms if 0256: player $PLAYER_CHAR defined 004D: jump_if_false @PASSAZHIR_13 jump @PASSAZHIR_29
:PASSAZHIR_29 0001: wait 0 ms 00D6: if 0AB0: key_pressed 9 004D: jump_if_false @PASSAZHIR_29 00A0: store_actor $PLAYER_ACTOR position_to 1@ 2@ 3@ 073E: get_car_in_sphere 1@ 2@ 3@ radius 50.0 model -1 handle_as 20@ 0001: wait 0 ms 00D6: if 056E: car 20@ defined jf @PASSAZHIR_29 05CA: AS_actor $PLAYER_ACTOR enter_car 20@ passenger_seat 2 100000 ms 00AE: set_car 20@ traffic_behaviour_to 2 00AF: set_car 20@ driver_behaviour_to 1 0001: wait 1000 ms 0002: jump @PASSAZHIR_29