Шпаргалка ковырялка по сталкеру народная солянка

Подробный разбор файла actor.ltx

Настройка актёра. Написано by Rekongstor.

И изменим весь блок десятью строчками ниже так:

max_item_mass = 999 ; Стоит указывать значения меньше параметра max_walk_weight (см.выше).
jump_speed = 60 ; Высота прыжка. Не указывайте астрономические значения. Гл. герой всё равно не улетит в космос ))
crouch_coef = 1 ; Скорость ползагия «очень сидя» (Ctrl + Shift по умолчанию)
climb_coef = 2 ; Вроде присев (Ctrl)
run_coef = 3 ; Обычный бег с параметром консоли «g_always_run» равным 1
sprint_koef = 4 ; спринт
run_back_coef = 3 ; бег назад
walk_back_coef = 2 ; ходьба назад с клавишей Shift
air_control_param = 1 ; контроль полёта. Выгоден при высоких значениях jump_speed, т.к. можно быстро перемещаться по карте
walk_accel = 17 ; неизвестный параметр
pickup_info_radius = 5 ;радиус, в котором над предметами выводятся их названия при нажатии клавиши «F».

Далее параметры 3d и т.п. смотрим поэтому дальше.

camera_height_factor = 0.85 ; определяет высоту взгляда. Увеличиваем и игрок станет зрительно выше

disp_base = 0 ;угол (в градусах) разлета пуль, когда актер стоит на месте
disp_aim = 0
disp_vel_factor = 0 ;на сколько увеличится дисперсия при скорости в 10 м/с (не обязательно при беге)
disp_accel_factor = 0 ;еще на сколько увеличится, если актер бежит (+ скорость)
disp_crouch_factor = 0 ;уменьшение если актер сидит
disp_crouch_no_acc_factor = 0 ;уменьшение если актер сидит + no acceleration

Чтобы уменьшить размер прицела можно сделать так.

Дальше увидим секцию [actor_immunities_gd_***] (вместо *** нужный ранг)

burn_immunity = 0.0
strike_immunity = 0.0
shock_immunity = 0.0
wound_immunity = 0.0
radiation_immunity = 0.0
telepatic_immunity = 0.0
chemical_burn_immunity = 0.0
explosion_immunity = 0.0
fire_wound_immunity = 0.0

Дальше видим [actor_condition]

И настройка в лучшую сторону будет таковой:

bleeding_v = 0 ;потеря крови при номинальной ране в секунду
wound_incarnation_v = 1 ;скорость заживления раны
min_wound_size = 0 ;минимальный размер раны, после которого она считается зажившей

min_wound_size,satiety_v,satiety_power,satiety_health,satiety_critical,alcohol_v можно было и не настраивать, если вам нужно бессмертие

Будем настраивать выносливость.

Назодим строку «jump_power»

Меняем так, чтобы игрок никогда не уставал, разве что если нацепит на себя 5 огненных шаров ))

jump_power = 0 ;умешьшение силы с прыжком без учета веса ноши
jump_weight_power = 0 ;умешьшение силы с прыжком с учетом веса ноши, для максимального допустимого веса
overweight_jump_k = 1 ;коэффициент влияние перегрузки прыжок с весом (умножается на jump_weight_power)

stand_power = 0
walk_power = 0 ;умешьшение силы за секнду во время ходьбы без учета веса ноши
walk_weight_power = 0 ;умешьшение силы за секнду во время ходьбы с учетом веса ноши, для максимального допустимого веса
overweight_walk_k = 1 ;коэффициент влияние перегрузки ноши (умножается на walk_weight_power)
accel_k = 1;коэффициент на бег (умножается walk_power, walk_weight_power)
sprint_k = 1 ;коэффициент на «sprint» бег (умножается walk_power, walk_weight_power)

Значения с комментом «коофициент» и значениями более 1 (необязательно) рекомендую менять на 1.

limping_health_begin = 0 ;порог здоровья меньше которого актер начинает хромать
limping_health_end = 0;порог здоровья больше которого актер перестает хромать
limping_power_begin = 0 ;порог силы меньше которого актер начинает хромать
limping_power_end = 0 ;порог силы больше которого актер перестает хромать

cant_walk_power_begin = 0 ;порог силы меньше которого актер не может двигаться
cant_walk_power_end = 0 ;порог силы больше которого актер сможет двигаться

cant_sprint_power_begin = 0 ;порог силы меньше которого актер не может бежать в спринте
cant_sprint_power_end = 0 ;порог силы больше которого актер сможет бежать в спринте

Дальше идут кости, работающие в 3d, и их тоже можно менять, чтобы уменьшить уязвимость, но пока их настройка не столь нужна. Я лишь скажу, что нужно настраивать 1 (первый) параметр. Чем меньше, тем лучше.

Источник

Шпаргалка AMK: Ковыряние

Questions

Определение позиции актора

Правка свойств ГГ: Промежуток времени между сном

Правка свойств ГГ: Привязка еды к сну

Правка свойств ГГ: Очистка слота бинокля

Правка свойств ГГ: Разное

Тайники и награды: Награда за квест

Тайники и награды: Редактирование содержимого

Тайники и награды: Наполнение редких тайников

Тайники и награды: Частота выпадения тайников

Определение позиции актора

end
В итоге, после взятия у Сидоровича квеста на «Ночную звезду», в самом начале, ГГ будет выдано
10000 рублей и СПАС-12.

Максимальный переносимый вес прописан в gamedata/config/creatures/actor.ltx строчка max_walk_weight
Отображение веса в инвентаре (выше этого значения нельзя бегать): gamedata/config/inventory_sect.ltx строчка max_weight.

[zoom_inertion_effector]
camera_move_epsilon = 0.03
disp_min = 0.0
speed_min = 0.001
zoom_aim_disp_k = 0.18
zoom_aim_speed_k = 0.00
delta_time = 1350
заменить на:
[zoom_inertion_effector]
camera_move_epsilon = 0.03
disp_min = 0.00
speed_min = 0.000
zoom_aim_disp_k = 0.0
zoom_aim_speed_k = 0.00
delta_time = 2000

\gamedata\scripts\escape_dialog.script надеюсь ты найдёшь где там что кому отдаёт.
функция transfer_deneg выдаёт после квеста ночная звезда. Когда отдал, ему.
функция give_weapon_from_trader это когда перед выдачой квеста дает.

В actor.ltx поменял:
satiety_v = 0.000005 на 0.000025
теперь есть нужно почаще, раз в 4-6 часов, соответственно батоны не лишний вес в рюкзаке,

satiety_health_v = 0.0001 на 0.00001
Ну от чего так быстро восстанавливается здоровье? Теперь «кровь камня» будет приносить побольше пользы, а здоровье само по себе будет восстанавливатся довольно медленно.

bleeding_v = 0.0005 на 0.0025
wound_incarnation_v = 0.003 на 0.001
min_wound_size = 0.0256 на 0.005

Далее сложность по рангам начинает расти в арифметической прогрессии и достигает 80% на
мастере.
При мастере я намеренно не делаю упор на хардкор 1.0 т.к такая меткость абсолютно не соответствует действительности при том что уже при этих характеристиках ГГ уже начинает ощущать всю «прелесть» данного ранга.

Если у тебя АМК+два патча открываешь тот же amk_utils.script, в начале находишь вот это:

RestrictionStock = 1
и меняешь на это:
RestrictionStock = nil

1. Взять файл restriction_stock.script из первого патча для АМК и заменить им существующий.

2. В файле amk_utils.script заменить
это:
—Callback на взятия предмета в инвентарь гг из ящика
function actor_item_from_box(box, item)
end

—Callback на взятие предмета в инвентарь гг
function actor_item_take(obj)
if obj

= nil and RestrictionStock

= nil then
restriction_stock.restriction_of_stock(obj,0)
end
end

—Callback на потерю предмета из инвенаря гг
function actor_item_drop(obj)
if obj

= nil and RestrictionStock

= nil then
restriction_stock.restriction_of_stock(obj,1)
end
end

—Callback на взятия предмета в инвентарь гг из ящика
function actor_item_from_box(box, item)
if item

= nil then
restriction_stock.restriction_of_stock(item)
end
end

—Callback на взятие предмета в инвентарь гг
function actor_item_take(obj)
if obj

= nil then
restriction_stock.restriction_of_stock(obj)
end
end

—Callback на потерю предмета из инвенаря гг
function actor_item_drop(obj)

end
З.Ы. Только новые вещи не забудь в restriction_stock.script по аналогии с существующими добавить,
иначе ограничения на них не будут распространяться.

На данный момент мы имеем такие варианты:

1. Добавляешь через запятую ещё одну вложенную таблицу, например:

_weapons_C6 = <"оружие_раз","оружие_два","оружие_три">
2. Добавляешь ещё одно условие в парсинге ниже:
elseif kk == «_weapons_C6» and count>2 then
amk.send_tip(«Не многовато ли стволов, рембо?»,nil,nil,5)
amk.drop_item(actor,_obj)
status = 1
break
здесь count>2 определяет, больше какого числа предметов будет срабатывать ограничение
для этой группы.
Вот, собственно, и всё. По аналогии сделай и для остальных групп предметов.

1. Добавляешь через запятую вложенные таблицы по числу новых групп, например:

_outfits_1 = <"костюм_раз">,
_outfits_2 = <"костюм_два">,
_outfits_3 = <"костюм_три">
2. Добавляешь столько же условий в парсинге ниже:
elseif kk == «_outfits_1» and count>2 then
amk.send_tip(«Для этого костюма в рюкзаке нет места»,nil,nil,5)
amk.drop_item(actor,_obj)
status = 1
break
elseif kk == «_outfits_2» and count>2 then
amk.send_tip(«Для этого костюма в рюкзаке нет места»,nil,nil,5)
amk.drop_item(actor,_obj)
status = 1
break
elseif kk == «_outfits_3» and count>2 then
amk.send_tip(«Для этого костюма в рюкзаке нет места»,nil,nil,5)
amk.drop_item(actor,_obj)
status = 1
break

Читайте также:  Русские народные сказки не редактированные

Правка свойств ГГ: Промежуток времени между сном

Источник

Шпаргалка ковырялка по сталкеру народная солянка

Мне кажется многие задавались вопросом «Как же создать худ маски»? Немного пораздумав, я создал функцию, которая крепит текстуру к определенному костюму.

Опытным модмейкерам может показаться моя функция усложненной, но главное, что все работает и не вылетает!
[править] Практика
[править] Работа со скриптами

Первым делом в директории gamedata\scripts создайте файл с названием xr_mask.script

Открываем его пишем:

function hud_gas()
local slot_stalker = db.actor:item_in_slot(6)
local object_1 = db.actor:object(«stalker_outfit»)
local slot_killer = db.actor:item_in_slot(6)
local object_2 = db.actor:object(«killer_outfit»)
if slot_stalker and slot_stalker:section() == «stalker_outfit» and object_1

= nil or
slot_killer and slot_killer:section() == «killer_outfit» and object_2

= nil then
local hud = get_hud()
local custom_static = hud:GetCustomStatic(«hud_gas»)
if custom_static == nil then
hud:AddCustomStatic(«hud_gas», true)
end
else
local hud = get_hud()
local custom_static = hud:GetCustomStatic(«hud_gas»)
if custom_static

= nil then
hud:RemoveCustomStatic(«hud_gas», false)
end
end
end

= nil or
slot_killer and slot_killer:section() == «killer_outfit» and object_2

Теперь зайдем в bind_stalker.script, который находится в gamedata\scripts, найдем функцию: function actor_binder:update(delta) и после пишем: xr_mask.hud_gas() в итоге:

function actor_binder:update(delta)
xr_mask.hud_gas()
object_binder.update(self, delta)
local time = time_global()
game_stats.update (delta, self.object)

Итак, заходим в директорию gamedata\config\ui, находим файл с названием ui_custom_msgs, открываем его и в самом конце перед строкой: пишем:

— текстура маски. Посмотрите внимательно в скрипте мы указывали »’hud_gas»’

Теперь заходим в gamedata\textures\ui, находим файл с названием ui_mainmenu.dds. Копируем его, заходим в gamedata\textures\hud вставляем его и переминуем в hud_gas.dds Открываем программой Adobe Photoshop и рисуем подходящую для вас маску.

Конфиги, отвечающие за эту особенность, в файле gamedata\configs\misc\effectors.ltx:
[zoom_inertion_effector]
camera_move_epsilon = 0.03 ;разница между двумя векторами направления камера, когда считается что камера двинулась
disp_min = 0.01
speed_min = 0.00001
zoom_aim_disp_k = 1.0 ;коэффициенты соотношения полной дисперсии стрельбы
zoom_aim_speed_k = 0.0025 ;и покачивания прицела
delta_time = 3000 ;время через которое эффектор меняет направление движения (в милисекундах)

у меня лично стоит так:

[zoom_inertion_effector]
camera_move_epsilon = 0.03 ;разница между двумя векторами направления камера, когда считается что камера двинулась
disp_min = 0.02
speed_min = 0.0001
zoom_aim_disp_k = 1.18 ;коэффициенты соотношения полной дисперсии стрельбы
zoom_aim_speed_k = 0.0015 ;и покачивания прицела
delta_time = 1350 ;время через которое эффектор меняет направление движения (в милисекундах)

Секция [supplies_start]
Эта секция описывает какие товары у торговца будут вначале.
Название предмета = количество, вероятность появления
Например:
bandage = 5, 1Это значит что у торговеца всегда будут 5 бинтов, с 100 процентной вероятностью появления в магазине.
bandage = 5, 0.6 А тут уже вероятность появления 60%. Т.е. бинты не всегда будут.

Секция [supplies_after_***]
Тоже самое, что в секции [supplies_start], но после выполнения квестов торговца.

Секция [trader_after_***_sell]
Тоже самое, что в секции [trader_start_sell], но после выполнения квестов торговца.

Часть 1
Сложность: Легко
Как сделать простой диалог.
1. Открываем, например файл dialogs_escape.xml (gamedata/config/gameplay) и пишем в конец:

Это скелет диалога. В нём будут написаны все инфопоршни и actions.

— это название диалога, которое нужно будет написать НПС.

2. Теперь нужно написать тексты диалога. Заходим в файл «stable_dialogs_bar.xml» (gamedata/config/text/rus) и пишем в конце:

Это тэстовый диалог

— это то, на что ссылается скелет диалога.

Это тэстовый диалог

. ВНИМАНИЕ.
Все диалоги начинаются со слов Меченого.

3. Теперь нужно прописать этот диалог НПС. Например Бармену.
Открываем файл «character_desc_bar.xml» и находим секцию Бармена. Она идёт самой первой.
После всех
.
Прописываем свой:
test_dialog

Часть 2
Сложность:Средне

Как создать диалог посложнее.
Как создать диалог с разными вариантами ответов.
Как создать диалог который исчезнет после прочтения.

1. Открываем, например файл dialogs_escape.xml (gamedata/config/gameplay) и пишем в конец:

2
и
3 это возможные ответы Меченого.

2. Теперь нужно написать тексты диалога. Заходим в файл «stable_dialogs_bar.xml» (gamedata/config/text/rus) и пишем в конце:

Нормально, а у тебя?

3.Чтобы этот диалог не появлялся, пишем инфопоршень. Например в файле info_l01escape.xml

4.Дописываем инфопоршень в скелет диалога:

Получается, что когда ГГ скажет любую из 2 фраз, диалог больше не появится.

Часть 3
Сложность:Сложно

-Как сделать разные action в диалогах.

1.Создаём обычный диалог:

2.Создаём свой скрипт в папке gamedata/script например test.script и пишем в него 3 функции:

Код
function dat_dengi(first_speaker, second_speaker)
dialogs.relocate_money(second_speaker, 3000, «in»)
end

Это функция отдачи денег ГГ. На месте 3000 любое число.
На месте dat_dengi любое название.
————————————————————

Код
function dat_item(first_speaker, second_speaker)
dialogs.relocate_item_section(second_speaker, «wpn_pm», «in»)
end

Это функция отдачи предмета ГГ. На месте wpn_pm любой предмет.
На месте dat_item любое название.
————————————————————

Код
function spawn_item_or_monster_or_stalker()
alife():create(«wpn_pm»,vector():set(pos),lvid,gvid)
end

Это функция спавна чего либо. На месте wpn_pm любой предмет,монстр или сталкер.
На месте (pos),lvid,gvid) любые координаты.
На месте spawn_item_or_monster_or_stalker любое название.
————————————————————
Так же функция может быть одна, но с несколькими действиями.
Например:

Код
function all(first_speaker, second_speaker)
dialogs.relocate_money(second_speaker, 3000, «in»)
dialogs.relocate_item_section(second_speaker, «wpn_pm», «in»)
alife():create(«wpn_pm»,vector():set(pos),lvid,gvid)
end

Значит что одновременно ГГ дадут 3000 рублей, ПМ и по заданным координатам заспавнится ПМ.
————————————————————

3.Впишем функции в диалог:

Это значит что после после фразы

Это значит что после после фразы

Это значит что после после фразы

Часть 4
Сложность: Очень сложно

1.Создаём обычный диалог:

2.Создаём свой скрипт в папке gamedata/script например test.script и пишем в него 3

Код
function has_money_. ()
local money = math.floor(200 *

xr_statistic_freeplay.get_freeplay_statistic():get_found_pda_discount())
return db.actor:money()>=money
end

Это функция проверки количества денег ГГ. На месте 200 любое число.
На месте has_money_. любое название.
————————————————————

Код
function has_item(task, objective)
if db.actor

= nil then
return db.actor:object(«wpn_pm»)

= nil
end
return false
end

Это функция проверки наличия какого либо предмета у ГГ. На месте wpn_pm любой предмет.
На месте has_item любое название.
————————————————————

3.Впишем функции в диалог:

Это значит что фраза

появится если у ГГ есть 200рублей
Это значит что фраза

появится если у ГГ есть ПМ.

;подсветка арта
lights_enabled = true
trail_light_color = 2.5, 2.4, 0
trail_light_range = 1.0

Рассмотрим костюм долга

ЭТО ЗАЩИТА КОТОРУЮ ДАЕТ КОСТЮМ

КСТАТИ:если вы хотите создать свой документ с костюмами,нужно будет в конфиге outfit в само конце написать
#include «Название вашего документа.ltx»

Например я создал документ с названием nanosuit, я написал вот так.
#include «nanosuit.ltx»

Все,можете приступать к созданию ваших костюмов,при это зная,в каком документе лежат новые костюмы.

Источник

Шпаргалка ковырялка по сталкеру народная солянка

Привет, Гость!

Всесезонные шины 195 r14c

У нас на сайте всесезонные шины 195 r14c можно подобрать по нашему каталогу R15C

Файлы > Модификации > Зов Припяти > Мануал по правке некоторых конфигов

Небольшая шпаргалка, которая поможет изменить баланс игры больше, чем это позволяют её настройки.

Конфигурационные файлы открываются обычным «Блокнотом». Необходимый для изменения параметр можно найти по его названию, когда файл, в котором они находятся, открыт «Блокнотом», (Правка/Найти далее).

Как изменить живучесть героя.

Параметры, отвечающие за потерю НР:
satiety_critical = 0.0;критическое значения сытости (в процентах от 0..1) когда здоровье начианает уменьшаться
radiation_health_v = 0.004;уменьшение здоровья при воздействии радиации
health_hit_part = 1.0;процент хита, уходящий на отнимание здоровья
power_hit_part = 0.1;процент хита, уходящий на отнимание силы
bleeding_v = 0.002; 0.0005;потеря крови при номинальной ране в секунду
Сделайте их равными 0.0 и вы бессмертны

———————————————————————————
Увеличьте эти параметры и гг станет менее уязвим:
wound_incarnation_v = 0.0001; 0.003;скорость заживления раны
min_wound_size = 0.0256;минимальный размер раны, после которого она считается зажившей
psy_health_v = 0.001;скорость восстановления psy-здоровья
———————————————————————————

satiety_v = 0.00015;скорость уменьшения сытости со временем
radiation_v = 0.00001;скорость уменьшения радиации
satiety_power_v = 0.00055;увеличение силы при уменьшении сытости
satiety_health_v = 0.00001;увеличение здоровья при уменьшении сытости
satiety_critical = 0.00000;критическое значения сытости
(в процентах от 0..1) когда здоровье начианает уменьшаться

Смена длительности дня и ночи:

За это отвечает строка
#time_factor = 10; 1; ;396.0;

Время и дата старта игры:

Период автосохранения:

Радиус загрузки локации

Рассмотрим некоторые параметры.

Гранаты:

Примечание: изменения вступят в силу после начала новой игры.

*Файлы xml так же открываются «Блокнотом».

Статья по материалам от: Empro,Хемуль,BAC9-FLCL и других неустановленных авторов. Если вы узнали свой материал, сообщите авторство.

подскажите у кого спросить: как поправить мини карту, поменять цвета точек друзей, врагов, нейтралов и трупов? настроить под дальтоника

Источник

Шпаргалка ковырялка по сталкеру народная солянка

Эсминец Дата: Четверг, 14.08.2014, 12:26 | Сообщение # 1

gamedata.db0, gamedata.db1: папка levels;
gamedata.db2: папки levels и textures\wpn;
gamedata.db3, gamedata.db4, gamedata.db5: папка textures, кроме файлов иконок и textures\wpn;
gamedata.db6: папки ai, anims, meshes, shaders и все корневые файлы кроме particles.xr;
gamedata.db7: папка sounds;
gamedata.db8: прицелы для широкоформатов;
gamedata.db9: текстуры иконок и все остальные (в т.ч. «cоnfig» и «scripts») папки и файлы;— файл «actor.ltx» лежит в архиве «gamedata.db7»!
gamedata.dba: текущий фикс. (пока пусто)

= 1 and db.actor:active_slot()

KADAR Дата: Четверг, 14.08.2014, 15:52 | Сообщение # 2

200?’200px’:»+(this.scrollHeight+5)+’px’);»> ;Добавлен автозахват цели
snd_gyro = weapons\binoculars_gyro
snd_zoomin = weapons\binoculars_zoomin
snd_zoomout = weapons\binoculars_zoomout

vision_present = true
vis_frame_speed = 4 ; скорость, с которой наводится рамка на цель
vis_frame_color = 0.7,0.7,0.7,1.0 ; цвет рамки RGBA (A) Не учитывается
found_snd = detectors\DA-2_beep1
;/Добавлен автозахват цели

;params when silencer is attached
;similar to corresponding params without prefix silencer_

;silencer_flame_particles = weapons\generic_weapon01
silencer_smoke_particles = weapons\generic_shoot_00

;Добавлен автозахват цели
snd_gyro = weapons\binoculars_gyro
snd_zoomin = weapons\binoculars_zoomin
snd_zoomout = weapons\binoculars_zoomout

vision_present = true
vis_frame_speed = 4 ; скорость, с которой наводится рамка на цель
vis_frame_color = 0.7,0.7,0.7,1.0 ; цвет рамки RGBA (A) Не учитывается
found_snd = detectors\DA-2_beep1
;/Добавлен автозахват цели

В bind_stalker.script под строчку function actor_binder:update(delta)

На кулон Адреналина:

Ребята помогите, может кто знает. Беру чернобыльский ёж в Копачах по заданию Сяка, а он не телепортирует никуда.
Решение:
Если квест уже взят, то выдайте последовательно вот эти поршни:

После чего разговаривайте с Сяком на завершение квеста.

ПДА карателя должен быть в рюкзаке, за ранее спавним или прописываем в продажу.

Инфопоршни тайников на ПДА стукача Монолита:

Инфопоршень на спавн Джокера

=nil and dik==DIK_keys.DIK_I then
sak.set_community(actor, npc)

200?’200px’:»+(this.scrollHeight+5)+’px’);»> function fli_chaes_set_range()
local object_all
for k, v in pairs (db.storage) do
object_all = level.object_by_id(k)

Пуля_Долг Дата: Воскресенье, 24.08.2014, 12:53 | Сообщение # 4
Привет Андрей! Подскажи пожалуйста где и в каком скрипте(а может не в скрипте) надо ковырнуть, что бы патроны были бесконечные. А то в мастерской написано но в оп-2 такого скрипта нет. Просто надоело уже спавнить. да и количесво паронов затормаживает игру.

————————————————
Привет, Саша! Да, подскажу конечно. Только смотри как это будет выглядеть.
Что бы не ставить спавнер, от которого масса неприятностей как показывает практика, распишу подробно как и куда добавить скрипт и назначить клавиши на нужные патроны. То есть! Закончились патроны, вышел в меню, нажал нужные клавиши и патроны снова в рюкзаке.
Устроит тебя такой вариант?
Этот способ, если я не ошибаюсь, не влияет на отслеживание актора и можно спавнить абсолютно любой предмет. Но! Снять античит всё же настоятельно рекомендую. Я описал два способа как это сделать в шапке темы. Игру не распаковывай тоже. Какие нужны файлы все дам.
Андрей.

Саша! Ты распиши пока всё что я прошу, а у меня дел по горло сейчас навалилось. Как освобожусь вернусь к тебе. Всё что не ясно спрашивай, не стесняйся. Всё что в моих силах поясню.

В этом случае игра поймёт, что нужно пропустить не одну строку, а весь этот блок.

В файлах с расширением HTML и подобным им комментарий делается так:

Добавлено (24.08.2014, 13:58)
———————————————
Установлен оп-2 патч и фикс 2.03(скачал несколько дней назад). Извлек из db.0-dba все.. И теперь gemedata обновленная(только не приживается новая папка weapons-Вылет((( пришлось ставить старую) А у меня в скрипте ui_main_menu.script под строками
f dik == DIK_keys.DIK_Q then
self:OnMessageQuitWin()

вставлена функция спавна в рюкз ГГ

=nil and dik==DIK_keys.DIK_1 then
alife():create(«
ХХХХХ«,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
В место ХХХХХ предмет.

Неудобно что один предмет. Все время выходить надо и переписывать(отнимает время).

вот мой файл https://yadi.sk/d/fUisr-i3aK8QF
А патроны надо; ammo_9x39_sp5 и ammo_23x76_shrap Вот такие дела.

Добавлено (24.08.2014, 14:03)
———————————————
Когда будет время тогда и помоги пожалуйста. Благодарю за понимание. А пока так поиграю. Дела есть дела.

Эсминец Дата: Воскресенье, 24.08.2014, 14:58 | Сообщение # 5
Pula, лучше всего игру не распаковывать, играть как есть. А распаковать отдельно и брать нужные файлы лишь для правок как это делаю я.
Да, этот способ плох тем, что нужно постоянно выходить из игры и редактировать файл. Но повторюсь! От спавнера постоянно какие-то проблемы. Но решать вам.

=nil and dik==DIK_keys.DIK_1 then
alife():create(«ammo_9x39_sp5»,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
elseif db.actor

=nil and dik==DIK_keys.DIK_2 then
alife():create(«ammo_23x76_shrap»,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
elseif db.actor

=nil and dik==DIK_keys.DIK_3 then
alife():create(«ammo_5.45x39_izomorf»,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
elseif db.actor

=nil and dik==DIK_keys.DIK_4 then
alife():create(«ammo_5.56x45_gd»,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
elseif db.actor

=nil and dik==DIK_keys.DIK_5 then
alife():create(«wpn_abakan_m2»,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
elseif db.actor

=nil and dik==DIK_keys.DIK_6 then
alife():create(«wpn_oicw»,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
elseif db.actor

=nil and dik==DIK_keys.DIK_7 then
alife():create(«wpn_oicw»,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
elseif db.actor

=nil and dik==DIK_keys.DIK_8 then
alife():create(«wpn_m16a2_sk1_otdaca_ves»,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
elseif db.actor

=nil and dik==DIK_keys.DIK_9 then
alife():create(«red_mozg»,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
elseif db.actor

=nil and dik==DIK_keys.DIK_0 then
alife():create(«af_inferno»,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
— /Spawn

200?’200px’:»+(this.scrollHeight+5)+’px’);»> elseif section == «wpn_ognemet» then
if not (has_alife_info(«fli_have_3») or has_alife_info(«dimak_toolkit_done»)) then
obj:set_condition(0.01)
end

elseif section == «wpn_vihlop» then
if not (has_alife_info(«bar_deactivate_radar_done») or has_alife_info(«izumrud_electra_done»)) then
obj:set_condition(0.01)
end

elseif section == «wpn_vintorez» then
if not has_alife_info(«escape_meceniy_start») then
obj:set_condition(0.01)
end

elseif section == «wpn_fn2000_paratrooper» then
if not has_alife_info(«vasily_chertez_fn») then
obj:set_condition(0.01)

for id,obj in pairs(db.creatures) do
clsid = obj:clsid()
section = obj:section()

— монстры
if IAmAMonster [clsid]and obj:alive() and db.actor:see(obj) and not protected_items.is_monster_friend(section) then
— сначала смотрим тихую охоту
if (has_alife_info(«silent_hunt_start») and not has_alife_info(«silent_hunt_done»)) and
(silent_hunt_monsters [clsid]and not has_alife_info(«monster_stealth_»..silent_hunt_monsters[clsid])) and
self:obj_in_shot(obj:bone_position(«bip01_head»), 0, 2, 3.5, true, nil, true)
then
— удачный снимок и такого еще не было
news_manager.send_tip(db.actor, «%c[255,160,160,160]»..»МЕЧЕНЫЙ:»..»\\n»..»%c[255,255,128,128]Захар, я подкрался к очередному монстру и успешно его сфотографировал.»..»»..»\n», nil, nil, 15000)
news_manager.send_tip(db.actor, «%c[255,160,160,160]»..»ЗАХАР:»..»\\n»..»%c[255,255,128,128]Отлично. Неси фото и ищи следующего.»..»\n», 15, nil, 15000)
db.actor:give_info_portion(«monster_stealth_»..silent_hunt_monsters[clsid])
return true

— затем фото уникальных монстров
elseif
foto_unique_monster [section]and
has_alife_info(foto_unique_monster[section].has_info) and not has_alife_info(foto_unique_monster[section].info) and
self:obj_in_shot(obj:center(), 5, 10, 3.0, false, nil, false)
then
— удачный снимок и такого еще не было
news_manager.send_tip(db.actor, «Уникальный монстр сфотографирован.»..»\n», nil, nil, 10000)
db.actor:give_info_portion(foto_unique_monster[section].info)
return true

— затем обычную охоту
elseif (has_alife_info(«foto_ohota_start») and not has_alife_info(«foto_ohota_done»)) and
foto_ohota_monsters [section]and not has_alife_info(foto_ohota_monsters[section]) and
self:obj_in_shot(obj:center(), 5, 10, 3.0, false, nil, false)
then
— удачный снимок и такого еще не было
news_manager.send_tip(db.actor, «Монстр сфотографирован.»..»\n», nil, nil, 10000)

return true
end
end
end

— фото аномалий
function foto_binder:check_anomaly()
if not has_alife_info(«foto_ohota_start») or has_alife_info(«foto_anomaly_done») then return false end

for id,obj in pairs(db.creatures) do
clsid = obj:clsid()
section = obj:section()

— затем фото уникальных монстров
elseif
foto_unique_monster [section]and
has_alife_info(foto_unique_monster[section].has_info) and not has_alife_info(foto_unique_monster[section].info) and
self:obj_in_shot(obj:center(), 5, 10, 3.0, false, nil, false)
then
— удачный снимок и такого еще не было
news_manager.send_tip(db.actor, «Уникальный монстр сфотографирован.»..»\n», nil, nil, 10000)
db.actor:give_info_portion(foto_unique_monster[section].info)
return true

— фото аномалий
function foto_binder:check_anomaly()
if not has_alife_info(«foto_ohota_start») or has_alife_info(«foto_anomaly_done») then return false end

200?’200px’:»+(this.scrollHeight+5)+’px’);»> function on_part_take(obj)
if not monster or not rx_utils.read_from_ini(nil, obj:section(), «monster_part», false, 0) then return end

level.start_stop_menu(level.main_input_receiver(), true)
if snd and snd:playing() then
snd:stop()
end
snd = xr_sound.get_safe_sound_object(«zwuk\\inv_mutant_loot_»..math.random(1,9))
snd:play_at_pos(db.actor, vector(), 0, sound_object.s2d)

else
db.actor:transfer_item(obj, monster)
end
end

200?’200px’:»+(this.scrollHeight+5)+’px’);»> function on_part_take(obj)
if not monster or not rx_utils.read_from_ini(nil, obj:section(), «monster_part», false, 0) then return end

level.start_stop_menu(level.main_input_receiver(), true)
if snd and snd:playing() then
snd:stop()
end
snd = xr_sound.get_safe_sound_object(«zwuk\\inv_mutant_loot_»..math.random(1,9))
snd:play_at_pos(db.actor, vector(), 0, sound_object.s2d)

else
db.actor:transfer_item(obj, monster)
end
end

Пуля_Долг Дата: Воскресенье, 24.08.2014, 15:35 | Сообщение # 6
Андрей Большое спасибо за работу. Только не пойму, у тебя не запакованная gemedata есть или нет.

—————————————————
У меня в игре gamedata запакована. А отдельно есть распакована. Я лишь беру из распакованной gamedata-ты отдельные файлы для правок и не более.
Андрей.

Добавлено (24.08.2014, 15:15)
———————————————
То есть структура какая должна быть, но только необходимые actor item outfit и т. д. Я правильно тебя понял?

Эсминец Дата: Воскресенье, 24.08.2014, 15:40 | Сообщение # 7

Да, сделал ты всё правильно.
Пример:
Установили игру с запакованной gamedata-ой. Теперь нам нужно сделать правку на отключение античита.
Что мы делаем? Заходим в каталог игры, создаём в ней папку с названием gamedata.
Возьмём для примера второй способ. Во тором способе нам нужны файлы по пути \gamedata\config\ и \gamedata\config\creatures\
Значит что? В созданной нами ранее папке damedata созда папки с соответствующими путями для требуемых файлов. А значит создаём в папке gamedata папку config и в папку config для правки помещаем файл system.ltx, далее в этой же папке config создаём папку creatures и в эту папку creatures помещяем файл actor.ltx
Всё. Теперь у нас всё готово для правки.
Что у нас получилось? Когда мы запустим игру, то игра будет ссылаться на наши правленные файлы system.ltx и actor.ltx, а не на те, что в gamedata.db.
Аналогично и с остальными правками. Только учитываем тот момент, что некоторые файлы у нас уже могут быть из других правок. Тогда мы не новый кидаем, а редактируем существующий.

Доктор, задолбал уже этот выброс на ЧАЭС, может пошаманишь?

Глотни-ка аспиринчику, глядишь и полегчает.

Золото, ты, а не человек!

=nil and dik==DIK_keys.DIK_I then
sak.add_new_to_peshera1()

Рюкзак Бороды. Как запретить спавн БТР?

200?’200px’:»+(this.scrollHeight+5)+’px’);»> function snpt_jupiter5_have2()
if has_alife_info(«snpt_jupiter5_fail») then return end

Пуля_Долг Дата: Воскресенье, 24.08.2014, 16:23 | Сообщение # 8
Вот спасибо, Пояснил как надо. Значит все правильно! У меня был такой опыт,когда играл в 30 новел из зоны. Извлек все db и закинул в игру. Что это было. 5 минут играю, вылет! Ужас. Но слава богу теперь все иначе..
Только что поставил твою правку. Супер. Теперь не надо сохр. и вых. из игры что бы наспавн. другие патроны и т. д. Тебе Респект и Уважуха!
До скорого!

cform = skeleton
visual = equipments\item_datchik3.ogf
radius = 10

description = det_art_ultra_info
inv_name = «Ультрадетектор артефактов»
inv_name_short = «Ультрадетектор артефактов»
inv_weight = 0.0

inv_grid_width = 1
inv_grid_height = 1
inv_grid_x = 14
inv_grid_y = 27

slot = 1
animation_slot = 1

[detektor_amorf]:identity_immunities
GroupControlSection = spawn_group
discovery_dependency =
$spawn = «devices\detector_advanced»
$prefetch = 32

cform = skeleton
visual = equipments\iphone.ogf
radius = 10

description = detektor_amorf_info
inv_name = «Детектор изоморфов»
inv_name_short = «Детектор изоморфов»
inv_weight = 0.0

inv_grid_width = 2
inv_grid_height = 2
inv_grid_x = 34
inv_grid_y = 43

slot = 1
animation_slot = 1

[det_artefact_indy]:identity_immunities
GroupControlSection = spawn_group
discovery_dependency =
$spawn = «devices\detector_advanced»
$prefetch = 32

cform = skeleton
visual = equipments\item_datchik1.ogf
radius = 10

description = det_art_indy_info
inv_name = «Простой детектор артефактов»
inv_name_short = «Простой детектор артефактов»
inv_weight = 0.0

inv_grid_width = 1
inv_grid_height = 1
inv_grid_x = 12
inv_grid_y = 47

slot = 1
animation_slot = 1

(это надо вставить вместо того что сейчас там находиться + скрипт ссылка есть)

Я его так и нашел когда там лазел. А в новом патче он даже закоментирован в скриптах! Хотя пишут что он должен работать))) Попробуй. Вещь.

Добавлено (24.08.2014, 18:16)
———————————————
Менял все детекторы. так надежнее (та секция что писал)

Добавлено (26.08.2014, 00:30)
———————————————
Привет Андрей! Подскажи пожалуйста, как стать невидимым, в данном случае от монолита.Ну в том плане что бы npc меня не видели. А то есть квест на чаэс 2 спасти славика снегиря. Так вот выполнить этот квест не представляеться возможным. Во 1ых шаг влево шаг вправо-провал задания! Вылез для выстрела-Провал задания! (монолит читерит по полной! стреляет сквозь крышу, и видит меня за крышей, Ну где справедливость. И как тут не читерить. А без этого не закончить квест на острова, дальше не пройти по сюжету!

Эсминец Дата: Вторник, 26.08.2014, 01:19 | Сообщение # 9

function inform_40_pda_have()
return new_dialog.item_much(«device_pda_npc»,40)

Ладно, я всё равно ими не пользуюсь, предпочитаю водку.

А нельзя!\nНо если очень хочется. то можно. Например, за бутылочку и. можешь мне ещё водочки принести?

Как получить переход с Радара на АC? У Информатора нет диалога:
-Знающие люди говорили, можно полезную информацию купить?
-Проходил на Радар с Армейских складов, а обратно не смог попасть.

Чтобы появился этот диалог у Осведомителя, ГГ после отключения Выжигателя должен пройти к повороту на Ц.Припять, чтобы сработал инфопоршень rad_start_svoboda_vs_dolg, бой Свободы с Долгом.

Вечный маскировочный экзоскелет (маскхалат):meceniy_work.script
Закомментировать две строки:

Как отключить музыку в главном меню?
. \gamedata\config\ui\ui_mm_main.xml
Сделай так:

Музыки не будет вообще в меню.

Переспавн Клыка:
. /gamedata/scripts/bind_stalker.script
найти строку

200?’200px’:»+(this.scrollHeight+5)+’px’);»> if outfit:section() == «exo_mil_exoskeleton_addr» then
new_system_rad()
elseif outfit:section() == «exo_mil_exoskeleton_addrs» then
new_system_rad()
new_system_power()

Пуля_Долг Дата: Вторник, 26.08.2014, 03:11 | Сообщение # 10
Вот СПАСИБО.
УРА.
alen-fantom Дата: Вторник, 26.08.2014, 14:57 | Сообщение # 11

Пуля_Долг Дата: Среда, 27.08.2014, 02:30 | Сообщение # 12

Добавлено (26.08.2014, 20:20)
———————————————
Я хочу сам еще раз это проверить лично еще раз. Отпишу когда протестирую.

Добавлено (26.08.2014, 20:24)
———————————————
Блин поправочка, моя gemedata была полностью обновлена из db9 dba
Все буду пробовать.

Добавлено (26.08.2014, 21:42)
———————————————
Всё проверил.Если я правильно думаю,то за работу ультрадетектора отвечают 2 эти файла. Делал так, удалил из gemedada скрипт bind_det_arts(мой откатный) и заменил items свой на items последнего патча и фикса(без правок). Детектор повесился) на пояс, к артам. На этом его работа и закончилась! На карте артов он уже не показывает(проверял). Осталется его загнать ближайшему барыге. Или выкинуть! Если я не прав поправьте.

Добавлено (27.08.2014, 01:03)
———————————————
Привет Андрей! Да я искал этот скрипт(Снегирь). Но откуда я могу даже близко знать! в каком это скрипте. Я бы даже и близко не подумал что он в этом скрипте. Большое спасибо! Будем изучать!
С уваженим Саня! 😉

Ух ты! Спасибо! Сейчас сделаю. Да, век живи век учись

Источник

Правильные рекомендации