You are not logged in.
Скажите, плиз, как через память дать команду актёру (или игроку) перезарядить оружие, то есть выполнить анимацию перезарядки? Где-то это было в редакторе памяти Rysok'а, но там все комменты на японском, а мне как-то лень язык Страны восходящего солнца учить, чтоб этот адрес выковернуть.
Что-то название совсем не соответствует теме... Оффтоп!)
GXT Hook vs. SA:MP буквально как GXT Hook против SA:MP'а
Хотя мне кажется опкоды всё же те, просто описаны неточно
01EA: 60@ = car 59@ max_passengers - макс. возможное число пассажиров (т.е. сколько их может поместиться в данной машине)
Неправильно тебе кажется.
Тут как раз-таки имеется в виду кол-во пассажирских мест машины, а если бы речь шла о макс. кол-ве сидячих мест, то опкод бы выглядел примерно так:
07A2: 60@ = car 59@ max_seats
01E0: 43@ = car 71@ occupied_seats
Это проверяет, сколько пассажиров в трансопрте (педов). А надо мне проверять количество МЕСТ (не важно, пустых или занятых, просто мест).
Ух, какая сложной задачка! Зная кол-во пассажирских мест определить кол-во всех мест с водителем...
Уже в вопросе есть ответ! Просто к кол-ву макс. мест прибавляешь 1 и всё! В чём трудность-то?
"Не всё в мире автоматически, а приблежение к таковому лишь ведёт к забвению порвозданного."
Как проверить тачку на количество пассажирских мест? Есть проверка на свободные места, а мне надо просто сколько имеется пассажирских мест, не важно, занятых или свободных.
Ты, верно, искал в опкоднике только по ключевым словам 'seats'. Конечно, в этом случае, ты не обнаружил искомое.
Набираешь в OST (Opcode Search Tool) в строке поиска 'passengers' и всё становится иначе!
01E9: 43@ = car 71@ num_passengers - текущее кол-во пассажиров
01EA: 60@ = car 59@ max_passengers - макс. кол-во пассажиров
Кстати говоря, тот же вопрос выдвигал в этом топике ранее, допустив описанную выше мной оплошность.
И вот. Как проверить, что какой-то актер выходит из машины?
Далеко не все действия актёров можно проверить простыми опкодами, только основные. Специально для этого были придуманы PEvents (Ped Events), с помощью которых можно проверить любое, даже незначительное действие какого-либо актёра, главное - знать нужный параметр.
PEvent 7 EVENT_DRAGGED_OUT_CAR попробуй это.
Ещё один из способов - связь какого-либо действия с нужной анимацией, для последующей проверки действия по анимации.
Некоторая информация.
Он достоверен, если что-то существует.
Перестать быть подлинным он может в любое мгновение, так же возможно и обратное - подолгу является таковым.
Даже в самом мейне есть масса таких проверок, не стоит этим пренебрегать, ведь если попытаться совершить что-либо с чем-то несуществующим, игра поведёт себя мягко говоря нехорошо, - стопроцентный вылет
А wait тут непричём. Сам подумай: как задержка может сказаться на оперируемом объекте? Просто бытует проверенное мнение насчёт действительности существования чего-либо, и верно. Если посмотреть с логической точки зрения: при задержке мы можем утерять контроль над происходящим, как бы нет синхронизации из-за того что скрипт "ждёт" и не выполняет никаких действий. Соответсвенно, за это время без "сихронизации" между скриптом и игрой с предметом, машиной или актёром что-то может произойти из-за хода игрового процесса.
подскажите, пожалуйста, можно ли на обычном автомобиле включить сирену (как на полицейской машине) со звуком, чтоб уступали дорогу другие водители?
Каким-то одним опкодом так просто это не добавишь на любую машину. По-моему, это можно изменить только на уровне памяти игры. Не помню точно, но ещё давно где-то видел способ добавления сирены...
как заставить нарисованную текстуру плавно исчезать с экрана в течении некоторого времени?
Именно такой команды нет, но сделать возможно. Нужно выводить эту же текстуру, со временем отображая текстуру всё прозрачнее и прозрачнее её самой. Для этого надлежит последнее значение (Alpha) в опкоде в параметрах RGBA при выводе каждый раз уменьшать (от 255 к нулю) с нужной прогрессией, чтобы становилось всё прозрачнее, а затем и вовсе удалить текстуру, когда она станет невидимой.
Я говорю о опкодах
038D: draw_texture 2 position 160.0 112.0 scale 320.0 224.0 RGBA 150 150 150 255
074B: draw_texture 2 position 160.0 112.0 scale 320.0 224.0 angle 90.0 RGBA 150 150 150 255
Всегда бывают статьи, предназначенные для туториала.
Alien, у тебя такая же проблема, что и у d88 )
А может быть. ты просто не полностью прочитал мой вопрос.
Как можно имитировать использование скрипта вербовки игроком на каком-нибудь актёре.
Я говорю о скрипте, который срабатывает, когда ты прицеливаешься на гангстере грув и нанимаешь его в банду после нажатия GROUP_FORWARD, ещё этим же скриптом создаются маркеры на радаре и на карте и он же отвечает за устранение членов банды при удалении от них.
Как можно это иммитировать, сделать, что что происходит с грувом, когда игрок приглашает его в банду.
После согласия актёра на приглашение появляется зелёная иконка на радаре "Друг" (отмечает завербованного), ещё этот скрипт убирает актёра из группы, если игрок удалён от него на некоторое расстояние и удаляет о нанятом инфу (RemoveReferences).
Как сделать также на любом актёре?
Откуда в exe скрипты?
Ну, я имею в виду намертво вделанные в игру скрипты, такие как прибытие медиков, пожарных, погоня полицеских за игроком и остальные скрипты, которых нет в мейне и не external. Вот уж не знаю, где эти "забетонированные" в игру скрипты располагаются.
***
Да, я знаю этот способ, но проблема в том, что больше 2 новых педов записать нельзя, движок не выдерживает. Заменять старых тоже не очень хочется. Вот я и надеялся, что скриптом можно это сделать создав спецактёра.
Рассмотрим с этой позиции. Думаю, можно осуществить.
Сначала проверяешь группу прохожих и проежах тачек.
08D3: get_present_zone_popcycle_group_for_peds_and_cars_to 26@
Затем сравниваешь его с заранее выясненной группой попциклов, в которой есть грувы (например, можно взять Ganton) и если проверка возвращает тру, идти дальше.
Находишь хендл рандомного актёра на улице, а затем (можно и с какой-либо вероятностью) изменяешь его модель на нужную, или лучше вообще заменить педа (если используешь спецактёра, дать ему decision maker, идентичный грувовцу). И так каждый раз, добавить только разные дополнительные проверки, чтобы ничего не выглядело искуственно и приписать нужные задержки.
Дерзай)
Использовать scm log
SCMLog это, конечно, хорошо, но как определить с помощью него ошибку? Если ты хочешь ответить - посмотреть последний выполненный опкод, то я скажу, что не обязательно опкод, из-за которого произошла ошибка должен оканчивать лог.
как определить место ошибки в скрипте?
По мне так, - только вручную. Прописывать после каждой команды микро-задержку и выводить на это время на экран переменную с номером строки, также прописанным вручную. Способ довольно мутарный, но действенный и для небольших клео-скриптов вполне подойдёт
Daeman, нет, я имел ввиду второй вариант, чтоб они на улице встречались.
Тогда скажу о втором.
Здесь не всё так просто. Чтобы добавить педа, надо во всех файлах прописать о нём инфу, кто он такой, к какой группе относится, когда ходит, на каких машинах ездит, какой у него звуковой банк, его поведение... В общем, в абсолютно всех файлах о педах.
А то что тебе нужно, может это. Если я правильно понял, ты спрашиваешь как управлять членами банды.
Нет, ты неправильно понял. Всегда нужно правильно понимать вопросы и вникать в них, от понимания вопроса зависит и ответ.
Насчёт работы с членами банды и способа, предложенного тобой, я знаю, но мне нужно вовсе не это.
Чтобы безошибочно понять вопрос нужно просто правильно его прочитать.
Как можно имитировать использование скрипта вербовки игроком на каком-нибудь актёре.
Уточню. Я имею в виду скрипт, намертво вшитый в exe-шник игры.
Ещё раз попрошу, ответьте кто-нибудь, пожалуйста!
Если слишком сложный для понимания вопрос, упрощу
"Как можно сделать так, чтобы с актёром было то же самое, что и когда бы игрок дал ему команду войти в банду"
можно ли скриптом создать спецактёра и сделать так чтоб он входил в банду Грув?
d88, всё зависит от того, что ты имеешь ввиду. Если ты говоришь про текущую банду игрока - одно,
а если про персонажей банды Грув, ходящих по улице - совсем другое.
Но скорее всего ты о первом варианте, предложенным мной)
Чтобы в банду игрока входили ещё и доп.актёры кроме нанятых на улице, нужно увеличить макс. кол-во гангстеров в группе игрока (можно по стату, или прибегнуть к памяти), а затем добавить их как актёров в группу Player'а ($PLAYER_GROUP). Можно макс. кол-во бандитов и не изменять, только добавить нужных персонажей.
Ответьте, пожалуйста, на мой вопрос. Повторю его ещё раз.
Как можно имитировать использование скрипта вербовки игроком на каком-нибудь актёре.
Я говорю о скрипте, который срабатывает, когда ты прицеливаешься на гангстере грув и нанимаешь его в банду после нажатия GROUP_FORWARD, ещё этим же скриптом создаются маркеры на радаре и на карте и он же отвечает за устранение членов банды при удалении от них.
Ещё мини-просьба от меня. Скажите плиз, кому известно, адрес флоат стата 24 (max.health).
[---]
А, и чуть не забыл.
С НОВЫМ ГОДОМ!
Ответил, теперь спрашиваю, передал эстафетную палочку самому себе)
Как можно имитировать использование скрипта вербовки игроком на каком-нибудь актёре.
Я говорю о скрипте, который срабатывает, когда ты прицеливаешься на гангстере грув и нанимаешь его в банду после нажатия GROUP_FORWARD, ещё этим же скриптом создаются маркеры на радаре и на карте и он же отвечает за устранение членов банды при удалении от них.
d88
Сначала узнаёшь айд куррент веапона (номер текущего оружия, по-русски)) у нужного тебе актёра
потом узнаёшь модель
0781: get_weapon_with_ID $AMMU_SELECTED_WEAPON model_to $AMMU_SELECTED_WEAPON_MODEL
нагло отбираешь у актёра оружие и взамен даёшь ему вруки модель-безделушку, которую потом можно сделать невидимой.
Но это не немного не то
С таким способом актёрам не получится атаковать или что-нибудь ещё
Мож, через память изменить модель нужного оружия, в данном случае огнемёта, на никакую?
Это где-то было такое, что-то типа адреса модели для каждого оружия. Можно с этим похимичить.
У меня номер оружия находится в переменной 1@.
Как мне в самом скрпте сделать конвертацию из номера в модель (#model), но чтобы эта модель тоже была в переменной, например, 2@.
Значение переменной не может быть, например
2@ = #MINIGUN
а будет всегда числовым
2@ = 362
Так что, это примечание от тебя здесь не совсем уместно.
Вот подходящий опкод:
0781: get_weapon_with_ID $AMMU_SELECTED_WEAPON model_to $AMMU_SELECTED_WEAPON_MODEL
0781: сохранить_модель_оружия_с_ID $AMMU_SELECTED_WEAPON в $AMMU_SELECTED_WEAPON_MODEL
0376: 18@ = create_random_actor_at -1576.88 55.26 8.57
- создать рандомного актёра, только модель тоже наугад)
Seemann
А лучше всё-таки в справку СБ
[Ещё один пост]
По поводу анкоунов, кто-нить разбирался? Тестировали чё-нить? А то вдруг там жутко интересный новый опкод объявится)
@GTASA
08DD: keep_stuff_after_wasted 0 - даёт возможность оставлять оружее после того, как игрока убили
08DE: keep_stuff_after_busted 0 - оставляет оружее после того, как Карла арестовали
Справочный материал спасёт страну, ну, и ещё пару деревень; справка СБ спасёт скриптовый мир СА
[c][large]0A24: enable_military_zones_wanted_level 0[/large][/c]
малоизвестный опкод, предугадывая вопрос @GTASA добавлю ещё:
07A8: enable_area69_sam 0 // включить(1)/выключить(0) ПВО в зоне area69
09E4: enable_aircraftcarrier_sam 0 // включить(1)/выключить(0) ПВО на Авианосце в СФ
Подскажите пожалуйста, как сделать респаун копов в зоне 69 (военная база которая находится в пустыне не подалёку от заброшенного аэропорта), чтоб их было столько же, как например при пяти звёздах. И ещё, как можно сделать, чтоб когда заходишь на эту же зону, чтоб не давали звёзды розыска?
Насчёт респавна блюстителей закона -
04F8: define_police_trigger_type 3 if_player_with_wanted_level_in_rectangle 2435.2 -1741.0 2454.9 -1723.4 spawn_policeA_at 2481.0 -1707.0 headed_towards 2480.0 -1732.0 spawn_policeB_at 2481.0 -1707.0 headed_towards 2480.0 -1732.0
Вот только мне слабо понятно, зачем использовать поворот головы (headed_towards), если можно просто прописать угол. И что за несусветная величина в параметрах с headed_towards, если для этого используются оффсеты от головного мозга, например в опкоде 0834.
Можно бесконечно направлять камеру в ту точку, где находится объект.
Ещё вариант - прицепить педа к объекту и сфокусировать камеру на нём. Ну, это уже в конец замудрённо
Удовлетворяю своё желание поиграться с SAAT'ом
SCRIPT - Bank_046 (диалог из миссии где была сделка Балла и русских) - Sound_005
"Stop! Vygodu Byznes!" Ну, думаю, вы и сами поймёте - "Стоп! Выгодный бизнес!"
Смехотворное подобие на русскую речь
Да, по-моему, то что надо
А вот графа Offset (dec) за что отвечает? Это ID звука? Оффсет айда звука, тогда относительно чего?
Разрешите полюбопытствовать, почтейнейшие.
Это конечно всё хорошо, но есть ли таблицы с тем же описанием, но только ID игровых звуков.
Насчёт экспортирования саундтреков.
Есть ли какая-то таблица звучков (внутриигровых звуков относительно извлекаемых) чтобы, к примеру, достав из игры звучки, SAAT'ом не наугад тыкаться, а точно знать где и что.
А то там всё по банкам (папкам) и имена числовые, совсем отличные от звуков.
Нъльзя не согласиться с тобой, reute70. Но и знание съго завътного компонънта отнюдь не повръдитЪ скриптингу дабы отвъргнуться в случае крайнъм от нъжелатъльности разной, кой к той стати говоря, поразвълось на Руси великое множество, да и из стран заморских тоже пожаловали на такое вадиться.
Это от того, что оная команда IGNORE_UNKNOWN есть команда toggle.
И использовать её надобно - IGNORE_UNKNOWN on/off
В прилагающейся учебной грамоте (F12) описаны задачи для консоли.
Как можно заблокировать скрипт, чтоб его нельзя было декомпилировать, ну, или по крайнему чуру - очень сложно и поистине непостижимо для массовки скриптеров-новичков. Хочу использовать во избежании плагиаторства и присвоении идей скрипта, да, и как защита вообще.
Что касается добавления "неизвестного" опкода - то это решается настройками в консоле (toggle IGNORE_UNKNOWN on) и такой скрипт паче чаяния кодеров возможно открыть.
Я же слово молвлю о блокировке скрипта, чтобы никаким образом (или почти никаким) его нельзя было открыть.
Одинажды повстречал я такой скрипт - Супермэн мод. При попытке моей к декомпиляции SB зависает и не отвечает ни на какие команды.
Как можно добиться оного?
P.S.
Практикую старословие в качестве замены новых ухищрёных пришельцев русского языка из заморских речей.
вопрос: как удалить у педа референцес, при этом чтобы он атакавал актёра?
ответ: узнаёшь у жертвы педтип и делаешь hate CivMale (или CivFemale) к оному. Затем можно смело удалять сведения.
Объясню на всякий случай, почему команда для педтипа прохожих, а не для текущего педтипа агрессора. Когда референцы удаляются актёру заново даётся хэндл как простому смертному.