Скрипты для GTA от dim1988 aka d88

Главная | Регистрация | Вход

Приветствую Вас Гость | RSS
[Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Скрипты » Всё о клео скриптах » Вопросы по созданию скриптов
Вопросы по созданию скриптов
dim1988 Дата: Воскресенье, 19.07.2009, 18:43 | Сообщение # 1
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
Ответы на самые часто задаваемые вопросы

Как сохранить (компилировать) скрипт?
Почему не следует использовать в клео скриптах глобальные переменные?
Как узнать координаты мест, через какую прогу?
Как поместить игрока в интерьер?
Опкод, который открывает все дома в СА
Запись в переменную ближайшего педа и проверка его модели
Как заставить актёров ходить по определённым координатам
Проверка нажатия определённой клавиши
Пак пути с анимацией
Как сделать так, чтоб 2 миссии следовали друг за другом?
Как актёру дать оружие?
Как создать транспорт
Как создать жёлтый маркер для входа в интерьер?
При компиляции выдаёт ошибку перехода на нулевой оффсет,что это и как исправить?
Как транспорту присвоить определённый цвет?
Что делать если пишет ожидалось 'x' параметров?
Как написать цветной текст?
Номера костей актёра
Что такое gosub?
Опкоды, связанные с созданием огня
Как изменить оружие банд?
Образец добавления в игру объектов
Проверка нажатия клавиши в игре и список значений
Путь или scmpath
Как изменить цвет затемнения экрана?
Как записать в переменную случайное число из интервала
Список стилей боя
Как привязать эффект к кости актёра?
Как произвести действия, над педами, созданными игрой
Как заменить модель игрока
Как заставить актёра поднять руки, как при аресте
Сброс анимации
Как метнуть объект?
Как из одного скрипта запустить другой?

+ файл от пользователя нашего сайта Absolute . Здесь перечислены все вопросы из этой этой темы и ответы на них. Скачать
 
 
dim1988 Дата: Воскресенье, 27.10.2013, 15:46 | Сообщение # 3721
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
И как ты себе это представляешь?

Mortal Kombat Conquest for GTA SA V2.0
GTA Invasion V2.0
Частная собственность
 
 
Nico Дата: Воскресенье, 27.10.2013, 16:41 | Сообщение # 3722
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline
Ну например Сделать значки Когда ты в ИХ бане чтобы было понятно где твои члены Банды
подхордишь к ним и нажимаешь Кнопку Определённую и тебя наняли и ты Должен с ними ходить )))

Добавлено (27.10.2013, 16:40)
---------------------------------------------
Я думаю Прикольно было бы )

Добавлено (27.10.2013, 16:41)
---------------------------------------------
dim1988, Ты разве не думал об этом?

 
 
dim1988 Дата: Воскресенье, 27.10.2013, 16:43 | Сообщение # 3723
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
Цитата Nico ()
чтобы было понятно где твои члены Банды

Они нигде не находятся. Педы появляются только при появлении к ним игрока.

Цитата Nico ()
тебя наняли и ты Должен с ними ходить )))

Не знаю, может, и получится записать игрока в группу. Но есть проблема - я на знаю, как получить переменную этой группы.


Mortal Kombat Conquest for GTA SA V2.0
GTA Invasion V2.0
Частная собственность
 
 
Nico Дата: Воскресенье, 27.10.2013, 16:49 | Сообщение # 3724
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline
put_PLAYER_CHAR_in_group_GANG2 например )
Я знаю что они появляються при Игроке
Ну да Пусть появляються вот и Тогда и наймут

Добавлено (27.10.2013, 16:49)
---------------------------------------------
А возможно ли Сделать CJ Педом ?? biggrin

 
 
RuXman Дата: Понедельник, 28.10.2013, 16:38 | Сообщение # 3725
Группа: Проверенные
Сообщений: 109
Замечания: 0%
Статус: Offline
Цитата dim1988 ()
Не получается - пробуй ещё, исправляй ошибки. А то так никогда и не научишься.

Это первое правило скриптера. =)

Nico, я не понимаю тебя... Одно дело когда ТЫ управляешь бандой, ты царь, ты бог... че сказал, то они и сделали. А теперь ответь, как это стадо баранов с очень тупым ИИ сможет нанять Cj и приказывать ему... 
Цитирую...
Цитата Nico ()
тебя наняли и ты Должен с ними ходить )))
В том-то и дело, что с таким тупым ИИ только и можно просто ходить biggrin Даже не представляю как ты собираешь это сделать... 

Мой вопросик... в обычной игре нажмешь на G и вся банда бежит к тебе. Как заставить делать что-то сразу всю банду? Так и не нашел опкод... Или придется сканировать ближайших педов и проверять в банде ли они? И только потом действие... Хотелось бы одним опкодом бандой повелевать...


Сообщение отредактировал RuXman - Понедельник, 28.10.2013, 16:49
 
 
dim1988 Дата: Понедельник, 28.10.2013, 18:07 | Сообщение # 3726
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
Цитата RuXman ()
Мой вопросик... в обычной игре нажмешь на G и вся банда бежит к тебе. Как заставить делать что-то сразу всю банду? Так и не нашел опкод... Или придется сканировать ближайших педов и проверять в банде ли они? И только потом действие... Хотелось бы одним опкодом бандой повелевать...

Есть такой опкод
07B3: set_group $PLAYER_GROUP give_command 1

Команды:
0 и 1 - идут за лидером
2 и 4 - просто стоят
3 - болтают друг с другом
5 - лидер набирает людей в группу.


Mortal Kombat Conquest for GTA SA V2.0
GTA Invasion V2.0
Частная собственность
 
 
Nico Дата: Вторник, 29.10.2013, 22:09 | Сообщение # 3727
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline
RuXmandim1988, Так значит можно сделать?

Добавлено (29.10.2013, 22:09)
---------------------------------------------
ау ?

 
 
RuXman Дата: Среда, 30.10.2013, 14:43 | Сообщение # 3728
Группа: Проверенные
Сообщений: 109
Замечания: 0%
Статус: Offline
Цитата Nico ()
Так значит можно сделать?
Может и можно, но лично я не знаю как...

Цитата dim1988 ()
07B3: set_group $PLAYER_GROUP give_command 1
Плохо, что команд всего 5.

Добавлено (30.10.2013, 14:43)
---------------------------------------------
Ходят слухи.. )  Что в новых версиях SB появилась директива $OPCODE, которая позволяет создать свой опкод. Как это создать свой? И знаешь ли ты как пользоваться этой директивой?

 
 
dim1988 Дата: Среда, 30.10.2013, 22:21 | Сообщение # 3729
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
Цитата Nico ()
Так значит можно сделать?

Если про то, чтоб заставить CJ-я ходить по пути обычных педов, то вроде это
05DE: AS_actor 54@ walk_around_ped_path

Цитата RuXman ()
Что в новых версиях SB появилась директива $OPCODE, которая позволяет создать свой опкод. Как это создать свой? И знаешь ли ты как пользоваться этой директивой?

Есть, но не видел подробной информации об этом. У тебя же новая версия есть, поищи в справке.


Mortal Kombat Conquest for GTA SA V2.0
GTA Invasion V2.0
Частная собственность
 
 
Nico Дата: Среда, 30.10.2013, 23:45 | Сообщение # 3730
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline
Кто нибудь сомжешь Смастерить попробывать?
 
 
RuXman Дата: Четверг, 31.10.2013, 11:24 | Сообщение # 3731
Группа: Проверенные
Сообщений: 109
Замечания: 0%
Статус: Offline
Допустим у меня есть 5 актеров и нужно с каждым из них сделать одно и тоже действие. Я не хочу писать 5 одинаковых опкодов в ряд. Можно ли сделать действие со всеми актерами сразу одним опкодом? Я слышал, что можно, вот пример опкода

Код
089F: get_actor 35@(37@,2i) pedtype_to 519@


35@ и 37@ это переменные актеров как я понял. А вот что означает 2i ? Такие параметры я видел во многих опкодах.


Сообщение отредактировал RuXman - Четверг, 31.10.2013, 11:24
 
 
DK22Pac Дата: Четверг, 31.10.2013, 14:16 | Сообщение # 3732
Группа: Проверенные
Сообщений: 205
Замечания: 0%
Статус: Offline
Это синтаксис, который используется при обращении к элементу массива.
089F: get_actor <переменная-массив>(<индекс элемента в массиве>,<размер массива><тип элементов массиве>) pedtype_to 519@
Запись 0@(1@, 5f) означает, что мы обращаемся к элементу №1@ массива 0@ (который состоит из 5 float - элементов). Номер элемента (в данном случае - 1@) можно указать только через переменную. Нумерация элементов начинается с 0. (0 - первый элемент, 1 - второй и т.д.).
Важно понять, что использование массива не расширяет кол-во переменных в скрипте.
Например, выше рассмотренный массив (он состоит из 5 элементов) будет "занимать" переменные 0@ - 4@ включно.
Код
0@ - 1ый элемент
1@ - второй элемент
2@ - третий элемент
3@ - четвертый элемент
4@ - пятый элемент
Запись
[code]1@ = 2
089F: get_actor 10@(1@,10i) pedtype_to 0@

Показывает обращение к третьему (нумерация с нуля) элементу массива 10@ (размерность которого - 10 элементов типа int (целое). Фактически, мы обращаемся к переменной 12@.
Код
10@ - 1ый элемент
11@ - 2ой элемент
12@ - 3ий элемент

Удобство массивов - в том, что мы можем в цикле менять индекс (номер) элемента, и, таким образом, применить код для всех элементов в массиве:
Код
for 0@ = 0 to 20
         089F: get_actor 10@(0@,10i) pedtype_to 20@(0@,10i)
end

В данном примере, мы получаем педтип актёров, хендлы которых записаны в массиве 10@ (10 элементов), т.е. в переменных 10@ - 19@, в массив 20@ (переменные 20@ - 29@), а переменная 0@ выполняет роль счётчика.
В SB есть свой синтаксис для работы с массивами.
Он предполагает обьявление массива в блоке var...end:
Код
var
10@ : array 10 of Int
20@ : array 10 of Int
end


Мои скрипты
Grand Theft Auto III HD Development Team


Сообщение отредактировал DK22Pac - Четверг, 31.10.2013, 14:17
 
 
RuXman Дата: Четверг, 31.10.2013, 14:58 | Сообщение # 3733
Группа: Проверенные
Сообщений: 109
Замечания: 0%
Статус: Offline
Спасибо, надо бы поподробней почитать про массивы.
 
 
Nico Дата: Четверг, 31.10.2013, 19:26 | Сообщение # 3734
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline
Люди кто нибудь сможешь понять?
 
 
dim1988 Дата: Четверг, 31.10.2013, 20:40 | Сообщение # 3735
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
Цитата Nico ()
Кто нибудь сомжешь Смастерить попробывать?

Цитата Nico ()
Люди кто нибудь сможешь понять?

Формулируй понятнее, так может кто-то и поймёт, что ты говоришь biggrin


Mortal Kombat Conquest for GTA SA V2.0
GTA Invasion V2.0
Частная собственность
 
 
Nico Дата: Четверг, 31.10.2013, 21:34 | Сообщение # 3736
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline
dim1988, biggrin
Наверное я думаю Нельзя сделать это Трудно очень )
А и ещё Надо опкод чтобы Когда я нанимаю кого нибудь ему ставилось Точность 100% и Анти ХедШот )))
 
 
dim1988 Дата: Четверг, 31.10.2013, 22:13 | Сообщение # 3737
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
А почему бы не поискать эти опкоды в справке? Там всё есть.

Mortal Kombat Conquest for GTA SA V2.0
GTA Invasion V2.0
Частная собственность
 
 
RuXman Дата: Пятница, 01.11.2013, 11:15 | Сообщение # 3738
Группа: Проверенные
Сообщений: 109
Замечания: 0%
Статус: Offline
Цитата Nico ()
А и ещё Надо опкод чтобы Когда я нанимаю кого нибудь ему ставилось Точность 100% и Анти ХедШот )))


Код
Actor.WeaponAccuracy(1@) = 100
Опкод устанавливает точность стрельбы в процентах актеру 1@ (в данном случае точность будет 100%)


Код
054A: set_actor $Actor immune_to_car_headshots 0

Устанавливает иммунитет к headshot'у актеру $Actor. Вроде нужно ставить 1, вместо 0, чтобы был иммунитет. Я точно не знаю, но этот опкод может работать только когда актер в авто. Если пальнуть ему в голову, то ничего не будет. Может будет работать и для пешеходов...

Эти опкоды я нашел в справке SB, в главе "Типы пешеходов"... так что дерзай.


Сообщение отредактировал RuXman - Пятница, 01.11.2013, 11:16
 
 
dim1988 Дата: Пятница, 01.11.2013, 12:59 | Сообщение # 3739
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
Цитата RuXman ()
Я точно не знаю, но этот опкод может работать только когда актер в авто.

Так и есть. Чтоб было не только в машине, нужно использовать опкод
0446: set_actor 0@ immune_to_headshots 1

И проще пользоваться поиском опкодов. В СБ нажимаем Сервис->Инструменты->Поиск опкодов, далее вводим слово headshot и получаем список опкодов, где оно используется.


Mortal Kombat Conquest for GTA SA V2.0
GTA Invasion V2.0
Частная собственность
 
 
Nico Дата: Пятница, 01.11.2013, 15:29 | Сообщение # 3740
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline
RuXmandim1988, Чуваки погодите Я немного понял 
Короче незнаю чем начать скрипт 
Нужно Если актёр в банде моей ему это даёться Скрипт смастерить сможете 
я пробывал не не то
 
 
dim1988 Дата: Пятница, 01.11.2013, 16:37 | Сообщение # 3741
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
Надо записать в переменную актёра, который находится в группе игрока:
092B: 0@ = group $PLAYER_GROUP member 0

Последний параметр - это номер члена группы. У того, кого ты первым добавил в банду, будет номер 0. У второго нанятого будет номер 1, и так далее.

Потом делаем проверку, обнаружен ли этот актёр.
if
Actor.Defined(0@)

Если обнаружен, то мы можем делать с ним что угодно.


Mortal Kombat Conquest for GTA SA V2.0
GTA Invasion V2.0
Частная собственность
 
 
Nico Дата: Пятница, 01.11.2013, 19:13 | Сообщение # 3742
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline
dim1988, Вот смотри я сделал чё то )))
{$CLEO .cs}

thread 'BANDA'

:BANDA_1
wait 0
092B: 0@ = group $PLAYER_GROUP member 0
092B: 1@ = group $PLAYER_GROUP member 1
092B: 2@ = group $PLAYER_GROUP member 2
092B: 3@ = group $PLAYER_GROUP member 3
092B: 4@ = group $PLAYER_GROUP member 4
092B: 5@ = group $PLAYER_GROUP member 5
092B: 6@ = group $PLAYER_GROUP member 6
if
Actor.Defined(0@)
Actor.Defined(1@)
Actor.Defined(2@)
Actor.Defined(3@)
Actor.Defined(4@)
Actor.Defined(5@)
Actor.Defined(6@)
jump @BANDA_1

:BANDA_2
0446: set_actor 0@ immune_to_headshots 0 
0446: set_actor 1@ immune_to_headshots 0 
0446: set_actor 2@ immune_to_headshots 0 
0446: set_actor 3@ immune_to_headshots 0 
0446: set_actor 4@ immune_to_headshots 0 
0446: set_actor 5@ immune_to_headshots 0 
0446: set_actor 6@ immune_to_headshots 0
jump @BANDA_2 
end_thread

Добавлено (01.11.2013, 19:08)
---------------------------------------------
А просто токо Учусь со Скриптами =) biggrin

Добавлено (01.11.2013, 19:13)
---------------------------------------------
Не работает =(

 
 
dim1988 Дата: Суббота, 02.11.2013, 16:40 | Сообщение # 3743
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
Тебе же сказали, что чтоб дать иммунитет, надо ставить не 0, а 1.
0446: set_actor 0@ immune_to_headshots 1

И если у тебя несколько условий, надо писать не просто if, а if and. Но при таком коде скрипт иммунитеты у твоей банды появятся только когда в ней будет 7 человек.


Mortal Kombat Conquest for GTA SA V2.0
GTA Invasion V2.0
Частная собственность
 
 
Nico Дата: Суббота, 02.11.2013, 17:26 | Сообщение # 3744
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline
dim1988, Ну а как сделать то ? в чём прикол то?
 
 
dim1988 Дата: Суббота, 02.11.2013, 19:06 | Сообщение # 3745
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
В чём, делаем для каждого члена группы отдельно. Примерно так:
Код
092B: 0@ = group $PLAYER_GROUP member 0
if
Actor.Defined(0@)
jf @1
0446: set_actor 0@ immune_to_headshots 1   

:1

После метки :1 делаем то же самое, но уже для второго актёра. Потом для третьего, и так далее.


Mortal Kombat Conquest for GTA SA V2.0
GTA Invasion V2.0
Частная собственность
 
 
d13m1 Дата: Суббота, 02.11.2013, 19:56 | Сообщение # 3746
Группа: Проверенные
Сообщений: 10
Замечания: 0%
Статус: Offline
{$CLEO .cs}
0000:
0@ = 0 // в эту перемунную будем записывать номер актера (отсчет начинаем с 0)

:banda // делаем метку точки, с которой будет начинаться наш цикл
wait 0
092B: 1@ = group $PLAYER_GROUP member 0@ // записываем в переменную 1@ актера под номером 0@
0@ += 1 // прибавляем к номеру актера 1, чтобы на следующем обороте цикла в переменную был записан актер
             //под следующим номером 
if
    0@ > 7 // 7 - максимальное число актеров в банде, если прошлое действие превысило это число 
    then     // тогда 
    0@ = 0 // запускаем счетчик актеров заного 
end // обозначение конца действий после условия
if
    Actor.Defined(1@) // ранее мы записали в переменную актера, проверяем существует ли он 
    then // если существует то... 
    0446: set_actor 1@ immune_to_headshots 1 // 1-вкл. 0-выкл 
end
jump @banda // и прыгаем в начало, чтобы цикл повторился


Сообщение отредактировал d13m1 - Суббота, 02.11.2013, 20:10
 
 
Nico Дата: Суббота, 02.11.2013, 20:19 | Сообщение # 3747
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline
d13m1, Норм напиши скрипт Не понятно
{$CLEO .cs} 
0000: 
0@ = 0 // в эту перемунную будем записывать номер актера (отсчет начинаем с 0) 

:banda // делаем метку точки, с которой будет начинаться наш цикл 
wait 0 
092B: 1@ = group $PLAYER_GROUP member 0@ // записываем в переменную 1@ актера под номером 0@ 
0@ += 1 // прибавляем к номеру актера 1, чтобы на следующем обороте цикла в переменную был записан актер 
             //под следующим номером  
if 
    0@ > 7 // 7 - максимальное число актеров в банде, если прошлое действие превысило это число  
    then     // тогда  
    0@ = 0 // запускаем счетчик актеров заного  
end // обозначение конца действий после условия 
if 
    Actor.Defined(1@) // ранее мы записали в переменную актера, проверяем существует ли он  
    then // если существует то...  
    0446: set_actor 1@ immune_to_headshots 1 // 1-вкл. 0-выкл  
end 
jump @banda // и прыгаем в начало, чтобы цикл повторился 

Добавлено (02.11.2013, 20:12)
---------------------------------------------
d13m1, скайп есть?

Добавлено (02.11.2013, 20:18)
---------------------------------------------
Nico, Работает спс

Добавлено (02.11.2013, 20:19)
---------------------------------------------
А как подбавить точней куда написать чтобы
сделать меткость 100 % куда писать то?


Сообщение отредактировал Nico - Воскресенье, 03.11.2013, 13:11
 
 
RuXman Дата: Воскресенье, 03.11.2013, 12:59 | Сообщение # 3748
Группа: Проверенные
Сообщений: 109
Замечания: 0%
Статус: Offline
Код
092B: 0@ = group $PLAYER_GROUP member 0

Че вы фигнёй страдаете??? Делаете такие сложные проверки...  Зачем? Этот опкод не требует проверки на существование актера. Сам лично проверял!
То есть, независимо от того, есть у вас банда или нет, иммунитет будет даваться только тем актерам в банде, которые существуют. Короче игра не вылетит, если актер под определенным номером не найден, игра просто будет игнорировать все действия, которые мы пытаемся с ним сделать.

Цитата dim1988 ()
И проще пользоваться поиском опкодов. В СБ нажимаем Сервис->Инструменты->Поиск опкодов, далее вводим слово headshot и получаем список опкодов, где оно используется.
Я знаю, просто у меня нет такого опкода в списке...

Добавлено (03.11.2013, 12:59)
---------------------------------------------

Цитата Nico ()
А как подбавить точней куда написать чтобы  сделать меткость 100 % куда писать то?

После объявления переменной. То есть, как только мы записали в переменную какого-либо актера, можно сразу делать над ним любые действия.


Сообщение отредактировал RuXman - Воскресенье, 03.11.2013, 12:57
 
 
Nico Дата: Воскресенье, 03.11.2013, 13:11 | Сообщение # 3749
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline
RuXman, Чё ты в скайп Не заходишь ?

Добавлено (03.11.2013, 13:11)
---------------------------------------------
у меня всё Норм работает

{$CLEO .cs} 
0000: 
0@ = 0 // в эту перемунную будем записывать номер актера (отсчет начинаем с 0) 

:banda // делаем метку точки, с которой будет начинаться наш цикл 
wait 0 
092B: 1@ = group $PLAYER_GROUP member 0@ // записываем в переменную 1@ актера под номером 0@ 
0@ += 1 // прибавляем к номеру актера 1, чтобы на следующем обороте цикла в переменную был записан актер 
             //под следующим номером  
if 
    0@ > 7 // 7 - максимальное число актеров в банде, если прошлое действие превысило это число  
    then     // тогда  
    0@ = 0 // запускаем счетчик актеров заного  
end // обозначение конца действий после условия 
if 
    Actor.Defined(1@) // ранее мы записали в переменную актера, проверяем существует ли он  
    then // если существует то...  
    0446: set_actor 1@ immune_to_headshots 1 // 1-вкл. 0-выкл  
end 
jump @banda // и прыгаем в начало, чтобы цикл повторился

 
 
RuXman Дата: Воскресенье, 03.11.2013, 13:15 | Сообщение # 3750
Группа: Проверенные
Сообщений: 109
Замечания: 0%
Статус: Offline
Цитата Nico ()
Чё ты в скайп Не заходишь ?
Времени нет.


Разве я сказал, что эта проверка нерабочая? Она конечно же рабочая, но зачем писать 20 лишних строк, когда можно обойтись и без проверки?


Сообщение отредактировал RuXman - Воскресенье, 03.11.2013, 13:15
 
 
Форум » Скрипты » Всё о клео скриптах » Вопросы по созданию скриптов
Поиск:

Copyright dim1988 aka d88 © 2024
Сайт управляется системой uCoz