#1 Re: Вопросы по скриптингу » Один вопрос » 01-09-2010 11:19

Sw[ee]t,~AquaZ~,спасибо за помощь.Я много чего пробовал, и расскажу,как я всё таки решил проблему:
вместо  camera.setatpos(1,2,3)     
использовал  Camera.SetPosition(2467.4216 -1684.4646 13.5184, 0.0, 0.0,0.0) ,
затем- camera.pointat, который заработал нормально,а после анимации поставил  Camera.Restore_WithJumpCut - кстати, если последнюю команду не ставить, камера остаётся на месте, при этом игрок может быть контролируем.

#2 Re: Вопросы по скриптингу » Один вопрос » 31-08-2010 18:08

Cпасибо, что ответили, но больше хотелось бы учлышать про создание линейки миссий.
Так же возникло ещё 2 вопроса(это пока=)):
1) как актёру запретить вылазить из машины, даже если она загорелась?(и как при необходимости снова дать ему эту возможность)
2)непонятно с камерой: команда Camera.SetAtPos, независимо от того, куда бы я камеру не ставил, показывает игрока.
при использовании команд Camera.pointat или camera.onvehicle (возможно и при исп других тоже, не пробовал)  независимо от того, какие я ставлю координаты, показывается одно и то же место, даже ставил через некторое время set.behindplayer,- камера на игрока не переходит, так и продолжает висеть непонятно где,при этом игрок контролируем(судя по радару). что я делаю не так?

камера:
_jpg1.ru_123483437.jpg

#3 Re: Вопросы по скриптингу » Один вопрос » 30-08-2010 17:46

Всем доброго дня/ночи, прошу помощи, долго уже мучаюс=)
(лирическое отступление:сразу скажу,что я далеко не гений програмирования, да и мой вопрос уровня новичка)
никак не могу понять как запускать возможность взятия 2ой мисси после выполнения 1ой.Что у меня получается: 1ямиссия запускается, я её прохожу, появляется маркер и метка на радаре, где нужно брать миссию 2, но когда я становлюсь на него ничего не происходит(учился по хелпу санни билдера)
так же хотелось бы узнать, что означает
fading 
00BE: text_clear_all
03E6: remove_text_box
(в особенност fading), а так же, если можно, поподробнее узнать(в мануале я чёто недопонял=)), как собственно делать эти блоки миссий(т.е. сюжетную линию, можно сказать)
вот код(на основе stripped.txt):

// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 23.02.2007
DEFINE OBJECTS 1
DEFINE OBJECT SANNY BUILDER v. 2.99f  

DEFINE MISSIONS 2
DEFINE MISSION 0 AT @MISSION           // Initial 1
DEFINE MISSION 1 AT @MISSION2
DEFINE EXTERNAL_SCRIPTS 0 // Use -1 in order not to compile AAA script

DEFINE UNKNOWN_EMPTY_SEGMENT 0

DEFINE UNKNOWN_THREADS_MEMORY 0

{$VERSION 3.1.0020}

//-------------MAIN---------------
thread 'MAIN' 
fade 0 0 
01F0: set_max_wanted_level_to 6 
030D: set_total_mission_points_to 187
set_wb_check_to 0 
00C0: set_current_time_hours_to 8 minutes_to 0 
04E4: unknown_refresh_game_renderer_at 2488.56 -1666.84 
Camera.SetAtPos(2488.56, -1666.84, 13.38)
$PLAYER_CHAR = Player.Create(#NULL, 2473.376, -1669.84, 13.38)
$PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR)
07AF: $PLAYER_GROUP = player $PLAYER_CHAR group 
Camera.SetBehindPlayer
set_weather 0 
09BA: show_entered_zone_name 0 
wait 0 
Player.SetClothes($PLAYER_CHAR, "PLAYER_FACE", "HEAD", Head)
Player.SetClothes($PLAYER_CHAR, "JEANSDENIM", "JEANS", Legs)
Player.SetClothes($PLAYER_CHAR, "SNEAKERBINCBLK", "SNEAKER", Shoes)
Player.SetClothes($PLAYER_CHAR, "VEST", "VEST", Torso)
Player.Build($PLAYER_CHAR)
Player.CanMove($PLAYER_CHAR) = True
$NEW_TOTAL_PASSED_MISSIONS = 0 
fade 1 0 
select_interior 0 
0629: change_integer_stat 181 to 4 
016C: restart_if_wasted_at 2027.77 -1420.52 15.99 angle 137.0 town_number 0 
016D: restart_if_busted_at 1550.68 -1675.49 14.51 angle 90.0 town_number 0 
0180: set_on_mission_flag_to $ONMISSION // Note: your missions have to use the variable defined here 
03E6: remove_text_box 
//create_thread @START 
:MAIN_49 //297
 if 
   fading 
 jf @MAIN_50 
wait 0 ms 
00BE: text_clear_all 
03E6: remove_text_box 
jump @MAIN_49 

:MAIN_50        
wait 0 ms
start_mission MISSION //Старт миссии
///end_thread
end_thread 

 :STARTER
thread 'STARTER' 

//   :STARTER
//thread 'STARTER' 

:STARTER_11
wait 250 
if 
  $NEW_TOTAL_PASSED_MISSIONS == 2 
// Количество сюжетных миссий у нас равно 2
// если  $NEW_TOTAL_PASSED_MISSIONS == 2, то закрываем поток   
jf @STARTER_219POSLE1 
end_thread









 :STARTER_219POSLE1
if 
  $NEW_TOTAL_PASSED_MISSIONS == 1 
jf @STARTER_352na_nachalo 
if 
00FF:   actor $PLAYER_ACTOR sphere 0 in_sphere 2468.632 -1650.888 13.4716 radius 1.2 1.2 2.0 on_foot 
jf @STARTER_352na_nachalo 
Marker.Disable($Marker_Sweet_House)
$ONMISSION = 1 
00BA: show_text_styled GXT 'SWEET1B' time 1000 style 2  // Cleaning the Hood
fade 0 500 









// :STARTER_320DUNNO       ///?????????????????
//if 
//fading 
//jf @STARTERMIS2 
//wait 0 
//00BE: text_clear_all 
//03E6: remove_text_box 
//jump @STARTER_320DUNNO







 :STARTERMIS2             //NA 2U MISSIU
 start_mission MISSION2


 :STARTER_352na_nachalo
jump @STARTER_11


:START                ///T_START priprovale 1 missii
thread 'START' 
wait 0 
1@ = Marker.CreateIconAndSphere(36, 2462.1006, -1716.0439, 13.5187)

:START_1                          ///t_START
wait 250 
if and
   Player.Defined($PLAYER_CHAR)
0102:   actor $PLAYER_ACTOR in_sphere 2462.1006 -1716.0439 13.5187 radius 2.0 2.0 1.0 sphere 1 stopped_on_foot 
jf @START_1 
Marker.Disable(1@)
00BA: show_text_styled GXT 'STAD_04' time 1000 style 2  // 
//fade 0 500 
wait 500 
start_mission MISSION // Initial 1
end_thread 





:MISSION
thread "MISSION"
gosub @Misstart
if
 wasted_or_busted
jf @Misclean
gosub @Missfail

:Misclean
$ONMISSION = 0
mission_cleanup
end_thread

:Misstart
increment_mission_attempts 
$ONMISSION = 1
model.load(#SAWNOFF)
model.load(#MP5LNG)
model.load(#BALLAS3)                            ///2462.1006 -1716.0439 13.5187           2455.2815 -1708.8257 13.6096     2328.4453 -1680.6447 14.8334
038B: load_reqested_models
:Misstart1
wait 0
if and 
model.Available(#SAWNOFF)
model.Available(#MP5LNG)
model.Available(#BALLAS3)
jf @Misstart1
02A3: toggle_widescreen 1 
Player.CanMove($PLAYER_CHAR) = False

:MissionStart_37

054C: use_GXT_table 'GARAGE1' 
00BC: show_text_highpriority GXT 'GAR1_22' time 3000 flag 1  // ~s~Get inside the ~b~car~s~.
wait 5000 
03D5: remove_text 'GAR1_22' 
Player.CanMove($PLAYER_CHAR) = True
02A3: toggle_widescreen 0 

032B: 3@ = create_weapon_pickup #SAWNOFF type 3 ammo 10 at  2455.2815 -1708.8257 13.6096

actor.create(2@,20,#BALLAS3,2328.4453, -1680.6447, 14.8334)
01B2: give_actor 2@ weapon 29 ammo 999999
wait 100
05E2: AS_actor 2@ kill_actor $PLAYER_ACTOR
:LabelMis1_3
wait 0
if 
wasted_or_busted
jf @LabelMis1_4
jump @Missfail
:LabelMis1_4
wait 0
if and
//actor.Dead(1@)
actor.Dead(2@)
//actor.Dead(3@)
jf @LabelMis1_3

:Misspass
wait 200
0318: set_latest_mission_passed 'MISSION' 
01E3: show_text_1number_styled GXT 'M_PASSS' number 200 time 5000 style 1  // MISSION PASSED!~n~~w~$~1~~n~~w~RESPECT +
//0998: add_respect 3 
Player.Money($PLAYER_CHAR) += 200
Player.ClearWantedLevel($PLAYER_CHAR)
0394: play_music 1 
$NEW_TOTAL_PASSED_MISSIONS += 1 
$Marker_Sweet_Hous = Marker.CreateIconAndSphere(16, 2498.228, -1647.457, 13.5479)
// создаем маркер миссии FIRST
return 

:Missfail
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1
create_thread @START 
return

///  2477.2854 -1668.6162 13.3271

:MISSION2
thread "MISSION2"
gosub @Misstart2
if
 wasted_or_busted
jf @Misclean2
gosub @Missfail2
:Misclean2
$ONMISSION = 0
mission_cleanup
end_thread
:Misstart2
increment_mission_attempts 
$ONMISSION = 1
//model.load(#SAWNOFF)
model.load(#GUN_VIBE1)       //323
model.load(#BALLAS2)                            ///2462.1006 -1716.0439 13.5187           2455.2815 -1708.8257 13.6096     2328.4453 -1680.6447 14.8334
038B: load_reqested_models
:Misstart12
wait 0
if and 
///model.Available(#SAWNOFF)
model.Available(#GUN_VIBE1)
model.Available(#BALLAS2)
jf @Misstart12
//02A3: toggle_widescreen 1 
//Player.CanMove($PLAYER_CHAR) = False

  actor.create(2@,20,#BALLAS2,2469.7808, -1650.4218, 13.4718)
01B2: give_actor 2@ weapon 323 ammo 999999
wait 100
05E2: AS_actor 2@ kill_actor $PLAYER_ACTOR
:LabelMis1_32
wait 0
if 
wasted_or_busted
jf @LabelMis1_42
jump @Missfail2
:LabelMis1_42
wait 0
if and
//actor.Dead(1@)
actor.Dead(2@)
//actor.Dead(3@)
jf @LabelMis1_32
:Misspass2
wait 200
0318: set_latest_mission_passed 'MISSION2' 
01E3: show_text_1number_styled GXT 'M_PASSS' number 200 time 5000 style 1  // MISSION PASSED!~n~~w~$~1~~n~~w~RESPECT +
//0998: add_respect 3 
Player.Money($PLAYER_CHAR) += 200
Player.ClearWantedLevel($PLAYER_CHAR)
0394: play_music 1 
$NEW_TOTAL_PASSED_MISSIONS += 1 
return 

:Missfail2
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1
//create_thread @START 
return

Board footer

Powered by FluxBB