Изменение отношений через диалог 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 |
|
|
|
|
|
Статус: |
|
Зевака: |
|
Сообщений: |
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 |
|
|
|
|
|
Статус: |
|
Зевака: |
|
Сообщений: |
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 |
|
|
|
|