[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 64 из 125«126263646566124125»
Форум » Игры серии GTA » GTA San Andreas » Вопросы по скриптингу Sanny Builder и заказы (Вы можете получить ответы на вопросы по SB и сделать заказ)
Вопросы по скриптингу Sanny Builder и заказы
wmysterio
Администраторы
Скриптер
22.11.11 21:52
Offline
Если у вас возник вопрос по скриптингу Sanny Builder, обращайтесь! Мы постараемся решить вашу проблему wink Это ещё не значит, что все прям бросятся решать во чтобы то не стало, но ответ вы сможете вы получить как вариант решения или как невозможность или сложность решения.
УВАЖАЕМЫЕ ПОЛЬЗОВАТЕЛИ! ПРОСЬБА КОД СКРИПТОВ ПОМЕЩАТЬ В КОНСТРУКЦИЮ КОДА:

или

Также указывайте полный код скрипта, иначе причина ошибок может быть и не выявлена.

Внимание! От этого момента тема предназначена ещё и для заказов скриптов и миссий. Я это сделал по одной причине - пользователи постоянно путают/или не ищут темы и приводят заказ здесь. Теперь этой путаницы не будет. Здесь можно проводить заказы, но Вы должны указать в начале поста текст "НА ЗАКАЗ". Постарайтесь как можно детальнее объяснить суть скрипта.
Прикрепления: 0248203.png(1Kb) · 9085525.png(0Kb)

mos_cracin
Пользователи
18.07.13 23:22
Offline
wmysteriosad в формате  .cs и в формате .cm сохраняются.. но открывать их не хотят... значит проблемы с метками да?

Добавлено (18.07.13, 22:22)
---------------------------------------------
wmysterio, как исправить?


wmysterio
Администраторы
Скриптер
18.07.13 23:25
Offline
Цитата (mos_cracin)
как исправить?
добавить код
Код
:MOS_CRACIN_644    
    gosub @MOS_CRACIN_673    
01E3: show_text_1number_styled GXT 'M_FAIL' number 1000 time 5000 style 1 // миссия провалена
return     

:MOS_CRACIN_673    
wait 0
return
в конец миссии.

Кстати, для миссий нужно использовать директиву {$CLEO .cm}
if( robots->EvilFlag = true ) {
robots->KillHumans();
}

mos_cracin
Пользователи
18.07.13 23:34
Offline
wmysterio, Всерамно вылет, ... sad

wmysterio
Администраторы
Скриптер
18.07.13 23:39
Offline
Цитата (mos_cracin)
Всерамно вылет, ...
ща посмотрю что к чему.
if( robots->EvilFlag = true ) {
robots->KillHumans();
}

mos_cracin
Пользователи
18.07.13 23:54
Offline
wmysterio, Прошу помочь!  sad

wmysterio
Администраторы
Скриптер
18.07.13 23:55
Offline
Так, разобрался. Есть нюансы:
1) Использовалась директива {$CLEO .CS} в место {$CLEO .CM}
2) Главный поток был объявлен в двойных кавычках, а нужно в одинарных:
Код
thread 'MOS_CRACIN'
3) Проверка нескольких условий - упущен указатель на это. Нужно так делать:
Код
:MOS_CRACIN_144
wait 0   
if AND
Model.Available(#VLA1)
Model.Available(#VLA2)
Model.Available(#VLA3)
Model.Available(#BAT)
Model.Available(#COLT45)
jf @MOS_CRACIN_144
4) Главные ошибкы: используете $PLAYER_ACTOR  в место $PLAYER_CHAR:
Код
Player.Money($PLAYER_CHAR) += 500
Player.CanMove($PLAYER_CHAR) = True

Вот такой код должен работать адекватно:
Код
{$CLEO .cm}   
//------------- Mission ---------------

:MOS_CRACIN
thread 'MOS_CRACIN'
gosub @MOS_CRACIN_29_57   
if   
wasted_or_busted   
jf @MOS_CRACIN_29_46   
gosub @MOS_CRACIN_29_144   

:MOS_CRACIN_29_46
$ONMISSION = 0   
mission_cleanup   
end_thread   

:MOS_CRACIN_29_57
increment_mission_attempts   
$ONMISSION = 1   
0662: printstring "#MOS_CRACIN-SCRIPT"   
0662: printstring "НАСТАЯЩЯЯ ИМЯ - ANDREI COJOCARU"
Model.Load(#VLA1)
Model.Load(#VLA2)
Model.Load(#VLA3)
Model.Load(#BAT)
Model.Load(#COLT45)
038B: load_requested_models   

:MOS_CRACIN_A
wait 0   
if AND
Model.Available(#VLA1)
Model.Available(#VLA2)
Model.Available(#VLA3)
Model.Available(#BAT)
Model.Available(#COLT45)
jf @MOS_CRACIN_A   

Actor.PutAt($PLAYER_ACTOR, 2056.109, -1977.737, 13.5545)
Actor.Angle($PLAYER_ACTOR) = 89.2086

$ACTOR1 = Actor.Create(Criminal, #VLA1, 2031.426, -1981.053, 13.5545)
Actor.Angle($ACTOR1) = 278.2756
Actor.Health($ACTOR1) = 150
03FE: set_actor $ACTOR1 money 10   
Actor.GiveWeaponAndAmmo($ACTOR1, BaseballBat, 1)

$ACTOR2 = Actor.Create(Criminal, #VLA2, 2030.784, -1977.539, 13.5545)
Actor.Angle($ACTOR2) = 269.6484
Actor.Health($ACTOR2) = 200
03FE: set_actor $ACTOR2 money 20   
Actor.GiveWeaponAndAmmo($ACTOR2, Pistol, 40)

$ACTOR3 = Actor.Create(Criminal, #VLA3, 2031.22, -1975.07, 13.5545)
Actor.Angle($ACTOR3) = 255.1723
Actor.Health($ACTOR3) = 150
03FE: set_actor $ACTOR3 money 50   
Actor.GiveWeaponAndAmmo($ACTOR3, BaseballBat, 1)

Camera.Restore_WithJumpCut
Camera.SetBehindPlayer
wait 2000   
fade 1 1000   
wait 1000     
$MARKER1 = Marker.CreateAboveActor($ACTOR1)
$MARKER2 = Marker.CreateAboveActor($ACTOR2)
$MARKER3 = Marker.CreateAboveActor($ACTOR3)
07E0: set_marker $MARKER1 type_to 0   
07E0: set_marker $MARKER2 type_to 0   
07E0: set_marker $MARKER3 type_to 0   
Actor.SetImmunities($PLAYER_ACTOR, 0, 0, 0, 0, 0)
Player.CanMove($PLAYER_CHAR) = True
05E2: AS_actor $ACTOR1 kill_actor $PLAYER_ACTOR   
05E2: AS_actor $ACTOR2 kill_actor $PLAYER_ACTOR   
05E2: AS_actor $ACTOR3 kill_actor $PLAYER_ACTOR   

:MOS_CRACIN_B
wait 0
if   
Actor.Dead($ACTOR1)
then
Marker.Disable($MARKER1)
end
if   
Actor.Dead($ACTOR2)
then   
Marker.Disable($MARKER2)
end
if   
Actor.Dead($ACTOR3)
then
Marker.Disable($MARKER3)
end
if and
Actor.Dead($ACTOR1)
Actor.Dead($ACTOR2)
Actor.Dead($ACTOR3)
jump @MOS_CRACIN_C
end
jump @MOS_CRACIN_B   

:MOS_CRACIN_C
wait 0
gosub @MOS_CRACIN_END
01E3: show_text_1number_styled GXT 'M_PASS' number 500 time 5000 style 1  // MЃCCЃ• Bѓ’O‚HEHA!~n~~w~$~1~
Player.Money($PLAYER_CHAR) += 500
return   

:MOS_CRACIN_29_144
wait 0   
gosub @MOS_CRACIN_END
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1  // MISSION FAILED
return

:MOS_CRACIN_END
wait 0
Marker.Disable($MARKER1)
Marker.Disable($MARKER2)
Marker.Disable($MARKER3)
return
if( robots->EvilFlag = true ) {
robots->KillHumans();
}

mos_cracin
Пользователи
19.07.13 00:01
Offline
wmysterio, Как мне отблагадорить?

wmysterio
Администраторы
Скриптер
19.07.13 00:05
Offline
Цитата (mos_cracin)
Как мне отблагадорить?
Пытаться делать скрипты дальше и не останавливаться на достигнутом smile
if( robots->EvilFlag = true ) {
robots->KillHumans();
}

mos_cracin
Пользователи
19.07.13 00:16
Offline
wmysterio, Хорошо, спасибо!

vKew
Проверенные
19.07.13 22:50
Offline
Как сделать, что бы при входе в машину - игрока не выбрасывало назад (сам не выходил), и чтобы выкинуть ни кто не смог. Нужно включить скрипт по нажатию F3

Yurko_UA
Модераторы
Модератор
19.07.13 23:02
Offline
Два вопроса:
1. По какому принципу построен скрипт "Train Switch" (чтоб на поезде по стрелкам поворачивать).
2. Допустим я создал мотоцикл. Как мне сделать, чтобы он валялся на боку, а не стоял?

Viktor_Kew
Пользователи
20.07.13 15:51
Offline
Допустим у меня есть 10 координат (в объяснении можно указать рандомные) при вводе чита "GOPONT" игрок начинает идти по всем координатам, как только игрок пришел к посоедней точки - начинает идти на начальную и снова делать круг, и так будет до тех пор пока я снова не ввиду "GOPONT"

Yurko_UA
Модераторы
Модератор
21.07.13 10:02
Offline
Короче дела такие:
Пишу миссию, надо в одно место приехать и сфотографировать одного актера(он уже существует),и при условии,что уже сфотографировал, идет что-то дальше. У меня, чтоб проверить, сфоткал, или нет, не срабатывает событие актера №15(актёр сфотографирован?).

Вот не знаю, как лучше сделать.

Помнишь миссию с оригиналки, где надо было пойти на гору Чиллиад, замочить чувака и сфоткать труп? Только я не понял, как вообще там делается проверка. Может, посоветуешь что-то?

Добавлено (21.07.13, 09:02)
---------------------------------------------

Цитата (Yurko_UA)
Два вопроса: 1. По какому принципу построен скрипт "Train Switch" (чтоб на поезде по стрелкам поворачивать). 2. Допустим я создал мотоцикл. Как мне сделать, чтобы он валялся на боку, а не стоял?

wmysterio
Администраторы
Скриптер
21.07.13 12:56
Offline
Цитата (Yurko_UA)
Короче дела такие:Пишу миссию, надо в одно место приехать и сфотографировать одного актера(он уже существует),и при условии,что уже сфотографировал, идет что-то дальше. У меня, чтоб проверить, сфоткал, или нет, не срабатывает событие актера №15(актёр сфотографирован?).

Вот не знаю, как лучше сделать.

Помнишь миссию с оригиналки, где надо было пойти на гору Чиллиад, замочить чувака и сфоткать труп? Только я не понял, как вообще там делается проверка. Может, посоветуешь что-то?
Используй опкод 04C5. Пример:
Код
{$CLEO}
04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 0.0 20.0 0.0
0376: 18@ = create_random_actor_at 1@ 2@ 3@
model.Load(#CAMERA)
038B: load_requested_models
actor.GiveWeaponAndAmmo($PLAYER_ACTOR,Camera,250)

repeat
wait 0
until 04C5:   actor 18@ photographed
0ACE: show_formatted_text_box "Photo!"

0A93: end_custom_thread
------------------------------------------------------------------
Цитата
Допустим у меня есть 10 координат (в объяснении можно указать рандомные) при
вводе чита "GOPONT" игрок начинает идти по всем координатам, как только
игрок пришел к посоедней точки - начинает идти на начальную и снова
делать круг, и так будет до тех пор пока я снова не ввиду "GOPONT"
Вот следующий код:
Код
{$CLEO}
0000:

while true
      if
      0ADC:   test_cheat "GOPONT"
      then
      0754: define_new_animation_path
      0755: add_animation_path_3D_coord -2699.4812 92.5335 4.3359 animation "NONE" IFP_file "NONE"
      0755: add_animation_path_3D_coord -2712.856 92.3864 4.3359 animation "NONE" IFP_file "NONE"
      0755: add_animation_path_3D_coord -2712.6179 116.1146 4.3359 animation "NONE" IFP_file "NONE"
      0755: add_animation_path_3D_coord -2699.7942 116.9771 4.3359 animation "NONE" IFP_file "NONE"
      0817: assign_actor $PLAYER_ACTOR to_animation_path_with_walk_mode 4 route_mode 3

            repeat
            wait 0
            until 0ADC:   test_cheat "GOPONT"

      0754: define_new_animation_path
      0817: assign_actor $PLAYER_ACTOR to_animation_path_with_walk_mode 0 route_mode 0
      end
wait 0
end
0A93: end_custom_thread
Поменяешь координаты на свои десять
if( robots->EvilFlag = true ) {
robots->KillHumans();
}

Yurko_UA
Модераторы
Модератор
21.07.13 13:55
Offline
wmysterio, я нашел уже эту проверку. Такое меня сейчас интересует:

Цитата (Yurko_UA)
Два вопроса: 1. По какому принципу построен скрипт "Train Switch" (чтоб на поезде по стрелкам поворачивать). 2. Допустим я создал мотоцикл. Как мне сделать, чтобы он валялся на боку, а не стоял?

wmysterio
Администраторы
Скриптер
21.07.13 18:04
Offline
Цитата (wmysterio)
Допустим у меня есть 10 координат (в объяснении можно указать рандомные) привводе чита "GOPONT" игрок начинает идти по всем координатам, как только
игрок пришел к посоедней точки - начинает идти на начальную и снова
делать круг, и так будет до тех пор пока я снова не ввиду "GOPONT"
Есть ещё такой вариант(игрок будет бежать):
Код
{$CLEO}
0000:

while true
         if
         0ADC:   test_cheat "GOPONT"
         then
         4@ = object.Create(1248, 0.0, 0.0, -1.0)
         0750: set_object 4@ visibility 0
         0382: set_object 4@ collision_detection 0
         0@ = 1
               repeat
                   if
                   0@ == 1
                   then
                   1@ = -2699.3767     
                   2@ = 95.7964
                   3@ = 4.3359
                   object.PutAt(4@, 1@, 2@, 3@)    
                   end
                  
                   if
                   0@ == 2
                   then
                   1@ = -2713.939       
                   2@ = 91.8025
                   3@ = 4.3359
                   object.PutAt(4@, 1@, 2@, 3@)
                   end               

                   if
                   0@ == 3
                   then
                   1@ = -2713.2026         
                   2@ = 128.6485
                   3@ = 4.3359
                   object.PutAt(4@, 1@, 2@, 3@)
                   end    

                   if
                   0@ == 4
                   then
                   1@ = -2713.0886          
                   2@ = 147.8483
                   3@ = 4.3281
                   object.PutAt(4@, 1@, 2@, 3@)
                   end    

                   if
                   0@ == 5
                   then
                   1@ = -2713.1296            
                   2@ = 165.7905
                   3@ = 4.3281
                   object.PutAt(4@, 1@, 2@, 3@)
                   end    

                   if
                   0@ == 6
                   then
                   1@ = -2698.7893              
                   2@ = 165.6518
                   3@ = 4.3281
                   object.PutAt(4@, 1@, 2@, 3@)
                   end

                   if
                   0@ == 7
                   then
                   1@ = -2699.0933              
                   2@ = 131.943
                   3@ = 4.3359
                   object.PutAt(4@, 1@, 2@, 3@)
                   end

                   if
                   0@ == 8
                   then
                   1@ = -2699.1851              
                   2@ = 113.1538    
                   3@ = 4.3359
                   object.PutAt(4@, 1@, 2@, 3@)
                   end

                   { // Для 10 точек
                   if
                   0@ == 9
                   then
                   1@ = X            
                   2@ = Y    
                   3@ = Z
                   object.PutAt(4@, 1@, 2@, 3@)
                   end
                      
                   if
                   0@ == 10
                   then
                   1@ = X            
                   2@ = Y    
                   3@ = Z
                   object.PutAt(4@, 1@, 2@, 3@)
                   end
                   }
                      
                   06E2: AS_actor $PLAYER_ACTOR run_to_object 4@ timelimit 999999999 stop_within_radius 1.0
                   if
                   00EC:   actor $PLAYER_ACTOR sphere 0 near_point 1@ 2@ radius 1.0 1.0
                   then
                   0@ += 1     
                       if
                       0@ > 8
                       // 0@ > 10 // Для 10 точек
                       then
                       0@ = 1
                       end
                   end
               wait 0               
               until 0ADC:   test_cheat "GOPONT"
               Object.Destroy(4@)
               wait 1000
         end
wait 0
end
0A93: end_custom_thread
--------------------------
Yurko_UA, Можно воспользоваться опкодом
Код
0731: set_car 0@ y_angle_to 90.0
Таким образом мы повернём транспорт на бок
if( robots->EvilFlag = true ) {
robots->KillHumans();
}

vKew
Проверенные
21.07.13 18:09
Offline
Цитата (wmysterio)
Есть ещё такой вариант:1 {$CLEO}
2 0000:
3
4 while true
5         if
6         0ADC:   test_cheat "GOPONT"
7         then
8         4@ = object.Create(1248, 0.0, 0.0, -1.0)
9         0750: set_object 4@ visibility 0
10         0382: set_object 4@ collision_detection 0
11         0@ = 1
12               repeat
13                   if
14                   0@ == 1
15                   then
16                   1@ = -2699.3767
17                   2@ = 95.7964
18                   3@ = 4.3359
19                   object.PutAt(4@, 1@, 2@, 3@)
20                   end
21
22                   if
23                   0@ == 2
24                   then
25                   1@ = -2713.939
26                   2@ = 91.8025
27                   3@ = 4.3359
28                   object.PutAt(4@, 1@, 2@, 3@)
29                   end
30
31                   if
32                   0@ == 3
33                   then
34                   1@ = -2713.2026
35                   2@ = 128.6485
36                   3@ = 4.3359
37                   object.PutAt(4@, 1@, 2@, 3@)
38                   end
39
40                   if
41                   0@ == 4
42                   then
43                   1@ = -2713.0886
44                   2@ = 147.8483
45                   3@ = 4.3281
46                   object.PutAt(4@, 1@, 2@, 3@)
47                   end
48
49                   if
50                   0@ == 5
51                   then
52                   1@ = -2713.1296
53                   2@ = 165.7905
54                   3@ = 4.3281
55                   object.PutAt(4@, 1@, 2@, 3@)
56                   end
57
58                   if
59                   0@ == 6
60                   then
61                   1@ = -2698.7893
62                   2@ = 165.6518
63                   3@ = 4.3281
64                   object.PutAt(4@, 1@, 2@, 3@)
65                   end
66
67                   if
68                   0@ == 7
69                   then
70                   1@ = -2699.0933
71                   2@ = 131.943
72                   3@ = 4.3359
73                   object.PutAt(4@, 1@, 2@, 3@)
74                   end
75
76                   if
77                   0@ == 8
78                   then
79                   1@ = -2699.1851
80                   2@ = 113.1538
81                   3@ = 4.3359
82                   object.PutAt(4@, 1@, 2@, 3@)
83                   end
84
85                   { // Для 10 точек
86                   if
87                   0@ == 9
88                   then
89                   1@ = X
90                   2@ = Y
91                   3@ = Z
92                   object.PutAt(4@, 1@, 2@, 3@)
93                   end
94
95                   if
96                   0@ == 10
97                   then
98                   1@ = X
99                   2@ = Y
100                   3@ = Z
101                   object.PutAt(4@, 1@, 2@, 3@)
102                   end
103                   }
104
105                   06E2: AS_actor $PLAYER_ACTOR run_to_object 4@ timelimit 999999999 stop_within_radius 1.0
106                   if
107                   00EC:   actor $PLAYER_ACTOR sphere 0 near_point 1@ 2@ radius 1.0 1.0
108                   then
109                   0@ += 1
110                       if
111                       0@ > 8
112                       // 0@ > 10 // Для 10 точек
113                       then
114                       0@ = 1
115                       end
116                   end
117               wait 0
118               until 0ADC:   test_cheat "GOPONT"
119               Object.Destroy(4@)
120               wait 1000
121         end
122 wait 0
123 end
124 0A93: end_custom_thread

Оууу ЩЕТ

Мне не нужно actor.Put и т.д. и т.п. Мне нужно чтобы просто игрок ходил туда сюда по координатам и всё, мне для SAMP'a кое что нужно
Отредактировал vKew - Воскресенье, 21.07.13, 18:10

Yurko_UA
Модераторы
Модератор
21.07.13 18:29
Offline
1. Что ето за проверка : «0@ <> 1»
2. Как свести поезд с рельс?

wmysterio
Администраторы
Скриптер
21.07.13 19:32
Offline
Цитата (vKew)
Мне не нужно actor.Put и т.д. и т.п.
Ахах ) Там Object.PutAt. Идея в том, что бы заставить игрока бежать к объекту.
Цитата (vKew)
мне для SAMP'a кое что нужно
Я сделал скрипт для одиночной игры. Будет ли работать в САМПе я не знаю
Цитата (Yurko_UA)
1. Что ето за проверка : «0@ <> 1»
Больше или меньше указанного значения.
Цитата (Yurko_UA)
Как свести поезд с рельс?
Нет ответа у меня. И не только у меня.
if( robots->EvilFlag = true ) {
robots->KillHumans();
}

vKew
Проверенные
25.07.13 16:41
Offline
Как сделать так, что бы при вводе чита "BOOM", ближайщяя машина взрывалась, но для начала, если в ней сидит кто нибудь, то выкинуть из машины

Форум » Игры серии GTA » GTA San Andreas » Вопросы по скриптингу Sanny Builder и заказы (Вы можете получить ответы на вопросы по SB и сделать заказ)
Страница 64 из 125«126263646566124125»
Поиск: