Перейти к содержанию

ian98

Сталкеры
  • Публикаций

    833
  • Зарегистрирован

  • Посещение

Весь контент ian98

  1. Крёстный какому делу? Дайрект икс 8 2000 года выпуска. Вот и по делу тебе.
  2. На виндоус 98 или хп зверь?
  3. Помнится я как-то случайно наклацал подобное в году 2021. Апгрейды-то все, но модом это не совсем предусмотрено. По крайней мере тогда так было. Апгрейды, кстати, сразу все открыты или как п в оригинале надо поставить апгрейд а, чтобы открыть б и с?
  4. в пабге с такой один раз топ 1 брал. с двумя такими. повезло отряду нашему
  5. разобрался сам случайным образом, на радостях аж поделюсь. Может столкнется кто. В общем, на ОГСР вырезали калбеки на выстрел, их нет, но есть калбеки на нажатие клавиши и если нужен выстрел, то там можно его отследить. Да, корректно отследить так можно лишь одиночный выстрел. В принципе мне этого достаточно, но все-таки решение не универсальное далеко. function actor_binder:on_key(key, bind) -- нажатие клавиши local weapon = db.actor:active_item() if weapon and isWeapon(weapon) then local ammo_in_magazine = weapon:get_ammo_in_magazine() -- обязательно проверять есть ли в пушке патроны local ready = weapon:get_weapon():ready_to_kill() -- нельзя давать срабатывать функции во время доставания оружия из кобуры local wnd = level.get_inventory_wnd() -- окно инвентаря local wnd2 = level.get_car_body_wnd() -- окно обыска трупов и ящиков. Нельзя давать функции работать с этими окнами. if bind == key_bindings.kWPN_FIRE and ready then if (ammo_in_magazine==0) or wnd:IsEnabled() or wnd2:IsEnabled() then return end ... end end end
  6. N42 Подробнее, вот у нас есть задание, любое, от убить сталкера(сайдквест) до отключить антенны выжигателя(сюжетка). Квесты подобные сопровождаются меткой на карте, чтобы игрок знал куда ему идти. Я хочу, если один из таких квестов активный, получить координаты такой метки. На самом деле, необязательно даже выдавать координаты метки прям активного квеста(в табе), можно одного из активных. Мне кажется второе было бы легче сделать. Еще, может знаешь, как пользоваться send_event_key_press(number)? Из движка огср функция. Я пробовал так level.send_event_key_press(28), но ничего в игре не произошло. Возможно я просто не понял как это работает в принципе... Я думал и продолжаю так думать, что функция вместо игрока нажимает на кнопку. Этого бы мне и хотелось изобразить в своих задумках.
  7. Prostomod это из тч, но в зп примерно также по идее можно убрать. character_community() мб вместо community(), если не сработает. клсиды могут быть разными. Если нужно на конкретном уровне, то, возможно(я скрипты пишу наугад), можно сделать условие... А вообще пофиг, можно просто три разных функции для каждого лвл, наверное хех function delete_npc() for a = 1, 65534, 1 do local sobj = alife():object( a ) if sobj and is_stalker( sobj ) and sobj:alive() and (level.name() == "zaton") not sobj:community() == "stalker" then alife():release(sobj, true) end end end function is_stalker( sobj ) return sobj:clsid() == clsid.script_stalker end
  8. MawrakудностейMawraMawrakуMawrakуMawrakудностейM(лаги с телефона забейте) Автору темы. Получилось? Разобрался?
  9. N42 не знаю как лучше. Где правильнее и удобнее. Если объектов к метке привязано несколько, то можно и рандомный из них. Тут я тоже не знаю просто как это работает и где почитать об этом. Ну я и не искал пока особо, если честно. Задание активное, если есть такая возможность. Координаты метки на карте никак, но на глобальной карте можно? Я не понимаю разницы между картой и глобальной картой.
  10. N42 а в чем разница глобальной карты от мини карты? Мне нужна метка, например, которая вешается квестом и указывает на место его прохождения.
  11. Можно как-то получить координаты отметки на задание из pda? Отследить по Стори ид? И просто получить координаты через :position()?
  12. N42 спасибо. я в принципе был уверен на 99.99%, но все-таки далек от темы. уточнил.
  13. На обычном движке, по-моему, никак. Там нельзя вязать на кнопки скрипты. Только на кнопку таб, я читал где-то, но это обманка. Да и это одна кнопка всего. А вообще, да, это должен быть перебор инвентаря. Примерно такое. Работает точно на огср двигле. Там есть специальный калбек на нажатие клавиш local obj for i = 0, db.actor:ruck_count()-1 do obj = db.actor:item_in_ruck(i) if obj and isWeapon(obj) and not obj:clsid() == clsid.wpn_grenade_rgd5 and not obj:clsid() == clsid.wpn_grenade_f1 and not obj:clsid() == clsid.wpn_binocular and not obj:clsid() == clsid.wpn_knife then -- тут можно покрасивее, но мне без подсказок не построить табличку. не помню я. я бы вообще создал в _g копию isWeapon без ножа и гранат с биноклем. Хотя вроде бы ножи и бинокли не должны быть в рюкзаке, но мало ли. db.actor:unload_magazine(obj) end end
  14. if (math.random() < test_complete) then something_test() return end Так можно делать? Я имею ввиду при соблюдении условий функция something_test воспроизведется нормально? а все, что под этой строкой не выполнится?
  15. I am dead можешь помочь мне его в bind_stalker подключить?) А то я как-то пробовал и вылетала игра. Ничего не получалась. Последний огср у меня движок. Ещё вопрос, может знаешь, оригинальная Вики по движку давно не обновляется с формулировкой "Знающие и так все посмотрят в диздоках". В общем, где их смотреть-то эти диздоки можно? Скачал я дебаг версию движка, это оно, это диздоки?
  16. N42 среди клсидов просто нашелся такой в луа хелпе по огср, вот и добавил. Попробую скрипт хели. Кстати, заработало! Такой вопрос, клиентский и серверный объекты. Клиенсткий это всегда в алайфе, а серверный это ... все сразу? или в оффлайне?
  17. N42 как я понял, сделал так, ничего не изменилось. Все так же висят не реагируют. function crash() for a = 1, 65534, 1 do local sobj = level.object_by_id(a) if sobj and is_helicopter( sobj ) then local heli = sobj:get_helicopter() heli:Die() end end end
  18. N42 Это я понял. Сейчас сделал чет типо такого. Игра не вылетает, но и не происходит с ним ничего. -- spawn function heli_spawn() local pos = db.actor:position() local miss = 50 local target = vector():set(pos.x, pos.y + miss, pos.z) spawn.heli(pos.x, pos.y + miss, pos.z, db.actor:level_vertex_id(), db.actor:game_vertex_id(), "") start_timer_aoff() end -- crash function crash() for a = 1, 65534, 1 do local sobj = alife():object( a ) if sobj and is_helicopter( sobj ) and db.actor:position():distance_to ( sobj.position ) <= 150 then local heli = sobj:get_helicopter() heli:Die() end end end function start_timer_aoff() local iTimer = time_global() + 5000 local function check_timer() return time_global() > iTimer end level.add_call(check_timer, crash) end function is_helicopter( sobj ) return sobj:clsid() == clsid.helicopter end
  19. N42 С конфигом не получилось. Такой же вылет. Ладно уж, проспавнить можно и пакетом. Вопрос, как сбивать-то? Не получается у меня что-то.
  20. N42 пытаюсь проспавнить вертолет :( local pos = db.actor:position() local miss = 50 local target = vector():set(pos.x, pos.y + miss, pos.z) alife():create("helicopter", target, 1, db.actor:game_vertex_id()) Получаю вылет: [error]Expression : motion_ID.valid() [error]Function : CKinematicsAnimated::ID_Cycle [error]File : D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\Layers\xrRender\SkeletonAnimated.cpp [error]Line : 195 [error]Description : ! MODEL: can't find cycle: [error]Arguments : $editor Получилось проспавнить через пакет. Если кому надо будет. Файл закрепил. spawn.heli(pos.x, pos.y + miss, pos.z, db.actor:level_vertex_id(), db.actor:game_vertex_id(), "") Только у вертолета вообще нет звука. Сейчас попробуем сбить. spawn.script