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

Разбираем падение репутации/отношений в NLC 7

Рекомендуемые сообщения

 

В NLC 7 существует скриптовая система, благодаря которой, атакуя нейтральных (и вроде даже не атакующих враждебных) сталкеров, игрок в дальнейшем получит серьезные проблемы. 

Первое, что приходит игроку - уведомления на КПК. Сообщения имеют такой посыл: "Видел, как один сталкер с харей покорёженной, парня завалил." и тд. 

Спойлер

Screenshot_10.png.75c5657b315bcf6f0a1209847d9ef927.png

Эти сообщения находятся в gamedata\scripts\sak\sak_dialog.script в функции all_repa_no_good()В функции сначала игроку сбрасывает 50 очков репутации, затем запускается таймер с вызовом up_repa(-250), которая сделает понижение репутации ещё на 250 очков со сопутствующими ругательными сообщениями.

Спойлер

function all_repa_no_good()
	db.actor:change_character_reputation(-50)
	local name,sname = amk_names_lists.get_strings()
	sak.send_tip("Видел, как один сталкер с харей покорёженной, парня завалил. От такого всё, что хочешь ждать можно.",name.." "..sname,0,15,"uniq","news","gray")
	local name2,sname2 = amk_names_lists.get_strings()
	sak.send_tip("Это кто такой? Знал я одного. Морда ужас! Копчёный или не... На мы букву... В общем понятно всё с таким.",name2.." "..sname2,15,15,"uniq","news","gray")
	timers.start_timer("hell_repa",0,5,11,"sak_dialog.up_repa(-250)")
end

 

Влияние текущей репутации на отношения группировок описывается в файле gamedata\config\creatures\game_relations.ltx в секции [reputation_relations]. Из которой видно, что при плохой репутации у игрока, НПС с (как минимум) нейтральной (и выше) будут негативно относиться к Меченному (-600, -400 и тд).

Спойлер

[reputation_relations]
;	 		terrible, 	very_bad,  bad,	 neutral, good, very_good, excellent -это репутация актора
;============================================================================================
terrible	=      50,      25,      10,    0,      0,      0,    0
very_bad	=     100,      50,      25,    0,      0,      0,    0
bad			=     200,     100,      50,    0,      0,      0,    0
neutral		=    -600,    -300,    -150,    0,    150,    200,   450
good		=    -400,    -200,    -100,   10,    200,    300,   500
very_good	=    -250,    -150,     -50,   20,    250,    350,   550
excellent	=    -100,     -50,       0,   20,     25,     30,    50

 

На сколько я понял (из game_relations.ltx), если отношение становится меньше -150, то группировка становится враждебной.

Спойлер

;пороговые значения для отношения персонажей
attitude_neutal_threshold =  -150	;когда attitude меньше значения, то выставляется ALife::eRelationEnemy
attitude_friend_threshold =   500	;когда attitude меньше значения, то выставляется ALife::eRelationNeutral, иначе ALife::eRelationFriend

 

 

Как вариант, можно в sak_dialog.script подправить сами значения (при передаче в db.actor:change_character_reputation и sak_dialog.up_repa). То есть, сообщения будут приходить, но репутация падать не будет. Но!... Давайте посмотрим откуда вызывается all_repa_no_good()? Вызов происходит из hellcar_repa_no_good() по таймеру. И hellcar_repa_no_good() вызывается из scripts\xr\xr_motivator.script функции motivator_binder:death_callback(victim, who). Опять же, другой вариант закомментировать сам вызов sak_dialog.hellcar_repa_no_good().

Спойлер

if who:id()==db.actor:id() then
  xr_statistic.addKillCount(self.object)
  if amk.get_npc_relation(victim,who)~="enemy" then
    if self.object:character_community()~="bandit" then
      sak_dialog.hellcar_repa_no_good()
    end
    local gulag = xr_gulag.get_npc_gulag(victim)
    if gulag and gulag.name and not gulags_bad[gulag.name] then
      xr_gulag.setGulagEnemy(gulag.name, db.actor)
    end
  end
end

 

Из интересного (на сколько я понял), если игрок убивает не враждебных и не бандитов, то будет происходить падение репутации. Не до конца понятно, конкретно тут, кто является enemy? Тот, кто просто имеет в поле "отношение" - враг? Или тот, кто именно атакует ГГ? Потому что, я помню был случай, что после замеров на Радаре вернулся в бар и меня стали атаковать долговцы с сообщениями, что "Меченный козел". Возможно, я на Радаре кого-то из монолитовцев вальнул, точно уже не помню.

Последнее, про что не нужно забывать - при убийстве нейтральных/дружественных сталков в любом случае падает отношение. Это определяется всё в том же game_relations.ltx в секции communities_sympathy.

Спойлер

;коэффициенты "сочувствия" группировок
;после воздействия на одного из членов группировки
;goodwill его распространится на остальных членов группировки
;с определенным коэффициентом
[communities_sympathy]
actor							=	0.0
actor_dolg						=	0.0
actor_freedom 					=	0.0
stalker							=	0.05
monolith						=	0.0
military						=	0.0
killer							=	0.0
ecolog							=	0.4
dolg							=	0.2
freedom							=	0.2
bandit							=	0.0
zombied							=	0.0
trader							=	0.2
stranger						=	0.0
arena_enemy 					=	0.0
sniper 							=	0.0
green 							=	0.2

 

 

Всё это ковырялось в открытой NLC 7 3.8.2. В других версиях, возможно, что-то может быть по-другому. Но не думаю, что кто-то это менял на протяжении многих обновлений.

  • Лайк 1
  • Жму руку 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Ага, было такое. Валишь не разобравшись группу Ореха, которая прессует Юрика, а потом врагом народа становишся.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Насчёт репутации никогда не парился, кнопку даже не тискал! Это же ничего не даёт! 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу