AKKK1 6 Опубликовано 25 Сентября 2009 Поделиться Опубликовано 25 Сентября 2009 (изменено) Диологи кому именно ? У сидора они и так прописанны Сидор отказывается говорить именно с ГГ Почему ? По поводу торговцев если кто не знает то Сидор монстр И вот цитата Singapur22 http://www.gsc-game.ru/index.php?t=communi...amp;offset=-240 Обсалютно просто. В принципе ничем не отличается от спавна нпс. Есть лишь не большие отличия. Первое, в профайле обязательно указать безконечные деньги и как можно большую сумму "min" и "max". В логике добавляется функция: trade = misc\trade_new_trader.ltx Где имя файла может быть любым, в котором прописываются предметы для торговли. И всё. Я ваще не понимаю. В чём вы нашли проблему, что пришлось создавать пост на данную тему? Торговцем можно сделать любого сталкера, и не только сталкера, но и работу под гулагом. Достаточно создать файл с предметами для торговли и прописать в логике любого непися или работы гулага функцию "trade" с сылкой на данный файл. Вот еще до кучи цитата Singapur22 http://www.gsc-game.ru/index.php?t=communi...amp;offset=-240 Нашёл, из за чего нпс не торгуют оружием, а торговцы торгуют. Протестировал на Бармене. Установив в all.spawn имя секции stalker вместо m_barmen он стал как и нпс выбрасывать лишнее оружие, и имеющееся не продаёт. Будем искать настройку в конфигах. Вот и настроичка нашлась В файле m_stalker, строки: use_single_item_rule = off can_select_items = off Где, первая -чтоб не выбрасывал. вторая -чтоб торговал. Модераторы не могу понять почему полные сылки на посты нормально не вставляются две вышеприведенные сылки должны были указывать на конкретные страницы форума вместо этого по ним попадаеш на главную страницу (сылки обрезаются) ? Изменено 25 Сентября 2009 пользователем AKKK1 Ссылка на комментарий
Гость Greh921 Опубликовано 24 Ноября 2009 Поделиться Опубликовано 24 Ноября 2009 (изменено) Создал снайпера на АТП и хочу убить Шустрова им, но со 100% гарантией. Потскажите мне как это сделать, дайте скрипт или что-нибудь в этом роде, я думал логикой снайпера это сделать, но не нашёл ни одного пораметра убийства непеся непесем по логике. Желательно убить Шустрова не находясь возле него. Может его как-нибуть привезать к Шустрову на подобии тех наёмников, которые хотят убить Крота, но не знаю что именно работает при этом! Вот обзор снайпера: Крыша. Изменено 24 Декабря 2009 пользователем Halford Ссылка на комментарий
Pihan13 9 Опубликовано 25 Ноября 2009 Поделиться Опубликовано 25 Ноября 2009 Greh921, ну может в логике поставить camper, а target = story_id (последнее - стори айди Шустрого) Локация "Жилище Картографа" Хелп по созданию смарт террейнов Ссылка на комментарий
Gektor 0 Опубликовано 25 Ноября 2009 Поделиться Опубликовано 25 Ноября 2009 Такой вопрос: игра тч 1.0006 чистая пытаюсь заспавнить нпц на кордоне на втором этаже здания которое рядом с местом спавна лиса, а он появляется всегда под тем местом где должен. Я и через алл.спавн и через скрипт пытался - результат один и тот же. Однако гг там спавнится без проблем. Чё делать? Подскажите плиз... Команда ReWrite Team. От сталкера отошли. Пересели за другую платформу. Ссылка на комментарий
Гость Greh921 Опубликовано 26 Ноября 2009 Поделиться Опубликовано 26 Ноября 2009 У меня таже проблема, думаю проблема в досках, которые не запрограммированы на удержание нпс и тупо пропускают сквозь себя. А насчет снайпера Pihan 13 я побробую, но после днюхи, да и отдохнуть от работы. Я спавнил под точкой спавна динамический объект (плакат 3х4 из архивов игры) под точкой спавна нпц (а по моему через динамику персы не проходят). И он всё равно появляется на первом этаже. Ссылка на комментарий
дядяСаша 0 Опубликовано 24 Декабря 2009 Поделиться Опубликовано 24 Декабря 2009 Что мне "нравиться" в уроках что их пишет каждый для себя. Те кто знает как делать читать не будут, а кто не знает всё равно ничего не поймёт Например: Откроем фаил character_****.xml - а такого нет файла! Сообщение от модератора Halford О как запущено... Звездочки - любое имя.... Там много таких файлов. <specific_character id="название_секции" team_default = "1"> - и как она должна называться? по английски по русски? Сообщение от модератора Halford А примеры в файлах глянуть?! <rank>цифры от 0 до 900</rank> <reputation>цифры от 0 до 1000</reputation> и какие цифры ставитьи что они значат? и т. д. Сообщение от модератора Halford Разве это не интуитивно понятно? Даже без знания английского... да если бы я это знал зачем бы читал а? Ссылка на комментарий
Guzerus 0 Опубликовано 24 Декабря 2009 Поделиться Опубликовано 24 Декабря 2009 (изменено) Вот что мне не нравится,что каждый критиковать может,но не каждый делать. Для примера. characters_**** -это не файл такой,просто вот эти самые точечки,это слово. Название локи. specific_character id="название_секции" team_default = "1"> --- Скорее всего по английски,вместо пробелов "_". Цифры любые,от 0 до 900 (1000),уж здесь то что непонятно. А значат они,и не надо быть гением в английском,чтоб понять,ранг и репутацию непися. Изменено 24 Декабря 2009 пользователем Guzerus Мой ник читается гузерус. Ссылка на комментарий
Bogdanio91 0 Опубликовано 26 Декабря 2009 Поделиться Опубликовано 26 Декабря 2009 (изменено) Хотел создать снайпера в деревне новичков на кордоне,на 4-ом патче игра чистая,но когда запускаю игру,она долго грузится , а когда захожу снайпера нет,помогите,в чём я ошибся? 1.Работа с файлом character_desc_escape <!---------------------------------------esc_Vitya-----------------------------------------------------> <specific_character id="esc_Vitya" team_default = "1"> <name>esc_Vitya_neme</name> <icon>ui_npc_u_stalker_neytral_balon_1</icon> <map_icon x="1" y="0"></map_icon> <bio>Опытный сталкер. Детальная информация отсутствует.</bio> <class>esc_Vitya</class> <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect> <snd_config>characters_voice\human_01\stalker\</snd_config> <rank>545</rank> <reputation>53</reputation> <visual>actors\neytral\stalker_neytral_balon_1</visual> <supplies> [spawn] \n wpn_svd \n ammo_7.62x54_7h1 = 5 \n </supplies> #include "gameplay\character_criticals_4.xml" </specific_character> 2. работа с файлом npc_profile <!-- Escape --> <character id="esc_Vitya"> <class>esc_Vitya</class> <specific_character>esc_Vitya</specific_character> 3 работа с файлом spawn_section ;--------Escape-------------- ;--------neutrals------------ [esc_Vitya_respawn]:stalker $spawn = "respawn\esc_Vitya_respawn" character_profile = esc_Vitya spec_rank = regular community = stalker </character> 4 работа с файлом xr_conditions.script -- function is_Vitya_enemy(enemy, object) return enemy:id() ~= db.actor:id() end 5,5.1,5.2 всё сделал 5.3 работа с Vitya_add.script spawn_Vitya() end function esc_Vitya()--\\spawn_esc_Vitya() local x= -215.986328125 local y= -15.848692893982 local z= -133.29975891113 local level_vertex= 33476 local game_vertex_id= 63 alife():create("esc_Vitya_respawn",vector():set(x,y,z),level_vertex,game_vertex_id) end function save_variable(variable_name, value) xr_logic.pstor_store(db.actor, variable_name, value) end function load_variable(variable_name, value_if_not_found) return xr_logic.pstor_retrieve(db.actor, variable_name, value_if_not_found) end 5.4 рабоат с bind_stalker.script if Vitya_add.load_variable("spawn_Vitya",false)==false then Vitya_add.Vitya_add_spawn() Vitya_add.save_variable("spawn_Vitya",true) end 6 работа с папкой Vitya_addon 6.1 Vitya_addon_enemy_logic.ltx ,Vitya_addon_friend_logic.ltx 6.2 Vitya_addon_enemy_logic.ltx [logic] active = walker combat_ignore = combat_ignore trade = misc\Vitya\vitya.ltx [remark] anim = ward combat_ignore_cond = always danger_ignore = danger_ignore [combat_ignore] [danger_ignore] ignore_distance = 0 [walker] path_walk = walk path_look = look Vitya_addon_friend_logic.ltx [logic] active = remark combat_ignore = combat_ignore trade = misc\Vitya\Vitya.ltx [remark] anim = ward combat_ignore_cond = always danger_ignore = danger_ignore [combat_ignore] [danger_ignore] ignore_distance = 0 В чём тут проблема? Скажите пожалуста Изменено 26 Декабря 2009 пользователем Bogdanio91 Ссылка на комментарий
EvilMax 0 Опубликовано 26 Декабря 2009 Поделиться Опубликовано 26 Декабря 2009 (изменено) Ребята, а подскажите, как сделать враждебного NPC, который стоит на месте при любых условиях? А то замечает меня и сразу сматывается. Цель: нужна неподвижная мишень для опытов =) Ниже текущий код логики (сталкер - наёмник, враждебен): ;SNIPER ADDON ;Меченый(Стрелок) [logic] active = remark@search [remark@fire] combat_ignore_cond = always danger_ignore = danger_ignore radius = 0 anim = ward wounded = wounded@work sniper = true [smart_terrains] none = true [remark@search] combat_ignore_cond = always combat_ignore_keep_when_attacked = true danger_ignore = danger_ignore anim = ward target = actor wounded = wounded@work [wounded@work] hp_state = 0|wounded_heavy@help_heavy hp_state_see = 0|wounded_heavy@help_heavy hp_victim = 0|nil hp_fight = 0|false hp_cover = 0|false P.S. Оружие и броню я этому чудику не "выдал". Нужна просто неподвижная мишень. Изменено 26 Декабря 2009 пользователем EvilMax Ссылка на комментарий
Darien 0 Опубликовано 26 Декабря 2009 Поделиться Опубликовано 26 Декабря 2009 (изменено) Bogdanio91 В bind_stalker, под строкой object_binder.update(self, delta) функции actor_binder:update(delta) пропиши: Vitya_add.esc_Vitya() Кстати, зачем так много строк кода спавна? alife():create("esc_Vitya_respawn",vector():set(-215.986, -15.848, -133.299), 33476, 63) Удобнее, согласись. И ещё, куда в бинд_сталкере ты вписывал проверку?: if Vitya_add.load_variable("spawn_Vitya",false)==false then Vitya_add.Vitya_add_spawn() Vitya_add.save_variable("spawn_Vitya",true) end Изменено 26 Декабря 2009 пользователем Darien Ссылка на комментарий
Bogdanio91 0 Опубликовано 27 Декабря 2009 Поделиться Опубликовано 27 Декабря 2009 (изменено) Darien,спасибо большое конечно,я вписал, но снайпер всёравно не появился но игра стала нормально грузится Насчёт строк кода,я если чесно незнал что так можно А в Бинд_сталкере проверку вписал в самый конец вот этого раздела object_binder.update(self, delta) функции actor_binder:update(delta) Перед последни andом Остальное то хоть правельно прописал? в чём ещё может быть причина? уже вторые сутки не без передышки сижу мучаюсь не как не получается, научится уш очень надо и хочется Изменено 27 Декабря 2009 пользователем Bogdanio91 Ссылка на комментарий
Bogdanio91 0 Опубликовано 27 Декабря 2009 Поделиться Опубликовано 27 Декабря 2009 (изменено) Так я вроде же так и делал... Изменено 27 Декабря 2009 пользователем Bogdanio91 Ссылка на комментарий
Maks 1 Опубликовано 29 Декабря 2009 Поделиться Опубликовано 29 Декабря 2009 Bogdanio91 в bind_stalker.script вместо Vitya_add.Vitya_add_spawn() поставь Vitya_add.esc_Vitya() У тебя же там стоит вызов функции Vitya_add_spawn. А функция спавна у тебя называется esc_Vitya. По этому и не спавнится, наверное. (функцию Vitya_add_spawn я у тебя вообще ну вижу...) Ссылка на комментарий
Po-meceniy 4 Опубликовано 31 Декабря 2009 Поделиться Опубликовано 31 Декабря 2009 При создании нового непися вылет: FATAL ERROR [error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : ....e.r. - Зов Припяти\gamedata\scripts\xr_logic.script:939: bad argument #1 to 'gfind' (string expected, got nil) stack trace: Чтос этим делать? Ссылка на комментарий
меченый(стрелок) 5 Опубликовано 31 Декабря 2009 Автор Поделиться Опубликовано 31 Декабря 2009 (изменено) Po-meceniy, Чтос этим делать? для начала:Привести 939 строку скрипта xr_logic потом: узнать как туда(string.gfind) попало вместо "строки" - пустая переменная ... Да, в ЗП "логика" немного другая ...Сори , привести не могу..ЗП удалил,а диск будет только числа 2-3 Изменено 31 Декабря 2009 пользователем меченый(стрелок) Ссылка на комментарий
Po-meceniy 4 Опубликовано 31 Декабря 2009 Поделиться Опубликовано 31 Декабря 2009 В xr_logic нашёл только три функции в которых есть gfind из-за которого происходит вылет function parse_infop1(rslt, str) --printf("_bp: parse_infop: %s", utils.to_str(str)) if str then local infop_name, sign local infop_n = 1 for s in string.gfind(str, "%s*([%-%+%~%=%!][^%-%+%~%=%!%s]+)%s*") do --printf("_bp: parse_infop: s=%s", utils.to_str(s)) sign = string.sub(s, 1, 1) infop_name = string.sub(s, 2) if sign == "+" then rslt[infop_n] = { name = infop_name, required = true } elseif sign == "-" then rslt[infop_n] = { name = infop_name, required = false } elseif sign == "~" then rslt[infop_n] = { prob = tonumber(infop_name) } elseif sign == "=" then rslt[infop_n] = { func = infop_name, expected = true } elseif sign == "!" then rslt[infop_n] = { func = infop_name, expected = false } else abort_syntax_error_in_cond(npc, section, field) end infop_n = infop_n + 1 end end end function parse_func_params(str) local lst = {} local n for par in string.gfind(str, "%s*([^:]+)%s*") do n = tonumber(par) if n then table.insert(lst, n) else table.insert(lst, par) end end return lst end function parse_infop(rslt, str) --printf("_bp: parse_infop1: %s", utils.to_str(str)) if str then local infop_name, sign local infop_n = 1 local at, params for s in string.gfind(str, "%s*([%-%+%~%=%!][^%-%+%~%=%!%s]+)%s*") do --printf("_bp: parse_infop: s=%s", utils.to_str(s)) sign = string.sub(s, 1, 1) infop_name = string.sub(s, 2) params = nil -- парсим параметры функций at = string.find(infop_name, "%(") if at then if string.sub(infop_name, -1) ~= ")" then abort("wrong condlist %s", str) end if at < string.len(infop_name) - 1 then params = parse_func_params(string.sub(infop_name, at + 1, -2)) else params = {} end infop_name = string.sub(infop_name, 1, at - 1) end if sign == "+" then rslt[infop_n] = { name = infop_name, required = true } elseif sign == "-" then rslt[infop_n] = { name = infop_name, required = false } elseif sign == "~" then rslt[infop_n] = { prob = tonumber(infop_name) } elseif sign == "=" then --printf("_bp: n = %s; r = %s", infop_name, utils.to_str(params)) rslt[infop_n] = { func = infop_name, expected = true, params = params } elseif sign == "!" then --printf("_bp: n = %s; r = %s", infop_name, utils.to_str(params)) rslt[infop_n] = { func = infop_name, expected = false, params = params } else abort_syntax_error_in_cond(npc, section, field) end infop_n = infop_n + 1 end end end Ссылка на комментарий
dimos 10 Опубликовано 2 Января 2010 Поделиться Опубликовано 2 Января 2010 EvilMax, проблема в том, что непись у тебя находится в онлайне с уже готовой логикой, а ты даешь ему другую. Переведи его в оффлайн и убери флаг sniper = true. Цензура ограничивает творчество © by me Ссылка на комментарий
222RAZOR222 1 Опубликовано 3 Января 2010 Поделиться Опубликовано 3 Января 2010 СПС теперь я смогу сделать повелитель зоны и спавнить квестовых неписей!!!!!!!! :ny_z_7: Строгое предупреждение от модератора n6260 А я могу вас наказать за нарушение правил форума!!! Ссылка на комментарий
stalker19965 0 Опубликовано 19 Января 2010 Поделиться Опубликовано 19 Января 2010 Здравствуйте,а вот такая логика пойдёт новому торговцу?: [smart_terrains] none = true [dont_spawn_loot] [logic] trade = misc\ross_trader.ltx trader_flags = 0 inv_max_weight = 10000 active = remark walker = walker combat_ignore = combat_ignore [combat_ignore] [remark] anim = wait combat_ignore_cond = always [walker] path_walk = trader_walk path_look = trader_look meet = meet [meet] use = true use_wpn = true meet_talk_enabled = true Ссылка на комментарий
0sk0L0k 0 Опубликовано 27 Марта 2010 Поделиться Опубликовано 27 Марта 2010 Сделал все по мануалу. NPC появился, все вроде бы отлично... Правда есть одно НО: он меня отправляет к "главному". Как это лечить? Он меня посылает даже если он вообще один на всей локации. P.S. Спавнил в ЗП Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти