• Страница 1 из 1
  • 1
Модератор форума: FanG, Аdmin, FantomICW, Overfirst  
Форум » S.T.A.L.K.E.R. Модификации » Помощь в моддинге » Скрипты, конфиги, логика, движок » Изменение отношений через диалог CoC (Хочу понять эту функцию)
Изменение отношений через диалог CoC
Российская Федерация  white_1
Воскресенье, 04.08.2019, 21:41 | Сообщение # 1
Статус:
Новичок:
Сообщений: 245
Награды: 1
Регистрация: 27.12.2015

Пытаюсь сделать возможность смены группировки. Пока смог создать диалог, прописать его нпс и по образцу сделал скрипт при котором у гг меняется группировка, но столкнулся с вопросом. Объясню на примере вступления "actor_stalker" в "actor_freedom".
У Сталкеров отношения с наёмниками "-1000"Враги, у свободы "0"нейтралы, и по идее при вступлении в "actor_freedom" Наёмники должны становится нейтральными, и в отношениях в пда они прописаны как нейтралы, но при встрече они атакуют ,причём даже те кто заспавнился уже после вступления.
Вопрос - какую функцию по мимо вступления можно добавить в диалог что бы менялись отношения группировки персонально к игроку, и как она выглядит ?
  Злобная реклама
Воскресенье, 04.08.2019, 21:41
Статус:
Сообщений: 666
Регистрация: 27.12.2015
Российская Федерация  frankenshtayn
Воскресенье, 04.08.2019, 22:22 | Сообщение # 2
Статус:
Зевака:
Сообщений: 18
Награды: 0
Регистрация: 08.07.2012

white_1, делаешь группировку друзьями\нейтралами:
Код
function friendactor(community1, community2)
relation_registry.set_community_goodwill ("neutral", "actor", 2500)
end

вместо neutral своя группировка, 2500 - берешь в зависимости от бывших отношений.
Еще можно бывших друзей\нейтралов сделать врагами, чтобы было логичнее:
Код
function enemyactor(community1, community2)
relation_registry.set_community_goodwill ("monolith", "actor", -5000)
end

Тоже понятно: группировку вставить свою.
Российская Федерация  white_1
Воскресенье, 04.08.2019, 22:46 | Сообщение # 3
Статус:
Новичок:
Сообщений: 245
Награды: 1
Регистрация: 27.12.2015

frankenshtayn, Так вроде работает, спасибо. Есть ещё один вопрос по теме функций диалога, чтобы новую тему не создавать. Если есть время, возможность подскажи.
Как сделать что бы диалог появлялся только при определённом количестве опыта у игрока ?
Российская Федерация  pauk_200
Воскресенье, 04.08.2019, 22:52 | Сообщение # 4
Статус:
Опытный:
Сообщений: 3358
Награды: 21
Регистрация: 10.05.2013

Российская Федерация  white_1
Воскресенье, 04.08.2019, 23:00 | Сообщение # 5
Статус:
Новичок:
Сообщений: 245
Награды: 1
Регистрация: 27.12.2015

pauk_200, Вообще я задавал там вопрос, там не ответили, а здесь оперативно и понятно объяснили, но я ещё попробую
Российская Федерация  frankenshtayn
Понедельник, 05.08.2019, 22:18 | Сообщение # 6
Статус:
Зевака:
Сообщений: 18
Награды: 0
Регистрация: 08.07.2012

Цитата white_1 ()
Как сделать что бы диалог появлялся только при определённом количестве опыта у игрока ?

Не совсем понятно, что имеется ввиду под "опытом".
Собственно говоря, диалог можно "притормозить" либо проверкой на наличие поршня(его то можно выдать в любой момент), либо проверкой на то, что функция вернула true.
Проверяем наличие поршня:
Код
<dialog id="botanik_tarelki_1">
<has_info>bot_sistem_talk_1</has_info>

если есть инфопоршень bot_sistem_talk_1 диалог появится.

Либо по функции:
Код
<dialog id="botanik_tarelki">
<precondition>Скрипт.Функция</precondition>

Здесь диалог появится если функция вернет "истину"

В ТЧ я проверял ранг таким образом:
Код
function check_actor()    
  if db.actor:character_rank() >= 200 then
   return true
  end  
    return false
end

Т.Е. если больше двухсот, функция вернет true и диалог станет активным.
Таким же образом можно проверить и репутацию:
Код
function check_actor()    
  if db.actor:character_reputation() >= 10 then
   return true
  end  
    return false
end

Напомню, это в ТЧ, но и в ЗП должно работать.
Форум » S.T.A.L.K.E.R. Модификации » Помощь в моддинге » Скрипты, конфиги, логика, движок » Изменение отношений через диалог CoC (Хочу понять эту функцию)
  • Страница 1 из 1
  • 1
Поиск: