CRAZY_STALKER666 36 Опубликовано 18 Августа 2016 Поделиться Опубликовано 18 Августа 2016 Выполнил функцию( Тч 1.0004) function pri_scene_rel()relation_registry.set_community_relation("stalker","actor_freedom",-5000)end Группировки все рабочие, но ловлю вылет: error]Expression : fatal error[error]Function : CScriptEngine::lua_error[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp[error]Line : 73[error]Description : [error]Arguments : LUA error: ...adow of chernobyl\gamedata\scripts\xr_effects.script:152: attempt to call field 'set_community_relation' (a nil value) В инете искал, и не нашел примеров использования .set_community_relation в ТЧ. Быть может ее там просто нет? Есть ли ей альтернатива, или я просто накосячил в аргументах функции? Не соответствует правилам. Ссылка на комментарий
Kondr48 314 Опубликовано 18 Августа 2016 Поделиться Опубликовано 18 Августа 2016 CRAZY_STALKER666, я такую функцию нашёл только в ЗП. (Искал в ТЧ, ОГСЕ (там добавляли функции для смены отношений, просто не помню какие) и в ЗП. Вывод очевиден Ссылка на комментарий
Карлан 1 049 Опубликовано 18 Августа 2016 Поделиться Опубликовано 18 Августа 2016 (изменено) Del. Что-то я припудрился, извиняюсь, сравниваю со своими телегами и забыл, что отношения перерабатывал, у меня такая телега стоит: function set_factions_community_relation(faction, faction_to, new_community) assert(is_string(faction), [[bad argument #1 to set_factions_community_relation (string excepted, got %s)]], type(faction)) assert(is_string(faction_to), [[bad argument #2 to set_factions_community_relation (string excepted, got %s)]], type(faction_to)) assert((is_number(new_community) or is_string(new_community)), [[bad argument #3 to set_factions_community_relation (string or number excepted, got %s)]], type(new_community)) if tonumber(new_community) then relation_registry.set_community_relation(faction, faction_to, new_community) else assert(const_factions_relation[new_community], [[const_factions_relation doesn't exist [%s] field]], new_community) relation_registry.set_community_relation(faction, faction_to, const_factions_relation[new_community]) end end Изменено 18 Августа 2016 пользователем Карлан Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 18 Августа 2016 Поделиться Опубликовано 18 Августа 2016 Использование set_community_relation в этой функции верное. Возможно мы не поняли друг друга. Есть ли в ТЧ вообще эта функция? Не соответствует правилам. Ссылка на комментарий
Kondr48 314 Опубликовано 18 Августа 2016 Поделиться Опубликовано 18 Августа 2016 CRAZY_STALKER666, поиск по исходникам сказал что нету, мб в другом виде если только. Ссылка на комментарий
Карлан 1 049 Опубликовано 18 Августа 2016 Поделиться Опубликовано 18 Августа 2016 @CRAZY_STALKER666, нет, в оригинальном ТЧ такой функции разумеется нет, тебе, возможно, подойдет использование relation_registry.set_community_goodwill, но она устанавливает коэффициент к конкретному объекту, но не меняет отношения между группировками. В твоем случае, я думаю, подойдет, так как, если не ошибаюсь, то ты хочешь поссорить актора, который состоит в Свободе, со сталкерами (как группировкой). Такое возможно. Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 18 Августа 2016 Поделиться Опубликовано 18 Августа 2016 В твоем случае, я думаю, подойдет, так как, если не ошибаюсь, то ты хочешь поссорить актора, который состоит в Свободе, со сталкерами (как группировкой). Такое возможно. Неправильно Нужно поссорить 2 группировки, ГГ к ним отношения не имеет.(На названия группировок смысла нет смотреть, их не я делал и использую по своему). В таком случае, если данной функции нет, можно ли её реализовать без ковыряний движка? Не соответствует правилам. Ссылка на комментарий
Карлан 1 049 Опубликовано 18 Августа 2016 Поделиться Опубликовано 18 Августа 2016 @CRAZY_STALKER666, функцию такую сделать определенно нельзя, тут остается только костылить, можно сделать группировку-двойник, можно на выходе в онлайн вылавливать мужиков из нужной группировки и каждого персонально ссорить с другой группировкой, это наверное меньшее из зол. Но это так, с первого взгляда, возможно что-то и лучше можно сделать. Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 18 Августа 2016 Поделиться Опубликовано 18 Августа 2016 (изменено) @Карлан, ок тогда поступим так. У каждого моего НПЦ из сценки( какой не скажу, секрет типо ) есть уникальный id. И получить его можно вплоть до: local id_kl7 = my_sid.pri_killed_3 local se_obj_1 = alife():object(id_kl7) На выходе имеем alife():object. Но это я использую для удаления вышеуказанных. Значит, можно написать функцию, которой я передам 2 аргумента(2 нпц) и она поссорит? Просто как правильно и аккуратно это сделать, не помню. З.Ы Через секнду озарение пришло. М.б так прокатит?) function set_enemies(obj, obj_2) -- тут надо получить НПЦ вышеуказанным способом if npc1 and npc1:alive() then -- тут проверить нет ли у нас NIL и не мертвы ли они. npc:set_relation(game_object.enemy, npc1) -- ссорим однго относительно другого npc1:set_relation(game_object.enemy, npc) -- наоборот end end end Изменено 18 Августа 2016 пользователем CRAZY_STALKER666 Не соответствует правилам. Ссылка на комментарий
Карлан 1 049 Опубликовано 18 Августа 2016 Поделиться Опубликовано 18 Августа 2016 @CRAZY_STALKER666, нет, я говорю о том, что бы не объекты друг с другом ссорить, а группировку с объектом, то есть устанавливаем ENEMIES константу в оба варианта, и чтобы мужик относился плохо к группировке, и группировка к мужику. Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 18 Августа 2016 Поделиться Опубликовано 18 Августа 2016 @Карлан, смотри, новые подробности. 1.Группировка, которую добавлял не я, не доделана, при смерти НПЦ из нее вылет, ссылающийся на death_manager, значит неизвестно где там еще накосячили. А делал то DEXXX... 2. Твой способ может и прокатит, но раз у меня есть конкретные обьекты, не проще оперировать ими а не группировками? 3. Попробовал применить к своему способу set_relation() - вылет: [error]Expression : fatal error[error]Function : CScriptEngine::lua_error[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp[error]Line : 73[error]Description : [error]Arguments : LUA error: ...adow of chernobyl\gamedata\scripts\xr_effects.script:259: attempt to call method 'set_relation' (a nil value) Применим ли set_relation для обьекта типа alife():object? Не соответствует правилам. Ссылка на комментарий
Kirgudu 1 217 Опубликовано 18 Августа 2016 Поделиться Опубликовано 18 Августа 2016 (изменено) @CRAZY_STALKER666, глянь в оригинале функцию xr_effects.set_enemies() - там очень близко к твоему случаю. Ссорит одного НПС со списком других, сделать аналог под свои нужды не сложно. Изменено 18 Августа 2016 пользователем Kirgudu Инструмент Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 18 Августа 2016 Поделиться Опубликовано 18 Августа 2016 @Kirgudu, от туда и подглядывал. Разница лишь в получении обьекта. У ПЫС: npc1 = level_object_by_sid(v) И у меня; local se_obj_1 = alife():object(id_kl7) Думаю, отсюда и вылет - не тот тип обьекта передаю( а уж где серверный а где клиентский - не знаю, честно ) Но уверен - путаница именно в этом. Не соответствует правилам. Ссылка на комментарий
Kirgudu 1 217 Опубликовано 18 Августа 2016 Поделиться Опубликовано 18 Августа 2016 (изменено) @CRAZY_STALKER666, тебе нужен клиентский. Для получения используй, например, функцию level.object_by_id(id). Ну или уже упомянутую level_object_by_sid(sid). Изменено 18 Августа 2016 пользователем Kirgudu Инструмент Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 18 Августа 2016 Поделиться Опубликовано 18 Августа 2016 P.S.S Пока кумекаю над функцией - увидел это function monster_berserk(actor, npc)npc:berserk()end Кхм... Еще одна пустышка-подарок ПЫС, или что-то рабочее? Не соответствует правилам. Ссылка на комментарий
Kirgudu 1 217 Опубликовано 18 Августа 2016 Поделиться Опубликовано 18 Августа 2016 (изменено) увидел это void berserk(); -- вопреки некоторым предположениям - это не наследие "Oblivion Lost", поскольку функция новая, а в 1935 её не было. Однако её назначение не вполне понятно.В теме "Справочник...", кстати, можно найти много интересного. Изменено 18 Августа 2016 пользователем Kirgudu Инструмент Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 18 Августа 2016 Поделиться Опубликовано 18 Августа 2016 (изменено) В теме "Справочник...", кстати, можно найти много интересного. Читал её. Очень много для себя узнал. Идем дальше. Получил я НПЦ по ид, как сказали выше. Поссорил. Итог - ржунимагу. 1.Первый стал агриться на меня, ГГ 2.Второй убил своего, которого должен был. 3.Третий и второй вместе в итоге подощли к первой жертве, один сорвался и убежал, а второй встал вплотную не к своей жертве, и начал вертеть прицелом в области головы жертвы. При этом я вообще ничего не понял - но одно ясно: xray решил просто меня потролить)))) З.Ы Конечно же я накосячил, своего добился, только появились новые огрешки, но их мы уже решим другими, более простыми способами) И всеже - void berserk() - просто пустая функция? Её тупо зарегестрировали в классе? Изменено 18 Августа 2016 пользователем CRAZY_STALKER666 Не соответствует правилам. Ссылка на комментарий
FonSwong 33 Опубликовано 18 Августа 2016 Поделиться Опубликовано 18 Августа 2016 Ума не приложу почему так происходит... print('print_table(point_tbl):') print_table(point_tbl) --при проверке показывает 6 вложений if not ignore_tbl[back_level] then ignore_tbl[back_level] = {} end ignore_tbl[back_level] = point_tbl print_table(ignore_tbl)--при проверке показывает 6 вложений table.remove(point_tbl) -- удаляю 2 последних вложения в таблице point_tbl table.remove(point_tbl) print_table(ignore_tbl) -- показывет что в таблице ignore_tbl ТОЖЕ отнялось 2 последних вложения Почему удаляется и в другой таблице вложения?? ничего не понимаю Ссылка на комментарий
Карлан 1 049 Опубликовано 18 Августа 2016 Поделиться Опубликовано 18 Августа 2016 @CRAZY_STALKER666, это не пустышка, но она и не работает. Я ее у себя худо-бедно починил, но она все равно работает не так, как задумывали разрабы, чтобы сделать нормально там надо небольшой таймер написать, мне просто было лень, так что не заморачивайся. Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 18 Августа 2016 Поделиться Опубликовано 18 Августа 2016 Я ее у себя худо-бедно починил, но она все равно работает не так, как задумывали разрабы, Ок. Ок. Открой секрет, пожалуйста - а как и что задумывали разрабы? Не соответствует правилам. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти