Случайная подборка модов
Сталкер: Конец Света
3.0
X-RAY Multiplayer Extension: Defence
4.7
Я - Призрак
2.8
Nature Winter v2.0 «Квантовый скачок»
4.0
Вектор Отчуждения
4.2
SRP mod
3.9
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
  • Страница 1 из 1
  • 1
Модератор форума: FanG, Аdmin, FantomICW, Overfirst  
Изменение отношений через диалог CoC
Российская Федерация  white_1
Воскресенье, 04.08.2019, 21:41 | Сообщение # 1
Статус:
Новичок:
Сообщений: 246
Награды: 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
Статус:
Зевака:
Сообщений: 19
Награды: 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

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

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

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

pauk_200, Вообще я задавал там вопрос, там не ответили, а здесь оперативно и понятно объяснили, но я ещё попробую
  Злобная реклама
Воскресенье, 04.08.2019, 23:00
Статус:
Сообщений: 666
Регистрация: 27.12.2015
Российская Федерация  frankenshtayn
Понедельник, 05.08.2019, 22:18 | Сообщение # 6
Статус:
Зевака:
Сообщений: 19
Награды: 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

Напомню, это в ТЧ, но и в ЗП должно работать.
  Злобная реклама
Понедельник, 05.08.2019, 22:18
Статус:
Сообщений: 666
Регистрация: 08.07.2012
  • Страница 1 из 1
  • 1
Поиск: