-
Число публикаций
618 -
Регистрация
-
Последнее посещение
-
Дней в топе
1 -
AMKoin
37 [Подарить AMKoin]
Весь контент пользователя Nazgool
-
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
В том то и дело, что это не работает для окна, где находятся фразы ГГ. Добавлено через 33 мин.: В .хml-ях есть какой то параметр "что-то там_mode" для записи в несколько строк, и он должен равняться единице. Может кто вспомнит? -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
qwertyuiop, в 3.9.10 Sr_timer (Настройка логики) написано же : type - тип счетчика, инкриментирующий(inc) или декриментирующий(dec). Если поле не задано - счетчик будет инкриментирующий декриментирующий - отсчёт в обратном порядке -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
Monnoroch я снова не понял - вопрос снят или нет? На всякий случай вот вариант : x = str:gsub("(%a-\\.+\\.+)", "[[%1]]") str - поменяй на свою переменную, в которую получил строку из конфига. -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
Monnoroch подробнее объясни, плз? Тебе ко второй строке дорисовать скриптом квадратные скобки, чтобы было как в первой? -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
TREWKO, можно так : flag = true function ***() if flag then ... flag = false end end -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
tab_info = {'info_1','info_2','info_3','info_4','info_5'} function rnd_info() math.randomseed(time_global()) math.random() local rnd_pos = math.random(#tab_info) db.actor:give_info_portion(tab_info[rnd_pos]) table.remove(tab_info,rnd_pos) end -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
Gonarh Всё, я полностью признАю свою неправоту, если вас не затруднит рассказать мне, как(?) неработающий код, вернее отработанный один раз за всю игру, может привести "к вылетам или битию сейвов" -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
Согласен. Вот поэтому я и написал "неэстетично", но не невозможно. -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
Эта проверка изначально поставлена туда разрабами, ничего нового, кроме вызова спавна внутри этого блока, не добавляется. Этот блок срабатывает один раз при старте игры, а далее, при следующих апдейтах, он просто игнорируется, т.к. не проходит оригинальная проверка if NOT ... InfoPortion уже оказывается выдан после первого апдейта. -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
О какой проверке идет речь? Вызов ставить внутри уже упомянутого блока if ... еnd. -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
malandrinus, понимаю что вспоминать может уже не к месту, но только увидел, и не могу не ответить на ваш пост 3877. Возможно вы хотели сказать что такой способ не эстетичен? Но так делать можно! Не мне же вам объяснять, что апдейт будет "обрезать" секцию if not has_alife_info("storyline_actor_start") ... end после получения вышеупомянутой infoportion. И раз уж такая запись существует, то почему не воспользоваться ею и не поставить тот же одноразовый спавн в начале игры на неё? -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
Вызов скрипта поставь после строчки _G.g_start_avi = true в функции actor_binder:update(delta) файла bind_stalker.script -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
По крайней мере я убедился что это не случайность. Сколько раз был на Болотах - ходил только по воде. Ни тебе радиации, ни (самое главное) монстров. Так что нужно сказать Архаре что есть такая недоработка. -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
Да, поспешил. Измени строку : local tmpw = amk.spawn_item_in_inv("wpn_pkm" ) на local tmpw = amk.spawn_item_in_inv(weapon:section()) -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
gamedata\scripts\bind_stalker.script Функция function actor_binder:update(delta) Сразу ниже неё пиши вызов в формате : название_файла.название_функции. Можешь написать эту функцию в любом файле из папки scripts, а можешь создать свой файл и назвать скажем my_script и написать там. Должно быть так : function actor_binder:update(delta) my_script.check_armor() ... -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
Friday13 в биндере эктора конечно. -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
max_max_08 Тогда так : function check_armor() local armor = db.actor:item_in_slot(6) local weapon = db.actor:item_in_slot(2) if db.actor:active_slot()==2 and weapon then local tmp if armor then tmp = armor:section() else tmp = "none" end if (not string.find(tmp, "exo" )) and (weapon:section()=="wpn_pkm" or weapon:section()=="wpn_m60" or weapon:section()=="wpn_minigun") then db.actor:drop_item(weapon) local tmpw = amk.spawn_item_in_inv("wpn_pkm" ) db.actor:transfer_item(weapon,db.actor) alife():release(tmpw) news_manager.send_tip(db.actor,"Невозможно взять пулемёт в руки без экзы",nil,nil,10000) end end Вообще-то этой фунцией я не пользовался. Юзал эту : function check_armor() local wpn,arm local armor = db.actor:item_in_slot(6) local weapon = db.actor:item_in_slot(2) if weapon then wpn = weapon:section() else wpn = "no_weapon" end if armor then arm = armor:section() else arm = "no_armor" end if string:find(wpn,"wpn_название") or string:find(wpn,"wpn_название") or string:find(wpn,"wpn_название") then -- через 'or' пиши сколько нужно стволов if (not string.find(arm, "exo" )) then db.actor:drop_item(weapon) local temp = alife():create("wpn_ak74",db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),d b.actor:id()) db.actor:transfer_item(weapon,db.actor) alife():release(temp) news_manager.send_tip(db.actor,"Невозможно взять пулемёт в руки без экзы",nil,nil,10000) end end end -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
Вот например. Нельзя взять ПКМ, если не надета экза. Изменишь где что нужно : function check_armor() local armor = db.actor:item_in_slot(6) local weapon = db.actor:item_in_slot(2) if db.actor:active_slot()==2 and weapon then local tmp if armor then tmp = armor:section() else tmp = "none" end if (not string.find(tmp, "exo" )) and weapon:section()=="wpn_pkm" then db.actor:drop_item(weapon) local tmpw = amk.spawn_item_in_inv("wpn_pkm" ) db.actor:transfer_item(weapon,db.actor) alife():release(tmpw) end end -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
Возможно я понял не правильно, но не с подобной ли проблемой сталкивался Red75 в первоначальной версии "Напарников", когда НПС не подчинялись новой схеме? Если да, то причина ведь была в том, что нужно было установить состояние с помощью state_mgr.set_state(). И в этом случае, если сравнить статью на Wiki с окончательным вариантом, где эта проблема была решена, возможно понять как именно это было сделано. -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
60449 - level_vertex_id 46 - game_vertex_id 0,0,0 - direction (x,y,z) "L01_Escape" - я думаю понятно -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
Для начала хотелось бы знать - что именно не получается? Что выдает лог? Что Вы делали? Нужна вся информация. Иначе Ваш вопрос просто проигнорируют. -
Можно. Сначала нужно исключить возможность попадания в гулаг. Для этого в логике пишется секция : [smart_terrains] none = true Далее логика пишется таким образом : [logic] active = kamp [kamp] center_point = *** (***-это имя точки, вокруг которой НПС садятся. Располагать её можно где угодно, не только у костра. Название этой точки должно быть уникальным, т.к. она прописывается в way_"уровень".ltх) radius = * (*-радиус в метрах от точки center_point, в пределах которого НПС будут садится. Можно не указывать. По умолчанию 2 метра) path_walk = ***_task (Можно не прописывать, если точка center_point находится не в центре костра. *** - то же название, что и указано в center_point, с добавлением _task. Эта точка тоже прописывается в way_"уровень".ltх, но координаты указываются на некотором расстоянии от center_point. Эта строка нужна для того, чтобы при переходе из оффлайн НПС не попадали в костер и не получали хит, а выходили в этой точке)
-
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
Совсем не обязательно создавать гулаг. Например можно сделать так : В файле alife_l"уровень".ltx в секции этого перса написать(или вынести в конфиг) custom_data = <<END [smart_terrains] none = true [logic] active = kamp [kamp] center_point = camp_center_new path_walk = camp_center_task_new В файле way_l"уровень".ltx добавить : [camp_center_new] points = p0 p0:name = wp00 p0:position = "координаты x,y,z костра" p0:game_vertex_id = "гейм_вертекс костра" p0:level_vertex_id = "левел_вертекс костра" [camp_center_task_new] points = p0 p0:name = wp00 p0:position = "координаты x,y,z точки в метре/двух от костра" p0:game_vertex_id = "гейм_вертекс этой точки" p0:level_vertex_id = "левел_вертекс этой точки" -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
Но ведь вопрос был поставлен так: "определенное расстояние" и устанавливает рестриктор. Может я чего-то не понял из условий поставленной задачи? Тогда хотелось бы узнать подробнее. -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
gruber, тогда можно попробовать такой вариант(теория): Поставить рестриктор с центром в точке, где сидит непись и радиусом, определяющим зону, при входе в которую он сорвется в бой. В gulag_escape.script найти работу этого НПС и после out_rest = "???" через запятую добавить info_rest = в кавычках название нового рестриктора.
- [ЧН] OGSM CS 1.8 CE Fixes
- [ЧН] HARDWARMOD 3.2
- [ЗП] The Long Road
- [ЧН] New vision of War
- [ЧН] Old Good Stalker Mod - Clear Sky
- [ЗП] Unofficial Patch
- [ЗП] Смерти вопреки
- [ЗП] Контракт на хорошую жизнь
- [ЗП] Shoker Weapon Mod 2.1
- [ЗП] Hardcore pack for SGM 2.2
- [ЗП] Контракт Синдиката
- [ЗП] Клондайк 2.0
- ...и другие моды