You are not logged in.
Pages: 1
trashmas, я в опкодах не шарю, но чисто логически:
1. это когда нужно обязать актера ничего не делать, "типа заморозить".
2. idle вроде как анимация бездействия, следовательно этим назначается актеру.
3. это как понимаю заставить актера остановиться( если до этого он топал ). Ну или заставляет стоять на месте но "курить можно"
В любом случае инфа по этим опкодам есть здесь: https://gtagmodding.com/opcode-database/opcode/0192/
Приветствую, программисты!
Отрадно видеть что SA еще модифицируют, игра еще жива! Наверно это потому-что 5 часть не стала эволюционным венцом всей серии, да много нового, современного, но нету штата Сан Андреас, есть всего один город и его пригород, а SA это целый штат, 3 города и их пригороды!
Да, у SA карта меньше, но снаружи,а внутри она больше
Отвлекся я, а порог околачиваю с таким вопросом или просьбой, раньше был на руках скрипт одного умельца, который отключил агрессивное поведение водил, ну когда они начинают бешено таранить машину игрока, мстя за царапину на крыле
Помню что скрипт был простой и короткий, что-то с адресами памяти, найти в сети не получается, как испарился, может подскажет хороший человек, что это за скрипт, или адреса памяти?
Что немного странно, так как gosub должен обязательно заканчиваться return-ом, а у тебя там прыжок стоит.
По другому выходило что-то не то, или сброшенная звезда мигала и деньги беспрерывно исчислялись или вообще ничего не происходило, я кароче помыкался, подумал что-же не так и убрал проверку денежек в кармане у игрока и прыжки переставил/вставил, после этого заработало нормально, пока не вылетело ни разу, поживем-увидим короче. Может виноваты другие скрипты, у меня стоят несколько управляющие силой розыска, принципом розыска и т.п.
Главное пока работает, если бы не ты и того бы не было
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
З.ы.
О, у тебя есть сайт, пойдука там пошарюсь...
Всем здравия желаю, прошу подсказать и надоумить, сделал скрипт, но он не работает, хотя логически в нем все правильно, но я допускаю где-то ошибку, оно и понятно, я далек от программирования, вот и остается только логический метод.
Скрипт создает маркеры в гаражах перекраски по всему штату, и заехав на машине в маркер/гараж и если у тебя копы на хвосте, то с игрока снимут деньжат за снятие розыска, чем больше розыск, тем больше сумма. Но не могу понять что не так, маркеры есть, а деньги не снимают, вот собственно скрипт:
{$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
DK22Pac, благодарю, жаль что в ехе, с ним сложнее работать(недавно все познаю), но попытаюсь, за код отдельное спасибо, разобраться бы еще как все это превратить в мод на увеличение стоимости покраски, но лиха беда начало...
trashmas, да логически оно так, в любом случае я нашел альтернативный вариант
Но вопрос маится, знатоки подскажите, те деньги(количество) что снимаются в покрасочной(P&S), они где? В Main.scm искать или это из gta_sa.exe?
Ок! Раз спецы говорят что малой кровушкой не обойдешься, тогда пойду другим вариантом. Спасибо братцы.
Вопрос на засыпку: может есть опкод который загрузит игру(сейв из слота) без выхода в главное меню? Из вопроса выше понимаю что нету, но вдруг?
Странно, есть опкод для вызова меню сохранения: 03D8: show_save_screen, но хоть убей не могу найти опкод для вызова меню загрузки, как вообще заставить скриптом выйти в главное меню? Помогите мне грешному
DK22Pac, а что в скрипте? Скрипт как скрипт, компилируется и в игре работает, в любом случае хозяин барин.
kenking, спаибо брат, но походу не это, попробывал в этом же скрипте заменять семерку на разные цыфры до семи, но в игре вылет сразу по завершении миссии .
Может есть еще мысли?
Разобрался! Все как ты и думал, да именно та цифра отвечает за слот, пришлось написать немного другой скрипт, зато работает схема понятна, двину дальше, еще раз спасибо, без твоей подсказки епал бы себе мозги еще долго...
DK22Pac, спасибо канэчно, но я не знать что с этим делать , крутовато для меня да и времени на серьезное изучение програмирования уже просто нету.
Вот скаченный скрипт который автоматически сохраняет после каждой миссии в 8 слот, я понял из него что идет работа с памятью по адресам:
0x61907A
0x61907E
0x619060
которые в свою очередь работают конкретно с 8 слотом сохранения, я поискал в сети с целью выяснить адреса для остальных 7 слотов, но увы без результатно, но с этим я хотябы знаю как работать, примерно , а как преминить твою скрипт команду у меня просто нет такого большого опыта.
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013 {$CLEO .cs} //-------------MAIN--------------- 0000: NOP 31@ = 1 0A8D: 25@ = read_memory 0x61907A size 4 virtual_protect 1 0A8D: 26@ = read_memory 0x61907E size 1 virtual_protect 1 1@ = 0 0A9F: 0@ = current_thread_pointer 0A8E: 10@ = 0@ + 16 // int 0A8D: 10@ = read_memory 10@ size 4 virtual_protect 0 0A8F: 11@ = 10@ - -348 // int 0A8C: write_memory 0x469E2C size 4 value 11@ virtual_protect 1 0@ += 64 11@ += 2 0A8C: write_memory 11@ size 4 value 0@ virtual_protect 0 :NONAME_7C wait 0 if and $ONMISSION == 1 31@ == 1 else_jump @NONAME_AC wait 0 0652: 20@ = integer_stat 147 31@ = 0 :NONAME_AC if 1@ == 1 else_jump @NONAME_155 :NONAME_BE wait 0 0652: 21@ = integer_stat 147 if and $ONMISSION == 0 not Actor.Driving($PLAYER_ACTOR) 001D: 21@ > 20@ // (int) else_jump @NONAME_F0 jump @NONAME_F7 :NONAME_F0 jump @NONAME_BE :NONAME_F7 0A8C: write_memory 0x61907A size 4 value -1869574000 virtual_protect 1 0A8C: write_memory 0x61907E size 1 value 144 virtual_protect 1 wait 1 0AA5: call 0x619060 num_params 1 pop 0 7 wait 2 0A8C: write_memory 0x61907A size 4 value 25@ virtual_protect 1 0A8C: write_memory 0x61907E size 1 value 26@ virtual_protect 1 31@ = 1 1@ = 0 :NONAME_155 jump @NONAME_7C hex C7 05 00 00 00 00 01 00 00 00 B8 9B 9A 46 00 FF E0 end
Здорова скриптеры(а они: здоровее видали ), помогите с поиском адресов памяти, в сети совсем не находятся они, вот такие адреса:
0x61907A
0x61907E
0x619060
Именно эти отвечают за создание сейва в 8 слот сохранения, ищу остальных отвечающих за остальные слоты...
kenking, спасибо я уже разобрался, вчера гулил яндексил, запарился не в шутку , гдеж ты был вчера, да именно этот опкод и преминил. Но копал не даром, нашел полезные и удобные сайты по опкодам . Пока нашел ответы на все вопросы.
А тут на сайте смотрю народу не густо, кроме тебя то и не видал никого
kenking, не вопрос, просто вроде как мелочь, тут это наверное все знают. Это я тут изучаю .
Вот собственно код который устанавливает максимум брони в требуемое значение, в смысле любая поднятая/купленая броня в игре даст защиты в 20ед. вместо 100ед. положенных, она также тратится как всегда, просто изменяется ее максимум:
Отмечу, что в этом коде:
1. Я уменьшил максимум брони до 20ед. вместо 100ед. обычных(так надо в моем моде), чтобы наоборот, т.е. увеличить, надо править выделенное число на сколько вам нужно, там логически понятно.
2. В коде не учтена добавка к максимуму в +50ед., после прохождения миссии полицейского, нужно дописывать код, я пытался, пока не выходит... Буду рад если кто допишет.
Ну все, у меня все получилось
Привет уважаемые.
Такой вот вопрос, как выглядит проверка или условие:
1) Условие: Если плеер одел броню(аrmor)
2) Проверка: Плеер сейчас в броне?
Еще хотелось бы очень знать, возможно ли установить броне свой предел HP, как здоровью плеера? Со здоровьем никаких проблем нет, оно легко контролируется скриптом, а вот про броню так не скажешь, нигде не нашел инфы как установить броне HP, т.е. сделать так чтобы бронь давала не 100 защиты а например только 50, причем не одноразово(это уже умеем), а в целом , чтобы любой поднятый/купленный броник в игре давал защиты только 50? Цифра 50 не важна, тут принцип важен.
kenking, спасибо, теперь ясно. Со скрипта то и началось все , есть скаченный скрипт который который все пикапы из трупов кладет на землю как в гта 5, в скрипте нашел пару строк которые отвечали за выдачу для ГГ количество боеприпасов, их и изменял, работало нормально, но из-за этого скрипта часто вылетает на мисиях. Потому стал искать решение без клео скрипта.
За базу отдельно спасибо, ток мой IDА ее не открыл, говорит что неизвестная версия, думаю это потому что у меня FREE версия, догадываюсь что нужна PRO. Будем искать...
Спасибо, но вопросов стало еще больше . Игра GTA SA.
Я какбы не програмер, нихрена, другой профиль
Скачал прогу IDA и открыл gta_sa.exe, не знаю правильно ли открыл, там окошко выскакивает и предлагает галочек наставить/снять под тем чего знать не знаю...
И когда закрываешь прогу тоже лицезреешь окошко: типа как будем сохранять? Да никак, пока не знаю как...
Ладно, нашел адрес .text:004591D0 ( http://images.vfl.ru/ii/1517221502/5021 … 354565.png ) , но что с ним делать? Потыкал конечно...
А это и через поиск не нашел: CPed::CreateDeadPedWeaponPickups , хотя может я не дождался результатов поиска, мне показалось что он зависает...
Ребята, может там и нету незашифрованых цыфр, чтобы хоп и изменил на нужное, а?
Аа, еще момент, многие клео скрипты требуют оригинальный ехешник v0.1, а после моих манипуляций с ехе, совместимость с ним этих клео не пострадает?
Пытаюсь найти в main.scm процесс который устанавливает количество боеприпаса в выпавшем пикапе оружия из убитого/умершего педа. Пока результаты поиска порождают только новые вопросы wall , может кто направит в нужную сторону? Главная цель, уменьшить/увеличить это количество. Помогите люди добрые...
Pages: 1