Daniar299 0 Опубликовано 18 Августа 2011 (изменено) Всем здрасте, у меня возникла проблема при спауне НПС, Нет я его прописал нормально через all.spawn, но я хочю чтоб он сидел и например ел колбасу! но какую логику ему надо прописывать? Вот здесь собрана достаточно подробная информация о логиге НПС и не только, почитай. >>Clik Me<< ColR_iT Изменено 18 Августа 2011 пользователем ColR_iT Поделиться этим сообщением Ссылка на сообщение
Daniar299 0 Опубликовано 12 Февраля 2012 (изменено) Здрасте, у меня вопрос, как заспанить переход? Неважно как, я читал статьи на вики, толку ноль не понел! Прошу помощи! Сталкер ТЧ 1.0004 Если для тебя даже от статей с вики-сайтов толку ноль, то неужели ты надеешься что тут тебе все разжуют и разъяснят? Ну ... ну. Совет: захотелось помоддить - засучивай рукава и начинай грызть гранит "науки", пока хоть какой-то толк не выйдет ... ;-) --/Artos Изменено 12 Февраля 2012 пользователем Artos Поделиться этим сообщением Ссылка на сообщение
Daniar299 0 Опубликовано 12 Февраля 2012 (изменено) Я могу спанить НПС и т.д. но там что-то не понятно, там идёт какойто бред и не написано какой файл трогать, и там основа для фриплэя написана, так что я не понел! плиз помогите! И ещё один вопрос как прописать диолог не старому НПС а новому? можно пример? Как спавнить переход используя all.spawn, можно увидеть здесь: Переход между уровнями А на остальные свои вопросы используй поиск, поскольку они начального уровня, да и на той же Wiki есть ответы на них, загляни так же сюда: Уроки по модостроению, так же найдёшь много полезной информации. P.S. Да, и выбирай соответствующую тему для своих вопросов. ColR_iT Добавлено через 122 мин.: Спасибо переход зделал! Изменено 12 Февраля 2012 пользователем ColR_iT Поделиться этим сообщением Ссылка на сообщение
Daniar299 0 Опубликовано 17 Февраля 2012 Здравствуйте, у меня вопрос, как мне прописать скриптом преход на другую локацию? И ещё один вопрос как например на новой подключённой локации заспанить без логики например 20 кобанов чтоб просто бегали по локации? И если кто может поделитель пожалуйста файлами чужих, но только их плиз! Заранее спасибо! Это всё для ТЧ Поделиться этим сообщением Ссылка на сообщение
Daniar299 0 Опубликовано 22 Февраля 2012 Здрасте, у меня вопрос как заспанить Монстра через скрипт? Кол-во не имеет значение, но если можно то лучше через алл. Плиз с примером на кордоне! Поделиться этим сообщением Ссылка на сообщение
Daniar299 0 Опубликовано 22 Февраля 2012 (изменено) Daniar299, функция спавн монстра ничем не отличается от спавна того же НПС или же какого-нибудь предмета. Примеры тебе предоставили разработчики в оригинальных файлах. Вооружаешься поиском по словам (выбрать есть из чего) и вперёд на фронт в геймдату.Да я согласен функции тежи! Но например та же логика, story_id, spawn_sections, character_profile, откуда брать их? точнее что туда писать для монстра без логики, чтоб просто бегал! Изменено 22 Февраля 2012 пользователем ColR_iT Поделиться этим сообщением Ссылка на сообщение
Daniar299 0 Опубликовано 28 Февраля 2012 Здрасте, у меня такой вопрос, как прописать переход в один конец скрипом? Я освоил как сделать простой переход по известным точкам туда и обратно, но мне нужно в один конец! Плиз подскажите функцию! Поделиться этим сообщением Ссылка на сообщение
Daniar299 0 Опубликовано 1 Марта 2012 Всем здрасте, я прописывал переход на другую локацию, и у меня возник вылет, в чём тут проблема я разобрался, но как я не менял цифры, ничего не меняется, подскажите что делать? основа МОда АМК 1.4.1 с 2мя патчамии Expression : no_assert Function : CALifeStoryRegistry::add File : E:\stalker\patch_1_0004\xr_3da\xrGame\alife_story_registry.cpp Line : 30 Description : Specified story object is already in the Story registry! [915] ; cse_abstract properties section_name = level_changer name = exit_to_marsh position = -259.36654663086,-18.755743026733,-160.60395812988 direction = 0,-0,-0 ; cse_alife_object properties game_vertex_id = 9 distance = 7 level_vertex_id = 6344 object_flags = 0xffffff3e custom_data = <<END [pt_move_if_reject] path = esc_way_if_reject END story_id = 91212 ; cse_shape properties shapes = shape0 shape0:type = box shape0:axis_x = 2.22939944267273,0,0 shape0:axis_y = 0,4.83859968185425,0 shape0:axis_z = 0,0,2.22939944267273 shape0:offset = 0,0,0 ; cse_alife_space_restrictor properties restrictor_type = 3 ; cse_alife_level_changer properties dest_game_vertex_id = 3337 dest_level_vertex_id = 484 dest_position = 565.511291503906,3.22908997535706,-180.930603027344 dest_direction = 0,-0.174531996250153,0 dest_level_name = alife_marsh dest_graph_point = start_actor_01 Поделиться этим сообщением Ссылка на сообщение
Daniar299 0 Опубликовано 1 Марта 2012 Artos, Да, я прочитал, но я не совсем понел что делать? Что менять? Ведь до этого я спанил сталкера, но у него нет такого вылета! Он появился после 915 секции, чтож мне теперь делать? Если это теперь не исправить, я повторяю свой старый вопрос, дайте функцию на создание перехода через скрипт! Поделиться этим сообщением Ссылка на сообщение
Daniar299 0 Опубликовано 1 Марта 2012 (изменено) Artos, Как я понел, мне нужно это acdc -parse alife_l01_escape.ltx -old 0 -new 934? но как их вводить, точнее куда? Пытался в консоле не работает, у меня стоит win7 [x] Изменено 1 Марта 2012 пользователем Artos Поделиться этим сообщением Ссылка на сообщение
Daniar299 0 Опубликовано 1 Марта 2012 У меня два алл.спавна, один с добавлением перехода, другой без него, на первом работает всё, на втором, ничего! Поделиться этим сообщением Ссылка на сообщение
Daniar299 0 Опубликовано 4 Апреля 2012 (изменено) Здрасте, помогите пожалуйста, как будит выглядеть функция создания перехода через локацию в один конец? (вызовом диолога, основа ТЧ) Я покопался тут http://antreg.ucoz.ru/forum/5-10-1 но что то непонел, прошу помогите! Очень надо! Прав *Shoker*, говоря о достаточно детальном примере по указанной тобою ссылке. Если непонятно - то и спрашивай о непонятом, а не проси чтобы повторно таким же примером пытались втолковать. --/Artos Изменено 4 Апреля 2012 пользователем Artos Поделиться этим сообщением Ссылка на сообщение
Daniar299 0 Опубликовано 4 Апреля 2012 (изменено) function tropa_rostok() -- создается переход c РОСТОКА НА АРМЕЙСКИЕ СКЛАДЫ if (not has_alife_info( "info_tropa_rostok" )) then y_level.create_level_changer( 20017, vector():set( -289.735,0.099,192.842 ), 295, 1340, 13812, 1847, vector():set( -408.979,-13.798,400.699 ), vector():set( 0.0,2.0,0.0 ), "l07_military", 0) db.actor:give_info_portion("info_tropa_rostok") end end Я создаю скрипт, но со своими значениями. такой Прописываю его, но ничего не_работает, или я неправильно его вписываю. Я его прописываю в файл escape_dialog.scripts в строки на выдавание оружия -------------------------------------------------------------------------------------------------------- -- Trader -------------------------------------------------------------------------------------------------------- function transfer_deneg(first_speaker, second_speaker) dialogs.relocate_money(second_speaker, 300, "in") dialogs.relocate_item_section(second_speaker, "detector_simple", "in") dialogs.relocate_item_section(second_speaker, "amk_metka", "in") dialogs.relocate_item_section(second_speaker, "treasure_item", "in") end function give_weapon_from_trader(trader, actor) dialogs.relocate_item_section(trader, "wpn_bizon", "in") dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in") dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in") dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in") dialogs.relocate_item_section(trader, "wpn_knife", "in") moi_mod.spawn_patefon() moi_mod2.spawn_patefon() moi_mod3.spawn_patefon() moi_mod4.spawn_wpn_p90() moi_mod5.spawn_stalker_outfit() tropa_marsh() --dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in") end Изменено 4 Апреля 2012 пользователем Artos Поделиться этим сообщением Ссылка на сообщение
Daniar299 0 Опубликовано 5 Апреля 2012 (изменено) function create_level_changer( p_story_id, -- STORY_ID нового level_changer (понадобится нам позже) p_position, -- вектор, координаты точки, в которой будет располагаться центр нового level_changer p_lvertex_id, -- level_vertext_id - идентифицируют уровень, на котором будет создан level_changer p_gvertex_id, -- game_vertext_id p_dest_lv, -- level_vertex_id - идентифицируют уровень, на который level_changer будет перебрасывать игрока p_dest_gv, -- game_vertex_id p_dest_pos, -- координаты точки, в которой на новом уровне окажется игрок p_dest_dir, -- направрение взгляда игрока p_dest_level, -- название уровня, например "L11_Pripyat" p_silent -- следует задать 1, чтобы подавить вопрос о смене уровня (автоматический переход) ) local obj = alife():create("level_changer", p_position, p_lvertex_id, p_gvertex_id) level.map_add_object_spot(obj.id, "level_changer", "") local packet = net_packet() obj:STATE_Write(packet) -- свойства cse_alife_object local game_vertex_id = packet:r_u16() local cse_alife_object__unk1_f32 = packet:r_float() local cse_alife_object__unk2_u32 = packet:r_u32() local level_vertex_id = packet:r_u32() local object_flags = packet:r_u32() local custom_data = packet:r_stringZ() local story_id = packet:r_u32() local spawn_story_id = packet:r_u32() -- свойства cse_shape local shape_count = packet:r_u8() for i=1,shape_count do local shape_type = packet:r_u8() if shape_type == 0 then -- sphere local center = packet:r_vec3() local radius = packet:r_float() else -- box local axis_x_x = packet:r_float() local axis_x_y = packet:r_float() local axis_x_z = packet:r_float() local axis_y_x = packet:r_float() local axis_y_y = packet:r_float() local axis_y_z = packet:r_float() local axis_z_x = packet:r_float() local axis_z_y = packet:r_float() local axis_z_z = packet:r_float() local offset_x = packet:r_float() local offset_y = packet:r_float() local offset_z = packet:r_float() end end -- свойства cse_alife_space_restrictor local restrictor_type = packet:r_u8() -- свойства cse_level_changer local dest_game_vertex_id = packet:r_u16() local dest_level_vertex_id = packet:r_u32() local dest_position = packet:r_vec3() local dest_direction = packet:r_vec3() local dest_level_name = packet:r_stringZ() local dest_graph_point = packet:r_stringZ() local silent_mode = packet:r_u8() packet:w_begin(game_vertex_id) -- game_vertex_id packet:w_float(cse_alife_object__unk1_f32) packet:w_u32(cse_alife_object__unk2_u32) packet:w_u32(level_vertex_id) -- level_vertex_id packet:w_u32( bit_not(193) ) -- object_flags = -193 = 0xFFFFFF3E packet:w_stringZ(custom_data) packet:w_u32(p_story_id) -- story_id packet:w_u32(spawn_story_id) packet:w_u8(1) -- количество фигур -- packet:w_u8(0) -- тип фигуры: сфера -- packet:w_vec3(vector():set(0, 0, 0)) -- sphere_center -- packet:w_float(3.0) packet:w_u8(1) -- тип фигуры: box packet:w_float(2) -- axis_x_x packet:w_float(0) -- axis_x_y packet:w_float(0) -- axis_x_z packet:w_float(0) -- axis_y_x packet:w_float(4) -- axis_y_y packet:w_float(0) -- axis_y_z packet:w_float(0) -- axis_z_x packet:w_float(0) -- axis_z_y packet:w_float(4) -- axis_z_z packet:w_float(0) -- offset_x packet:w_float(0) -- offset_y packet:w_float(0) -- offset_z packet:w_u8(3) -- restrictor_type packet:w_u16(p_dest_gv) -- destination game_vertex_id packet:w_s32(p_dest_lv) -- destination level_vertex_id packet:w_vec3(p_dest_pos) -- destination position packet:w_vec3(p_dest_dir) -- destination direction (направление взгляда) packet:w_stringZ(p_dest_level) -- destination level name packet:w_stringZ("start_actor_02") -- some string, always const packet:w_u8(p_silent) -- 1 for silent level changing packet:r_seek(0) obj:STATE_Read(packet, packet:w_tell()) news_manager.send_tip(db.actor, "Новый путь", nil, nil, 20000) end Я не совсем понимаю что надо прописывать в первые 10 строк, и ещё в какой форме это написать! и как я понимаю это оставить как есть? news_manager.send_tip(db.actor, "Новый путь", nil, nil, 20000) А что тебе не понятно? Там ведь есть отличные комментарии... яснее не куда. Для send_tip, можешь вместо текста в кавычках написать свой, можешь оставить. И, пожалуйста, пиши в конце концов грамотнее. ColR_iT Изменено 5 Апреля 2012 пользователем ColR_iT Поделиться этим сообщением Ссылка на сообщение
Daniar299 0 Опубликовано 6 Апреля 2012 (изменено) function Tropa_Rostok() local story_id = 20017 if not alife():story_object(story_id) then local position,lvid,gvid = vector():set(-253.30751037598,-19.407945632935,-154.47235107422),8672,8 --/ координаты перехода local soLvChg = alife():create("level_changer", position, lvid, gvid) --/ спавн перехода local pk = get_netpk(soLvChg) --/ запрос нет-пакета if pk:isOk() then --/ получен доступ к нет-пакету объекта? local data = pk:get() --/ читаем данные из нет-пакета data.story_id = story_id --data.shapes:addSphere(3) --/ задаем форму сферы радиусом в 3м data.shapes:addBox(vector():set(3,0,0),vector():set(0,5,0),vector():set(0,0,3),vector():set(0,0,0)) data.restrictor_type = 3 --/ RestrictorTypeNone data.dest_level_name = "marsh" data.dest_game_vertex_id = 9 data.dest_level_vertex_id = 6344 data.dest_position = vector():set(-259.36654663086,-18.755743026733,-160.60395812988) data.dest_direction = vector():set(0.0,2.0,0.0) data.dest_graph_point = 'start_actor_02' data.silent_mode = 0 --data.custom_data:setString("[pt_move_if_reject]\npath = "..path) --/ "точка возврата" pk:set(data) --/< запись в нет-пакет level.map_add_object_spot(obj.id, "level_changer", "") news_manager.send_tip(db.actor, "На Болота", nil, nil, 20000) end end end Я изменил под себя, но последовал вылет 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: .... - shadow of chernobyl2\gamedata\scripts\amk.script:832: attempt to index global 'escape_dialog' (a nil value) Вот те строчки, не понимаю что тут не хватает? function on_item_take(obj) [b]escape_dialog.have_a_art()[/b] flamethrower.have_a_fire_kolobok() flamethrower.have_a_trubki() flamethrower.have_a_manometr() flamethrower.have_a_vodko() flamethrower.have_a_gorelka() remove_spot_from_map(obj:id(),"red_location") mod_call("check_usable_item",obj) end Вылет был при начале новой игры! Изменено 6 Апреля 2012 пользователем ColR_iT Поделиться этим сообщением Ссылка на сообщение
Daniar299 0 Опубликовано 7 Апреля 2012 Я исправил ошибку, в итоге вылез вылет при разговоре в котором должен был спаниться переход, 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: ...shadow of chernobyl2\gamedata\scripts\y_level.script:6: attempt to call global 'get_netpk' (a nil value) Вот скрипт function Tropa_Rostok() local story_id = 20017 if not alife():story_object(story_id) then local position,lvid,gvid = vector():set(-253.30751037598,-19.407945632935,-154.47235107422),8672,8 --/ координаты перехода local soLvChg = alife():create("level_changer", position, lvid, gvid) --/ спавн перехода local pk = get_netpk(soLvChg) --/ запрос нет-пакета if pk:isOk() then --/ получен доступ к нет-пакету объекта? local data = pk:get() --/ читаем данные из нет-пакета data.story_id = story_id --data.shapes:addSphere(3) --/ задаем форму сферы радиусом в 3м data.shapes:addBox(vector():set(3,0,0),vector():set(0,5,0),vector():set(0,0,3),vector():set(0,0,0)) data.restrictor_type = 3 --/ RestrictorTypeNone data.dest_level_name = "marsh" data.dest_game_vertex_id = 9 data.dest_level_vertex_id = 6344 data.dest_position = vector():set(-259.36654663086,-18.755743026733,-160.60395812988) data.dest_direction = vector():set(0.0,2.0,0.0) data.dest_graph_point = 'start_actor_02' data.silent_mode = 0 --data.custom_data:setString("[pt_move_if_reject]\npath = "..path) --/ "точка возврата" pk:set(data) --/< запись в нет-пакет level.map_add_object_spot(obj.id, "level_changer", "") news_manager.send_tip(db.actor, "На Болота", nil, nil, 20000) end end end Поделиться этим сообщением Ссылка на сообщение
Daniar299 0 Опубликовано 18 Июля 2012 У меня такой вопрос, я хочу чтоб НПС сидел и кушал, получается мне ему в логику надо прописать это? [remark@dinner] anim = sit_knee no_move = true target = actor meet = meet@dinner danger = danger_condition [meet@dinner] meet_state = 5|eat_bread@wait| 3|eat_energy@wait meet_state_wpn = 5|eat_kolbasa@wait| 3|eat_vodka@val_escort_dead если ошибся, попрошу поправить! Добавлено через 6 мин.: И ещё такой вопрос, как заспанить мутанта через скрипт? Несовсем понимаю в чём ошибка этой функции: function spawn_dog_weak() local item = "dog_weak" alife():create(monsters,vector():set(-224.17195129395,-19.261228561401,-165.32530212402),32807,47) end Поделиться этим сообщением Ссылка на сообщение
Daniar299 0 Опубликовано 18 Июля 2012 Ещё такой вопрос, спанил через Алл бандитов, но почему то словил вылет без лога, кому несложно покажите пример спауна враждебных НПС, прошу очень нужно! Поделиться этим сообщением Ссылка на сообщение