You are not logged in.
Еще раз помощь нужна, пишу вот так: 4@ = Actor.Create(24,#SFR1,-2443.4973, 501.8636, 30.0928). При этом создается два актера сразу.
Offline
Еще раз помощь нужна, пишу вот так: 4@ = Actor.Create(24,#SFR1,-2443.4973, 501.8636, 30.0928). При этом создается два актера сразу.
Сам по себе он не создаёт несколько актёров. Скорее всего дубликат скрипта есть. По коду легче будет понять где что пошло не так. Покажите этот код, будем разгребать проблему 
Last edited by wmysterio (13-06-2018 17:26)
Offline
Kim wrote:Еще раз помощь нужна, пишу вот так: 4@ = Actor.Create(24,#SFR1,-2443.4973, 501.8636, 30.0928). При этом создается два актера сразу.
Сам по себе он не создаёт несколько актёров. Скорее всего дубликат скрипта есть. По коду легче будет понять где что пошло не так. Покажите этот код, будем разгребать проблему
А, все! Я нашел ошибку, спасибо за помощь!
Offline
Недавно появился такой вопрос: как же создавать актеров, как, например, в миссии полицейского, чтобы они создавались близко к игроку, при этом создавались всегда на дорогах?
Last edited by Kim (22-06-2018 16:11)
Offline
Люди! У меня появился вопрос. Я использую опкод 0D7E от DK22Pac, для рисования индикатора. И в этом опкоде есть параметры at_cornerA и at_cornerB. Я в at_cornerB вписал значения 512.0 и 256.0. Насколько я понял, cornerB отвечает за ширину и высоту рисования текстуры. При изменении at_cornerA текстура изменяется по размерам и прочему, насколько я понял. Вопрос: Как текстуру рисовать в центре используя опкод рисования от DK22Pac?
Offline
rect_x1 = center_x - width/2 rect_x2 = center_x + width/2 rect_y1 = center_y - height/2 rect_y2 = center_y + height/2
Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv
Offline
rect_x1 = center_x - width/2 rect_x2 = center_x + width/2 rect_y1 = center_y - height/2 rect_y2 = center_y + height/2
Спасибо! Но я сообразить не могу, как рисовать текстуру в центре экрана?
Offline
Всем здравия желаю, прошу подсказать и надоумить, сделал скрипт, но он не работает, хотя логически в нем все правильно, но я допускаю где-то ошибку, оно и понятно, я далек от программирования, вот и остается только логический метод.
Скрипт создает маркеры в гаражах перекраски по всему штату, и заехав на машине в маркер/гараж и если у тебя копы на хвосте, то с игрока снимут деньжат за снятие розыска, чем больше розыск, тем больше сумма. Но не могу понять что не так, маркеры есть, а деньги не снимают, вот собственно скрипт:
{$CLEO .cs}
//-------------MAIN---------------
0000: NOP
thread 'pas'
:pas_2
wait 100
03BC: 0@ = create_sphere_at 2067.9 -1831.3 13.5 radius 7.0
03BC: 1@ = create_sphere_at 1025.0 -1026.4 32.1 radius 7.0
03BC: 2@ = create_sphere_at 487.6 -1738.1 11.1 radius 7.0
03BC: 3@ = create_sphere_at -1904.3 280.7 41.0 radius 7.0
03BC: 4@ = create_sphere_at -2425.6 1025.3 50.3 radius 7.0
03BC: 5@ = create_sphere_at 1971.7 2162.4 11.0 radius 7.0
03BC: 6@ = create_sphere_at -100.0 1114.2 19.7 radius 7.0
03BC: 7@ = create_sphere_at -1420.6 2587.9 55.8 radius 7.0
03BC: 8@ = create_sphere_at 720.1 -460.6 16.3 radius 7.0
:pas_3
0001: wait 0 ms
00D6: if
0256: player $PLAYER_CHAR defined
//010F: player $PLAYER_CHAR wanted_level > 0
else_jump @pas_3
01C0: 32@ = player $PLAYER_CHAR wanted_level
0002: jump @pas_01
:pas_01
0001: wait 0 ms
if
0039: 32@ == 1
else_jump @pas_02
jump @pas_1z1
:pas_02
0001: wait 0 ms
if
0039: 32@ == 2
else_jump @pas_03
jump @pas_1z2
:pas_03
0001: wait 0 ms
if
0039: 32@ == 3
else_jump @pas_04
jump @pas_1z3
:pas_04
0001: wait 0 ms
if
0039: 32@ == 4
else_jump @pas_05
jump @pas_1z4
:pas_05
0001: wait 0 ms
if
0039: 32@ == 5
else_jump @pas_06
jump @pas_1z5
:pas_06
0001: wait 0 ms
if
0039: 32@ == 6
else_jump @pas_04
jump @pas_1z6
:pas_1z1
wait 0
00D6: if
0100: actor $PLAYER_ACTOR in_sphere 2067.9 -1831.3 13.5 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_4z1
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -1000
0002: jump @pas_3
:pas_1z2
wait 0
00D6: if
0100: actor $PLAYER_ACTOR in_sphere 2067.9 -1831.3 13.5 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_4z2
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -2000
0002: jump @pas_3
:pas_1z3
wait 0
00D6: if
0100: actor $PLAYER_ACTOR in_sphere 2067.9 -1831.3 13.5 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_4z3
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -3000
0002: jump @pas_3
:pas_1z4
wait 0
00D6: if
0100: actor $PLAYER_ACTOR in_sphere 2067.9 -1831.3 13.5 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_4z4
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -4000
0002: jump @pas_3
:pas_1z5
wait 0
00D6: if
0100: actor $PLAYER_ACTOR in_sphere 2067.9 -1831.3 13.5 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_4z5
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -5000
0002: jump @pas_3
:pas_1z6
wait 0
00D6: if
0100: actor $PLAYER_ACTOR in_sphere 2067.9 -1831.3 13.5 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_4z6
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -6000
0002: jump @pas_3
:pas_4z1
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 1025.0 -1026.4 32.1 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_5z1
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -1000
0002: jump @pas_3
:pas_4z2
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 1025.0 -1026.4 32.1 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_5z2
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -2000
0002: jump @pas_3
:pas_4z3
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 1025.0 -1026.4 32.1 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_5z3
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -3000
0002: jump @pas_3
:pas_4z4
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 1025.0 -1026.4 32.1 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_5z4
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -4000
0002: jump @pas_3
:pas_4z5
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 1025.0 -1026.4 32.1 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_5z5
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -5000
0002: jump @pas_3
:pas_4z6
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 1025.0 -1026.4 32.1 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_5z6
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -6000
0002: jump @pas_3
:pas_5z1
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 487.6 -1738.1 11.1 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_6z1
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -1000
0002: jump @pas_3
:pas_5z2
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 487.6 -1738.1 11.1 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_6z2
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -2000
0002: jump @pas_3
:pas_5z3
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 487.6 -1738.1 11.1 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_6z3
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -3000
0002: jump @pas_3
:pas_5z4
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 487.6 -1738.1 11.1 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_6z4
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -4000
0002: jump @pas_3
:pas_5z5
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 487.6 -1738.1 11.1 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_6z5
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -5000
0002: jump @pas_3
:pas_5z6
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 487.6 -1738.1 11.1 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_6z6
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -6000
0002: jump @pas_3
:pas_6z1
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -1904.3 280.7 41.0 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_7z1
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -1000
0002: jump @pas_3
:pas_6z2
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -1904.3 280.7 41.0 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_7z2
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -2000
0002: jump @pas_3
:pas_6z3
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -1904.3 280.7 41.0 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_7z3
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -3000
0002: jump @pas_3
:pas_6z4
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -1904.3 280.7 41.0 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_7z4
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -4000
0002: jump @pas_3
:pas_6z5
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -1904.3 280.7 41.0 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_7z5
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -5000
0002: jump @pas_3
:pas_6z6
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -1904.3 280.7 41.0 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_7z6
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -6000
0002: jump @pas_3
:pas_7z1
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -2425.6 1025.3 50.3 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_8z1
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -1000
0002: jump @pas_3
:pas_7z2
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -2425.6 1025.3 50.3 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_8z2
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -2000
0002: jump @pas_3
:pas_7z3
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -2425.6 1025.3 50.3 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_8z3
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -3000
0002: jump @pas_3
:pas_7z4
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -2425.6 1025.3 50.3 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_8z4
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -4000
0002: jump @pas_3
:pas_7z5
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -2425.6 1025.3 50.3 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_8z5
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -5000
0002: jump @pas_3
:pas_7z6
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -2425.6 1025.3 50.3 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_8z6
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -6000
0002: jump @pas_3
:pas_8z1
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 1971.7 2162.4 11.0 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_9z1
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -1000
0002: jump @pas_3
:pas_8z2
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 1971.7 2162.4 11.0 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_9z2
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -2000
0002: jump @pas_3
:pas_8z3
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 1971.7 2162.4 11.0 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_9z3
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -3000
0002: jump @pas_3
:pas_8z4
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 1971.7 2162.4 11.0 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_9z4
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -4000
0002: jump @pas_3
:pas_8z5
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 1971.7 2162.4 11.0 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_9z5
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -5000
0002: jump @pas_3
:pas_8z6
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 1971.7 2162.4 11.0 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_9z6
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -6000
0002: jump @pas_3
:pas_9z1
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -100.0 1114.2 19.7 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_10z1
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -1000
0002: jump @pas_3
:pas_9z2
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -100.0 1114.2 19.7 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_10z2
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -2000
0002: jump @pas_3
:pas_9z3
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -100.0 1114.2 19.7 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_10z3
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -3000
0002: jump @pas_3
:pas_9z4
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -100.0 1114.2 19.7 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_10z4
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -4000
0002: jump @pas_3
:pas_9z5
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -100.0 1114.2 19.7 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_10z5
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -5000
0002: jump @pas_3
:pas_9z6
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -100.0 1114.2 19.7 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_10z6
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -6000
0002: jump @pas_3
:pas_10z1
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -1420.6 2587.9 55.8 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_11z1
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -1000
0002: jump @pas_3
:pas_10z2
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -1420.6 2587.9 55.8 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_11z2
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -2000
0002: jump @pas_3
:pas_10z3
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -1420.6 2587.9 55.8 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_11z3
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -3000
0002: jump @pas_3
:pas_10z4
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -1420.6 2587.9 55.8 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_11z4
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -4000
0002: jump @pas_3
:pas_10z5
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -1420.6 2587.9 55.8 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_11z5
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -5000
0002: jump @pas_3
:pas_10z6
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere -1420.6 2587.9 55.8 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_11z6
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -6000
0002: jump @pas_3
:pas_11z1
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 720.1 -460.6 16.3 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_1z1
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -1000
0002: jump @pas_3
:pas_11z2
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 720.1 -460.6 16.3 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_1z2
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -2000
0002: jump @pas_3
:pas_11z3
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 720.1 -460.6 16.3 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_1z3
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -3000
0002: jump @pas_3
:pas_11z4
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 720.1 -460.6 16.3 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_1z4
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -4000
0002: jump @pas_3
:pas_11z5
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 720.1 -460.6 16.3 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_1z5
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -5000
0002: jump @pas_3
:pas_11z6
wait 0
00D6: if
//0039: 32@ == 1
0100: actor $PLAYER_ACTOR in_sphere 720.1 -460.6 16.3 radius 7.0 7.0 7.0 sphere 1 in_car
else_jump @pas_1z6
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += -6000
0002: jump @pas_3
Offline
хотя логически в нем все правильно
Это тот случай, когда знание побеждает логику. Переменная 32@ используется для таймеров и она постоянно изменяет своё значение. Классическая ошибка. Можно и так написать скрипт:
{$CLEO}
03BC: 0@ = create_sphere_at 2067.9 -1831.3 13.5 radius 7.0
03BC: 1@ = create_sphere_at 1025.0 -1026.4 32.1 radius 7.0
03BC: 2@ = create_sphere_at 487.6 -1738.1 11.1 radius 7.0
03BC: 3@ = create_sphere_at -1904.3 280.7 41.0 radius 7.0
03BC: 4@ = create_sphere_at -2425.6 1025.3 50.3 radius 7.0
03BC: 5@ = create_sphere_at 1971.7 2162.4 11.0 radius 7.0
03BC: 6@ = create_sphere_at -100.0 1114.2 19.7 radius 7.0
03BC: 7@ = create_sphere_at -1420.6 2587.9 55.8 radius 7.0
03BC: 8@ = create_sphere_at 720.1 -460.6 16.3 radius 7.0
while true
wait 250
if
8256: not player $PLAYER_CHAR defined
then
continue
end
01C0: 10@ = player $PLAYER_CHAR wanted_level
if
10@ == 0
then
continue
end
if or
0100: actor $PLAYER_ACTOR in_sphere 2067.9 -1831.3 13.5 radius 7.0 7.0 7.0 sphere 1 in_car
0100: actor $PLAYER_ACTOR in_sphere 1025.0 -1026.4 32.1 radius 7.0 7.0 7.0 sphere 1 in_car
0100: actor $PLAYER_ACTOR in_sphere 487.6 -1738.1 11.1 radius 7.0 7.0 7.0 sphere 1 in_car
0100: actor $PLAYER_ACTOR in_sphere -1904.3 280.7 41.0 radius 7.0 7.0 7.0 sphere 1 in_car
0100: actor $PLAYER_ACTOR in_sphere -2425.6 1025.3 50.3 radius 7.0 7.0 7.0 sphere 1 in_car
then
gosub @WANTED_CLEAR
end
if or
0100: actor $PLAYER_ACTOR in_sphere 1971.7 2162.4 11.0 radius 7.0 7.0 7.0 sphere 1 in_car
0100: actor $PLAYER_ACTOR in_sphere -100.0 1114.2 19.7 radius 7.0 7.0 7.0 sphere 1 in_car
0100: actor $PLAYER_ACTOR in_sphere -1420.6 2587.9 55.8 radius 7.0 7.0 7.0 sphere 1 in_car
0100: actor $PLAYER_ACTOR in_sphere 720.1 -460.6 16.3 radius 7.0 7.0 7.0 sphere 1 in_car
then
gosub @WANTED_CLEAR
end
/* пишем другие проверки */
end
:WANTED_CLEAR
10@ *= 1000
0085: 9@ = 10@ // (int)
9@ -= 1
if
010A: player $PLAYER_CHAR money > 9@
then
10@ *= -1
0110: clear_player $PLAYER_CHAR wanted_level
0109: player $PLAYER_CHAR money += 10@
end
return
Last edited by wmysterio (19-08-2018 13:44)
Offline
Wmysterio, спасибо за конкретный ответ!!!
Абсолютно с тобой согласен, знание это сила, а незнание напрасная трата сил и времени. С твоей помощью получился рабочий скрипт, теперь все как надо:
{$CLEO .cs}
//-------------MAIN---------------
03BC: 0@ = create_sphere_at 2067.9 -1831.3 13.5 radius 7.0
03BC: 1@ = create_sphere_at 1025.0 -1026.4 32.1 radius 7.0
03BC: 2@ = create_sphere_at 487.6 -1738.1 11.1 radius 7.0
03BC: 3@ = create_sphere_at -1904.3 280.7 41.0 radius 7.0
03BC: 4@ = create_sphere_at -2425.6 1025.3 50.3 radius 7.0
03BC: 5@ = create_sphere_at 1971.7 2162.4 11.0 radius 7.0
03BC: 6@ = create_sphere_at -100.0 1114.2 19.7 radius 7.0
03BC: 7@ = create_sphere_at -1420.6 2587.9 55.8 radius 7.0
03BC: 8@ = create_sphere_at 720.1 -460.6 16.3 radius 7.0
:NONAME_225
wait 250
if
Player.Defined($PLAYER_CHAR)
jf @NONAME_225
jump @NONAME_253
:NONAME_253
10@ = Player.WantedLevel($PLAYER_CHAR)
if
10@ == 0
jf @NONAME_286
jump @NONAME_655
:NONAME_286
if or
0100: actor $PLAYER_ACTOR in_sphere 2067.9 -1831.3 13.5 radius 7.0 7.0 7.0 sphere 1 in_car
0100: actor $PLAYER_ACTOR in_sphere 1025.0 -1026.4 32.1 radius 7.0 7.0 7.0 sphere 1 in_car
0100: actor $PLAYER_ACTOR in_sphere 487.6 -1738.1 11.1 radius 7.0 7.0 7.0 sphere 1 in_car
0100: actor $PLAYER_ACTOR in_sphere -1904.3 280.7 41.0 radius 7.0 7.0 7.0 sphere 1 in_car
0100: actor $PLAYER_ACTOR in_sphere -2425.6 1025.3 50.3 radius 7.0 7.0 7.0 sphere 1 in_car
jf @NONAME_489
gosub @NONAME_662
:NONAME_489
if or
0100: actor $PLAYER_ACTOR in_sphere 1971.7 2162.4 11.0 radius 7.0 7.0 7.0 sphere 1 in_car
0100: actor $PLAYER_ACTOR in_sphere -100.0 1114.2 19.7 radius 7.0 7.0 7.0 sphere 1 in_car
0100: actor $PLAYER_ACTOR in_sphere -1420.6 2587.9 55.8 radius 7.0 7.0 7.0 sphere 1 in_car
0100: actor $PLAYER_ACTOR in_sphere 720.1 -460.6 16.3 radius 7.0 7.0 7.0 sphere 1 in_car
jf @NONAME_655
gosub @NONAME_662
:NONAME_655
jump @NONAME_225
:NONAME_662
10@ *= 1000
//0085: 9@ = 10@ // (int)
//9@ -= 1
if
010F: player $PLAYER_CHAR wanted_level > 0
10@ *= -1
Player.ClearWantedLevel($PLAYER_CHAR)
Player.Money($PLAYER_CHAR) += 10@
jump @NONAME_225
//:NONAME_721
//return З.ы.
О, у тебя есть сайт, пойдука там пошарюсь...
Offline
С твоей помощью получился рабочий скрипт, теперь все как надо
Что немного странно, так как gosub должен обязательно заканчиваться return-ом, а у тебя там прыжок стоит.
О, у тебя есть сайт, пойдука там пошарюсь...
Шарься, там есть полно информации. Только там акцент больше на MAIN.SCM, хотя сам скриптинг там ничем не отличается от CLEO, кроме некоторых моментов.
Last edited by wmysterio (19-08-2018 20:00)
Offline
Что немного странно, так как gosub должен обязательно заканчиваться return-ом, а у тебя там прыжок стоит.
По другому выходило что-то не то, или сброшенная звезда мигала и деньги беспрерывно исчислялись или вообще ничего не происходило, я кароче помыкался, подумал что-же не так и убрал проверку денежек в кармане у игрока и прыжки переставил/вставил, после этого заработало нормально, пока не вылетело ни разу, поживем-увидим короче. Может виноваты другие скрипты, у меня стоят несколько управляющие силой розыска, принципом розыска и т.п.
Главное пока работает, если бы не ты и того бы не было 
Offline
Приветствую знатоков.
В общем решил немного сократить размер своего скрипта, в связи с чем возник вопрос, можно ли одну и ту-же машину определить сразу в 2 переменные?
Например есть проверка:
if
29@ == 0
then
0@ = Actor.CurrentCar($PLAYER_ACTOR)
29@ = Actor.CurrentCar($PLAYER_ACTOR)
end
if and
056E: car 0@ defined
056E: car 29@ defined
then
if
Actor.InCar($PLAYER_ACTOR, 0@)
then
Car.SetImmunities(0@, 0, 0, 0, 0, 0)
Car.LockInCurrentPosition(0@) = False
041E: set_radio_station 7@
Marker.Disable(28@)
Car.RemoveReferences(0@)
if
not 29@ == 0
then
Car.SetImmunities(29@, 0, 0, 0, 0, 0)
Car.LockInCurrentPosition(29@) = False
Car.RemoveReferences(29@)
end
jump @SVRSAVE_90
end
else
if
056E: car 0@ defined
then
car.destroy(0@)
Car.RemoveReferences(0@)
end
if
056E: car 29@ defined
then
car.destroy(29@)
Car.RemoveReferences(29@)
end
endТут суть, что 29@ это переменная для прицепа, и если прицеп был, но внезапно исчез, то машина из переменной 0@ уничтожается, а если прицепа не было изначально, то в обе переменных помещается машина игрока. В общем будет ли оно такое работать?
Вторая проблема с массивами. При попытке записать
0A8D: 17@(15@, 15i) = read_memory 9@ size 2 virtual_protect 0
компилятор пишет недостаточно параметров, ожидалось 4
А тут вообще игра вылетает:
15@ = 0
for 15@ = 0 to 14
if
not 17@(15@,15i) == 65535
then
06E9: load_car_component 17@(15@,15i)
31@ = 0
wait 13@
13@ += 10
if and
13@ < 200
06EA: car_component 17@(15@,15i) available
then
if
056E: car 1@ defined
then
06E7: 9@ = add_car_component 17@(15@,15i) to_car 1@
06EB: release_car_component 17@(15@,15i)
else
15@ = 14
jump @SVRSAVE_105
end
else
if
13@ < 200
then
15@ -= 1
end
end
end
end
Last edited by Svyatogor2007 (06-10-2018 14:35)
Offline
можно ли одну и ту-же машину определить сразу в 2 переменные?
Можно хоть во все доступные 
0@ = Actor.CurrentCar($PLAYER_ACTOR) 0085: 1@ = 0@ // (int) <---- переменная 1@ будет указывать на машину 0@ 0085: 2@ = 0@ // (int) <---- переменная 2@ будет указывать на машину 0@ 0085: 3@ = 0@ // (int) <---- переменная 3@ будет указывать на машину 0@ ... 0085: N = 0@ // (int) <---- переменная N будет указывать на машину 0@
Если машина 0@ была удалена, то остальные переменные будут указывать "в никуда" и будут содержать только числа.
В общем будет ли оно такое работать?
Я не знаю, как Вы это себе представляете. В SB есть опкод, которые используются для прицепов. Можно это использовать, чтобы не танцевать с бубном:
// ...
0@ = Car.Create( #LINERUN, 0.0, 0.0, 0.0 )
1@ = Car.Create( #ARTICT1, 10.0, 0.0, 0.0 )
:LOOP
wait 0
if or
856E: not car 0@ defined
856E: not car 1@ defined
then
jump @CAR_NOT_FOUND
end
if
07AB: car 0@ has_attached_trailer 1@
then
0AD1: show_formatted_text_highpriority "Trailer attached!" time 1
else
0AD1: show_formatted_text_highpriority "Trailer NOT attached!" time 1
end
jump @LOOP
:CAR_NOT_FOUND
// ...компилятор пишет недостаточно параметров, ожидалось 4
Массив неправильно написан, уберите пробелы между скобок:
17@(15@,15i)
А тут вообще игра вылетает
Пишите комментарии того, что Вы делаете )
1) Что в было в массиве до вызова цикла?
2) Компоненты действительно можно прицепить к машине? Не на все тачки можно ставить компоненты.
3) Ещё заметил, что вы изменяете порядок счётчика 15@. Этого лучше избегать - может игра зависнуть, если цикл будет слишком долго выполнятся.
Last edited by wmysterio (07-10-2018 15:01)
Offline
Спасибо, с вылетом разобрался, оказывается массив вообще ни при чем был. Касаемо счетчика, там еще таймер есть, если скрипт будет скакать на одном месте таймер заполнится и прервет цикл.
Я не знаю, как Вы это себе представляете. В SB есть опкод, которые используются для прицепов. Можно это использовать, чтобы не танцевать с бубном:
Опкод не подойдет, прицеп может быть, а может и не быть. Собственно на него изначально указывает переменная 29@, если она пуста, значит прицепа быть не должно. Впрочем пока роблему решил так:
if
056E: car 0@ defined
then
if
not 29@ == 0
then
if
856E: not car 29@ defined
then
car.destroy(0@)
Car.RemoveReferences(0@)
jump @SVRSAVE_106
end
end
if
Actor.InCar($PLAYER_ACTOR, 0@)
then
Car.SetImmunities(0@, 0, 0, 0, 0, 0)
Car.LockInCurrentPosition(0@) = False
041E: set_radio_station 7@
Marker.Disable(28@)
Car.RemoveReferences(0@)
if
not 29@ == 0
then
Car.SetImmunities(29@, 0, 0, 0, 0, 0)
Car.LockInCurrentPosition(29@) = False
Car.RemoveReferences(29@)
end
jump @SVRSAVE_90
end
else
if
not 29@ == 0
then
if
056E: car 29@ defined
then
car.destroy(29@)
Car.RemoveReferences(29@)
end
end
jump @SVRSAVE_106
end
Offline
Опкод не подойдет, прицеп может быть, а может и не быть.
В структуре транспорта есть m_pTrailer адрес +0x4C8 (size 4), по которому можно определить есть у транспорта прицеп или нет. И предыдущий адрес +0x4C4 (size 4) - это m_pTractor
Offline
Опкод не подойдет, прицеп может быть, а может и не быть.
В структуре транспорта есть m_pTrailer адрес +0x4C8 (size 4), по которому можно определить есть у транспорта прицеп или нет. И предыдущий адрес +0x4C4 (size 4) - это m_pTractor
Меня чуток не поняли видимо. Я все свое сохранение для транспорта мучаю. Тут цимес не в наличии прицепа в принципе, а в том, что бы упростить скрипт и убрать лишние строки. Там дело в том, что игра прицеп удаляет рано, гораздо раньше автомобиля игрока, поэтому приходится проверять отдельно существует ли прицеп (если он был изначально) и существует ли автомобиль (если прицепа изначально не было), хотя в целом нынешний вариант тоже удачный получился, весь скрипт на 10кб поджал и добавил чего не хватало.
Тут новый вопрос возник, как пользоваться опкодом interceptor? Весь яндекс перерыл, нигде внятной справки нет, в стандартной справке билдера тоже тишина.
0AE2: почему-то глючит если много машин захватывать, а мне порядка 30-ти штук надо как то удержать от удаления... Бида.
Offline
0AE2: почему-то глючит если много машин захватывать, а мне порядка 30-ти штук надо как то удержать от удаления... Бида.
Дело не в количестве. Возможно код неправильно написан.
Offline
Там дело в том, что игра прицеп удаляет рано, гораздо раньше автомобиля игрока
Если Вы думаете, что
0@ = Actor.CurrentCar($PLAYER_ACTOR) 29@ = Actor.CurrentCar($PLAYER_ACTOR)
захватывает прицеп и машину игрока, то это не так. Никакого прицепа там не запишется, а будет только машина игрока. Следовательно все проверки и действия с 29@ можно попросту убрать и использовать только 0@. Чем Вам не стирание лишних строк. Я не видел весь код, но тот что указан здесь можно сократить.
Меня чуток не поняли видимо
Я лично вообще не понял что нужно сделать
Слишком мало подробностей, чтобы понять.
весь скрипт на 10кб поджал
Это ради чего? У меня мини-игра на 700+ строчек занимала 22 Кб. Не так у ж много. На быстродействие как-то не оказывает давления при грамотном подходе. Если это Cleo-скрипты, то можете добавить директиву {$NOSOURCE}, тогда ещё меньше получится. Для Cleo-миссий он вообще бесценен.
Offline
0AE2: почему-то глючит если много машин захватывать, а мне порядка 30-ти штук надо как то удержать от удаления... Бида.
Дело не в количестве. Возможно код неправильно написан.
Да, переписал заново, теперь работает. Только с рандомом проблема:
... 00BF: 0@ = current_time_hours, 2@ = current_time_minutes if and 0@ == 23 0@ == 0 0@ == 1 0@ == 2 0@ == 3 0@ == 4 0@ == 5 then 0@ = 60 else 0@ = 100 end // ... // 0209: 10@ = random_int_in_ranges 0 0@ // ... // if and 10@ < 55 8AE2: not 2@ = random_vehicle_near_point 2162.47 -1807.2 13.1119 in_radius 3.0 find_next 0 pass_wrecked 1 then 03C5: create_random_car_for_carpark 2162.47 -1807.2 12.3119 z_angle 180.723 end 2@ = 0
И днем и ночью почти ничего не меняется, т.е. сам рандом работает, но машин в среднем одинаково появляется.
Кстати в вашем скрипте не весь тюнинг сохраняется, и еще вы же мне сами писали, проверяй наличие авто после wait, а у вас:
:AVTO1_1024 wait 0 06EA: car_component 25@ available else_jump @AVTO1_1024 06E7: 6@ = add_car_component 25@ to_car 9@ 06EB: release_car_component 25@ jump @AVTO1_1371
, но у меня тоже бида, не могу найти указатель на второй номер, сохраняется только первый.
Last edited by Svyatogor2007 (09-10-2018 21:39)
Offline
Только с рандомом проблема
В опкодах случайного выбора значения из какого-либо диапазона, правое значение в диапазон не входит.
И ещё вот эту строчку
10@ < 55
попробуй записать так
001B: 55 > 10@
Кстати в вашем скрипте не весь тюнинг сохраняется
Не весь. На все детали не хватило переменных.
и еще вы же мне сами писали, проверяй наличие авто после wait, а у вас:
Ошибки в старых скриптах возможны. Я тоже когда-то учился, как ты сейчас.
Проверять надо.
Выше ты писал про сокращение размера скрипта. Размер скрипта не столь важен. Важен хорошо читаемый правильный оптимизированный код скрипта. Вот эти строчки можно сократить (P.S. тем более, что это условие всегда будет ложным)
if and 0@ == 23 0@ == 0 0@ == 1 0@ == 2 0@ == 3 0@ == 4 0@ == 5
до такого варианта
if or
0@ == 23
8019: not 0@ > 5а если взять отсчёт не от 23, а от 24 т.е. 0, то ещё короче
if 8019: not 0@ > 5
не могу найти указатель на второй номер, сохраняется только первый.
Какой номер ты имеешь ввиду?
Last edited by kenking (10-10-2018 10:48)
Offline
Приветствую, программисты!
Отрадно видеть что SA еще модифицируют, игра еще жива! Наверно это потому-что 5 часть не стала эволюционным венцом всей серии, да много нового, современного, но нету штата Сан Андреас, есть всего один город и его пригород, а SA это целый штат, 3 города и их пригороды!
Да, у SA карта меньше, но снаружи,а внутри она больше
Отвлекся я, а порог околачиваю с таким вопросом или просьбой, раньше был на руках скрипт одного умельца, который отключил агрессивное поведение водил, ну когда они начинают бешено таранить машину игрока, мстя за царапину на крыле
Помню что скрипт был простой и короткий, что-то с адресами памяти, найти в сети не получается, как испарился, может подскажет хороший человек, что это за скрипт, или адреса памяти?
Offline
не могу найти указатель на второй номер, сохраняется только первый.
Какой номер ты имеешь ввиду?
Номер машины имеется ввиду. Один есть, а второй рандомный от игры.
Offline
Добрый день,
подскажите пожалуйста, в чем отличия опкодов:
011C: actor $PLAYER_ACTOR clear_objective 009F: set_actor $PLAYER_ACTOR idle 0192: set_actor $PLAYER_ACTOR objective_to_stand_still
В игре все трое только прерывают действие педа, и больше никакого эффекта
VC
Last edited by trashmas (12-10-2018 17:05)
Offline
trashmas, я в опкодах не шарю, но чисто логически:
1. это когда нужно обязать актера ничего не делать, "типа заморозить".
2. idle вроде как анимация бездействия, следовательно этим назначается актеру.
3. это как понимаю заставить актера остановиться( если до этого он топал ). Ну или заставляет стоять на месте но "курить можно"
В любом случае инфа по этим опкодам есть здесь: https://gtagmodding.com/opcode-database/opcode/0192/
Last edited by 4lifeGTA (12-10-2018 20:55)
Offline