You are not logged in.
mfisto wrote:А у тебя точно нет скриптов, которые влияют на трафик? Возможно на них что-то воздействует извне. Смотри, есть всем известная миссия такси, там берется любой пед, стоящий возле дороги. Там ведь он слушается скрипта, возможно у тебя что то есть в папке клео, либо плагин какой.
нет, скриптов таких точно нет, не подскажите ссылочку на такой скрипт?
![]()
а то я уже 2 скрипта таких пересмотрел, нече пока не нашел
Имеется в виду скрипт из оригинала.
Offline
Имеется в виду скрипт из оригинала.
глянул, там юзается 02DD: 5@ = get_random_ped_in_zone 'SAN_AND' with_pedtype_civilian 1 gang 1 criminal/prostitute 1
по сути он как и многие другие опкоды поиска педов получает хендлы найденных актеров, но опять же они шагают как боты по тротуару и не сбивается эта задача с них, единственно если заставить подойти к ГГ, то пед уже как бе стоит на месте, но это костыльный вариант референса =/
самый идеальный пока способ пересоздать педа
Last edited by Goldfish (07-03-2016 01:05)
Offline
Как вычислить край тротуара пешеходной дороги, примыкающий к автомобильной дороге, от случайной точки на тротуаре?
единственно что знаю от чего можно опираться, то это дорожные точки путей атомобилей.
Last edited by Goldfish (07-03-2016 17:10)
Offline
показывает, что точки расположены посередине дороги, когда машины едут по своим полосам, следовательно для каждой полосы должен быть свой путь? и точки в два ряда, я не один ряд посередине ?
Как вычислить край тротуара пешеходной дороги, примыкающий к автомобильной дороге, от случайной точки на тротуаре?
единственно что знаю от чего можно опираться, то это дорожные точки путей атомобилей.
Дело в том, что пути авто действительно проходят посередине дороги, а левая/правая полоса генерируется автоматически. Ширина полосы задается в самих путях. Кроме того, в тех же путях, задается кол-во полос движения(1-2), а также - флаг одностороннего/двустороннего движения. Т.е. минимум - 1 полоса одностороннего движения, максимум - 4 полосы двустороннего движения(по 2 полосы на сторону).
остановить рандомного педа
В вайсе были опкоды, которые прекрасно с этим справлялись
011C: actor $ololo clear_objective 0579: stop_actor $ololo
В СА их нет. Значит, разрабы сделали более продвинутые версии этих опкодов, так что остается только искать...
Можешь также попробовать "сбить" поведение педа, задав ему "пустое" действие: например - пусть пойдет на свои же координаты(либо - на пару сантиметров назад) - он просто остановится. Либо какую-нибудь пустую анимку примени. Не уверен за СА - в Вайсе работало.
Как вычислить край тротуара пешеходной дороги, примыкающий к автомобильной дороге, от случайной точки на тротуаре?
а как узнать "статус" действия педа, например: идет по тротуару или переходит дорогу?
Если тебе надо задетектить момент, когда пед сходит с тротуара на дорогу, то проверяй уровень земли
02CE: $GROUNDZ = ground_z $X $Y $Z
под педом, а также - под ближайшим автомобильным путем, и, если они совпадут - пед идет по дороге.
Last edited by Shag (10-03-2016 14:00)
Offline
мне нужно создать несколько потоков в миссии, но при запуске игра вылетает. работает только если перекинуть сам поток в начала maina, туда, где обычно потоки запуска миссий. как это обойти? в некоторый глобальных модах видел подобное, вот пример:
create_thread @N1 create_thread @N2 create_thread @N3 create_thread @P1 create_thread @P2 end_thread :N1 thread 'N1' wait 200 if 00F8: player $2 stopped 1 369.444 -484.255 12.836 radius 1.0 1.0 1.5 jf @N1 054C: use_GXT_table 'INTRO' 00BC: text_highpriority 'INT1_B' 5000 ms 1 // Didn't think they'd ever let him out. 03BD: destroy_sphere $769 end_thread :N2 thread 'N2' wait 200 if 00F8: player $2 stopped 1 367.767 -471.821 12.836 radius 1.0 1.0 1.5 jf @N2 054C: use_GXT_table 'INTRO' 00BC: text_highpriority 'INT1_B' 5000 ms 1 // Didn't think they'd ever let him out. 03BD: destroy_sphere $770 end_thread :N3 thread 'N3' wait 200 if 00F8: player $2 stopped 1 360.833 -487.561 12.836 radius 1.0 1.0 1.5 jf @N3 054C: use_GXT_table 'INTRO' 00BC: text_highpriority 'INT1_B' 5000 ms 1 // Didn't think they'd ever let him out. 03BD: destroy_sphere $771 $767 = 1 // integer values jump @K4_80 :P1 thread 'P1' wait 200 if 00F8: player $2 stopped 1 369.002 -476.872 12.836 radius 1.0 1.0 1.5 jf @P1 054C: use_GXT_table 'INTRO' 00BC: text_highpriority 'INT1_A' 5000 ms 1 // Tommy Vercetti...Huh! shit. 01B1: give_player $2 weapon 18 ammo 6 // Load the weapon model before using this 03BD: destroy_sphere $772 end_thread :P2 thread 'P2' wait 200 if 00F8: player $2 stopped 1 377.34 -473.071 12.836 radius 1.0 1.0 1.5 jf @P2 054C: use_GXT_table 'INTRO' 00BC: text_highpriority 'INT1_A1' 5000 ms 1 // pay him a little visit, right? if 0490: player $2 has_weapon 18 jf @P2_122 01B1: give_player $2 weapon 18 ammo 26 // Load the weapon model before using this 03BD: destroy_sphere $773 end_thread :P2_122 wait 7000 jump @P2
все это находится прямо в блоке миссии.
Last edited by trashmas (12-04-2016 00:45)
Offline
Поток не может находиться внутри миссии. Они могут в ней запускаться, но код должен находиться в секции майн.
Offline
Поток не может находиться внутри миссии. Они могут в ней запускаться, но код должен находиться в секции майн.
но такое есть даже в оригинальных main'ах, почему там работает?
и еще кое-что, подскажите пожалуйста опкод что бы тело мертвого педа исчезало .
и еще кое-что, за что отвечает опкод:
0243: set_actor $ST1pedCL1 ped_stats_to 16
в оригинальной мейне встречался со значениями 11, 30, 39
и еще кое-что
в ходе создании простенькой миссии столкнулся с пичалькой:
если много раз спавнить педов (create actor) то приблизительно через 30 спаунов они начинают глючить и новые спавнятся какими то колобками из текстур. это можно как то исправить? как то досадно забрасывать из-за неприятного бага
Last edited by trashmas (13-04-2016 21:50)
Offline
но такое есть даже в оригинальных main'ах, почему там работает?
В оригинальном main.scm нет такого и в помине, чтобы потоки писались внутри блоков миссий. В миссиях можно только запускать потоки, как было сказано выше. Наверное, вы называете обычные потоки "миссиями". В оригинале наблюдается такое построение кода, но точно не в коде миссий. Во всяком случаи я такого не нашел.
Offline
trashmas wrote:но такое есть даже в оригинальных main'ах, почему там работает?
В оригинальном main.scm нет такого и в помине, чтобы потоки писались внутри блоков миссий. В миссиях можно только запускать потоки, как было сказано выше. Наверное, вы называете обычные потоки "миссиями". В оригинале наблюдается такое построение кода, но точно не в коде миссий. Во всяком случаи я такого не нашел.
перепутал оригинал с другим мейном. вот main.scm из мода Long Night. см. строку 07333 - это все в блоке миссии.
https://cloud.mail.ru/public/XzQv/QLSxVvhmU
Last edited by trashmas (13-04-2016 23:22)
Offline
Технически потоки можно располагать только в пределах секции MAIN. Ее максимальный размер для VC составляет 225512 байтов, для SA - 200000. Если весь код потока находится по коду файла не дальше этого предела, то все будет работать, даже если он находится внутри миссии. Посмотреть адреса, по которым располагается поток, можно если декомпилировать файл с включенной опцией CODE_OFFSETS. Для мейна лонг найт имеем следующее:
{70027} 004F: create_thread @N1 {70035} 004F: create_thread @N2 {70043} 004F: create_thread @N3 {70051} 004F: create_thread @P1 {70059} 004F: create_thread @P2 {70067} 004F: create_thread @C {70075} 004F: create_thread @C_196 {70083} 004F: create_thread @C_258 {70091} 004F: create_thread @K4 {70099} 004E: end_thread :N1 {70101} 03A4: name_thread 'N1'
Но это на самом деле хак, и так лучше не делать.
Offline
Подскажите пожалуйста, как запретить педам дропать оружие после смерти в VC.
Offline
В Вайсе нет такой возможности по крайней мере стандартной, в Сашке это реализовано за счет структур педов, там есть такой флаг, и когда обрабатывается событие - создавать пикап или нет на усмотрение, попадает этот флаг. В Вайсе такого флага нет, тут надо вручную за счет плагина внедрять эту фишку, по сути надо написать asi плагин, который изменит функцию создания пикапа после смерти педа, а также добавит для структуры дополнительный флаг. Но кто будет это делать, вот в чем вопрос.
I know everything and nothing...
Offline
Если дать педу изначально 0 патронов - пед не будет дропать при смерти оружие(на его стрельбу это никак не повлияет). Хотя, потом у трупа в руке оружие тоже исчезнет, а не будет оставаться, как у педов в гта3, когда им руки отстреливаешь.
Короче, если проблема была в запрете на создание пикапа оружия - это тебе поможет. Если - просто в эстетике - нет.
Last edited by Shag (01-05-2016 18:25)
Offline
Есть ли возможность через скрипт вырезать часть строки, например такое:
0@v = "demo.txt" xxxx: 0@v = from_string 0@v search ".txt" and_replace_to ""
Что-бы со строки "demo.txt" получить "demo".
В принципе какими методами это сделать мне не важно, только чтобы работало. Можно даже функцию в С++ написать и ткнуть её в DLL. Я могу только передать и получить строку с DLL:
extern "C" __declspec(dllexport) char *NormalizeName( char *string ) { //string[0] = 'a'; return( string ); }
Но вот любая попытка внести изменения в этот код заканчивалось вылетом игры
Last edited by wmysterio (10-07-2016 13:07)
Offline
в SA есть стандартные функи для строк и файлов типо fileopen и strlen, адреса ток подзабыл какие
Offline
в SA есть стандартные функи для строк и файлов типо fileopen и strlen, адреса ток подзабыл какие
Со строками из стандартной библиотеки я не нашел методов для замены части строки на другую строку. Пока в голове только костыльные методы, к которым я хотел бы вернуться в последнюю очередь )
Offline
Offline
Не знает ктонить почему magic TXD не работает на вин XP ?
Offline
Как называется язык программирования, на котором мы пишем в SB?
Offline
Я думаю, что ближайшей аналогией будет BASIC.
https://ru.wikipedia.org/wiki/%D0%91%D0 … 0%B8%D0%BA
Offline
Как называется язык программирования, на котором мы пишем в SB?
Никак. Мы же не пишем на SCM отдельные приложения ) Это скриптовый язык, сделанный специально для GTA. По-синтаксису разве что ассемблер немного напоминает и не более того.
Seemann, посмотри мой пост, касающийся СБ.
Offline
недавна с бэйсиком по ближе познакомился
Offline
Подскажите пожалуйста смещение в структуре авто для перехода на handling-структуру в GTA3?
05E7: 1@ = car 0@ struct 1@ += ????? 05E0: 1@ = read_memory 1@ size 4 virtual_protect 0 // получили указатель на handling-структуру
Offline