Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Nazgool 250 Опубликовано 26 Февраля 2010 Поделиться Опубликовано 26 Февраля 2010 TREWKO, можно так : flag = true function ***() if flag then ... flag = false end end Ссылка на комментарий
Malandrinus 615 Опубликовано 26 Февраля 2010 Поделиться Опубликовано 26 Февраля 2010 Спустя год когда мод был почти готов, я наткнулся на очень интересную статью Что за статья? Не подскажете одиночное выполнение скрипта. Скрипт сделан через биндер. TREWKO, можно так : flag = true function ***() if flag then ... flag = false end end Вот как раз после таких примеров и начинают все пихать всё в апдейт. Можно подумать, что в биндере нет других методов. Для начала, сам вопрос звучит странно. Что вообще значит "сделан через биндер"? Да ещё при этом требуется "одиночное выполнение". Это как? Я лично не понял, о чём идёт речь. Если требуется одиночное выполнение, то сперва надо выяснить, а по какому собственно поводу надо что-то выполнить, а уж потом выяснять, куда этот код помещать и как. Если, к примеру, мне что-то принципиально надо выполнить один раз в произвольный нужный мне момент времени, то я пользуюсь своим тестовым полигоном, что позволяет мне вообще не лезть в скрипты игры. Если надо привязать выполнение к некоему событию, то надо искать соответствующий колбек. Апдейт я чаще всего задействую для некоего отладочного мониторинга, когда надо что-то постоянно отслеживать. И то это можно сделать из под того же полигона с использованием fastcall-ов опять же не влезая в существующие скрипты. fastcall обычно не занят и его можно и навесить на актора и снять "со стороны". Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
DiXares 1 Опубликовано 27 Февраля 2010 Поделиться Опубликовано 27 Февраля 2010 Коротко. У меня скрипт, выводит время по часам в виде сообщения. Нужно, что бы один раз выполнилось, и через 24 часа снова показалось сообщение. Ссылка на комментарий
Gonarh 5 Опубликовано 27 Февраля 2010 Поделиться Опубликовано 27 Февраля 2010 (изменено) Что за статья? вот эта второй части уже тама нету, но у меня на компе где-то валяется. если надо - кину куда-нить Изменено 27 Февраля 2010 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Ссылка на комментарий
lekzd 1 Опубликовано 27 Февраля 2010 Поделиться Опубликовано 27 Февраля 2010 TREWKO, через 24 часа время всегда одинаковое - вот на него и ставь условие i-igroman.ru - Мой, принципиально новый сайт о компьютерных играх Ссылка на комментарий
STARTS 0 Опубликовано 27 Февраля 2010 Поделиться Опубликовано 27 Февраля 2010 Доброго времени суток!!! Значится так: я созлавал свой смарт вот по этой статье статья Просто заменял там bandits на свою группировку, потом всё прописал как надо, и добавил им точки в файл way_l01_escape.ltx . После того как я зашёл в игру, у мну ВСЕ неписи ходят куда их пошлёт alife Вот мои файлы [919] ; cse_abstract properties (основные параметры) section_name = smart_terrain name = esc_wind_smart_terrain position = -234.973999023438,-19.6793632507324,-156.694946289063 direction = 0,0,0 ; cse_alife_object properties (параметры объекта) game_vertex_id = 47 distance = 9.09999942779541 level_vertex_id = 20038 object_flags = 0x==3e custom_data = <<END [smart_terrain] type = esc_wind_smart_terrain capacity = 3 END ; cse_shape properties (параметры шейпа объекта) shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 20.55957102775574 ; cse_alife_space_restrictor properties (параметры рестриктора) restrictor_type = 3 ; se_smart_terrain properties (параметры смарттеррейна) [920] ; cse_abstract properties section_name = stalker name = wind_3__ position = -234.88432312012,-20.028535842896,-158.0202331543 direction = 0,0.000113633497676346,0.118211999535561 ; cse_alife_trader_abstract properties money = 5000 character_profile = wind_3 ; cse_alife_object properties game_vertex_id = 47 distance = 4.90000009536743 level_vertex_id = 20680 object_flags = 0xffffffbf custom_data = <<END [smart_terrains] esc_wind_smart_terrain = true END ; cse_visual properties visual_name = actors\bandit\stalker_bandit_exoskeleton ; cse_alife_creature_abstract properties g_team = 0 g_squad = 1 g_group = 21 health = 1 dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 1 upd:timestamp = 0 upd:creature_flags = 0 upd:position = -234.88432312012,-20.028535842896,-158.0202331543 upd:o_model = 0 upd:o_torso = 0.000113633497676346,0.118211999535561,0 upd:g_team = 0 upd:g_squad = 1 upd:g_group = 21 ; cse_alife_monster_abstract properties upd:next_game_vertex_id = 65535 upd:prev_game_vertex_id = 65535 upd:distance_from_point = 0 upd:distance_to_point = 0 ; cse_alife_human_abstract properties predicate5 = 0,1,2,0,0 predicate4 = 2,0,2,0 ; cse_ph_skeleton properties upd:start_dialog = ; se_stalker properties [921] ; cse_abstract properties section_name = stalker name = wind_31 position = -234.88432312012,-20.028535842896,-158.0202331543 direction = 0,0.000113633497676346,0.118211999535561 ; cse_alife_trader_abstract properties money = 5000 character_profile = wind_2 ; cse_alife_object properties game_vertex_id = 47 distance = 4.90000009536743 level_vertex_id = 20680 object_flags = 0xffffffbf custom_data = <<END [smart_terrains] esc_wind_smart_terrain = true END ; cse_visual properties visual_name = actors\bandit\stalker_bandit_exoskeleton ; cse_alife_creature_abstract properties g_team = 0 g_squad = 1 g_group = 21 health = 1 dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 1 upd:timestamp = 0 upd:creature_flags = 0 upd:position = -234.88432312012,-20.028535842896,-158.0202331543 upd:o_model = 0 upd:o_torso = 0.000113633497676346,0.118211999535561,0 upd:g_team = 0 upd:g_squad = 1 upd:g_group = 21 ; cse_alife_monster_abstract properties upd:next_game_vertex_id = 65535 upd:prev_game_vertex_id = 65535 upd:distance_from_point = 0 upd:distance_to_point = 0 ; cse_alife_human_abstract properties predicate5 = 0,1,2,0,0 predicate4 = 2,0,2,0 ; cse_ph_skeleton properties upd:start_dialog = ; se_stalker properties [922] ; cse_abstract properties section_name = stalker name = wind_11 position = -234.88432312012,-20.028535842896,-158.0202331543 direction = 0,0.000113633497676346,0.118211999535561 ; cse_alife_trader_abstract properties money = 5000 character_profile = wind_1 ; cse_alife_object properties game_vertex_id = 47 distance = 4.90000009536743 level_vertex_id = 20680 object_flags = 0xffffffbf custom_data = <<END [smart_terrains] esc_wind_smart_terrain = true END ; cse_visual properties visual_name = actors\bandit\stalker_bandit_exoskeleton ; cse_alife_creature_abstract properties g_team = 0 g_squad = 1 g_group = 21 health = 1 dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 1 upd:timestamp = 0 upd:creature_flags = 0 upd:position = -234.88432312012,-20.028535842896,-158.0202331543 upd:o_model = 0 upd:o_torso = 0.000113633497676346,0.118211999535561,0 upd:g_team = 0 upd:g_squad = 1 upd:g_group = 21 ; cse_alife_monster_abstract properties upd:next_game_vertex_id = 65535 upd:prev_game_vertex_id = 65535 upd:distance_from_point = 0 upd:distance_to_point = 0 ; cse_alife_human_abstract properties predicate5 = 0,1,2,0,0 predicate4 = 2,0,2,0 ; cse_ph_skeleton properties upd:start_dialog = ; se_stalker properties [koster_wind_1_look] points = p0 p0:name = wp00 p0:position = -234.973999023438,-19.6793632507324,-156.694946289063 p0:game_vertex_id = 47 p0:level_vertex_id = 20038 [koster_wind_1_look_task] points = p0 p0:name = wp00 p0:position = -234.973999023438,-19.6793632507324,-156.694946289063 p0:game_vertex_id = 47 p0:level_vertex_id = 20038 [wind_oxrana_vozle_doma_1] points = p0 p0:name = wp00 p0:position = -236.984741210938,-20.1954555511475,-151.015335083008 p0:game_vertex_id = 47 p0:level_vertex_id = 18739 [wind_oxrana_vozle_doma_1_look] points = p0 p0:name = wp00 p0:position = -235.76075744629,-20.211112976074,-149.19891357422 p0:game_vertex_id = 47 p0:level_vertex_id = 19397 [wind_look_t_sleep] points = p0 p0:name = wp00 p0:position = -234.973999023438,-19.6793632507324,-156.694946289063 p0:game_vertex_id = 47 p0:level_vertex_id = 20038 [koster_wind_3_look] points = p0 p0:name = wp00 p0:position = -234.973999023438,-19.6793632507324,-156.694946289063 p0:game_vertex_id = 47 p0:level_vertex_id = 20038 [koster_wind_3_walk] points = p0 p0:name = wp00 p0:position = -234.973999023438,-19.6793632507324,-156.694946289063 p0:game_vertex_id = 47 p0:level_vertex_id = 20038 ;-- bandit1 (walker(прогуливающийся) -> состояние 0, днем) [logic@esc_wind_smart_terrain_wind1_walker] active = walker@esc_wind_smart_terrain_wind1 [walker@esc_wind_smart_terrain_wind1] path_walk = wind_oxrana_walk1 danger = danger_condition@esc_wind_smart_terrain ;def_state_moving1 = patrol ;def_state_moving2 = patrol ;def_state_moving3 = patrol meet = no_meet ;-- bandit1 (kamp(лагерь) -> состояние 1, ночью) [logic@esc_wind_smart_terrain_wind1_kamp] active = kamp@esc_wind_smart_terrain_wind1 [kamp@esc_wind_smart_terrain_wind1] center_point = koster_wind_1_look path_walk = koster_wind_1_look_task ;-- bandit2 (guard(охранник) -> состояние 0, днем) [logic@esc_wind_smart_terrain_wind2_walker] active = walker@esc_wind_smart_terrain_wind2 [walker@esc_wind_smart_terrain_wind2] path_walk = wind_oxrana_vozle_doma_1 path_look = wind_oxrana_vozle_doma_1_look danger = danger_condition@esc_wind_smart_terrain ;-- bandit2 (sleeper(спящий) -> состояние 1, ночью) [logic@esc_wind_smart_terrain_wind2_sleeper] active = sleeper@esc_wind_smart_terrain_wind2 [sleeper@esc_wind_smart_terrain_wind2] path_main = wind_look_t_sleep wakeable = false ;-- bandit3 (guard -> состояние 0 и 1, днем/ночью) [logic@esc_wind_smart_terrain_wind3_walker] active = walker@esc_wind_smart_terrain_wind3 [walker@esc_wind_smart_terrain_wind3] path_walk = koster_wind_3_walk path_look = koster_wind_3_look [danger_condition@esc_wind_smart_terrain] ignore_distance_corpse = 0 ignore_distance = 0 function load_job(sj, gname, type, squad, groups) --'-------------------------------------------------------------------------- --' ESCAPE --'-------------------------------------------------------------------------- if type == "esc_wind_smart_terrain" then t = { section = "logic@esc_wind_smart_terrain_wind1_walker", idle = 0, timeout = 0, prior = 100, state = {0}, online = true, in_rest = "", out_rest = "" } table.insert(sj, t) t = {section = "logic@esc_wind_smart_terrain_wind1_kamp", idle = 0, timeout = 0, prior = 100, state = {1}, online = true, in_rest = "", out_rest = ""} table.insert(sj, t) t = {section = "logic@esc_wind_smart_terrain_wind2_walker", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = ""} table.insert(sj, t) t = {section = "logic@esc_wind_smart_terrain_wind2_sleeper", idle = 0, prior = 5, state = {1}, in_rest = "", out_rest = ""} table.insert(sj, t) t = {section = "logic@esc_wind_smart_terrain_wind3_walker", idle = 0, prior = 5, state = {0, 1}, in_rest = "", out_rest = ""} table.insert(sj, t) end ................................ function load_states(gname, type) if type == "esc_wind_smart_terrain" then return function(gulag) if not db.actor then return gulag.state end if level.get_time_hours() >= 5 and level.get_time_hours() <= 22 then return 0 -- переключает всех мутантов/нпс на дневную работу else return 1 -- ереключает всех мутантов/нпс на ночную работу end end end ................................... function checkStalker(npc_community, gulag_type, npc_rank, se_obj) if gulag_type == "esc_wind_smart_terrain" then return npc_community == "wind" end Где я тут напортачил? upd: Сейчас ещё раз протестил и вообще игра вылетела вот с таким логом Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ...итель желанийguygu\gamedata\scripts\state_mgr.script:193: C stack overflow Ссылка на комментарий
Vergas 11 Опубликовано 27 Февраля 2010 Поделиться Опубликовано 27 Февраля 2010 Подскажите имена файлов-конфигов для жарки и трамплина. Ну очень буду обязан.... НЛС-6: У каждого своя зона _______________________________________________________________ Не ищи легких путей и не возвращайся той же дорогой Ссылка на комментарий
Gonarh 5 Опубликовано 27 Февраля 2010 Поделиться Опубликовано 27 Февраля 2010 жарка - gamedata\config\misc\zone_zharka_static.ltx трамплин - gamedata\config\misc\zone_mosquitobald.ltx 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Ссылка на комментарий
DiXares 1 Опубликовано 27 Февраля 2010 Поделиться Опубликовано 27 Февраля 2010 (изменено) lekzd, вот кароче: function test() if onif == 1 then local ber = level.get_time_hours() local der = level.get_time_minutes() if ber == 0 and der == 0 and level.get_weather("default") and flag then local sactor = alife():actor() local cactor = level.object_by_id(sactor.id) cactor:give_game_news( "%c[255,255,1,1]DiVares\\n%c[255,1,255,1]Время: 00:00:00", "ui\\ui_iconstotal", Frect():set(1079,799,83,47), math.random(1000, 3000), 50000 ) flag = false end И вот вобщем, функция даёт цикл, тоесть колбасит эти сообщения целую минуту, что очень много, надо только раз. Шас тут подумаю ещё, сделал по совету флаг, но функция выдаётся и всё, флаг ставится на false. Изменено 27 Февраля 2010 пользователем TREWKO Ссылка на комментарий
Gonarh 5 Опубликовано 27 Февраля 2010 Поделиться Опубликовано 27 Февраля 2010 (изменено) local trigger = 0 function test() local time_h = level.get_time_hours() local time_m = level.get_time_minutes() if (time_m == 0) and (time_h == 0) and level.get_weather("default") then if trigger == 0 then local sactor = alife():actor() local cactor = level.object_by_id(sactor.id) cactor:give_game_news("%c[255,255,1,1]DiVares\\n%c[255,1,255,1]Время: 00:00:00", "ui\\ui_iconstotal", Frect():set(1079,799,83,47), math.random(1000, 3000), 50000) trigger = 1 end else if time_m ~= 0 then trigger = 0 end end end Изменено 27 Февраля 2010 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Ссылка на комментарий
DiXares 1 Опубликовано 27 Февраля 2010 Поделиться Опубликовано 27 Февраля 2010 Gonarh, спасибо! Но уже сам сделал, создал 24 флага, и отключение оного, включение предыдущего. Но всё равно, будем ваш юзать) Ссылка на комментарий
Darien 0 Опубликовано 27 Февраля 2010 Поделиться Опубликовано 27 Февраля 2010 Создаю новую шкалу. Столкнулся с такой проблемой, что не установить что длину, что ширину самой полоски - ругается, что SetWidth() или SetHeight() принимают нулевое значение. Вот код: local main_hud = get_hud() function my_hud() if main_hud:GetCustomStatic("hud_wpn") == nil or main_hud:GetCustomStatic("p_hud_wpn") == nil then main_hud:AddCustomStatic("hud_wpn", true) main_hud:AddCustomStatic("p_hud_wpn", true) end local hud = main_hud:GetCustomStatic("p_hud_wpn") if hud then hud:SetWidth(100) hud:SetHeight(10) end end Сам конфиг шкалы из ui_custom_msgs.xml выглядит так: <hud_wpn x="860" y="508" width="155" height="34"> <texture>ui_hud_shkala_health</texture> </hud_wpn> <p_hud_wpn x="33" y="5" width="110" height="10" horz="1" min="0" max="100" pos="0"> <progress> <texture>ui_hud_shk_health</texture> </progress> </p_hud_wpn> Ссылка на комментарий
Malandrinus 615 Опубликовано 27 Февраля 2010 Поделиться Опубликовано 27 Февраля 2010 Darien, hud:wnd():SetWidth(100) Я бы функцию примерно так написал. function my_hud() local hud1 = main_hud:GetCustomStatic("hud_wpn") or main_hud:AddCustomStatic("hud_wpn", true) local hud = main_hud:GetCustomStatic("p_hud_wpn") or main_hud:AddCustomStatic("p_hud_wpn", true) hud:wnd():SetWidth(100) hud:wnd():SetHeight(10) end Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Kirag 39 Опубликовано 27 Февраля 2010 Поделиться Опубликовано 27 Февраля 2010 второй части уже тама нету, но у меня на компе где-то валяется. если надо - кину куда-нить Кинь, если не сложно. Если можно, даже обе части. А то скрипты вроде и научился писать, но образования понять, где накосячил, почему и что со всем этим делать, через раз не хватает. Кое-что постиг методом научного тыка, но далеко не все. Да и много кому, кроме меня, я думаю, пригодится. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий
Darien 0 Опубликовано 27 Февраля 2010 Поделиться Опубликовано 27 Февраля 2010 (изменено) Gonarh Ты имеешь ввиду эту статью? Изменено 27 Февраля 2010 пользователем Darien Ссылка на комментарий
Gonarh 5 Опубликовано 27 Февраля 2010 Поделиться Опубликовано 27 Февраля 2010 Да, вот обе части 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Ссылка на комментарий
Monnoroch 6 Опубликовано 28 Февраля 2010 Поделиться Опубликовано 28 Февраля 2010 (изменено) Gonarh, Хе-хе...наткнулся он...это не ты наткнулся,это я тебя наткнул Добавлено через 151 мин.: И еще: кто знает,какой цыет ставить трассерам,чтобы они нормальные были?Не зеленые,не красные,не серобуромалиновые? Белый - почти подходит,но надо скорее слегка оранжевый...ну как партикл выстрела. Короче нужен "натуральный" цвет. Сообщение от модератора n6260 таблица RBG цветов. Изменено 28 Февраля 2010 пользователем n6260 Ссылка на комментарий
Lebedev 0 Опубликовано 28 Февраля 2010 Поделиться Опубликовано 28 Февраля 2010 Подскажите новичку как добавить в allspawn своего нпс через xrspawner Если ты знаешь, что сможешь чего-то добиться, то ты прав. Нет границ для самосовершенства. Ссылка на комментарий
Monnoroch 6 Опубликовано 28 Февраля 2010 Поделиться Опубликовано 28 Февраля 2010 n6260,я в этом плохо понимаю.как перевести RGB[0..255] в сталкеровское RGB[0..1] Вот например цвет 255,228,181 . Сообщение от модератора n6260 А ты пробывал из таблицы значения в игру вставлять? Ссылка на комментарий
DiXares 1 Опубликовано 28 Февраля 2010 Поделиться Опубликовано 28 Февраля 2010 Товарищи, можно ли как то проиграть анимацию или заставить проиграть анимацию для объекта скриптом? Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти