Kirag 39 Опубликовано 18 Марта 2009 (изменено) Можно ли заспавнить автомобиль скриптом, а не через all.spawn??? Можно, смотри мод AllSpawner А теперь вопрос основной и главный: как просмотреть посты с 15.3.2008, 18:11 по 18.3.2009, 16:51? Там же ценной информации было караул сколько! И вопросы без ответа повисли. А может и с ответом, только не проверить уже Ох, чувствую, доспрашиваюсь сейчас до бани... Изменено 18 Марта 2009 пользователем Kirag Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 39 Опубликовано 18 Марта 2009 (изменено) меченый(стрелок) Ты не упомянул еще config\gameplay\npc_profiles.xml. Там должно еще быть дописано что-то вроде: <character id="sim_default_renegade_1_default_2_sniper"> <class>sim_default_renegade_1</class> </character> character id записывается в spawn_sections.ltx, class вписывается из профиля НПС Изменено 18 Марта 2009 пользователем Kirag Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 39 Опубликовано 19 Марта 2009 В ui_main_menu.script допиши в самый конец файла: function main_menu:OnButton_credits_clicked() alife():create("decoder", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) -- собственно спавн get_console():execute("main_menu off") -- закрытие меню end Потом запусти сталкер, загрузи игру, выйди в меню и нажми кнопку "Титры". Все, декодер в инвентаре. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 39 Опубликовано 19 Марта 2009 Big.D Ничего страшного в этом нет, это вывод отладочной информации из какого-то из модов. ! Unknown command - побочный эффект вывода информации в лог. В принципе, жрать не просит, но если сильно хочешь отключить, пройдись поиском по папке scripts, поищи строчки dbg:sect_=_, dbg:vis_suit_=_ и т.д. и закомменти их. Только резервную копию сделай на всякий случай... Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 39 Опубликовано 21 Марта 2009 На локации "Саркофаг" постоянно проигрывается фоном звук. Как этот звук убрать? Файл config\scripts\sar_monolith_call.ltx, заменить строку active = sr_idle на active = nil Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 39 Опубликовано 26 Марта 2009 Что может означать лог: FATAL ERROR [error]Expression : e_entity->ID_Parent == id_parent [error]Function : xrServer::Process_event_reject [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\xrServer_process_event_reject.cpp [error]Line : 24 [error]Description : wpn_saiga_m350183 [error]Arguments : val_bandit_respawn_147872 И как эту гадость лечить? Вылет, похоже, рандомный. Оружие и НПС могут быть разными. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 39 Опубликовано 10 Мая 2009 (изменено) wolkolak,Real Wolf Честно сделать переключение предметов в ножевом и в биноклевом слотах нельзя, но можно это ограничение обойти. Решал эту задачку для ножевого слота. Принцип такой: 1) Для каждого оружия, предназначенного в ножевой слот делаем парный предмет - фейк. Тот же визуал, цена, вес, иконка, описание - в общем, все видимые характеристики. Принципиальное отличие - это не оружие, а предмет на классе антирада. Секция фейка: например нож-оружие - wpn_knife, нож-фейк - fake_wpn_knife. В инвентаре оружие от фейка можно отличить только по отсутствию у фейка полосок характеристик. 2) Нужен скрипт, проверяющий на использование предмета, на этом принципе сделан спальник в АМК. Если первые 5 символов в секции использованого предмета - fake_, значит происходит попытка переключить оружие. Пусть в слоте предмет X (оружие X), а в инвентаре используем предмет fake_Y (фейк оружия Y, в понимании игры - съедабельный объект). Тогда: 2.1) Предмет fake_Y съедается, запуская скрипт, в котором: 2.1.1) Удаляем предмет X 2.1.2) Спавним в инвентарь предмет Y, он падает в освободившийся от X слот 2.1.3) Спавним в инвентарь предмет fake_X Получаем оружие Y в слоте и предмет fake_X в инвентаре, что и требовалось. P.S. Все сказанное я делал только для ножевого слота, но аналогично делается и для бинокля. Рисовать слот и его содержимое в инвентаре даже не пробовал, на эту тему ничего сказать не могу. Ограничения такого подхода: при смене оружия не сохранется состояние оружия и количество/тип патронов в нем. Для непортящегося холодного оружия это незаметно, для огнестрельного придется продумывать еще и этот момент. Изменено 11 Мая 2009 пользователем Kirag Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 39 Опубликовано 11 Мая 2009 (изменено) Выкладываю свои наработки по смене оружия в ножевом слоте: variable_knife_slot.7z 2.2 Мб Само оружие не мое, я делал только метод замены. Делалось под чистую игру, в АМК должна быть своя функция проверки на использование предмета. Для бинокля система будет аналогичная, только вместо fake_wpn_... будет, скажем, fake_binoc_... P.S. Это должно было быть в ридми, но я затупил и забыл его сохранить перед архивацией: Смена оружия в нулевом (ножевом) слоте. Доступно три вида оружия: нож из оригинала, кулаки (автор Gosuke) и ломик (автор Бендер aka Кенни, Сталкер Портал) Ломик кривой, подправил как умел, но медицина на уровне конфигов тут бессильна Изменено 11 Мая 2009 пользователем Kirag Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 39 Опубликовано 13 Мая 2009 Адаптировал смену оружия в ножевом слоте под чистый АМК 1.4.1 и перезалил версию под чистую ТЧ 1.0004 ТЧ: http://ifolder.ru/12088596 АМК: http://ifolder.ru/12088570 Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 39 Опубликовано 14 Мая 2009 В профиле ему <start_dialog>...</start_dialog> пропиши, должно помочь. Только диалог с "приветом", наверное, надо закомментить. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 39 Опубликовано 17 Мая 2009 (изменено) Народ, как определить, какое оружие у НПС? Пробовал в xr.motivator в net_spawn вписать для начала строку: news_manager.send_tip(db.actor, "motivator_binder:net_spawn(): self.object:name()= "..tostring(self.object:best_weapon()), nil, nil, 20000) По идее, при переходе НПС в онлайн должно выдавать, что у него за оружие. На практике - nil, хотя прекрасно видно, что НПС вооружен до зубов. Если вместо best_weapon() писать weapon_in_slot(N) - выкидывает с логом [error]Arguments : LUA error: ...\s.t.a.l.k.e.r\gamedata\scripts\escape_dialog.script:171: attempt to call method 'weapon_in_slot' (a nil value) Как вариант, можно ли определить оружие НПС в момент спавна по респавнеру? Вот же я дебил! Kolmogor спасибо за вразумление! Только почему-то все равно nil выдает... Изменено 17 Мая 2009 пользователем Kirag Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 39 Опубликовано 18 Мая 2009 (изменено) Подскажите, как перевести строковую переменную (например а="125") в целое число? b = tonumber( a ) Само собой, a должно быть числом, содержащимся в строковой переменной. Обратная операция: c = tostring( b ) Здесь с аргументом проще, возьмет даже nil wolkolak В принципе, может получиться что-то подобное и с таймером. Выстави аптечке в конфиге лечение 0, добавь реально лечащую аптечку. По съедению фиктивной аптечки включается таймер, по завершении которого выдается реальная лечилка и тут же скриптом съедается. Правда, здоровье восстановится все равно мгновенно, но через некоторое время после съедания аптечки с точки зрения геймплея. Изменено 18 Мая 2009 пользователем Kirag Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 39 Опубликовано 18 Мая 2009 banderos rs_stats позволяет получить координаты x,y,z. Их достаточно для телепортации командой db.actor:set_actor_position(vector():set (x,y,z)) Сначала сними эти координаты, потом подставь их в эту команду, прыгни, куда надо и сможешь снять уже поные данные о нужной точке. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 39 Опубликовано 19 Мая 2009 По какому принципу определяются предпочтения НПС, каким оружием пользоваться, если параметры ef_main_weapon_type и ef_weapon_typе одинаковые? Ситуация такая: Есть MP-5, STEYR AUG и XM-8. MP-5 на первый слот, остальные на второй. MP-5 чуть скорострельнее и легче, но проигрывает в точности и мощности. В mp_ranks MP-5 стоит в 0 ранге, все остальное в 4. Тем не менее, если НПС берет в руки MP-5, его уже не вышибить оттуда, пока он жив. При попытке продать ему STEYR или XM он покупает, берет в руки, а потом сбрасывает на землю и достает свой MP-5. Патроны к STEYR и XM у НПС есть абсолютно точно, к MP-5 - далеко не факт, но тем не менее. Никакие моды на АИ не установлены. Может, кто-нибудь уже экспериментировал на эту тему и получил какой-то внятный результат? Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 39 Опубликовано 19 Мая 2009 Rekviem777 Можно заменить электрохимеру на сильную химеру. Для этого в bind_monster.script закомменти строки if obj:section()=="electro_chimera" and time_global()>(self.charge_time or 0)+3000 then amk_particle.amk_particle({particle="anomaly2\\electra2_blast",pos=obj:bone_position("bip01_spine"),sound="anomaly\\electra_blast1"}) local dist = db.actor:position():distance_to(obj:bone_position("bip01_spine")) if dist < 20 then local h = hit() h.impulse = 0 h.draftsman = db.actor h.direction = vector():set(0,0,0) h:bone("bip01_spine") h.power = 1/dist h.type = hit.strike db.actor:hit(h) h.power = 15/dist h.type = hit.shock db.actor:hit(h) end self.charge_time=time_global() end Это отключит разряд. Чтобы отключить партиклы на электрохимере, в m_chimera.ltx закомменти в секции электрохимеры строки bones_particles = electro_chimera_particles immunities_sect = electro_chimera_immunities Этого должно хватить Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 39 Опубликовано 20 Мая 2009 (изменено) извините за повтор, может, не заметили просто где можно найти колбак на смерть гг и колбак на спавн непися? По поводу колбэка на смерть ГГ: Смерть ГГ означает, что здоровья осталось 0 или меньше (на всякий случай). В bind_stalker.script в update пишем: if db.actor.health <=0 then <действия в случае смерти ГГ> end Колбэка на спавн непися не нашел, хотя самому нужен. Есть колбэк на переход НПС в онлайн - xr_motivator.script, net_spawn. Может, с помощью этого удастся решить твою задачу... Или кто-то из более грамотных скриптеров укажет нам нужное место Изменено 20 Мая 2009 пользователем Kirag Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 39 Опубликовано 21 Мая 2009 Коллбек на спавн неписей (точнее, перегруженная функция класса se_stalker). Файл se_stalker.script function se_stalker:on_spawn() ... end Как понять "перегруженная функция"? И главный вопрос: Хочу, чтобы каждому сталкеру сразу же при спавне выдавался ствол (для определенности ПМ, выбор оружия, думаю, сделать смогу). По идее, спавн надо прописывать как раз в se_stalker:on_spawn(). Перепробовал несколько вариантов, результат один - вылет в самом начале загрузки новй игры. Изначально было написано give_weapon.slot1(self.object) Лог - LUA error: ...s\s.t.a.l.k.e.r\gamedata\scripts\give_weapons.script:255: attempt to index local 'npc' (a nil value) И сама функция (адекватно работала при вызове из xr_motivator.script, net_spawn) function slot1(npc) alife():create("wpn_pm", npc:position(), npc:level_vertex_id(), npc:game_vertex_id(), npc:id()) alife():create("ammo_9x18_fmj", npc:position(), npc:level_vertex_id(), npc:game_vertex_id(), npc:id()) end Как надо писать в этом случае? Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 39 Опубликовано 21 Мая 2009 Gonarh Увы, ни разу. Так я тоже пробовал. Выдает вот такое: LUA error: No such operator defined Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 39 Опубликовано 24 Мая 2009 Есть ли в конфигах оружия параметры, отвечающие за скорость поворота ГГ с этим оружием в руках без зума, или это все правится в ogf? Если речь идет о том, чтобы с каждым оружием ГГ крутился с разной скоростью, настройки мышки не спасут. В конфиге есть параметр control_inertion_factor, он влияет на скорость поворота с оружием. Для себя установил этот параметр равным корню квадратному из массы оружия (где не было - дописал), разница между легким пистолетом и тяжеленным пулеметом видна невооруженным глазом. С пистолетом крутится, как юла, с пулеметом такое фиг получится. Проверял более точно, перемещал мышку по столу на фиксированное расстояние и считал обороты ГГ. Результат точно не помню, но очень заметный, явно не погрешность эскперимента. Единственно, не знаю точно, изменяет ли этот параметр чувствительность мышки или ограничивает максимальную скорость поворота. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 39 Опубликовано 25 Мая 2009 (изменено) Подскажите, как скриптом установить прицел на оружии. Оружие в руках, в активном слоте. Прицел на него точно ставится (взял АК-74 для опытов) Пробовал вот такой функцией: function scope() local wpn = db.actor:item_in_slot(db.actor:active_slot()) if wpn then local wid = wpn:id() local wdat = amk.get_weapon_data(alife():object(wid)) local af = wdat.addon_flags local uaf = wdat.updaddon_flags --news_manager.send_tip(db.actor, " addon_flags: "..tostring(af).." updaddon_flags: "..tostring(uaf), nil, nil, 20000) wdat.addon_flags = af + 1 wdat.updaddon_flags = af + 1 local wobj = alife():object(wid) --local wobj = alife():create(wpn:section(), db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) amk.set_weapon_data(wdat,wobj) end end Результат - ноль. Есть ли прицел в инвентаре - не имеет значения (да и не должно по идее), пробовал и так и так. Похоже, ничего не записывается, проверял двумя вызовами подряд, addon_flags не изменяется на втором вызове, хотя должен бы. В скрипте очепятку подправил, где в fill_item_packet(ret,stpk,updpk) вместо writevu8uN(pk,v) (как по логике и должно бы быть, запись все-таки) вызывалось readvu8uN(packet,n) (с закономерным вылетом LUA error: d:\games\s.t.a.l.k.e.r\gamedata\scripts\amk.script:2061: 'for' limit must be a number), но на большее мозгов у меня не хватило. Что и где еще не так - не знаю, нет-пакеты меня вырубают начисто. Или я в принципе неправильно делаю? Запасной вариант с выдачей оружия с уже установленным (но съемным) прицелом тоже не сработал (в скрипте закомменченая строка) - выдается оружие, но без всего. Выручайте, люди добрые! Изменено 25 Мая 2009 пользователем Kirag Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение