Здравствуйте. Помогите пожалуйста и укажите на ошибки. При загрузке новой игры или сохранения игра вылетает. Данный скрипт: пикап камеры и балончика с краской в доме Карла , который напротив автошколы
{$CLEO .CS}
create_thread @ER
:ER
wait 0
model.load(#CAMERA)
model.load(#SPRAYCAN)
038B: load_requested_models
:ER_1
wait 0
if and
model.Available(#CAMERA)
model.Available(#SPRAYCAN)
jf @ER_1
:ER_2
032B: $Weap[0] = create_weapon_pickup #CAMERA type 3 ammo 200 at 2186.4761 -1215.8689 1049.0234
032B: $Weap[1] = create_weapon_pickup #SPRAYCAN type 3 ammo 200 at 2186.2036 -1216.0177 1049.0234
wait 100
Model.Destroy(#CAMERA)
model.Destroy(#SPRAYCAN)
end_threadДобавлено (30.06.2019, 17:06)
---------------------------------------------
Здравствуйте. Клео я изучаю недавно. Решил написать скрипт в котором игрока будет обслуживать бармен.
Я создал нового актора и пытаюсь закрепить его в баре на Грув-стрит (id 11), ставил по справке. По задумке когда сиджей заходит в бар то 2й бармен (слева) должен уже быть в баре, но в отличии от оригинального бармена, он будет стоять в ожидании сиджея. Рядом с созданным барменом есть красный маркер, нужный для снятия денег с игрока (пока 15$) и активации обслуживания. Далее проигрываются анимации бармена (сиджея обслуживают) и игрока (выпил вино бутылки по id 1509).
После того как игрок выпьет, анимация кончится и бутылка исчезнет. Позднее я хочу это поправить, чтобы у игрока не просто так бутылка исчезала, а он ронял её. Бутылка разбивается с сопровождающим её звуком.
Сиджей может двигаться, а экран будет шататься, то затемняясь то просветляясь, с учётом замедления игры в 2раза. Такой эффект примерно на 50-60сек. А после всё придёт в норму.
Да, ошибок у меня ещё много, но я изучаю как их поправить.
1й баг - это вылет игры во время закрепления актора в интерьер.
2й баг - был ещё до закрепления актора в интерьер. Просто ставил актора по координатам 500.3259, -77.7879, 998.7578 а модель "моргала". Всмысле: модель загружается как будто много раз.
3й баг - это то что красные маркеры просто не видны, хотя оба в одинаковых координатах, да ещё и активны.
4й баг - связан с анимациями сиджея, он просто встал, двигать им нельзя и сразу пошли эффекты опьянения. Но анимации бармена воспроизводятся.
5й баг - бармен выполняя заказ идёт за бутылкой. Дальше игра зависает
Помогите мне пожалуйста и покажите на примерах исправленные варианты
Код
{$CLEO}
0000:
while true
:1
wait 0
Model.Load(1509) //объявляем модель бутылки по id 1509
Model.Load(#VWFYCRP) //объявляем модель бармена
038B: load_requested_models //загружаем объявленные модели
:2
wait 0
if and //проверяем несколько условий
Model.Available(1509) //бутылка загружена?
Model.Available(#VWFYCRP) //бармен загружен?
jf @2 //если нет то возвращаемся к метке 2 и проверка будет происходить до тех пор пока объявленные модели не загрузятся
wait 10 //задержка в 10мс
Actor.Create(3@, 5, #VWFYCRP, 500.3259, -77.7879, 998.7578) //создаём актора в данных координатах (бар грув-стрит)
Object.Create(0@,1509,0.0,0.0,0.0) //создаём бутылку
Model.Destroy(1509) //уничтожаем каждую модель
Model.Destroy(#VWFYCRP) //и
Actor.RemoveReferences(3@) //стираем сведения
Object.RemoveReferences(0@) //чтобы не грузить память
wait 1000
:3
select_interior 11 //номер интерьера 11, это бар на Грув-стрит
0860: link_actor 3@ to_interior 11 // выбираем интерьер создаваемому актёру
if player.Defined(3@) //проверяем существует ли бармен в игре
then //если да, тогда помещаем его в бар.
actor.PutAt(3@, 501.980987, -69.1501, 998.7578) //координаты бара
jf @3
wait 0 //задержка в 0мс
if and //проверяем несколько условий
player.Defined(0) //игрок (cj) жив ?
not actor.Driving($PLAYER_ACTOR) //игрок не в машине ?
player.Money(0) > 14 //число игрока целое и больше 14 ?
0102: actor $PLAYER_ACTOR in_sphere 500.3043 -75.8083 998.7578 radius 1.0 1.0 1.0 sphere 1 stopped_on_foot //когда игрок встанет на маркер
then //тогда
player.Money(0) += -15 //с игрока снимут 15$
00FE: actor $PLAYER_ACTOR sphere 1 in_sphere 500.3043 -75.8083 998.7578 radius 1.0 1.0 1.0 //если игрок ещё стоит на маркере
Player.CanMove($PLAYER_CHAR) = False //бармен никуда не уйдёт
//и обслужит игрока
0605: actor 3@ perform_animation "BARSERVE_LOOP" IFP "BAR" framedelta 4.0 loop 1 lockX 0 lockY 0 lockF 0 time -1 //бармен смотрит по сторонам и ожидает клиентов
0605: actor 3@ perform_animation "BARSERVE_ORDER" IFP "BAR" framedelta 4.0 loop 0 lockX 0 lockY 0 lockF 0 time 2000 //бармен на месте прислушался
wait 2000
0605: actor 3@ perform_animation "BARSERVE_BOTTLE" IFP "BAR" framedelta 4.0 loop 0 lockX 0 lockY 0 lockF 0 time 3000 //наклонился и достал бутылку
wait 3000
0605: actor 3@ perform_animation "BARSERVE_GIVE" IFP "BAR" framedelta 4.0 loop 0 lockX 0 lockY 0 lockF 0 time 3000 //бармен поставил перед игроком выпивку
070A: AS_actor $PLAYER_ACTOR attach_to_object 0@ offset 0.05 0.06 0.05 on_bone 6 16 perform_animation "DRNKBR_PRTL" IFP "GANGS" time 15000
wait 1500
1@ = 0
repeat
wait 0
if
not player.Defined(0)
then
1@ = 1 //Dead/arrested/not found flag
end
until not actor.Animation($PLAYER_ACTOR) == "DRNKBR_PRTL"
04EF: release_animation "GANGS"
if
1@ == 0
then
015D: set_gamespeed 0.5
player.SetDrunkVisuals(0,50)
object.Destroy(0@)
actor.DestroyInstantly(3@) - уничтожаем бармена
while player.Defined(0)
wait 0
32@ = 0
repeat
wait 0
if
not player.Defined(0)
then
break
end
until 32@ > 999
fade 0 1500
repeat
wait 0
if
not player.Defined(0)
then
break
end
until not fading
fade 1 1500
repeat
wait 0
if
not player.Defined(0)
then
break
end
until not fading
end //while
015D: set_gamespeed 1.0
player.SetDrunkVisuals(0,0)
end
end
end