Darkscape 0 Опубликовано 13 Октября 2011 Поделиться Опубликовано 13 Октября 2011 1. Нет, как спавнить я знаю, мне надо его удалить. Инфопоршнем, я не так выразился, при наличии инфопоршня. Можешь поподробней про "reliase"? 2. т.е при вызове ПДА (кнопкой P например) сам ПДА не открывать, а запускать скрипт Ссылка на комментарий
amik 253 Опубликовано 13 Октября 2011 Поделиться Опубликовано 13 Октября 2011 (изменено) Darkscape Сам не в курсе как да что. У меня в папке по урокам валялось... Удалим предмет из игры (или сталкера из игры(Удалим Волка)): function dell_kluk_final() local se_obj = alife():object("esc_wolf") if se_obj then alife():release(se_obj, true) end end Изменено 13 Октября 2011 пользователем ColR_iT Используем теги... Мой архив Сталкером не занимаюсь. Ссылка на комментарий
7.9 174 Опубликовано 13 Октября 2011 Поделиться Опубликовано 13 Октября 2011 (изменено) Darkscape 2. т.е при вызове ПДА (кнопкой P например) сам ПДА не открывать, а запускать скрипт 1. Освободить клавишу "Р" в user.ltx 2. используя, либо "кейлогер", либо "правленную длл", ловить нажатие "кнопки Р" и запускать скрипт. Изменено 13 Октября 2011 пользователем 7.9 всё легко Ссылка на комментарий
Scarabay 98 Опубликовано 13 Октября 2011 Поделиться Опубликовано 13 Октября 2011 У меня схожий вопрос с товарищем Darkscape, только мне нужно вообще вырезать ПДА, чтобы не открывался при нажатии кнопки Р. Вариант Освободить клавишу "Р" в user.ltx не катит. Еще один вопрос - можно ли заюзать слоты болтов и бинокля для оружия? Если это не возможно, то как бы их отключить (болты, бинокль)? Спасибо) Мой YouTube-канал Ссылка на комментарий
Charsi 440 Опубликовано 13 Октября 2011 Поделиться Опубликовано 13 Октября 2011 Darkscape,можно обойтись и без кейлоггера.При открытии ПДА будет выдан инфопоршень "ui_pda".При его получении нужно отловить активное окно и закрыть его.При закрытии окна ПДА будет выдан инфопоршень "ui_pda_hide".B уже при его получении запускай свой скрипт.Это у меня на ТЧ работает,в ЧН/ЗП не проверял. Scarabay,чтобы "отключить" - болт и бинокль удали из инвентаря. Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
*Shoker* 322 Опубликовано 13 Октября 2011 Поделиться Опубликовано 13 Октября 2011 Artos Я видимо не до конца разобрался в чтении UPDATE_ пакетов. Тестировал на FN2000 в ЧН, класс WP_GROZA, это ("CWeaponGroza", "se_item.se_weapon_magazined_w_gl", "WP_GROZA", "wpn_groza_s") Разбирал пакет так - local p = sm_net_utils.Get_Data_WeaponGL(sobj, true) В итоге: * p.updgrenade_mode = 238 * p.updcondition = 226 Где я мог ошибиться? Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Artos 99 Опубликовано 13 Октября 2011 Поделиться Опубликовано 13 Октября 2011 (изменено) Darkscape Во-первых, следует уточнять версию игры при подобных вопросах, реализация которых различна в ТЧ и ЧН/ЗП. Во вторых, ... судя по твоей неосведомленности про 'reliase' 'release', вероятно ты замахиваешься на вопрос, которы пока не 'по зубам'. Может стОит пока не вот так сразу кастрировать КПК, а понемногу приблизиться к пониманию что и как? Краткий ответ: Вызов интерфейса КПК сопровождается выдачей тех или иных инфопоршней (в ТЧ - одни, в ЧН/ЗП - несколько иначе). Отследив коллбэк на появление такого инфопоршня можно принудительно 'гасить' окно КПК и вызывать свой скрипт/функцию. Все это довольно корявенько, т.к. мелькание окна КПК все же будет чуток заметным. Рузумнее, как дал совет 7.9, отключить в биндере клавиш использование кнопок для КПК ... Scarabay, и чем же не катит освоббождение клавиши от КПК? Тут нет кашперских, чтобы читать ваши мысли/возражения. Ну а заюзать то можно слот бинокля, выправляя конфиги оружия под этот слот, но ИМХО это уже для садомазохистов ... Болтовый слот врядли удастся задействовать, все же это движковая фича. Изменено 13 Октября 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Scarabay 98 Опубликовано 13 Октября 2011 Поделиться Опубликовано 13 Октября 2011 Charsi, спасибо. Artos, можно через скрипт "разбиндить" кнопку открытия ПДА? И еще.. Подскажите, пожалуйста, скрипт проверки на отсутсвие патронов (всех видов, которые юзает ствол) для оружия из слота, например пистолетного. Там, как я понимаю, должно быть чтение видов патронов из конфига оружия.. Мой YouTube-канал Ссылка на комментарий
Darkscape 0 Опубликовано 13 Октября 2011 Поделиться Опубликовано 13 Октября 2011 amik, спасибо Charsi, а как "отловить активное окно"? Artos, если я собираюсь это делать, значит понимаю что да как. А про reliase я и правда впервые слышу, хотя прочитал, наверно, 80% вики по сталкеру Ссылка на комментарий
*Shoker* 322 Опубликовано 13 Октября 2011 Поделиться Опубликовано 13 Октября 2011 (изменено) Scarabay > можно через скрипт "разбиндить" кнопку открытия ПДА? Можно, с помощью работы скриптово с консолью, сделать в скриптах вызов такого get_console():execute("unbind active_jobs"), и тогда кнопка PDA будет сброшена. Только учти, что люди, после удаления твоего мода, должны будут вручную занаво установить кнопку открытия ПДА в опциях. ЗЫ: active_jobs - для ЧН, если не работает в ЗП/ТЧ то возможно там по другому называется действие, но маловероятно. Изменено 13 Октября 2011 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Artos 99 Опубликовано 13 Октября 2011 Поделиться Опубликовано 13 Октября 2011 Darkscape, сорри, очепятался: reliase -> release, но сути моего ответа не меняет. Добавлено через 4 мин.: *Shoker*, мне непонятно, какое значение и для чего ты ожидаешь от 'updgrenade_mode' для FN? Если у него штатный подствольник - вообще для чего читать этот параметр? Если у тебя чисто познавательный интерес - то сейчас именно не готов к ответам по нюансам в ЧН с нет-пакетами, т.к. коды игры/мода у меня не в рабочем состоянии. Если важно - вернемся позже или еще кто ответит ... Добавлено через 4 мин.: Scarabay, функционал по проверке патронов различным оружием и его наличие/отсутствие у НПС (иль актора) можно найти например в 'amk_offline_alife.script'. Там при продаже проверяется имеющееся оружие, наличие к нему патронов и 'беспатронное' иль 'нелучшее' - продается. "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
*Shoker* 322 Опубликовано 13 Октября 2011 Поделиться Опубликовано 13 Октября 2011 (изменено) > *Shoker*, мне непонятно, какое значение и для чего ты ожидаешь от 'updgrenade_mode' для FN? Хм, по моему ещё вчера мы обсуждали возможность отслеживать то, что у оружия в ДАННЫЙ момент включён режим гранатометания. Чего я ожидаю, ну точно не того, что сейчас выходит. Для чего читать? Определение выстрела из оружия, был ли выстрел из гранатомёта или из обычного режима. PS: Можешь выслать последнию версию m_net_packets.script? Зарание спасибо. О updgrenade_mode - http://www.amk-team.ru/forum/index.php?s=&...st&p=634928 Изменено 13 Октября 2011 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
WareZ 0 Опубликовано 13 Октября 2011 Поделиться Опубликовано 13 Октября 2011 Какой функцией можно убрать предмет из инвентаря? Поиск ничего не дал. Заранее спасибо. Ссылка на комментарий
7.9 174 Опубликовано 13 Октября 2011 Поделиться Опубликовано 13 Октября 2011 *Shoker*, Scarabay ... get_console():execute("unbind active_jobs"), и тогда кнопка PDA будет сброшена. Только учти, что люди, после удаления твоего мода, должны будут вручную занаво установить кнопку открытия ПДА в опциях.Никого напрягать не надо - как "сбросите", так и опять "набросите". всё легко Ссылка на комментарий
Artos 99 Опубликовано 13 Октября 2011 Поделиться Опубликовано 13 Октября 2011 (изменено) *Shoker*, держи последний: m_net_utils_111013 Примечание: Не советую что-то менять/переставлять. Модуль достаточно автономен и универсален, чтобы работать в любом моде (при разумном использовании). По остальному чуть позже отвечу ... Изменено 13 Октября 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
*Shoker* 322 Опубликовано 13 Октября 2011 Поделиться Опубликовано 13 Октября 2011 (изменено) Artos, или любой, кто может ответить: Хотел ещё кое что уточнить по разбору нет-пакета, вот у тебя в разборе пакета оружия есть такое: if oPu then tT.updgrenade_mode = oPu:r_u8() --/#+# tT.updcondition = [b]oPu:r_u8()[/b] ... Но в ACDC для ЧН: use constant upd_properties_info => ( { name => 'upd:condition', type => '[b]q8[/b]' }, # 0xec { name => 'upd:weapon_flags', type => 'u8' }, # 0x190 (0x1b0) .... ); Под q8 я нашёл: function w_float_q8(number, number, number); function r_float_q8(number&, number, number); На первый взгляд кажется логичным использовать их, ведь condition число как раз с плавающей запятой. Но при замене на tT.updcondition = oPu:r_float_q8() Биндер игрока виснет. Судя по lua_help туда надо передавать и принимать больше параметров (3 number) Но я сам не могу разобраться. Может это как то влияет на неправильный разбор upd-пакета? За скрипт спасибо, проверю с ним, возможно это я что то напортачил. Изменено 13 Октября 2011 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Artos 99 Опубликовано 13 Октября 2011 Поделиться Опубликовано 13 Октября 2011 (изменено) *Shoker*, ты полез туда, где нужны уверенные знания, а не погадалки. r_u8() - это метод чтения одного байта (как есть) r_s8() - чтения одного байта с учетом знака (число со знаком) r_float() - чтение 4-х байт (число с плавающей точкой) q8,h8, ... типы значений однобайтового числа, а не указание на используемый метод чтения/записи. *Shoker*: ведь condition число как раз с плавающей запятой Уже ранее обращал твое внимание на недопустимость перемешивать все в кучу! Параметр 'condition' для всех предметов читается как: tT.condition = oPs:r_float(). Чем тебе это не нравится или что смущает? И ты так и не ответил, что же такое в твоем понимании однобайтовые(!) параметры 'upd:condition' и 'upd:grenade_mode' и каковы же значения для них ты ожидаешь? Пытаться читать вместо одного байта четыре - даже самым "правильным" методом глупо и кроме ошибок или зависание ничего не принесет. Изменено 13 Октября 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
*Shoker* 322 Опубликовано 13 Октября 2011 Поделиться Опубликовано 13 Октября 2011 (изменено) > *Shoker*, ты полез туда, где нужны уверенные знания, а не погадалки. Метод проб и ошибок никто не отменял Попробовать всегда можно, потому и уточнил. > Параметр 'condition' для всех предметов читается как: tT.condition = oPs:r_float(). Чем тебе это не нравится или что смущает? Меня смущает наличие upd:condition, для чего он тогда нужен, и что обозначает? Собственно говоря его я вывожу лишь для того чтобы проверить корректную работу разбора UPDATE_ пакета, и только потому-что оно шло первым-вторым в свойствах upd_пакета оружия, а не чтобы получить текущее состояние оружия. Но если этот параметр обозначает не состояние оружия, то тогда почему имеет такое название, и для чего нужен? > И ты так и не отвтеил, что же в твоем пониманиее такое однобайтовые(!) параметры 'upd:condition' и 'upd:grenade_mode' и каковы же значения для них ты ожидаешь? Названия этим параметрам придумывал не я, а те, кто разбирали нет-пакеты. Ориентируясь по названиям, я ожидаю, что upd:grenade_mode вернёт мне что то, связанное с гранатомётом. Но вместо этого он каждый раз при каждом save\load (как и upd:condition) возвращает разные числа, которые изменяются случайным образом лишь при следующей загрузке, а их значения не имеют никакого смысла . Тут уже я должен задать вопрос, что из этих параметров я могу получить полезное, что мне от них ожидать, и для чего они вообще существуют? Ибо пока у меня выходит лишь бессвязный набор случайных цифр. PS: С новым скриптом ситуация аналогичная, разве что он теперь чаще просто нули возвращает в выводимых мною upd-параметрах. ^^^ Изменено 13 Октября 2011 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Artos 99 Опубликовано 13 Октября 2011 Поделиться Опубликовано 13 Октября 2011 (изменено) *Shoker*, конечно же метод проб и ошибок никто не отменял, но ... что можно сказать о таком пробовальщике, который заведомо знает что перед ним грабли и, наступая на них, задается вопросом: "А отчего у меня на лбу каждый раз как наступаю на грабли - шишка?" Нет-пакет объекта строго упорядоченная последовательность байт, формат(методы) чтение/запись которых строго фиксированы! Попытка считать иным методом или иное кол-во байт - ошибка. Попытка записать иным методом или иное кол-во байт - фатальный еррор. Хочется пробовать - никто не возражает, но не пость о своих 'шишках' сообщения в топик. Ответ всегда будет един - не наступай на грабли! Конечно названия параметров о чем то говорят, но ... следует иметь ввиду что: - их истинное значение знает только тот, кто их придумал, т.е. разработчики. Мы же можем только предполагать. - наименования можно давать какие в голову взбредет. И ACDC и прочие читальщики/писальщики нет-пакетов оперируют ими же заданными наименованиями, которые никак не завязаны на движке или иных независимых ресурсах. Ведь и на входе и на выходе - голая послежовательность байт без каких-либо имен/названий. - давать функционально значимое наименование - правило хорошего тона в программировании, но ... и нередко лень приводит к появлению 'bla_bla_bla' и сложно выразить одно-дву-сложно функционал. Нередко в наименовании фигурирует то, что имеет некое отношение, а не конкретное определение. - и т.д. Так что читая, все же не возводи прочитанное в 'истину', и тем более не делай выводов о сути из названия. Нередко обертка не соответствует сути. Изменено 13 Октября 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
*Shoker* 322 Опубликовано 13 Октября 2011 Поделиться Опубликовано 13 Октября 2011 (изменено) sm.mylog("ShotX = "..scnt) sm.mylog(ammo_name) sm.mylog(packet.updgrenade_mode) -- = oPu:r_u8() --/#+# sm.mylog(packet.updcondition) -- = oPu:r_u8() sm.mylog(packet.updweapon_flags) -- = oPu:r_u8() sm.mylog(packet.updammo_elapsed) -- = oPu:r_u16() sm.mylog(packet.updaddon_flags) -- = oPu:r_u8() sm.mylog(packet.updammo_type) -- = oPu:r_u8() sm.mylog(packet.updweapon_state) -- = oPu:r_u8() sm.mylog(packet.updweapon_zoom) -- = oPu:r_u8() sm.mylog(packet.updcurrent_fire_mode) -- = oPu:r_u8() sm.mylog("ENDS") Результат: ! [LUA][ERROR] [07:10] ShotX = 1 ! [LUA][ERROR] [07:10] ammo_5.56x45_ss190 ! [LUA][ERROR] [07:10] 32 ! [LUA][ERROR] [07:10] 116 ! [LUA][ERROR] [07:10] 104 ! [LUA][ERROR] [07:10] 29545 ! [LUA][ERROR] [07:10] 32 ! [LUA][ERROR] [07:10] 32 ! [LUA][ERROR] [07:10] 115 ! [LUA][ERROR] [07:10] 101 ! [LUA][ERROR] [07:10] 116 ! [LUA][ERROR] [07:10] ENDS Бред же какой то... Изменено 13 Октября 2011 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти