Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
DarkSnowder 900 Опубликовано 10 Сентября Поделиться Опубликовано 10 Сентября @Norman Eisenherz не всё так просто походу вот прописал в конфигах продавца условия Скрытый текст [trader] buy_condition = trade_generic_buy sell_condition = {=actor_friend} trade_friend_sell, trade_generic_sell buy_supplies = {=actor_rank_veteran} supplies_exp_2, {=actor_rank_experienced} supplies_exp_1, supplies_generic Скрытый текст -- функции на проверку ранга актора function actor_rank_newbie() return db.actor:character_rank() < 300 end function actor_rank_experienced() return db.actor:character_rank() < 600 end function actor_rank_veteran() return db.actor:character_rank() < 900 end function actor_rank_master() return db.actor:character_rank() > 900 end на старте у меня ГГ новичок, но в продаже появляются предметы, что должны ток на ранге опытный и ветеран появлятся 1 Лучше сделать мод с 0, чем пытаться залатать багованный. Ссылка на комментарий
abramcumner 1 159 Опубликовано 10 Сентября Поделиться Опубликовано 10 Сентября (изменено) 2 часа назад, DarkSnowder сказал: buy_supplies = {=actor_rank_veteran} supplies_exp_2, {=actor_rank_experienced} supplies_exp_1, supplies_generic Прочитай вслух свои условия. Если ранг ГГ меньше 900, то продавать ему как ветерану. <= в начале игры с рангом ноль, срабатывает это условие Если ранг ГГ больше или равен 900 и меньше 600, то продавать ему как опытному. Если ранг ГГ больше или равен 900, то продавать стандартно Я бы инвертировал условия или в конфиге или в функциях. Например, так: buy_supplies = {!actor_rank_veteran} supplies_exp_2, {!actor_rank_experienced} supplies_exp_1, supplies_generic Тогда звучало бы более логично: Если ранг ГГ больше или равен 900, то продавать как ветерану. Если ранг ГГ меньше 900 и больше или равен 600, продавать как опытному. Если ранг ГГ меньше 600, продавать стандартно. Изменено 10 Сентября пользователем abramcumner Ссылка на комментарий
DarkSnowder 900 Опубликовано 10 Сентября Поделиться Опубликовано 10 Сентября @abramcumner в игре ранговая система вроде как такая от 0 до 300 - новичок, от 300 до 600 - опытный, от 600 да 900 ветеран, а все кто свыше 900 мастера то бишь как я хочу сделать - если ГГ новичок (то бишь его ранг не достиг 300 - продавать по таблице supplies_generic, если ранг ГГ опытный (от 300 до 600) - асортимент идёт по таблице supplies_exp_1, на а если свыше 600 - то продавать по supplies_exp_2. Лучше сделать мод с 0, чем пытаться залатать багованный. Ссылка на комментарий
abramcumner 1 159 Опубликовано 10 Сентября Поделиться Опубликовано 10 Сентября @DarkSnowder тогда надо переработать функции, чтобы они соответствовали системе: -- функции на проверку ранга актора function actor_rank_newbie() return db.actor:character_rank() < 300 end function actor_rank_experienced() local rank = db.actor:character_rank() return rank >= 300 and rank < 600 end function actor_rank_veteran() local rank = db.actor:character_rank() return rank >= 600 and rank < 900 end function actor_rank_master() return db.actor:character_rank() >= 900 end 2 1 Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 10 Сентября Поделиться Опубликовано 10 Сентября (изменено) Может, передавать ранг как аргумент, чтобы обойтись одной функцией? Все равно числа вручную вводятся, хотя при равномерном интервале можно обойтись нижней границей. … = {=actor_rank(min_rank)} … function actor_rank(min) local max = min + 300 if min == 900 then max = min *10 -- на всякий случай end local rank = db.actor:character_rank() return (rank >= min and rank < max) end Изменено 10 Сентября пользователем Norman Eisenherz 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Kirgudu 1 217 Опубликовано 10 Сентября Поделиться Опубликовано 10 Сентября 4 часа назад, Norman Eisenherz сказал: Может, передавать ранг как аргумент, чтобы обойтись одной функцией? Тогда, если правильно помню, функция должна содержать в своём объявлении ещё два параметра, которые в исходном её виде неявно опускаются, а при передаче аргумента обязательны: function actor_rank(actor, npc, min) --... end при этом желательно проверить, в каком виде приходит в функцию аргумент min: числа или таблицы с единственным элементом. 2 2 Инструмент Ссылка на комментарий
dPlayer 500 Опубликовано 10 Сентября Поделиться Опубликовано 10 Сентября Почему у некоторых зомбированных есть имя и прозвище, а другие просто "Зомбированный"? Ссылка на комментарий
Это популярное сообщение. Купер 2 908 Опубликовано 10 Сентября Это популярное сообщение. Поделиться Опубликовано 10 Сентября Потому что половина здесь (в качестве примера): character_desc_yantar.xml -> <name>GENERATE_NAME_stalker</name> А половина в симуляции: character_desc_simulation.xml -> <name>zombie_name</name> 1 5 Ссылка на комментарий
DarkSnowder 900 Опубликовано 11 Сентября Поделиться Опубликовано 11 Сентября @abramcumner ну чёт не срабатывает проверка видимо Скрытый текст buy_condition = trade_generic_buy sell_condition = {!actor_friend} trade_friend_sell, trade_generic_sell buy_supplies = {!actor_rank_veteran} supplies_exp_2, {!actor_rank_experienced} supplies_exp_1, supplies_generic Скрытый текст -- функции на проверку ранга актора function actor_rank_newbie(actor, npc) return db.actor:character_rank() < 300 end function actor_rank_experienced() local rank = db.actor:character_rank(actor, npc) return rank >= 300 and rank < 600 end function actor_rank_veteran(actor, npc) local rank = db.actor:character_rank() return rank >= 600 and rank < 900 end function actor_rank_master(actor, npc) return db.actor:character_rank() >= 900 end ГГ спавнится с рангом 0, а всё равно в продаже предметы, что должны появляться при условии опытный и ветеран Лучше сделать мод с 0, чем пытаться залатать багованный. Ссылка на комментарий
Это популярное сообщение. abramcumner 1 159 Опубликовано 11 Сентября Это популярное сообщение. Поделиться Опубликовано 11 Сентября (изменено) @DarkSnowder с такими функциями нужен изначальный конфиг: buy_supplies = {=actor_rank_veteran} supplies_exp_2, {=actor_rank_experienced} supplies_exp_1, supplies_generic Изменено 11 Сентября пользователем abramcumner 1 4 Ссылка на комментарий
DarkSnowder 900 Опубликовано 13 Сентября Поделиться Опубликовано 13 Сентября народ, подскажите по братски сделал пару циклических квестов на поиски предметов, добавил нужный диалог торгашу, в итоге наблюдаю такое список есть, а взять их невозможно Скрытый текст [jaba_find_item_1] type = find_item community = actor ;condlist = {+agroprom_military_case_done} text = st_jaba_recover_item_1_text description = st_jaba_recover_item_1_descr parent = jaba target = cher_quest_wpn_pm_1 reward_money = 1500 reward_reputation = +15 reward_rank = 2 time = 86400 [jaba_find_item_2] type = find_item community = actor ;condlist = {+agroprom_military_case_done} text = st_jaba_recover_item_2_text description = st_jaba_recover_item_2_descr parent = jaba target = cher_quest_wpn_ak74u_1 reward_money = 3000 reward_reputation = +15 reward_rank = 5 time = 86400 [jaba_find_item_3] type = find_item community = actor ;condlist = {+agroprom_military_case_done} text = st_jaba_recover_item_3_text description = st_jaba_recover_item_3_descr parent = jaba target = cher_quest_af_cristall_flower_1 reward_money = 6000 reward_reputation = +15 reward_rank = 3 time = 86400 [jaba_find_item_4] type = find_item community = actor ;condlist = {+agroprom_military_case_done} text = st_jaba_recover_item_4_text description = st_jaba_recover_item_4_descr parent = jaba target = cher_quest_scout_pda reward_money = 15000 reward_reputation = +15 reward_rank = 10 time = 86400 [jaba_find_item_5] type = find_item community = actor ;condlist = {+agroprom_military_case_done} text = st_jaba_recover_item_5_text description = st_jaba_recover_item_5_descr parent = jaba target = cher_quest_killer_outfit_1 reward_money = 8000 reward_reputation = +15 reward_rank = 7 time = 86400 Лучше сделать мод с 0, чем пытаться залатать багованный. Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 13 Сентября Поделиться Опубликовано 13 Сентября См. условия выдачи заданий в CRandomTask:check_task_props(task_id): активные задания того же типа, отсрочка, наличие целей на сервере. По-хорошему, надо вывести часть таблицы task_info и проверить параметры этих заданий: для выдачи должно быть status=normal и enabled_props = true. 2 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Владос 0 Опубликовано 14 Сентября Поделиться Опубликовано 14 Сентября Здравствуйте, платформа Тч. Скачивал от сюда: https://www.playground.ru/stalker_shadow_of_chernobyl/file/s_t_a_l_k_e_r_v0_4_x_ray_sdk-857862 Проблема в том, что когда я прописываю текст персонажу(все делал по туторам) и когда пишу название своего диалога, игра вылетает. Несколько раз пробовал и ничего. Добавлено Купер, 14 Сентября Перемещено. Ссылка на комментарий
dPlayer 500 Опубликовано 14 Сентября Поделиться Опубликовано 14 Сентября Как можно ли убить всех НПС определённой группировки? И тех то онлайн и офф. 1 Ссылка на комментарий
Капрал Хикс 534 Опубликовано 15 Сентября Поделиться Опубликовано 15 Сентября @dPlayer , мне чатджипити такое предложил: -- Функция для убийства всех NPC определённой группировки function kill_faction_members(faction_name) -- Получаем всех онлайн-NPC на текущей локации local npc_list = alife():objects() -- Перебираем всех существ for _, npc in pairs(npc_list) do -- Проверяем, что это персонаж (не объект) if npc:section() == "actor" or npc:section() == "stalker" then -- Проверяем группировку NPC if npc:character_community() == faction_name then -- Применяем смертельный урон npc:hit(10000, npc, nil, "hit_fire_wound") -- 10000 урона точно убьёт end end end end -- Пример вызова функции для группировки "dolg" (Долг) kill_faction_members("dolg") 1 Ссылка на комментарий
Kirgudu 1 217 Опубликовано 15 Сентября Поделиться Опубликовано 15 Сентября 4 часа назад, Капрал Хикс сказал: if npc:section() == "actor" or npc:section() == "stalker" then Это хохма такая? ) 1 1 2 Инструмент Ссылка на комментарий
Капрал Хикс 534 Опубликовано 15 Сентября Поделиться Опубликовано 15 Сентября @Kirgudu, да. Чат нужно учить и учить. Разумеется, так это работать не будет. Но примерное представление, что к чему, оно даёт. 1 1 Ссылка на комментарий
dPlayer 500 Опубликовано 16 Сентября Поделиться Опубликовано 16 Сентября 15 часов назад, Капрал Хикс сказал: чатджипити такое предложил Это какой-то неправильный мёд 1 2 Ссылка на комментарий
Капрал Хикс 534 Опубликовано 17 Сентября Поделиться Опубликовано 17 Сентября @dPlayer , есть функция для убийства NPC, в онлайне точно сработает, в оффлайне не знаю уже, как и что. Ссылка на комментарий
Labadal 68 Опубликовано 18 Сентября Поделиться Опубликовано 18 Сентября Подскажите пожалуйста, как высчитываются вот эти вот значения оружия: может формула какая-то, или что-то вроде того? God save Hatsune Miku! Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти