Понедельник, 25.11.2024, 01:34
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Вопросы по созданию КЛЕО-скриптов 2
EmilioDurhamCopДата: Понедельник, 20.08.2012, 14:51 | Сообщение # 166
Группа: Пользователи
Сообщений: 33
Статус: Offline
Возможно, мне так не получится сделать. Если будет подробный пример, я бы потренировался.
 
ЯсиЧДата: Понедельник, 20.08.2012, 20:09 | Сообщение # 167
Группа: Пользователи
Сообщений: 1
Статус: Offline
здравствуйте! у меня такая идея:
Я знаю что есть скрипт, который добавляет возможность сигналить находясь в поезде... а я хочу сделать так, чтобы когда едешь на поезде или стоишь рядом со станцией, противоположный поезд(когда установлен скрипт "Новый алгоритм движения поездов") тоже давал гудок!
как сделать гудок я знаю... Но мне нужен опкод который проверяет есть ли рядом поезд(если игрок не в поезде) и если рядом второй поезд(если игрок едет в поезде). Мне нужна проверка поездов! Помогите плиз!
В итоге получится так:
-Когда игрок стоит на станции, подъезжает поезд и сам сигналит.
или
-Когда игрок едет на поезде и навстречу едет другой поезд и он, как подъезжает к поезду. в котором едет игрок, сигналит ему!
Заранее СПАСИБО! smile
 
Den_spbДата: Понедельник, 20.08.2012, 20:45 | Сообщение # 168
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
Quote (EmilioDurhamCop)
Возможно, мне так не получится сделать. Если будет подробный пример, я бы потренировался.

Я и так дал пример кода, где всё прокомментировал - подробнее вроде некуда.
Могу подсказать, что непонятно - если будут конкретные вопросы.

Quote (ЯсиЧ)
Мне нужна проверка поездов! Помогите плиз!

Все опкоды можно найти с помощью Поиска опкодов (меню СБ: Сервис - Инструменты - Поиск опкодов).
проверка, существует ли транспортное средство - car defined
проверка, находится ли актёр рядом с транспортным средством - actor near car
проверка, находится ли актёр в транспортном средстве - actor in car
 
EmilioDurhamCopДата: Вторник, 21.08.2012, 14:57 | Сообщение # 169
Группа: Пользователи
Сообщений: 33
Статус: Offline
Den_spb, я забыл спросить, а что нужно прописать в Санни, чтобы вызвать на клавиатуре кнопкой?
Ещё, я скопировал весь весь код, но не заработал. Конечно, без смеха это не обойдется.


Сообщение отредактировал EmilioDurhamCop - Вторник, 21.08.2012, 15:17
 
Den_spbДата: Вторник, 21.08.2012, 16:40 | Сообщение # 170
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
Quote (EmilioDurhamCop)
Den_spb, я забыл спросить, а что нужно прописать в Санни, чтобы вызвать на клавиатуре кнопкой?

Для этого применяется проверка нажатия клавиши:
Code
if
     0AB0:  key_pressed 73 // i
then
     // код, прописанный здесь, выполнится, если нажата кнопка "i". Номера клавиш см. в справке: КЛЕО3 - Список кнопок 0AB0
end

Quote (EmilioDurhamCop)
Ещё, я скопировал весь весь код, но не заработал. Конечно, без смеха это не обойдется.

Что не заработал? Чтобы создать cs-файл, надо применить команду Запуск-Компилировать.
 
EmilioDurhamCopДата: Вторник, 21.08.2012, 18:17 | Сообщение # 171
Группа: Пользователи
Сообщений: 33
Статус: Offline
Все равно не хочет работать. Если вставить это код, то получится:
Code

{$CLEO} // команда начала клео-скрипта   
023c: request_special_actor 'sweet' as 1 // объявление модели на загрузку
038b: load requested models // загрузка объявленных моделей
actor.create(1@,8, #special01, 2252.299, -1260.216,  23.962) // создание актёра
if
      0AB0:  key_pressed 73 // i
then
      // код, прописанный здесь, выполнится, если нажата кнопка "i". Номера клавиш см. в справке: КЛЕО3 - Список кнопок 0AB0
0A93: // команда завершения клео-скрипта
end

И игра вылетит.
 
Den_spbДата: Вторник, 21.08.2012, 19:02 | Сообщение # 172
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
Объясни подробно, чего ты хочешь добиться, и что не получается - телепатов тут нет.
Вариант кода, который предоставил я, рабочий. Он создаёт актёра в координатах 2252.299 -1260.216 23.962.
Твой вариант - неправильный, игра с ним вылетит. Опкод 0A93 всегда должен стоять в конце кода.
 
EmilioDurhamCopДата: Вторник, 21.08.2012, 21:21 | Сообщение # 173
Группа: Пользователи
Сообщений: 33
Статус: Offline
Ну тогда, что нужно сделать, чтобы актёр появился возле/напротив меня? (какие координаты нужно прописать?)
 
Den_spbДата: Вторник, 21.08.2012, 21:57 | Сообщение # 174
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
Если актёр должен создаваться рядом с игроком, то сначала надо узнать координаты игрока.
Вот пример: при нажатии i создаётся актёр в 5 метрах от игрока (перед ним):
Code
{$CLEO}
wait 0
while true
     wait 0
     if   
         player.Defined($player_char)
     then
         if
             0AB0:  key_pressed 73 // i
         then
             04C4: store_coords_to 0@ 1@ 2@ from_actor $player_actor with_offset 0.0 5.0 0.0  
             023c: request_special_actor 'sweet' as 1  
             038b: load requested models  
             actor.create(3@,8, #special01, 0@, 1@, 2@)
             actor.RemoveReferences(3@)
             wait 2000
         end
     end
end
 
EmilioDurhamCopДата: Вторник, 21.08.2012, 23:02 | Сообщение # 175
Группа: Пользователи
Сообщений: 33
Статус: Offline
Блин, забыл. А что насчет дачи оружия этому актёру оружие? (извини за тупость) Если в середине кода написать 01B2: give_actor $PLAYER_ACTOR weapon 28 ammo 60
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0.
Это будет правильно?
 
Den_spbДата: Вторник, 21.08.2012, 23:10 | Сообщение # 176
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
У актёра скорее всего будет какое-то оружие (пистолет), т.к. он создаётся как член банды. Но можно дать и другое оружие с помощью команды 01B2. Перед тем, как давать актёру оружие, надо загрузить его модель:
Code
{$CLEO}
wait 0
while true
     wait 0
     if   
         player.Defined($player_char)
     then
         if
             0AB0:  key_pressed 73 // i
         then
             04C4: store_coords_to 0@ 1@ 2@ from_actor $player_actor with_offset 0.0 5.0 0.0  
             023c: request_special_actor 'sweet' as 1
             model.Load(#MICRO_UZI)  
             038b: load requested models  
             actor.create(3@,8, #special01, 0@, 1@, 2@)
             01B2: give_actor 3@ weapon 28 ammo 60 // Load the weapon model before using this  
             model.Destroy(#MICRO_UZI)
             actor.RemoveReferences(3@)
             wait 2000
         end
     end
end
 
EmilioDurhamCopДата: Вторник, 21.08.2012, 23:23 | Сообщение # 177
Группа: Пользователи
Сообщений: 33
Статус: Offline
Т.е. загрузить надо модель педа или оружия?
 
Den_spbДата: Вторник, 21.08.2012, 23:26 | Сообщение # 178
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
Загрузить надо и модель педа, и модель оружия (см. код). Перед тем, как создать в игре что-либо надо загрузить в память модель этого объекта, т.к. он не может быть создан "из ничего".
 
EmilioDurhamCopДата: Вторник, 21.08.2012, 23:29 | Сообщение # 179
Группа: Пользователи
Сообщений: 33
Статус: Offline
Code
actor.create(3@,8, #special01, 0@, 1@, 2@)

А что за цифры в скобках? Они ещё с "@".
 
Den_spbДата: Вторник, 21.08.2012, 23:34 | Сообщение # 180
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
Это номер переменной, в которую записывается указатель на созданного актёра. В дальнейшем, чтобы произвести над данным актёром какие-то действия, нужно указать в команде нужный номер переменной - благодаря этому игра понимает, над каким именно актёром надо произвести действие:
Quote
actor.create(3@,8, #special01, 0@, 1@, 2@)
01B2: give_actor 3@ weapon 28 ammo 60 // Load the weapon model before using this
Всего в каждом скрипте 32 переменных: 0@ - 31@.
 
Поиск: