AK74 4 Опубликовано 30 Мая 2010 Поделиться Опубликовано 30 Мая 2010 (изменено) Доброго Всем времени суток. Я вот ковыряясь в спавне с объектами типа physic_object решил поиграть со значениями поля mass. Я так понимаю, что это означает массу объекта. Заспавнил ящик и стал присваивать разные значения этому полю, собирал all.spawn и запускал новую игру. Дошел до значения в 200 тонн (дальше уже надоело просто). И каждый раз ГГ спокойно двигал этот ящик! Трактор "Беларусь" go to пенсия Получается, что движку плевать на массу объекта. Или это у меня кривые руки? 2Larry76 Я тоже не волшебник, а только учусь. Но вот у меня есть дикие сомнения в правильности написания строки: params.custom="[logic]\ncfg = scripts\\test_npc_logic.ltx" А конкретно, напрягают \n и двойной слеш в scripts\\test. Сверьтесь с другими рабочими примерами. Имхо, вид должен быть вроде: [logic] cfg = scripts\test_npc_logic.ltx Что касается 1-й и 3-ей строк, то не сложно вбить в поиск в Тотале в поиск строчку write_stalker_params. Таким образом я нашел файл amk_pk.script, автором которого является комрад Kolmogor --- Читает STATE и UPDATE нет-пакеты сталкера и разбирает их -- @param sobj Серверный объект сталкера -- @return Таблица параметров сталкера function read_stalker_params(sobj) g_stpk:w_begin(0) g_uppk:w_begin(0) sobj:STATE_Write(g_stpk) sobj:UPDATE_Write(g_uppk) g_stpk:r_seek(2) g_uppk:r_seek(2) local tbl=parse_se_stalker({}, g_stpk, g_uppk) return tbl end --- Собирает и пишет STATE и UPDATE нет-пакеты сталкера -- @param sobj Серверный объект сталкера -- @return Таблица параметров сталкера function write_stalker_params(sobj, tbl) g_stpk:w_begin(0) g_uppk:w_begin(0) fill_se_stalker(tbl, g_stpk, g_uppk) g_stpk:r_seek(2) g_uppk:r_seek(2) sobj:STATE_Read(g_stpk) sobj:UPDATE_Read(g_uppk) end Хотя может быть, я как всегда ошибаюсь. Удачи. Изменено 30 Мая 2010 пользователем AK74 Ссылка на комментарий
Larry76 0 Опубликовано 30 Мая 2010 Поделиться Опубликовано 30 Мая 2010 (изменено) Я тоже не волшебник, а только учусь. Но вот у меня есть дикие сомнения в правильности написания строки: params.custom="[logic]\ncfg = scripts\\test_npc_logic.ltx" А конкретно, напрягают \n и двойной слеш в scripts\\test. Сверьтесь с другими рабочими примерами. Имхо, вид должен быть вроде: [logic] cfg = scripts\test_npc_logic.ltx Мой файл это первый спойлер, а второй это я привел пример из тутора. У меня по ходу используется файл xr_logic.script,но что-то там не стыкуется и непись берёт какую-то общую логику(а не ту,что я ему прописал) и отправляется бродить по локации. При использовании строчек из тутора,я стабильно вылетаю.... ссылается на строчки в файле amk.script в различных вариациях.Сорри лог уже "затёрся" попробую повторить. Изменено 30 Мая 2010 пользователем Larry76 Правильно заданный вопрос- уже половина ответа! Ссылка на комментарий
Malandrinus 615 Опубликовано 30 Мая 2010 Поделиться Опубликовано 30 Мая 2010 AK74, решил поиграть со значениями поля mass... Получается, что движку плевать на массу объекта. Масса складывается из отдельных масс частей физической оболочки, которые прописаны в визуале и задаются в SDK. Сдаётся мне, что этот параметр просто игнорируется. Я видел ещё такой ph_mass, но он тоже не влияет. params.custom="[logic]\ncfg = scripts\\test_npc_logic.ltx" А конкретно, напрягают \n и двойной слеш в scripts\\test. Это эскейп-последовательности, которые означают соответственно "перевод строки" и "одиночный бэкслеш". Всё здесь нормально. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
nuklia 0 Опубликовано 30 Мая 2010 Поделиться Опубликовано 30 Мая 2010 AK74,Как-то пробовал модель болта подменять чем-то вроде киприча, массу модельке задавал в СДК (уже не помню, сколько) - на доходчивость попадания в голову влияет. Ссылка на комментарий
andref 0 Опубликовано 30 Мая 2010 Поделиться Опубликовано 30 Мая 2010 Извиняюсь если было, но как можно изменить расположение интро-текстуры локации при загрузке и убрать надписи про "100 советов ..."? Ссылка на комментарий
straj 0 Опубликовано 31 Мая 2010 Поделиться Опубликовано 31 Мая 2010 Вот решил заспавнить НПС в ЗП. Почтитал поиск, нашёл урок, всё сделал... А в конце написано: "- И последнее- регестрация скрипта в \scripts\db.script" Так вот вопрос: У меня нет бд скрипта. Для ТЧ есть, а для ЗП нет! Просьба: выложите пожалуйста этот файлик для ЗП, пожалуйста! Ссылка на комментарий
PavelSnork 3 Опубликовано 31 Мая 2010 Поделиться Опубликовано 31 Мая 2010 straj, если ты пользуешься утилитой для распаковки архивов игры, то етот файл по-любому должен быть. Жду ли я Сталкер 2? Хм... Ссылка на комментарий
straj 0 Опубликовано 31 Мая 2010 Поделиться Опубликовано 31 Мая 2010 (изменено) Нет, не пользуюсь, так-как создаю аддон к Сигероусу и не хотел бы его переустонавливать! Можешь выложить? Спасибо, VlaDOS ! Изменено 31 Мая 2010 пользователем straj Ссылка на комментарий
VlaDOS 0 Опубликовано 31 Мая 2010 Поделиться Опубликовано 31 Мая 2010 straj, Вот: db.rar Ссылка на комментарий
straj 0 Опубликовано 31 Мая 2010 Поделиться Опубликовано 31 Мая 2010 Подскажите, как сделать чтобы НПС ы бежали за тобой, плииз! К примеру как телохранители в сигероусе! Ссылка на комментарий
Larry76 0 Опубликовано 31 Мая 2010 Поделиться Опубликовано 31 Мая 2010 Фух... разобрался наконец-то со своим неписем. "ларчик просто открывался" При моём способе спавна через скрипт(с привязкой к файлу xr_logic ) Надо было просто при регистрации в файле npc_profile.xml добавить строчку: <specific_character>***профиль непися***</specific_character> А я посмотря на предыдущих,подумал что незачем это. В файле из оригинала такая строчка только у актора имеется.Это меня сперва и смутило. А без неё НПС не приписанный ни к какому смарту действует по логике "идусамнезнаюкуда" не смотря на прописанный путь к логике в "custom_data" Правильно заданный вопрос- уже половина ответа! Ссылка на комментарий
straj 0 Опубликовано 31 Мая 2010 Поделиться Опубликовано 31 Мая 2010 (изменено) Larry76, Это значит что без неё непись мотается по локе? Если да- то ты не знаешь как ты мне помог! Помогите! Я заспавнил НПСа, а он не говорит! Чё делать! Изменено 31 Мая 2010 пользователем straj Ссылка на комментарий
nuklia 0 Опубликовано 31 Мая 2010 Поделиться Опубликовано 31 Мая 2010 (изменено) Larry76 Так в итоге где прописал путь к файлу логики - в скрипте или в spawn_sections_xxx.ltx . custom_data = ... ? straj А каким методом спавнил - вопрос освети пошире, так ведь проблемы не понять! Изменено 31 Мая 2010 пользователем nuklia Ссылка на комментарий
straj 0 Опубликовано 31 Мая 2010 Поделиться Опубликовано 31 Мая 2010 nuklia, вот этим способом: Нам нужны следующие файлы: - \configs\creatures\spawn_sections_zaton.ltx - \configs\gameplay\npc_profile.ltx - \Configs\gameplay\charecter_desc_zaton.ltx - \scripts\db.script И создадим сами файлы - \scripts\npc.script - \configs\sripts\snaiper_lg.ltx - Для начала создадим нашему неписю логику(( после мы её сможем часто пользоваться). - Для этого заходим в \configs\sripts\snaiper_lg.ltx И там вбиваем следующие строки: [logic] active = remark1 danger = danger_ignore anim = desk_idle [danger_ignore] ignore_distance = 5 [remark1] invulnerable = true no_move = true meet = meet_guide [meet_guide] close_anim = nil close_victim = nil far_anim = nil far_victim = nil close_distance = 0 far_distance = 0 close_snd_distance = 3 abuse = false use = {=actor_enemy} false, true allow_break = false meet_on_talking = false meet_on_talking = false Теперь всё по порядку: [logic] – обозночает, что это функция логи active = remark1- функция его действий danger = danger_ignore – можно ли рядом достать оружие anim = desk_idle- анимка, но вроде не влияет [danger_ignore] ignore_distance = 5 – на сколько близко можно махать стволом [remark1] invulnerable = true - бессмерте. True-бессмертный, false- смертный no_move = true (будет стоять на месте) или false что б ходил meet = meet_guide название функции [meet_guide] сама функция close_anim = nil- анимка при прощании close_victim = nil- вроде анимка при встречи far_anim = nil far_victim = nil close_distance = 0 far_distance = 0 close_snd_distance = 3- на каком расстоянии будет слышен звук приветствия abuse = false- вроде разрешение говорить use = {=actor_enemy} false, true- ? allow_break = false- ? meet_on_talking = false –говорить можно(диалог) meet_on_talking = false- говорить можно(диалог) Теперь заходим в \configs\creatures\spawn_sections_zaton.ltx После [test_body_5]:stalker $spawn = "respawn\test_body_5" ;character_profile = zat_a2_stalker_mechanic community = stalker ;story_id = test_body_5 custom_data = scripts\test_cfg5.ltx прописываем это: [snaiper]:stalker $spawn = "respawn\snaiper" character_profile = snaiper spec_rank = master community = stalker custom_data = scripts\snaiper_lg.ltx story_id = stalker_snaiper где [snaiper]:stalker название функции $spawn = "respawn\snaiper"- респавн character_profile = snaiper spec_rank = master ранг community = stalker группировка( здесь роли не играет custom_data = scripts\snaiper_lg.ltx Логика, которую мы создали story_id = stalker_snaiper - уникальный ID , не знаю но вроде что-то про квесты Тепрь заходим в - \configs\gameplay\npc_profile.ltx И в самый конец ( перед хмл)пишем <character id="snaiper"> <class>snaiper</class> <specific_character>snaiper</specific_character> </character> Должно получиться примерно так: <character id="conrack_selo_stalker"> <class>jup_b6_freedom_stalker_1</class> </character> <character id="snaiper"> <class>snaiper</class> <specific_character>snaiper</specific_character> </character> </xml> Теперь по порядку: <character id="snaiper"> ID <class>snaiper</class> - сласс , это типа метки <specific_character>snaiper</specific_character>- ID </character>- массив закрыт Теперь создадим профиль для нашего непися. Заходим в - \Configs\gameplay\charecter_desc_zaton.ltx И в самый конец (перед <xml>) прописываем <specific_character id="snaiper" team_default="1"> <name>Дрюня</name> <icon>ui_inGame2_merc_4</icon> <map_icon x="1" y="0"> </map_icon> <bio>Опытный сталкер. Детальная информация отсутствует.</bio> <class>snaiper</class> <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect> <snd_config>characters_voice\human_01\bandit\</snd_config> <rank>40</rank> <money min="1500" max="3500" infinitive="1"/> <reputation>0</reputation> <visual>actors\stalker_soldier\stalker_soldier_1</visual> <supplies> [spawn] \n wpn_svd \n ammo_9x39_ap = 1 \n wpn_beretta \n ammo_9x19_fmj = 1 \n grenade_rgd5 = 2 \n #include "gameplay\character_items.xml" #include "gameplay\character_food.xml" #include "gameplay\character_drugs.xml" </supplies> #include "gameplay\character_criticals_4.xml" <start_dialog>zat_b215_stalker_guide_start</start_dialog> <actor_dialog>zat_b215_stalker_guide_leave_zone</actor_dialog> <actor_dialog>zat_b215_stalker_guide_maps</actor_dialog> <actor_dialog>zat_b215_stalker_guide_to_pripyat_no_way</actor_dialog> <actor_dialog>zat_b215_stalker_guide_to_pripyat</actor_dialog> <actor_dialog>zat_b215_stalker_guide_to_jupiter</actor_dialog> <actor_dialog>zat_b215_stalker_guide_to_zaton</actor_dialog> <actor_dialog>zat_b215_stalker_guide_where_to</actor_dialog> <actor_dialog>zat_b215_stalker_guide_about_himself</actor_dialog> <actor_dialog>zat_b215_stalker_guide_about_anomalies</actor_dialog> <actor_dialog>zat_b215_stalker_guide_about_surge</actor_dialog> <actor_dialog>actor_break_dialog</actor_dialog> </specific_character> Где: <specific_character id="snaiper" team_default="1"> - ID <name>Дрюня</name> -имя <icon>ui_inGame2_merc_4</icon>- иконка <map_icon x="1" y="0">- иконка на карте </map_icon>-? <bio>Опытный сталкер. Детальная информация отсутствует.</bio> в игре не используется <class>snaiper</class> сласс типа метка <community>stalker</community> группировка <terrain_sect>stalker_terrain</terrain_sect> - ? <snd_config>characters_voice\human_01\bandit\</snd_config> -голос <rank>40</rank> - ранг( не используется в игре) <money min="1500" max="3500" infinitive="1"/> Колличество денег. infinitive="1"- бесконечные, infinitive="0"- заканчивающиеся <reputation>0</reputation> репутация <visual>actors\stalker_soldier\stalker_soldier_1</visual> модель непися <supplies> [spawn] \n- вещи в рюкзаке wpn_svd \n ammo_9x39_ap = 1 \n wpn_beretta \n ammo_9x19_fmj = 1 \n grenade_rgd5 = 2 \n #include "gameplay\character_items.xml"- случайный спавн вещей в рюкзаке #include "gameplay\character_food.xml" #include "gameplay\character_drugs.xml" </supplies> #include "gameplay\character_criticals_4.xml" <start_dialog>zat_b215_stalker_guide_start</start_dialog>- диалоги. В нашем случае диалоги лоцмана <actor_dialog>zat_b215_stalker_guide_leave_zone</actor_dialog> <actor_dialog>zat_b215_stalker_guide_maps</actor_dialog> <actor_dialog>zat_b215_stalker_guide_to_pripyat_no_way</actor_dialog> <actor_dialog>zat_b215_stalker_guide_to_pripyat</actor_dialog> <actor_dialog>zat_b215_stalker_guide_to_jupiter</actor_dialog> <actor_dialog>zat_b215_stalker_guide_to_zaton</actor_dialog> <actor_dialog>zat_b215_stalker_guide_where_to</actor_dialog> <actor_dialog>zat_b215_stalker_guide_about_himself</actor_dialog> <actor_dialog>zat_b215_stalker_guide_about_anomalies</actor_dialog> <actor_dialog>zat_b215_stalker_guide_about_surge</actor_dialog> <actor_dialog>actor_break_dialog</actor_dialog> </specific_character> Теперь создаём скрипт спавна - \scripts\npc.script Вбиваем в него function snaiper () if not db.actor:has_info("spawn_snaiper") then alife():create("snaiper",vector():set(116.238,2.250,183.199),1165999,316) db.actor:give_info_portion("spawn_snaiper") end end Строчка alife():create("snaiper",vector():set(116.238,2.250,183.199),1165999,316) отвечает за координаты, на которых спавнится объект. В нашем случае- непись. Подробнее о них: Pos- 116.238,2.250,183.199 Ivid- 1165999 Gvid- 316 Чтобы их получить качаем позишн информер ]]>Отсюда]]> - И последнее- регестрация скрипта в \scripts\db.script Открываем дБ скрипт. Находим строки function add_actor( obj ) actor = obj actor_proxy:net_spawn( obj ) add_obj( obj ) end И меняем на такие function add_actor( obj ) actor = obj actor_proxy:net_spawn( obj ) add_obj( obj ) npc.snaiper() end Ссылка на комментарий
Larry76 0 Опубликовано 31 Мая 2010 Поделиться Опубликовано 31 Мая 2010 Larry76 Так в итоге где прописал путь к файлу логики Путь указан как и рекомендуется в spawn_sections_xxx.ltx . custom_data = ... Просто если в npc_profile.xml НЕ добавить строчку: <specific_character>***профиль непися***</specific_character> То он почему-то этот путь игнорирует и идёт одному ему известной дорогой. Правильно заданный вопрос- уже половина ответа! Ссылка на комментарий
straj 0 Опубликовано 31 Мая 2010 Поделиться Опубликовано 31 Мая 2010 И ешё: он у меня тоже идёт куда глаза гледят, а веть я припысывал как Larry! ( даже приписывать не пришлось! Оно там уже было!) Ссылка на комментарий
AK74 4 Опубликовано 31 Мая 2010 Поделиться Опубликовано 31 Мая 2010 Как-то пробовал модель болта подменять чем-то вроде киприча, массу модельке задавал в СДК (уже не помню, сколько) - на доходчивость попадания в голову влияет. Рискну предположить что болт, как и оружие иначе обрабатывается движком, чем физ.объекты. Хотя, может быть, что этот параметр будет влиять, если например бюргера "попросить" этим ящиком бросить в ГГ. Ссылка на комментарий
Larry76 0 Опубликовано 31 Мая 2010 Поделиться Опубликовано 31 Мая 2010 (изменено) straj,а у тебя такая строчка в логике есть? [smart_terrains] none = true Может у тебя логика работает,но он к ближайшему гулагу направился? Вот для примера моя логика часового на кордоне. [logic] suitable = {=check_npc_name(esc_a17_military_sergeant_morozov)} true prior = 200 active = walker post_combat_time = 0, 0 [walker] path_walk = esc_chasowoy_walk path_look = esc_chasowoy_look combat_ignore_cond = false combat_ignore_keep_when_attacked = false meet = meet gather_items_enabled = false help_wounded_enabled = false corpse_detection_enabled = false use_camp = false def_state_standing = ward_noweap def_state_moving1 = patrol no_retreat = true target = story | actor wounded = wounded danger = danger [smart_terrains] none = true [meet] close_snd_hello = = nil close_snd_bye = = nil close_anim = guard_na close_victim = actor far_anim = nil far_victim = nil close_distance = 2 far_distance = 0 close_snd_distance = 3 abuse = false use = {=actor_enemy} false, true allow_break = false meet_on_talking = false [wounded] 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 [danger] ignore_distance = 5 ignore_distance_grenade = 5 ignore_distance_corpse = 5 ignore_distance_hit = 5 ignore_distance_sound = 5 А вот пути в файле way_escape.ltx [esc_chasowoy_look] points = p0 p0:name = name00 p0:position = -124.602172851563,-26.3923282623291,-471.800170898438 p0:game_vertex_id = 1272 p0:level_vertex_id = 131667 [esc_chasowoy_walk] points = p0 p0:name = name00 p0:position = -116.466064453125,-25.9364833831787,-465.897827148438 p0:game_vertex_id = 1272 p0:level_vertex_id = 142074 И ещё,для таких же "знатоков ЛУА" как и я: Комментировать двумя дефисами -- можно только целиком строку,но никак не давать комментарий в самой строке. У меня было написано custom_data = scripts\escape\esc_a17_military_sergeant_morozov.ltx --Логика НПС И я получил вылет,где была ссылка на то,что невозможно найти файл esc_a17_military_sergeant_morozov.ltx --Логика НПС Т.е. в этом случае движку по барабану,он дальше читает строку. Изменено 31 Мая 2010 пользователем Larry76 Правильно заданный вопрос- уже половина ответа! Ссылка на комментарий
Whisper 29 Опубликовано 31 Мая 2010 Поделиться Опубликовано 31 Мая 2010 Как убрать отметки на карте об упавших вертолетах в самом начале игры? А то по ним столько информации дается он нпц, что хочется сделать их появление постепенным - по мере получения ее. Ссылка на комментарий
Darien 0 Опубликовано 31 Мая 2010 Поделиться Опубликовано 31 Мая 2010 Larry76 Это не скрипт, поэтому комментировать надо не через "--", а через ";" (точка с запятой). И комментировать можно что хочешь. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти