You are not logged in.
0209: 0@ = random_int_in_ranges A B
возвращает число в интервале A..B-1
от -100 до 0
0209: 0@ = random_int_in_ranges -100 1
@GTASA -
Как дать проверку на имение какого либо оружия?
0491
Offline
А радар?
Нашел у себя в архиве скрипт, чтобы стрелять можно было от водительского места типо. Пытаюсь его изменить, чтобы если у игрока есть определенные оружия, он ими палил. Но че за фигня? Если нет Ака, почему он вдруг палит из него? И как можно сделать прокрутку оружий колесиком мыши, если имеется ак и дигл?
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
{$VERSION 3.1.0027}
{$CLEO .cs}
//-------------MAIN---------------
wait 10
:1
wait 0
if
Player.Defined($PLAYER_CHAR)
else_jump @1
if //одиночное условие
0449: actor $PLAYER_ACTOR in_a_car
else_jump @1 //если нетак, прыгаем вначало
0811: 2@ = actor $PLAYER_ACTOR
if //одиночное условие
Actor.InCar($PLAYER_ACTOR, 2@)
else_jump @1
wait 10
if //одиночное условие
00E1: key_pressed 0 11
else_jump @1
:loadAK
wait 0
if
Actor.HasWeapon($PLAYER_ACTOR, 30)
jf @AK
:loadDeagle
wait 0
if
Actor.HasWeapon($PLAYER_ACTOR, 24)
jf @Deagle
:AK
wait 0
0407: create_coordinate $XCar $YCar $ZCar from_car 2@ offset -5.0 1.0 0.0
0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 0.0 0.0 0.0
0464: put_actor $PLAYER_ACTOR into_1_on_car 2@ at_car_offset -0.70 0.2 0.45 position 0 shooting_angle 360.0 with_weapon 30
jump @out
:Deagle
wait 0
0407: create_coordinate $XCar $YCar $ZCar from_car 2@ offset -5.0 1.0 0.0
0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 0.0 0.0 0.0 //удаляем игрока из тачки
0464: put_actor $PLAYER_ACTOR into_1_on_car 2@ at_car_offset -0.70 0.2 0.45 position 0 shooting_angle 360.0 with_weapon 24
jump @out
:out //4ый лейбл
wait 10
if
00E1: key_pressed 0 10
else_jump @out
0362: remove_actor $PLAYER_ACTOR from_car_and_place_at $XCar $YCar $ZCar
0465: remove_actor $PLAYER_ACTOR from_1_mode
036A: put_actor $PLAYER_ACTOR in_car 2@
jump @1
Offline
Offline
Offline
to_GTASA -
В твоем скрипте очень много ошибок, не понимаю как он вообще работает. У тебя много проблем с else_jump'aми, ты их неправильно используешь. Я переделал твой скрипт:
{$VERSION 3.1.0027}
{$CLEO .cs}
//-------------MAIN---------------
wait 10
:1
wait 0
if
Player.Defined($PLAYER_CHAR)
else_jump @1
if //одиночное условие
0449: actor $PLAYER_ACTOR in_a_car
else_jump @1 //если нетак, прыгаем вначало
03C0: 2@ = actor $PLAYER_ACTOR car
if //одиночное условие
Actor.InCar($PLAYER_ACTOR, 2@)
else_jump @1
wait 10
if //одиночное условие
00E1: key_pressed 0 11
else_jump @1
:loadAK
wait 0
if
Actor.HasWeapon($PLAYER_ACTOR, 30)
jf @loadDeagle
wait 0
0407: create_coordinate $XCar $YCar $ZCar from_car 2@ offset -5.0 1.0 0.0
0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 0.0 0.0 0.0
0464: put_actor $PLAYER_ACTOR into_1_on_car 2@ at_car_offset -0.70 0.2 0.45 position 0 shooting_angle 360.0 with_weapon 30
jump @out
:loadDeagle
wait 0
if
Actor.HasWeapon($PLAYER_ACTOR, 24)
jf @loadAK
0407: create_coordinate $XCar $YCar $ZCar from_car 2@ offset -5.0 1.0 0.0
0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 0.0 0.0 0.0 //удаляем игрока из тачки
0464: put_actor $PLAYER_ACTOR into_1_on_car 2@ at_car_offset -0.70 0.2 0.45 position 0 shooting_angle 360.0 with_weapon 24
jump @NEXT_EAGLE
:NEXT_EAGLE
wait 0
if and
02D8: actor $PLAYER_ACTOR current_weapon == 30
00E1: key_pressed 0 7
0491: actor $PLAYER_ACTOR has_weapon 24
jf @NEXT_AK
wait 0
0464: put_actor $PLAYER_ACTOR into_1_on_car 2@ at_car_offset -0.70 0.2 0.45 position 0 shooting_angle 360.0 with_weapon 24
jump @out
:NEXT_AK
wait 0
if and
02D8: actor $PLAYER_ACTOR current_weapon == 24
00E1: key_pressed 0 7
0491: actor $PLAYER_ACTOR has_weapon 30
jf @out
wait 0
0464: put_actor $PLAYER_ACTOR into_1_on_car 2@ at_car_offset -0.70 0.2 0.45 position 0 shooting_angle 360.0 with_weapon 30
jump @out
:out //4ый лейбл
wait 10
if
00E1: key_pressed 0 10
else_jump @NEXT_EAGLE
0362: remove_actor $PLAYER_ACTOR from_car_and_place_at $XCar $YCar $ZCar
0465: remove_actor $PLAYER_ACTOR from_1_mode
036A: put_actor $PLAYER_ACTOR in_car 2@
jump @1и добавил прокрутку оружия колёсиком мыши.
Сравни эти два скрипта, и ты всё поймешь
А из АК47 он стреляет потому, что ты используешь команду
0464: put_actor $PLAYER_ACTOR into_1_on_car 2@ at_car_offset -0.70 0.2 0.45 position 0 shooting_angle 360.0 with_weapon 30
Last edited by Gyr (08-03-2009 14:48)
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
Хотел добавить оружия, и сделать прокрутку для них, но не крутятся.
А из АК47 он стреляет потому, что ты используешь команду
Получается надо ее удалить и все?
{$VERSION 3.1.0027}
{$CLEO .cs}
//-------------MAIN---------------
wait 10
:1
wait 0
if
Player.Defined($PLAYER_CHAR)
else_jump @1
if //одиночное условие
0449: actor $PLAYER_ACTOR in_a_car
else_jump @1 //если нетак, прыгаем вначало
03C0: 2@ = actor $PLAYER_ACTOR car
if //одиночное условие
Actor.InCar($PLAYER_ACTOR, 2@)
else_jump @1
wait 10
if //одиночное условие
00E1: key_pressed 0 11
else_jump @1
:loadAK
wait 0
if
Actor.HasWeapon($PLAYER_ACTOR, 30)
jf @loadDeagle
wait 0
0407: create_coordinate $XCar $YCar $ZCar from_car 2@ offset -5.0 1.0 0.0
0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 0.0 0.0 0.0
0464: put_actor $PLAYER_ACTOR into_1_on_car 2@ at_car_offset -0.70 0.2 0.45 position 0 shooting_angle 360.0 with_weapon 30
jump @out
:loadDeagle
wait 0
if
Actor.HasWeapon($PLAYER_ACTOR, 24)
jf @loadM4
0407: create_coordinate $XCar $YCar $ZCar from_car 2@ offset -5.0 1.0 0.0
0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 0.0 0.0 0.0 //удаляем игрока из тачки
0464: put_actor $PLAYER_ACTOR into_1_on_car 2@ at_car_offset -0.70 0.2 0.45 position 0 shooting_angle 360.0 with_weapon 24
jump @NEXT_EAGLE
:loadM4
wait 0
if
Actor.HasWeapon($PLAYER_ACTOR, 25)
jf @loadDrobov
wait 0
0407: create_coordinate $XCar $YCar $ZCar from_car 2@ offset -5.0 1.0 0.0
0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 0.0 0.0 0.0
0464: put_actor $PLAYER_ACTOR into_1_on_car 2@ at_car_offset -0.70 0.2 0.45 position 0 shooting_angle 360.0 with_weapon 31
jump @NEXT_M4
:loadDrobov
wait 0
if
Actor.HasWeapon($PLAYER_ACTOR, 25)
jf @loadPistol
0407: create_coordinate $XCar $YCar $ZCar from_car 2@ offset -5.0 1.0 0.0
0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 0.0 0.0 0.0 //удаляем игрока из тачки
0464: put_actor $PLAYER_ACTOR into_1_on_car 2@ at_car_offset -0.70 0.2 0.45 position 0 shooting_angle 360.0 with_weapon 25
jump @NEXT_DROBOV
:loadPistol
wait 0
if
Actor.HasWeapon($PLAYER_ACTOR, 22)
jf @loadAK
0407: create_coordinate $XCar $YCar $ZCar from_car 2@ offset -5.0 1.0 0.0
0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 0.0 0.0 0.0 //удаляем игрока из тачки
0464: put_actor $PLAYER_ACTOR into_1_on_car 2@ at_car_offset -0.70 0.2 0.45 position 0 shooting_angle 360.0 with_weapon 22
jump @NEXT_PISTOL
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
:NEXT_EAGLE
wait 0
if and
02D8: actor $PLAYER_ACTOR current_weapon == 30
00E1: key_pressed 0 7
Actor.HasWeapon($PLAYER_ACTOR, 24)
jf @NEXT_AK
wait 0
0464: put_actor $PLAYER_ACTOR into_1_on_car 2@ at_car_offset -0.70 0.2 0.45 position 0 shooting_angle 360.0 with_weapon 24
jump @out
:NEXT_AK
wait 0
if and
02D8: actor $PLAYER_ACTOR current_weapon == 24
00E1: key_pressed 0 7
Actor.HasWeapon($PLAYER_ACTOR, 30)
jf @out
wait 0
0464: put_actor $PLAYER_ACTOR into_1_on_car 2@ at_car_offset -0.70 0.2 0.45 position 0 shooting_angle 360.0 with_weapon 30
jump @out
:NEXT_M4
wait 0
if and
02D8: actor $PLAYER_ACTOR current_weapon == 30
00E1: key_pressed 0 7
Actor.HasWeapon($PLAYER_ACTOR, 31)
jf @out
wait 0
0464: put_actor $PLAYER_ACTOR into_1_on_car 2@ at_car_offset -0.70 0.2 0.45 position 0 shooting_angle 360.0 with_weapon 31
jump @out
:NEXT_DROBOV
wait 0
if and
02D8: actor $PLAYER_ACTOR current_weapon == 31
00E1: key_pressed 0 7
Actor.HasWeapon($PLAYER_ACTOR, 25)
jf @out
wait 0
0464: put_actor $PLAYER_ACTOR into_1_on_car 2@ at_car_offset -0.70 0.2 0.45 position 0 shooting_angle 360.0 with_weapon 25
jump @out
:NEXT_PISTOL
wait 0
if and
02D8: actor $PLAYER_ACTOR current_weapon == 25
00E1: key_pressed 0 7
Actor.HasWeapon($PLAYER_ACTOR, 22)
jf @out
wait 0
0464: put_actor $PLAYER_ACTOR into_1_on_car 2@ at_car_offset -0.70 0.2 0.45 position 0 shooting_angle 360.0 with_weapon 22
jump @out
:NEXT
wait 0
if and
02D8: actor $PLAYER_ACTOR current_weapon == 22
00E1: key_pressed 0 7
Actor.HasWeapon($PLAYER_ACTOR, 30)
jf @out
wait 0
0464: put_actor $PLAYER_ACTOR into_1_on_car 2@ at_car_offset -0.70 0.2 0.45 position 0 shooting_angle 360.0 with_weapon 30
jump @out
:out //4ый лейбл
wait 10
if
00E1: key_pressed 0 10
else_jump @NEXT_EAGLE
0362: remove_actor $PLAYER_ACTOR from_car_and_place_at $XCar $YCar $ZCar
0465: remove_actor $PLAYER_ACTOR from_1_mode
036A: put_actor $PLAYER_ACTOR in_car 2@
jump @1
Offline
как запустить гта в оконном режиме?
Offline
Получается надо ее удалить и все?
Нет, просто эта команда сама по себе дает актеру АК47
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
извините, если достал уже своими тупыми вопросами 
я хочу сделать скрипт, который отмечает ближайший pay'n'spray маленьким жёлтым квадратом, если выполняется одно из этих условий:
- Здоровье машины меньше/равно 450
- За спиной две или более звезды розыска
естественно, только когда игрок находится в машине.
Но вот как узнать, какой pay'n'spray ближайший?
координаты - не проблема, главное, как узнать %)
Offline
1. Создай точки во всех пэйн-спреях.
2. Проверь в скрипте, какая точка к игроку ближе. Расстояние между двумя точками (в данном случае между положением игрока и точкой какого-либо пейн-спрея) определяется командой:
0509: 17@ = distance_between_XY $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 and_XY 14@ 15@
Last edited by Den_spb (08-03-2009 20:11)
Offline
ещё вопрос: не компилится, ошибка в 25 строке (см. комментарий)
{$CLEO .cs}
0000: NOP
:prover_numfive
wait 0
if
0AB0: 101
jf @prover_numfive
jump @do_hlt
:do_hlt
wait 10
if
Actor.Driving($PLAYER_ACTOR)
then
03C0: 0@ = actor $PLAYER_ACTOR car
while true
wait 0
if
if
8185: not car 0@ health >= 1000
then
wait 10
8185: car 0@ health = 1000
Player.Money($PLAYER_CHAR) += car 0@ health - 1000 // тут ошибка: Недостаточно параметров. Ожидалось 2 параметров.
end
end
end
wait 100
jump @prover_numfive
Last edited by WinuX (08-03-2009 22:11)
Offline
0509: 17@ = distance_between_XY A B and_XY C D
A - x первой точки, B - y первой точки, C - x второй точки, D - y второй точки. Расстояние между ними будет записано в переменную 17@.
и ещё, как прочитать и изменить значение здоровья авто?
В СБ есть полезная функция - поиск опкодов (Сервис - Инструменты - Поиск опкодов). Вводим "car health" и находим то, что нам надо: 0227 - узнать здоровье машины, 0224 - изменить здоровье машины.
Насчет ошибки: СБ не понимает конструкций типа А+Б+Ц, складывать надо отдельно по 2 числа. Вместо той строки, где ошибка, надо написать так:
0227: 30@ = car 0@ health 0109: player $PLAYER_CHAR money += 30@ 0109: player $PLAYER_CHAR money += -1000
Last edited by Den_spb (08-03-2009 22:30)
Offline
@WinuX - ты не можешь складывать число и хэндл машины, т.к. car 0@ health не явлется командой. попробуй использовать опкод 0A8E:
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
всё бы хорошо, но вот какой код вышел:
{$CLEO .cs}
0000: NOP
:prover_numfive
wait 0
if
0AB0: 101
jf @prover_numfive
jump @do_hlt
:do_hlt
wait 10
if
Actor.Driving($PLAYER_ACTOR)
then
03C0: 0@ = actor $PLAYER_ACTOR car
while true
wait 0
if
if
8185: not car 0@ health >= 1000
then
wait 10
32@ = Player.Money($PLAYER_CHAR)
if 32@ > 0
then
0227: 30@ = car 0@ health
Player.Money($PLAYER_CHAR) += 30@
Player.Money($PLAYER_CHAR) += -1000
0224: set_car 0@ health_to 1000
end
end
end
end
wait 100
jump @prover_numfiveесли игрок нажмёт нумпять в машине, она восстановится, но в дальнейшем она будет восстанавливаться сама (за деньги, пока они не кончатся). Кроме того, если выйти из машины, иbmyfxfnm расстреливать её, она будет восстанавливаться опять таки до нуля денег, и если сесть в другую машину, то восстанавливаться всё равно будет первая. И когда игрок сдыхает, игра в винду с ошибкой.
Offline
У тебя второй цикл, где восстановление жизни машины, бесконечный (while true). Нужно добавить команду Break, чтобы выйти из него.
И когда игрок сдыхает, игра в винду с ошибкой.
добавь проверку player.defined (опкод 0256)
Offline
@WinuX - не мудри с then, else, while true. попробуй по старинке, потоками. А еще лучше открой уже скомпилированный файл, и изменяй его.
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
@Gyr - наоборот лучше освоить then, else, while true, с ними гораздо проще писать скрипты. У него собственно и ошибок почти нет в скрипте, за исключением пары мелочей (например, два if подряд)
Offline
ога точна %)
надо один иф убрать
и неплохо бы ещё снабдить это всё текстом...
----------
без ифа вылет %)
Last edited by WinuX (09-03-2009 12:03)
Offline
а меньшее из числовых переменных можно получитьтолько ифами? их там дофига просто
Offline
а меньшее из числовых переменных можно получитьтолько ифами? их там дофига просто
не понял вопроса. Если ты имеешь в виду опкод для сравнения значения двух переменных (типа 0034: $8276 >= $8278 // (float) ), то их действительно много. Искать нужно по комментариям к опкоду (например, если нужно сравнить две целые локальные переменные, то опкод будет (001D: 27@ > 33@ // (int) или 801D: not 27@ > 33@ // (int) )
Offline
Seemann, я имел в виду, такое: есть , например, 10 числовых переменны (float), все они разные по значению. ,Нужно выбрать из них меньшее . Сравнивать попарно достаточно долго и муторно. И нужно чем-нибудь выбрать меньшее. И предотвратить глюки в случае, если окажутся две равные переменные, и они будут меньше всех других
И ещё, как создать жёлтый маркер, как на входе в дома? естественно, чтобы телепортация происходила, со сменами интерьера, всё такое 
Last edited by WinuX (09-03-2009 16:07)
Offline
Подскажите модель части интерьера (в последней миссии, когда проламываешь стенку там что-то типа интерьера, я про него) никак найти немогу.
Offline
@Sw[ee]t - интерьер №2 коорды: 2539.35 -1294.61 1036.19. Пользуйся Мап Эдитором 
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
я не про интерьер, а про обьект который перед ним. посмотрел в мэйне, узнал что он входит в группу обьектов CARTER. А что именно за обьект - незнаю (ДО того как войдёшь в интерьер, я про этот обьект)
Offline