#1 03-06-2008 13:43

AlphaOmega
Registered: 02-06-2008
Posts: 98

Быть пилотом любого самолёта...

Вот - первый мой скрипт на клео.
Заключается он в том, что у каждого из аэропортов (гражданских) на КПП появляется маркер - встав в него, появляется меню с выбором - каким самолётом лететь (ат400, невада, андромеда, шамал, гидра) и при нажатии шифта (как обычно, выбор пункта) игрок становится пилотом выбранного самолёта, который уже стоит в торце ВПП и готов к взлёту!...

http://stream.ifolder.ru/6834595

(если потребуется, могу исходный код запостить сюда)

Offline

#2 03-06-2008 13:52

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Быть пилотом любого самолёта...

(если потребуется, могу исходный код запостить сюда)

да, это было бы замечательно

Offline

#3 03-06-2008 13:55

AlphaOmega
Registered: 02-06-2008
Posts: 98

Re: Быть пилотом любого самолёта...

код pilot.cs

{$CLEO .cs}      

// 2 be a pilot (3)
// version 1.1
// Av4sX

//-------------MAIN---------------

:start

03BC: $kppA = create_sphere  -1544.0 -440.0  6.0  2.0
03BC: $kppB = create_sphere  1714.0 1616.0 11.0 2.0
03BC: $kppC = create_sphere  1957.0 -2183.0 13.0  2.0

0AA2: 31@ = load_library "CLEO\PLUGINS\GXTHOOK.CLEO" // IF and SET 

$AIR = 0;
$CITY = 0;

:passKPP
wait 1000 ms
if 0
02A0: actor $PLAYER_ACTOR stopped  
004D: jump_if_false @passKPP

:passCITYa
if 0
00ED: actor $PLAYER_ACTOR  0 ()near_point_on_foot -1544.0 -440.0 radius  5.0  5.0
004D: jump_if_false @passCITYb
$CITY = 1
jump @passOK

:passCITYb
if 0
00ED: actor $PLAYER_ACTOR  0 ()near_point_on_foot 1714.0 1616.0 radius  5.0  5.0
004D: jump_if_false @passCITYc
$CITY = 2
jump @passOK

:passCITYc
if 0
00ED: actor $PLAYER_ACTOR  0 ()near_point_on_foot 1957.0 -2183.0 radius  5.0  5.0
004D: jump_if_false @passKPP
$CITY = 3
jump @passOK

:passOK

02A3: toggle_widescreen  1

Player.CanMove($PLAYER_CHAR) = False

0340: set_text_draw_RGBA 180 180 180 255 
033F: set_text_draw_letter_size 0.5 2.5 
03E4: enable_text_draw_align_right 0 
0341: unknown_text_draw_flag 0 
0342: enable_text_draw_centered 0 
0343: set_text_draw_linewidth 200.0 
0348: enable_text_draw_proportional 1 
0345: enable_text_draw_background 0 
0343: set_text_draw_linewidth 680.0 

08D4: $SELECTION = create_panel_with_title 'AIRSEL' position 340.0 120.0 width 240.0 columns 1 interactive 1 background 1 alignment 0
08DB: set_panel $SELECTION column 0 header 'DUMMY' data 'AIR001' 'AIR002' 'AIR003' 'AIR004'  'AIR005'  'DUMMY'  'DUMMY'  'DUMMY'  'DUMMY'  'DUMMY'  'DUMMY'  'DUMMY' 
090E: set_panel $SELECTION active_row 0

:passKEYa
wait 0 
if 
00E1:   player 0 pressed_key 15 
004D: jump_if_false @passKEYz
Player.CanMove($PLAYER_CHAR) = True 
jump @passEND 

:passKEYz
if 
00E1:   player 0 pressed_key 16
004D: jump_if_false @passKEYa
Player.CanMove($PLAYER_CHAR) = True
 
03E6: remove_text_box 
08D7: $SELECTED = panel $SELECTION active_row

if 
  $SELECTED == 0 
004D: jump_if_false @passAIR1
$AIR = 577
jump @passYES  
 
:passAIR1
if 
  $SELECTED == 1
004D: jump_if_false @passAIR2
$AIR = 553
jump @passYES 

:passAIR2
if 
  $SELECTED == 2
004D: jump_if_false @passAIR3
$AIR = 592
jump @passYES 

:passAIR3
if 
  $SELECTED == 3
004D: jump_if_false @passAIR4
$AIR = 519
jump @passYES 

:passAIR4
if 
  $SELECTED == 4
004D: jump_if_false @passEND
$AIR = 520
jump @passYES 

:passYES

fade 0 500
0223: set_actor $PLAYER_ACTOR health_to  10000
035F: set_actor $PLAYER_ACTOR armour_to  100

0247: request_model $AIR

:preLOAD
wait  0 ms
if  0
0248:   model $AIR available
004D: jump_if_false @preLOAD

:passRNW1
if
 $CITY == 1
004D: jump_if_false @passRNW2 
00A5: $aircraft = create_car $AIR at -1646.0 -153.0 15.0
0175: set_car $aircraft z_angle_to  -45.0 
jump @passDONE

:passRNW2
if
 $CITY == 2
004D: jump_if_false @passRNW3 
00A5: $aircraft = create_car $AIR at 1477.0 1747.0 11.0
0175: set_car $aircraft z_angle_to  180.0 
jump @passDONE

:passRNW3
00A5: $aircraft = create_car $AIR at 2032.0 -2593.0 14.0
0175: set_car $aircraft z_angle_to  90.0 
jump @passDONE

:passDONE
036A: put_actor $PLAYER_ACTOR in_car $aircraft

fade 1 500

:passEND
08DA: remove_panel $SELECTION 
02A3: toggle_widescreen  0
08DA: remove_panel 4@ 
03E6: remove_text_box 
00BE: text_clear_all
wait 5000;
jump @passKPP

код  CLEO_TEXT файла pilot.fxt

AIRSEL Aircraft Selection
AIR001 Boeing
AIR002 Nevada
AIR003 Andromeda
AIR004 LearJet
AIR005 Harrier

p.s.: вместо боинга по умолчанию должно стоять at400... прост оу мя боинг стоит, потому решил так оставить...

Offline

#4 03-06-2008 13:58

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Быть пилотом любого самолёта...

GXTHook.cleo не надо загружать таким образом smile Достаточно переложить этот файл в папку CLEO.
И я опять вижу глобальные переменные в клео-скрипте. Друзья, вам локальных переменных не хватает?
Не вижу проверки на player.defined
И в целом скрипт можно круто оптимизировать

Last edited by Seemann (03-06-2008 14:00)

Offline

#5 03-06-2008 13:59

AlphaOmega
Registered: 02-06-2008
Posts: 98

Re: Быть пилотом любого самолёта...

Seemann wrote:

GXTHook.cleo не надо загружать таким образом smile Достаточно переложить этот файл в папку CLEO.

Не поверишь - но без этой строки у меня почему то появляется пустое меню sad

Offline

Board footer

Powered by FluxBB