#1 Re: Вопросы по скриптингу » Один вопрос » 11-06-2010 17:43

И ещё два вопроса:
1. как изменить позицию игрока т.е. отклонить от настоящей позиции на n метров по x,y?
2. отчего игра может вылетать при сохранении?

#2 Re: Вопросы по скриптингу » Один вопрос » 11-06-2010 12:04

у меня 2 вопроса.
1. как сделать, чтобы определённого скина не была среди прохожих.
2. как сделать работающий таймер.

#3 Re: Вопросы по скриптингу » Цикл опкодов. » 11-06-2010 07:21

Kostyan wrote:

Поставь тогда вместо той проверки

player.defined()

в принципе одно и тоже

Не одно и то же. Я заменил ту функцию на эту - всё наперекосяк пошло. Т.е. прокрутился один раз ролик. Потом запись mission_failed, потом опять ролик, потом опять mission_failed.

#5 Вопросы по скриптингу » Цикл опкодов. » 10-06-2010 12:30

hemen
Replies: 5
:mis4_kill
wait 0
if
wasted_or_busted
jf @mis5_kill
jump @MIS1_636

:mis5_kill
wait 0
if
Actor.Dead(12@)
jf @mis5_kill2 
jump @MIS1_636

:mis5_kill2
wait 0
if 
00EC: actor $PLAYER_ACTOR 0 near_point 345.9446 -1315.1191 radius 8.0 8.0
jf @mis1_15
05E2: actor 13@ kill_actor 12@
05E2: actor 14@ kill_actor $PLAYER_ACTOR 

:mis1_15
wait 0
if
Actor.HasWeapon($PLAYER_ACTOR,34)
jf @mis4_kill
//Далее какой то код

:MIS1_636
//код провала миссии

По идее в данном цикле опкодов должны работать все проверки, но проверка
wasted_or_busted почему то не работает.

#7 Вопросы по скриптингу » Проблема с маркером. » 08-06-2010 05:01

hemen
Replies: 2

просто не создаётся и всё.

00FE: actor $PLAYER_ACTOR sphere 1.1 in_sphere 2522.5481 -1679.0380 15.4970 1.5 1.5 1.5

Я думал, мб как то влияет Marker.Disable, но там стоит определённая переменная другого маркера.

#8 Re: Вопросы по скриптингу » Один вопрос » 07-06-2010 18:05

Ну насчёт справки, я там многих опкодов просто не увидел.
так то норм справочник.

А за опкод спс, пошёл тестить...

p.s. Не пашет, нету маркера xD

00FE: actor $PLAYER_ACTOR sphere 1.1 in_sphere 2511.7988 -1674.3735 13.4818 1.5 1.5 1.5

#9 Re: Вопросы по скриптингу » Один вопрос » 07-06-2010 13:51

Den_spb wrote:

@hemen - ошибок в коде много. Например, if должен применяться в проверках с одним условием. Если условий несколько, то ставится if and или if or. Если нужно проверить, равно ли значение переменной какому-то числу, то ставится 2 знака равно (1@ == 1). Один знак равно ставим тогда, когда записываем число в переменную. В общем, читай справку СБ раздел Кодинг - там все эти моменты затронуты.

Спс что указал, просто забыл поставить.
Проверки, оказывается, работают. Не работали из-за путаницы с $PLAYER_CHAR и $PLAYER_ACTOR.

Но теперь нужна работающая функция создания маркера без иконки. никак найти не могу sad

#10 Re: Вопросы по скриптингу » Один вопрос » 07-06-2010 13:25

Sw[ee]t wrote:
actor.InCar($PLAYER_ACTOR,$car1)
0102: actor $PLAYER_ACTOR stopped_near_point_on_foot  1683.6542  -2240.8057  13.5469  radius  1.2  1.2  3.0 sphere  1

От такого хочется ржать до потери пульса...
Мои же слова подтверждаются: Такое ощущение, что взяли какие-то опкоды, прикрутили к ним параметры и пихнули по разным блокам.

Что то не так?

:MIS1_498
if Or 
0457: player $PLAYER_ACTOR  aiming_at_actor 1@
0457: player $PLAYER_ACTOR  aiming_at_actor 2@
jf @MIS1_498
wait 0 
05E2: AS_actor 1@ kill_actor $PLAYER_ACTOR 
05E2: AS_actor 2@ kill_actor $PLAYER_ACTOR

Ну а дак почему тогда ЭТО не работает?
Специально прицел ставлю - и ничо, садятся, руки за голову. Вместо того, чтоб палить.

#11 Re: Вопросы по скриптингу » Один вопрос » 07-06-2010 13:17

~AquaZ~ wrote:

Где?

ээ, всё, проехали уже.

#12 Re: Вопросы по скриптингу » Один вопрос » 07-06-2010 13:11

изменений никаких.
всё тоже. Если кто может, помогите, скажите, где исправить.

#13 Re: Вопросы по скриптингу » Один вопрос » 07-06-2010 12:39

Sw[ee]t wrote:

Я просто ржу от такого кода...
1.

:MIS1_98
wait 1000 
Model.Load(#ARMY)
Model.Load(#ARMY)
wait 0 
if and
  Model.Available(#ARMY)
  Model.Available(#ARMY)
else_jump @MIS1_98 
1@ = Actor.Create(CivMale, #ARMY, 2772.7957,-2423.9497,13.6373)
2@ = Actor.Create(CivMale, #ARMY, 2772.5059,-2411.8274,13.6311)
Actor.Angle(1@) = 90.0

Код никогда не перейдёт на 1@ = Actor.Create... так как стоит проверка не "если иначе, тогда...", а "если так, тогда...". Короче, заменить else_jump на jf. Это касается и потока STR_33.

2.

0002: jump @MAIN_LOOP
end_thread

Глупезна полнейшая. После jump никогда не ставится end_thread если далее в потоке код отсутствует.
Да и вообще, смотреть на код без слёз невозможно. Такое ощущение, что взяли какие-то опкоды, прикрутили к ним параметры и пихнули по разным блокам.

А я не виноват,что не одного нормального учебника нету.
Одной справкой sb довольствоваться бесполезно.

#14 Re: Вопросы по скриптингу » Один вопрос » 07-06-2010 08:43

В миссии не одна проверка, кроме wasted_or_busted, не работает.

#15 Re: Вопросы по скриптингу » Один вопрос » 07-06-2010 07:53

~AquaZ~ wrote:

Мейн, состоящий ТОЛЬКО ИЗ ТОГО КОДА, ЧТО ТЫ ПРИВЁЛ???
испацтала

я только определённый код записал.

Вот весь код.

#16 Re: Вопросы по скриптингу » Один вопрос » 07-06-2010 07:33

~AquaZ~ wrote:

Проверял код через КЛЕО?

Это каким образом?
Проверял как обычно. Скомпилил файл в main.scm, запустил игру.

#17 Re: Вопросы по скриптингу » Один вопрос » 07-06-2010 06:29

Model.Load(#PATRIOT)
038B: load_requested_models
$car1 = Car.Create(#PATRIOT, 2788.3787,-2417.7288,13.6248 )
Car.Angle($car1) = 90.0
Model.Destroy(#PATRIOT)

:MIS1_521 
if 
actor.InCar($PLAYER_ACTOR,$car1)
wait 100
jf @MIS1_521
Marker.Disable($marker1) 
0167: $marker2 = create_marker_at 1683.6542  -2240.8057  13.5469 0 2
$var1 = 1
03E5: text_box 'ENTRY4'
05E2: AS_actor 1@ kill_actor $PLAYER_ACTOR 
05E2: AS_actor 2@ kill_actor $PLAYER_ACTOR

Код из миссии. Проверка не работает.

#18 Re: Вопросы по скриптингу » Один вопрос » 06-06-2010 14:53

Sw[ee]t wrote:

Я даже с трудом понимаю как по коду выше могло вообще что-то создаться...

Спасибо, заработало.

И последний вопрос - как проверить, взял ли игрок данный пикап?

#19 Re: Вопросы по скриптингу » Один вопрос » 06-06-2010 12:44

Ну да, я понял:
fade 0 0

У меня тут вторая проблема появилась. Создаётся всего лишь один актёр, вместо двух.

:load1
wait 0
Model.Load(#BALLAS1)

:load2
wait 0

if And
Model.Available(#BALLAS1)
else_jump @load1

Actor.Create(1@,4, #BALLAS1,2775.1240,-2421.6475,13.6368)
Model.Destroy(#BALLAS1)

:load3
wait 0
Model.Load(#BALLAS2)

:load4
wait 0

if And
Model.Available(#BALLAS2)
else_jump @load3

Actor.Create(2@,4, #BALLAS2,2775.5779,-2413.3684,13.6490)
Model.Destroy(#BALLAS2)

#20 Re: Вопросы по скриптингу » Один вопрос » 06-06-2010 10:58

Вот, хотел создать миссию:
1. Камера ставиться в одно место.
2. Камера ставиться в другое место.
3. К тому же создаются актёры, им раздаётся оружие.
4. Создаётся пикап.

Вместо того, чтобы показывать определённое место, 8 секунд тупо стоит чёрный экран.
Дальше видно, как камера возвращается к игроку.

:STARTMISSION1 

increment_mission_attempts 

fade 0 0

054C: use_GXT_table 'MTABLE'

$ONMISSION = 1 

00BA: text_styled 'ENTRY1' 1000 ms 2

create_thread @true1

if And
Player.Defined($PLAYER_CHAR) 
gosub @true1
jf @STARTMISSION1

:true1
Model.Load(280) 
10950@ = Actor.Create(Mission1, 280,2775.1240,-2421.6475,13.6368)
10951@ = Actor.Create(Mission2, 280,2775.5779,-2413.3684,13.6490)
Model.Destroy(280)

Model.Load(#M4)
01B2: give_actor 10950@ weapon 31 ammo 100
01B2: give_actor 10951@ weapon 31 ammo 100
Model.Destroy(#M4)

Model.Load(#DESERT_EAGLE)
01B2: give_actor $PLAYER_ACTOR weapon 24 ammo 100
Model.Destroy(#DESERT_EAGLE)

Model.Load(#CELLPHONE) 
0213: $670 = create_pickup #CELLPHONE type 3 at 2799.5354 -2426.6106 13.6308
Model.Destroy(#CELLPHONE)

0373: set_camera_directly_behind_player

Player.CanMove($PLAYER_CHAR) = False

wait 0
0826: toggle_hud 0
02A3: toggle_widescreen 1
04E4: unknown_refresh_game_renderer_at 2728.8833 -2382.5771
03CB: set_camera  2728.8833 -2382.5771 17.3403
015F: set_camera_position  2728.8833 -2382.5771 17.3403 0 0 0
0160: point_camera  2774.6436 -2416.6724 13.64488  2
00BA: text_styled 'ENTRY2' 4000 ms 5

wait 4000
03CB: set_camera  2794.0073 -2416.5735 13.6321
015F: set_camera_position  2794.0073 -2416.5735 13.6321 0 0 0
0160: point_camera  2799.5354 -2426.6106 13.6308  2
00BA: text_styled 'ENTRY3' 4000 ms 5

wait 4000
Player.CanMove($PLAYER_CHAR) = True
0373: set_camera_directly_behind_player
0826: toggle_hud 1  
02A3: toggle_widescreen 0   
return

Board footer

Powered by FluxBB