Вопросы по созданию скриптов
|
|
dim1988 |
Дата: Воскресенье, 19.07.2009, 18:43 | Сообщение # 1 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Ответы на самые часто задаваемые вопросы
Как сохранить (компилировать) скрипт? Почему не следует использовать в клео скриптах глобальные переменные? Как узнать координаты мест, через какую прогу? Как поместить игрока в интерьер? Опкод, который открывает все дома в СА Запись в переменную ближайшего педа и проверка его модели Как заставить актёров ходить по определённым координатам Проверка нажатия определённой клавиши Пак пути с анимацией Как сделать так, чтоб 2 миссии следовали друг за другом? Как актёру дать оружие? Как создать транспорт Как создать жёлтый маркер для входа в интерьер? При компиляции выдаёт ошибку перехода на нулевой оффсет,что это и как исправить? Как транспорту присвоить определённый цвет? Что делать если пишет ожидалось 'x' параметров? Как написать цветной текст? Номера костей актёра Что такое gosub? Опкоды, связанные с созданием огня Как изменить оружие банд? Образец добавления в игру объектов Проверка нажатия клавиши в игре и список значений Путь или scmpath Как изменить цвет затемнения экрана? Как записать в переменную случайное число из интервала Список стилей боя Как привязать эффект к кости актёра? Как произвести действия, над педами, созданными игрой Как заменить модель игрока Как заставить актёра поднять руки, как при аресте Сброс анимации Как метнуть объект? Как из одного скрипта запустить другой?
+ файл от пользователя нашего сайта Absolute . Здесь перечислены все вопросы из этой этой темы и ответы на них. Скачать |
|
| |
serega13 |
Дата: Суббота, 16.01.2010, 22:05 | Сообщение # 361 |
Группа: Проверенные
Сообщений: 27
Замечания: 0%
Статус: Offline |
спасибо! просто было лень писать {$CLEO .cs} стоп а //-------------MAIN--------------- тоже писать надо???? |
|
| |
Lost_forever |
Дата: Суббота, 16.01.2010, 22:53 | Сообщение # 362 |
Скриптер
Группа: Проверенные
Сообщений: 705
Замечания: 0%
Статус: Offline |
Quote (serega13) а //-------------MAIN--------------- тоже писать надо???? Не обязательно,это просто для удобства)
Forever |
|
| |
serega13 |
Дата: Суббота, 16.01.2010, 22:58 | Сообщение # 363 |
Группа: Проверенные
Сообщений: 27
Замечания: 0%
Статус: Offline |
О! ок спасибо но на всякий случай буду писать! |
|
| |
Den_spb |
Дата: Воскресенье, 17.01.2010, 10:39 | Сообщение # 364 |
Мастер по скриптингу
Группа: Проверенные
Сообщений: 295
Замечания: 0%
Статус: Offline |
"На всякий случай" - нет смысла. Комментарии игнорируются при компиляции. Они нужны только для того, чтобы сделать исходный код скрипта более наглядным. Попробуй скомпилировать код, добавив в него какой-то комментарий, а потом декомпилировать его - твоих комментариев в нём уже не будет. Комментарии оформляются двумя способами: 1.двумя косыми чертами // - в этом случае будет закомментировано то, что написано справа от черт в этой строке. 2.фигурными скобками {} - в этом случае будет закомментировано всё, что заключено между скобками. Комментарии выделяются в тексте кода темно-синим цветом. |
|
| |
dim1988 |
Дата: Воскресенье, 17.01.2010, 13:13 | Сообщение # 365 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Quote (serega13) лень писать {$CLEO .cs} Я так понял ты просто писал CLEO? Тогда скрипт вообще не будет компилироваться.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
serega13 |
Дата: Воскресенье, 17.01.2010, 14:23 | Сообщение # 366 |
Группа: Проверенные
Сообщений: 27
Замечания: 0%
Статус: Offline |
ребят! вы что думаете что я просто тупой нуб??? да, я не очень в скриптах смыслю но я ведь статьи читал я уже вкурсе что надо писать {$CLEO .cs}!!!! |
|
| |
dim1988 |
Дата: Воскресенье, 17.01.2010, 15:49 | Сообщение # 367 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Да ладно, не обижайся, я ведь не в обиду, просто хотел помочь
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
serega13 |
Дата: Воскресенье, 17.01.2010, 16:47 | Сообщение # 368 |
Группа: Проверенные
Сообщений: 27
Замечания: 0%
Статус: Offline |
Ой пацаны я не обидчивый |
|
| |
Singleboy |
Дата: Понедельник, 18.01.2010, 16:21 | Сообщение # 369 |
Группа: Пользователи
Сообщений: 8
Замечания: 0%
Статус: Offline |
Здравствуйте, у меня тут одна проблема появилась, в общем, я написал скрипт, который позволяет ехать в тачке на постоянной скорости не нажимая каждый раз кнопку газа, но проблема тут в том, что если кто-то выкинет из машины или самому выйти - иногда вылетает игра. Мог бы кто-то помочь устранить это? Вот скрипт: {$CLEO .cs} wait 00 :L1 wait 00 if not actor.Driving($PLAYER_ACTOR) jf @L1_1 $Speed = 0 jump @L1 :L1_1 wait 00 03C0: $Car = actor $PLAYER_ACTOR car if or 00E1: key_pressed 0 16 //Acselerate 00E1: key_pressed 0 15 //Enter 00E1: key_pressed 0 14 //Brake 00E1: key_pressed 0 06 //HandBrake jf @L2 02E3: $Speed = car $Car speed if 00E1: key_pressed 0 14 jf @L1 0@ = 0.0 0063: 0@ -= $Speed 0087: $Speed = 0@ jump @L1 :L2 wait 00 if and 09D0: car $Car on_wheels 0019: $Speed > 3.0 jf @L1 04BA: set_car $Car speed_instantly $Speed jump @L1 |
|
| |
dim1988 |
Дата: Понедельник, 18.01.2010, 16:46 | Сообщение # 370 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
А если перед jf @L2 добавить проверку 8448: not actor $PLAYER_ACTOR in_car $Car
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
Singleboy |
Дата: Понедельник, 18.01.2010, 16:51 | Сообщение # 371 |
Группа: Пользователи
Сообщений: 8
Замечания: 0%
Статус: Offline |
Всё равно вылетает. Я уже чего только не перепробовал, и даже не знаю, в каком месте скрипта возникает эта фигня. |
|
| |
dim1988 |
Дата: Понедельник, 18.01.2010, 17:26 | Сообщение # 372 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Всё, нашёл ошибку Code {$CLEO .cs} 0000: NOP :L1 wait 00 if Player.Defined($PLAYER_CHAR) jf @L1_1 wait 00 if not actor.Driving($PLAYER_ACTOR) jf @L1_1 $Speed = 0 jump @L1
:L1_1 wait 00 03C0: $Car = actor $PLAYER_ACTOR car if or 856E: not car $Car defined 00E1: key_pressed 0 16 //Acselerate 00E1: key_pressed 0 15 //Enter 00E1: key_pressed 0 14 //Brake 00E1: key_pressed 0 06 //HandBrake jf @L2 02E3: $Speed = car $Car speed if 00E1: key_pressed 0 14 jf @L1 jump @L1
:L2 wait 00 if and 09D0: car $Car on_wheels 0019: $Speed > 3.0 jf @L1 wait 00 if 056E: car $Car defined jf @L1 04BA: set_car $Car speed_instantly $Speed jump @L1 Код 0063: расчитан на локальные переменные, но я попробовал - можно и без него обойтись, всё равно та часть скрипта ничего не меняет в скорости. И глобальные переменные лучше бы не использовать в клео.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
Lost_forever |
Дата: Понедельник, 18.01.2010, 18:09 | Сообщение # 373 |
Скриптер
Группа: Проверенные
Сообщений: 705
Замечания: 0%
Статус: Offline |
Singleboy, странно,но точно такую же идею мне Colt_8 предложил сделать Я уже делать хотел,но оказывается он уже есть
Forever |
|
| |
dim1988 |
Дата: Понедельник, 18.01.2010, 18:13 | Сообщение # 374 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
А я тоже делал и дал ему ссылку, но он не успел скачать, а я уже удалил Но этот вариант даже лучше.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
Singleboy |
Дата: Понедельник, 18.01.2010, 18:57 | Сообщение # 375 |
Группа: Пользователи
Сообщений: 8
Замечания: 0%
Статус: Offline |
Quote (Lost_forever) Singleboy, странно,но точно такую же идею мне Colt_8 предложил сделать Ага.:) Quote (dim1988) А я тоже делал и дал ему ссылку, но он не успел скачать, а я уже удалил Да, он говроил что-то такое, а еще говорил, что скрипт не доделан, ну вот я и взялся его делать сам. А как работал ваш скрипт? Кстати, в исправленной версии у меня всё еще вылетает игра, а у вас не вылетала уже? P. S. А опкод 0063: мне нужен был, чтобы значение скорости сделать отрицательным, иначе если дать задний ход, то после отпускания клавиши она поедет с такой же скоростью, но вперед |
|
| |
dim1988 |
Дата: Понедельник, 18.01.2010, 19:01 | Сообщение # 376 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Quote (Singleboy) а у вас не вылетала уже? Выхожу из машины и всё нормально Если выпрыгиваю на ходу, она немного проедет и останавливается.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
Singleboy |
Дата: Понедельник, 18.01.2010, 19:08 | Сообщение # 377 |
Группа: Пользователи
Сообщений: 8
Замечания: 0%
Статус: Offline |
У меня то не постоянно вылетает игра, а примерно через раз, но это сильно бесит, если хочу поменять машину и не знаю, получится ли удачно выйти из машины или придется снова игру запускать. |
|
| |
Lost_forever |
Дата: Понедельник, 18.01.2010, 23:24 | Сообщение # 378 |
Скриптер
Группа: Проверенные
Сообщений: 705
Замечания: 0%
Статус: Offline |
dim1988, у меня вылет если честно
Forever |
|
| |
Den_spb |
Дата: Вторник, 19.01.2010, 01:21 | Сообщение # 379 |
Мастер по скриптингу
Группа: Проверенные
Сообщений: 295
Замечания: 0%
Статус: Offline |
Весь код надо переделывать - структура построена неграмотно + есть вещи, которые могут вызвать вылет: 1. неправильно оформлена проверка на существование игрока 2.не мешало бы добавить проверку на существование машины перед этим: if and 09D0: car $Car on_wheels 0019: $Speed > 3.0 3.как уже сказано, необходимо убрать глобальные переменные.
Сообщение отредактировал Den_spb - Вторник, 19.01.2010, 01:32 |
|
| |
dim1988 |
Дата: Вторник, 19.01.2010, 09:25 | Сообщение # 380 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Den_spb, я всё это делал, вчера весь вечер сидел, но либо вылетает, либо вообще не работает Парадоксально, но мне кажется что эта проверка Quote (dim1988) f or 856E: not car $Car defined 00E1: key_pressed 0 16 //Acselerate 00E1: key_pressed 0 15 //Enter 00E1: key_pressed 0 14 //Brake 00E1: key_pressed 0 06 //HandBrake jf @L2 Выполняется всегда, даже если не должна выполняться.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
Den_spb |
Дата: Вторник, 19.01.2010, 10:37 | Сообщение # 381 |
Мастер по скриптингу
Группа: Проверенные
Сообщений: 295
Замечания: 0%
Статус: Offline |
Если ты заменил глоб. переменные на локальные, то конкретно эта проверка должна работать правильно (об остальной части кода не говорю). Если возникают какие-то сомнения, то проверить легко - вставляешь после проверки начисление игроку денег, например, и тестируешь код. |
|
| |
Colt_8 |
Дата: Четверг, 21.01.2010, 18:16 | Сообщение # 382 |
Красавчик
Группа: Проверенные
Сообщений: 295
Замечания: 0%
Статус: Offline |
Можно опкод и модель текстуру одежды коповской и как поставить?
|
|
| |
Lost_forever |
Дата: Четверг, 21.01.2010, 18:22 | Сообщение # 383 |
Скриптер
Группа: Проверенные
Сообщений: 705
Замечания: 0%
Статус: Offline |
Colt_8, Player.SetClothes($PLAYER_CHAR, "policetr", "policetr", 17) Player.Build($PLAYER_CHAR)
Forever |
|
| |
ЧИтЕР |
Дата: Четверг, 21.01.2010, 22:42 | Сообщение # 384 |
Группа: Проверенные
Сообщений: 168
Замечания: 0%
Статус: Offline |
Скажите,чточ тут нитак: Code {$CLEO} :Alkoshok wait 0 model.load(#FAM1) 038B: load_requested_models :Check wait 0 if and model.available(#FAM1) jf @Check actor.create($MyAct,17,#FAM1,2573.2551 -1723.66 1.6406) 03FE: set actor $Actor money 10000 0245: set_actor $MyAct walk_style_to "DRUNKMAN" 0102: actor $PLAYER_ACTOR stopped_near_point_on_foot 2570.9224 -1723.6279 1.6406 radius 2570.9224_10 -1723.6279_10 -1723.6279 05E2: actor $MyAct attak_actor $PLAYER_ACTOR' Model.Destroy(#FAM1) 0A93: end_custom_thread Говорит што недостаточно параметров,ожидалось параметров 8 (типа этот сани билдер,знает сколько ожидалось параметров ) |
|
| |
dim1988 |
Дата: Пятница, 22.01.2010, 08:17 | Сообщение # 385 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Quote (ЧИтЕР) типа этот сани билдер,знает сколько ожидалось параметров Прикинь, знает ! Поставь курсор на любом коде и он тебе внизу напишет этот код и кол-во параметров. В твоём случае дело в коде actor.create($MyAct,17,#FAM1,2573.2551 -1723.66 1.6406) Надо между координатами поставить запятые. Но это не единственная ошибка. Вот ещё 1.Код 0102: - это проверка. Здесь вообще не нужен. 2.В начале скрипта нужно сделать проверку на существование игрока Player.Defined($PLAYER_CHAR) 3.Нежелательно использовать глобальные переменные (со знаком $) кроме некоторых постоянных - $PLAYER_CHAR, $PLAYER_ACTOR, $ONMISSION и др.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
Colt_8 |
Дата: Суббота, 23.01.2010, 18:03 | Сообщение # 386 |
Красавчик
Группа: Проверенные
Сообщений: 295
Замечания: 0%
Статус: Offline |
Quote (Lost_forever) Player.SetClothes($PLAYER_CHAR, "policetr", "policetr", 17) Player.Build($PLAYER_CHAR) Спасибо Добавлено (23.01.2010, 17:46) --------------------------------------------- Quote (Lost_forever) Singleboy, странно,но точно такую же идею мне Colt_8 предложил сделать Это мистика! Добавлено (23.01.2010, 18:03) --------------------------------------------- Singleboy, вот так не вылетает! Code // This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
{$VERSION 3.1.0027} {$CLEO .cs}
//-------------MAIN--------------- 0000: NOP thread 'LLL'
:L1 wait 0 if not actor.Driving($PLAYER_ACTOR) jf @L1_1 $Speed = 0 jump @L1
:L1_1 wait 0 03C0: 1@ = actor $PLAYER_ACTOR car if or 00E1: key_pressed 0 16 //Acselerate 00E1: key_pressed 0 15 //Enter 00E1: key_pressed 0 14 //Brake 00E1: key_pressed 0 6 //HandBrake jf @L2 02E3: $Speed = car 1@ speed if 00E1: key_pressed 0 14 jf @L1 0087: $Speed = 0@ jump @L1
:L2 wait 0 if and 09D0: car 1@ on_wheels $Speed > 3.0 jf @L1 04BA: set_car 1@ speed_instantly $Speed jump @L1
Сообщение отредактировал Colt_8 - Суббота, 23.01.2010, 18:41 |
|
| |
Singleboy |
Дата: Понедельник, 25.01.2010, 14:58 | Сообщение # 387 |
Группа: Пользователи
Сообщений: 8
Замечания: 0%
Статус: Offline |
Colt_8, и так тоже вылетает, я думаю, мне никто так и не сможет помочь |
|
| |
Den_spb |
Дата: Понедельник, 25.01.2010, 19:17 | Сообщение # 388 |
Мастер по скриптингу
Группа: Проверенные
Сообщений: 295
Замечания: 0%
Статус: Offline |
Singleboy, могу написать качественный код, только напиши при каком условии включается режим поддержания скорости, а при каком условии отключается. |
|
| |
Singleboy |
Дата: Понедельник, 25.01.2010, 22:29 | Сообщение # 389 |
Группа: Пользователи
Сообщений: 8
Замечания: 0%
Статус: Offline |
Хорошо. Значит так, режим постоянной скорости должен включаться, если ты едешь вперёд со скоростью больше 3.0 (каких это единиц - не знаю) и не нажата любая клавиша торможения машины, также, чтобы машина находилась на поверхности, по которой едет, а не, например, в воздухе, воде, перевёрнута и т. п., а отключаться в противном случае, то есть, если ты удерживаешь любую клавишу тормоза, машина почти остановилась или едет назад или она не на колёсах. |
|
| |
Colt_8 |
Дата: Вторник, 26.01.2010, 00:36 | Сообщение # 390 |
Красавчик
Группа: Проверенные
Сообщений: 295
Замечания: 0%
Статус: Offline |
Ух ты, Den_spb пошёл творить, мне интересно, как этот код будет выглядеть
|
|
| |