ins33, ты же зареген у нас на сайте. Почитай статью Скриптовый метод спавна спейс_рестриктора (space_restrictor) и работа с ним. Тема Как всё это было сделано ((уроки моддинга на примерах из ТТ2))
Quote
А ApplicationCompatibilityToolkit он не для бат файлов
Это кто сказал?
Сообщение отредактировал _Val_ - Суббота, 21.07.2012, 00:58
potapov_first_dialog_start в моде нет, как и любых диалогов! Чем можно это заменить?
---------- -- чтение формы из нет-пакета ---------- function r_shape(packet) local s local st = {} st.count = packet:r_u8() st.shapes = {} for i=1, st.count do s = {} s.type = packet:r_u8() if s.type == 0 then s.center = packet:r_vec3() s.radius = packet:r_float() else s.axis_x = packet:r_vec3() s.axis_y = packet:r_vec3() s.axis_z = packet:r_vec3() s.offset = packet:r_vec3() end st.shapes[i] = s end return st end
---------- -- запись формы в нет-пакет ---------- function w_shape(packet, st) local s packet:w_u8(st.count) for i=1, st.count do s = st.shapes[i] packet:w_u8(s.type) if s.type == 0 then packet:w_vec3(s.center) packet:w_float(s.radius) else packet:w_vec3(s.axis_x) packet:w_vec3(s.axis_y) packet:w_v ec3(s.axis_z) packet:w_vec3(s.offset) end end end
---------- -- перепаковка нет-пакета созданного скриптом рестрикта ---------- function rewrite_restrictor(se_obj, custom, radius) local packet = net_packet() se_obj:STATE_Write(packet) local game_vertex_id = packet:r_u16() local distance = packet:r_float() local direct_control = packet:r_s32() local level_vertex_id = packet:r_s32() local object_flags = packet:r_s32() local custom_data = packet:r_stringZ() local story_id = packet:r_s32() local spawn_story_id = packet:r_s32() local shape = r_shape(packet) local restrictor_type = packet:r_u8()
function create_shompl_restr() local se_obj = alife():create("space_restrictor",vector():set(144.67300415039,8.5598239435425,-20.42113668566079),1171261,4027) local custom = "[logic]\ncfg = scripts\\ins\\shompl.ltx" --путь к логике рестриктора rewrite_restrictor(se_obj, custom, 5.0) --5.0 - это радиус действия нашего рестриктора end
и
function spawn_monsters() alife():create("gar_bandit_respawn_1",vector():set(68.054977416992,4.4271631240845,-29.120529174805),1049668,4008) alife():create("repair_kit",vector():set(68.054977416992,4.4271631240845,-29.120529174805),1049668,4008) local obj= alife():create("agr_bandit_respawn_1",vector():set(68.054977416992,4.4271631240845,-29.120529174805),1049668,4008) obj:on_death() end
Но спавн не происходит.
Сообщение отредактировал ins33 - Суббота, 21.07.2012, 02:54
ins33, potapov_first_dialog_start - это инфопоршен. Если мод на ТЧ, то его обязательно надо прописывать, если на ЗП - можно этого не делать. А функции в логике запускаются только из xr_effects.script и, кажется, еще из какого-то одного файла. Перенеси свою функцию спавна в xr_effects.script.
azrael1325, есть пару багов. Всё это делается в начале игры, и поршня просто нет. Можно через диалоги всё сделать, но в этом моде пока все пельменькины. и xr_effects.script в моде тоже нет. Так же посмотрел, как это реализованно в тт2. Спавна там в esc_graf. Может без поршня можно обойтись?
Сообщение отредактировал ins33 - Суббота, 21.07.2012, 03:54