Gonarh 3 Опубликовано 7 Июня 2009 [4683] ; cse_abstract properties section_name = stalker name = mil_freedom_member0001 position = -178.503997802734,-16.9659557342529,352.31005859375 direction = 0,0,0 ; cse_alife_trader_abstract properties money = 5000 character_profile = mil_Svoboda_stukach ; cse_alife_object properties game_vertex_id = 1828 distance = 24.5 level_vertex_id = 144846 object_flags = 0xfffff7ff custom_data = <<END [logic] active = walker0 on_death = death combat_ignore = combat_ignore [walker0] path_walk = mil_freedom_courier_wait_path path_look = mil_freedom_courier_wait_look on_actor_dist_le = 12 | %=killactor% on_info = {+mil_actor_in_khutor_zone} walker1 [walker1] path_walk = mil_freedom_stukach_walk4 path_look = mil_freedom_stukach_look4 on_actor_dist_le_nvis = 12 | %=killactor% on_signal = arrive | remark1 combat_ignore_cond = {=check_fighting(712:713:714:719)} false [remark1] no_rotate = true no_move = true anim = wait_rac snd = mil_pavlik_to_ara on_signal = sound_end | %+mil_courier_call% remark2 on_actor_dist_le_nvis = 12 | %=killactor% target = mil_courier_look_point, 0 combat_ignore_cond = {=check_fighting(712:713:714:719)} false [remark2] anim = guard on_info = {+mil_ara_end} kamp1 on_actor_dist_le_nvis = 12 | %=killactor% target = mil_courier_look_point, 0 combat_ignore_cond = {=check_fighting(712:713:714:719)} false [kamp1] center_point = mil_freedom_khutor_center meet_enable = true meet_dialog = mil_dolg_relax_dialog danger = danger path_walk = mil_freedom_khutor_center_task radius = 3 on_actor_dist_le_nvis = 12 | %=killactor% combat_ignore_cond = {=check_fighting(712:713:714:719)} false [death] on_info = %+mil_courier_dead =mil_paul_frost_dead +sar2_death_33% [danger] ignore_distance = 0 [smart_terrains] none = true [spawn] conserva = 2 medkit = 2 hand_radio [spawner] cond = {+mil_leader_quest2_start} END story_id = 710 ; cse_visual properties visual_name = actors\svoboda\stalker_sv_rukzak_1 ; cse_alife_creature_abstract properties g_team = 11 g_squad = 9 g_group = 0 health = 2 dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 2 upd:timestamp = 0 upd:creature_flags = 0 upd:position = -178.503997802734,-16.9659557342529,352.31005859375 upd:o_model = 0 upd:o_torso = 0,0,0 upd:g_team = 11 upd:g_squad = 9 upd:g_group = 0 ; cse_alife_monster_abstract properties base_out_restrictors = mil_bandit_restrictor base_in_restrictors = mil_mines_restrictor,mil_freedom_wall_restrictor 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 = 2,0,2,2,0 predicate4 = 1,0,1,2 ; cse_ph_skeleton properties upd:start_dialog = ; se_stalker properties 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 3 Опубликовано 9 Июня 2009 (изменено) не коллбэк а просто вставить туда свою функцию, если быть точным то указанная тобой функция это коллбэк на момент перехода ГГ в онлайн Изменено 9 Июня 2009 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 3 Опубликовано 9 Июня 2009 (изменено) Gonarh, а db.actor определен уже в этот момент? он как раз таки определяется в этой функции в строчке db.add_actor(self.object) Изменено 9 Июня 2009 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 3 Опубликовано 9 Июня 2009 да, можно 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 3 Опубликовано 12 Июня 2009 (изменено) где редактируется с каким оружием ГГ будет на арене? при телепорте ГГ на Арену вызывается функция bar_arena_teleport ( actor, npc) из модуля xr_effects.script там описаны какие вещи будут положены в вещмешок ГГ в бою И где редактируються параметры ареновских стволов в файле gamedata\config\misc\unique_items.ltx все виды оружия с припиской "_arena" например:"wpn_pm_arena", "wpn_mp5_arena", "wpn_toz34_arena", "wpn_spas12_arena" и т.д. Изменено 12 Июня 2009 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 3 Опубликовано 12 Июня 2009 у каждого оружия есть два параметра misfire_probability = 0.0050 ;вероятность осечки при максимальном износе condition_shot_dec = 0.0001 ;увеличение износа при каждом выстреле думаю тут все понятно Добавлено через 25 мин.: ковыряясь в луа_хэлп нашол в классе game_object интересный метод berserk() никто не фкурсе чо за хрень? 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 3 Опубликовано 14 Июня 2009 (изменено) Как сделать текст сообщений Черным ? function show_black_msg(text) db.actor:give_game_news("%c[255,0,0,0]"..text, "ui\\ui_iconsTotal", Frect():set(0,658,83,47),1000, 20000) end юзать так: show_black_msg("блаблабла") Добавлено через 57 мин.: IQDDD, заранее на все случаи жизни текстур с нужными текстами не наберешься, да и некошерно это Добавлено через 75 мин.: А вот кто-нибуть пробовал через скрипт закрыть инвентарь? а какже local inventar_menu=level.main_input_receiver() inventar_menu:GetHolder():start_stop_menu(self,true) Изменено 14 Июня 2009 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 3 Опубликовано 14 Июня 2009 (изменено) скорее всего синхронизация клиента(основной тормоз) происходит чуть больше времени отображения новости, попробуй увеличь время отображения новости примерно так: function show_black_msg(text) db.actor:give_game_news("%c[255,0,0,0]"..text, "ui\\ui_iconsTotal", Frect():set(0,658,83,47),1000, 60000) end Изменено 14 Июня 2009 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 3 Опубликовано 14 Июня 2009 (изменено) давай в личку свой аськ - так думаю будет просче обсчаться Изменено 14 Июня 2009 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 3 Опубликовано 14 Июня 2009 хмм, похоже отвечает за формы, тестуры и размеры окна мессаджбокс в главном меню, ПЫСовцы делали его похожим на системное 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 3 Опубликовано 14 Июня 2009 (изменено) 1. Писать нельзя только читать. По крайней мере в классе ini_file в lua_help.script нет объявлений методов записи C++ class ini_file { ini_file (string); function line_count(string); function r_bool(string, string); function section_exist(string); function r_float(string, string); function r_clsid(string, string); function r_s32(string, string); function r_line(ini_file*, string, number, string&, string&); function r_token(string, string, const token_list&); function r_vector(string, string); function r_u32(string, string); function r_string_wq(string, string); function r_string(string, string); function line_exist(string, string); }; создаем в папке gamedata\config\misc файлег moi_dannye.ltx следующего содержания: [general_data] my_param = 1.5 Примерная функция чтения этого параметра function get_parametr() result = 0 local sini = ini_file("misc\\moi_dannye.ltx") if sini and sini:section_exist("general_data") then if sini:line_exist("general_data","my_param") then result = sini:r_float("general_data","my_param") end end return result end учтите что это функция чтения числа с плавающей точкой, для чтения других типов данных используйте соответствующие методы 2. нетпакет это примерно 7,5-8килобайт пользовательских данных куда можно писать/читать свои данные, превышение данного объема ведет к вылетам, на основе этой фичи построены моды, без нетпакета жизнь мододелов была бы существенно затруднена. практически все фишки которых нет в оригинале с деланы при помощи этой хрени. 3. Это координаты куска текстуры gamedata\textures\ui\ui_iconstotal.dds для отображения иконки того кто послал Меченому сообщение 4. Нет не на месте таймаута а на месте "texture" 5. У GetHolder() нет методов ибо это и есть метод 3-х классов ЕМНИП, если чесно влом писать, то чего сам толком не понимаю, действовал сам методом научного тыка читая lua_help.script, все возможные функции, классы, методы, константы игры описаны в этом файле... так шо дерзайте Изменено 14 Июня 2009 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 3 Опубликовано 16 Июня 2009 (изменено) по всей видимости непись не успел перейти в онлайн попробуй вместо ObjSpawn:id() юзать ObjSpawn.id Изменено 16 Июня 2009 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 3 Опубликовано 17 Июня 2009 Это серверный объект, а ты пытаешься вызвать метод клиентского вопрос на засыпку: клиентский/серверный объекты, это не тоже самое что объект в оффлайн/онлайн? 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 3 Опубликовано 18 Июня 2009 мужики, может кто-нить кинуть в меня линком на чистый мод ARC (контейнеры) последней версии? 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 3 Опубликовано 18 Июня 2009 (изменено) почти, стори_ид тут не нужон: if obj:section() == "название_новой_пушки_например_wpn_ak47" then db.actor:give_info_portion("info_take_item_art_1") end код впихачить - правильно сказал в actor_binder:on_item_take(obj), что находится в bind_stalker Gonarh, а ты разобрался с методом berserk() ? пока некогда займусь после выходных Изменено 18 Июня 2009 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 3 Опубликовано 19 Июня 2009 (изменено) чото запарился в секции иммунитета [zombie_immunities] fire_wound_immunity = 0.3 какое значение дает полную защиту 0.0 или 1.0? Gonarh, 0.0 Monnoroch пасиб Изменено 19 Июня 2009 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 3 Опубликовано 20 Июня 2009 (изменено) процедура чтения параметров сталкера через нет_пакет результат возвращается в виде таблицы function readvu32u8(packet) local v={} local len=packet:r_s32() for i=1,len,1 do table.insert(v,packet:r_u8()) end return v end function readvu8u8(packet) local v={} local len=8 for i=1,len,1 do table.insert(v,packet:r_u8()) end return v end function readvu32u16(packet) local v={} local len=packet:r_s32() for i=1,len,1 do table.insert(v,packet:r_u16()) end return v end function parse_stalker_packet(ret,stpk,updpk,size) ret.money=stpk:r_s32() ret.profile=stpk:r_stringZ() ret.infammo=stpk:r_s32() ret.class=stpk:r_stringZ() ret.communityid=stpk:r_s32() ret.rank=stpk:r_s32() ret.reputation=stpk:r_s32() ret.charname=stpk:r_stringZ() ret.gvid=stpk:r_u16() ret.obf32u1=stpk:r_float() ret.obs32u2=stpk:r_s32() ret.lvid=stpk:r_s32() ret.oflags=stpk:r_s32() ret.custom=stpk:r_stringZ() ret.sid=stpk:r_s32() ret.obs32u3=stpk:r_s32() ret.visual=stpk:r_stringZ() ret.vsu8u1=stpk:r_u8() ret.team=stpk:r_u8() ret.squad=stpk:r_u8() ret.group=stpk:r_u8() ret.health=stpk:r_float() ret.crvu32u16u1=readvu32u16(stpk) ret.crvu32u16u2=readvu32u16(stpk) ret.killerid=stpk:r_u16() ret.game_death_time=readvu8u8(stpk) ret.updhealth=updpk:r_float() ret.upds32u1=updpk:r_s32() ret.updu8u2=updpk:r_u8() ret.updpos={} -- или поставить вектор? ладно потом ret.updpos.x=updpk:r_float() ret.updpos.y=updpk:r_float() ret.updpos.z=updpk:r_float() ret.updmodel=updpk:r_float() ret.upddir={} ret.upddir.x=updpk:r_float() ret.upddir.y=updpk:r_float() ret.upddir.z=updpk:r_float() ret.updteam=updpk:r_u8() ret.updsquad=updpk:r_u8() ret.updgroup=updpk:r_u8() ret.baseoutr=stpk:r_stringZ() ret.baseinr=stpk:r_stringZ() ret.smtrid=stpk:r_u16() ret.smtrtaskactive=stpk:r_u8() ret.updu16u1=updpk:r_u16() ret.updu16u2=updpk:r_u16() ret.upds32u3=updpk:r_s32() ret.upds32u4=updpk:r_s32() ret.skeleton=stpk:r_stringZ() ret.skeleton_flags=stpk:r_u8() ret.source_id=stpk:r_u16() ret.huvu32u8u1=readvu32u8(stpk) ret.huvu32u8u2=readvu32u8(stpk) ret.hellodlg=updpk:r_stringZ() ret.stunk1={} for i=stpk:r_tell(),size-1,1 do table.insert(ret.stunk1,stpk:r_u8()) end return ret end function read_stalker_params(sobj) local stpk=net_packet() local uppk=net_packet() sobj:STATE_Write(stpk) sobj:UPDATE_Write(uppk) local size=stpk:w_tell() local size1=uppk:w_tell() stpk:r_seek(0) uppk:r_seek(0) local tbl=parse_stalker_packet({},stpk,uppk,size) return tbl end то что тебе надо: 1. параметры health и updhealth 2. visual 3. не знаю Изменено 20 Июня 2009 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 3 Опубликовано 20 Июня 2009 кто в курсе из-за чего могет быть такой вылет FATAL ERROR [error]Expression : fatal error [error]Function : CIni_IdToIndex<1,struct COMMUNITY_DATA,class shared_str,int,class CHARACTER_COMMUNITY>::GetByIndex [error]File : e:\stalker\patch_1_0004\xr_3da\xrgame\ini_id_loader.h [error]Line : 147 [error]Description : <no expression> [error]Arguments : item by index not found in section game_relations, line communities 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 3 Опубликовано 21 Июня 2009 1. Никак 2. смотри функцию motivator_binder:hit_callback в файле xr_motivator.script 3. Никак 4. смотри функцию motivator_binder:hit_callback в файле xr_motivator.script 5. незнаю 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 3 Опубликовано 21 Июня 2009 эммм параметр wound_immunity знаю а wound_2_immunity чо такое? 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение