dsh 3 824 Опубликовано 29 Сентября 2016 Поделиться Опубликовано 29 Сентября 2016 UnLoaded, у меня доспаун патронов сделан в amk_offline_alife в process_trade, при net_spawn актора, пока все еще в оффлайне. Что бы не ходить по граблям онлайновых объектов. Там как раз каждый непись продал все лишнее оружие и у него осталось то, которое он будет использовать. Вот его можно и проверить, сколько патронов имеется, чем заряжено и т.п. и доспаунить нужное, подремонтировать поломанное. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Overfirst 630 Опубликовано 29 Сентября 2016 Поделиться Опубликовано 29 Сентября 2016 Товарищи, прям очень нужна ваша помощь! Такой вопрос: как можно по ходу игры поменять имя ГГ и его иконку? Мне бы пример готовый, я ни бум-бум в таких ситуациях... Ранее был известен под ником BoBaH_671. Ссылка на комментарий
Карлан 1 049 Опубликовано 29 Сентября 2016 Поделиться Опубликовано 29 Сентября 2016 @BoBaH_671, выведи две write функции на имя и на иконку, только имя нужно будет еще в серверную часть записать. Готовый пример, ну, например, у меня бы все выглядело как-то так: actor:set_character_icon("ui_npc_monster_kontroler") actor:set_character_name("Контролер")Если я это вызываю в режиме диалога или вроде того, то еще вызвать функцию принудительного апдейта текущего окна, ее можно написать на все движковые окошки + расширить через скриптовую оболочку еще и на скриптовые окна, если нужно. 1 Ссылка на комментарий
Overfirst 630 Опубликовано 29 Сентября 2016 Поделиться Опубликовано 29 Сентября 2016 выведи две write функции на имя и на иконку, только имя нужно будет еще в серверную часть записать. Мне бы пример готовый, я ни бум-бум в таких ситуациях... В личке, вроде, ты сказал, что это нереально много файлов, так чего же ты хочешь, чтобы я тут сделал? Это очень сложно для меня будет. Быть может, @Nazgool сможет помочь? Ранее был известен под ником BoBaH_671. Ссылка на комментарий
TIGER_VLAD 361 Опубликовано 2 Октября 2016 Поделиться Опубликовано 2 Октября 2016 Всем привет. Как можно узнать класс оружия в руках гг (пистолеты, ружья, автоматы, снайперское, тяжелое)? Ссылка на комментарий
UnLoaded 313 Опубликовано 2 Октября 2016 Поделиться Опубликовано 2 Октября 2016 @TIGER_VLAD А что, в игре есть деление на такие классы: пистолеты, ружья, автоматы, снайперское, тяжелое? Ссылка на комментарий
TIGER_VLAD 361 Опубликовано 2 Октября 2016 Поделиться Опубликовано 2 Октября 2016 @UnLoaded, Ну есть в конфигах такие weapon_class'ы как : shotgun, assault_rifle, sniper_rifle, heavy_weapon. Ну и думаю можно это как-то скриптом проверить? Ссылка на комментарий
Lebedev30 7 Опубликовано 2 Октября 2016 Поделиться Опубликовано 2 Октября 2016 (изменено) Доброй ночи: Встретился хороший мод "Содержимое рюкзака ГГ на худе" (копирайты не удаляю, просто хочу добавить несколько дополнительных строк, чтобы выводило) Но если бы его модернизировать (цены ему не будет): Не удалось вывести через мод на экран данные следующий вещей: ammo_vog-25pammo_vog-25ammo_og-7b Ошибка a nil valueВозможно ли её обойти? (как порылось, ошибка из-за самого языка программирования Lua, но раз выводит на экран (как-то GSC обошла ошибку (вариант через кавычки или скобки не помог)) когда оружие с подствольными гранатами у тебя в руках и активирован режим стрельбы гранатами)Заранее спасибо за ответ. Изменено 2 Октября 2016 пользователем Lebedev30 Ссылка на комментарий
Comador 203 Опубликовано 3 Октября 2016 Поделиться Опубликовано 3 Октября 2016 TIGER_VLAD, в моде АМК-2 был такой код function amkGetWeaponClass(oWeapon) local iID = get_clsid(oWeapon) if iID == clsid.wpn_vintorez_s or iID == clsid.wpn_svd_s or iID == clsid.wpn_svu_s then return 1 -- снайперские винтовки elseif iID == clsid.wpn_ak74_s or iID == clsid.wpn_lr300_s or iID == clsid.wpn_groza_s or iID == clsid.wpn_val_s then return 2 -- штурмовые винтовки elseif iID == clsid.wpn_hpsa_s or iID == clsid.wpn_walther_s or iID == clsid.wpn_usp45_s or iID == clsid.wpn_pm_s then return 3 -- пистолеты elseif iID == clsid.wpn_bm16_s or iID == clsid.wpn_shotgun_s then return 4 -- дробовики, ружья elseif iID == clsid.wpn_rpg7_s or iID == clsid.wpn_grenade_f1 or iID == clsid.wpn_grenade_rgd5 or iID == clsid.wpn_rg6_s then return 5 -- гранаты, гранатометы, ракеты elseif iID == clsid.wpn_knife_s then return 6 -- нож else return 0 -- не определено end end 1 1 Неважно – сколько у тебя друзей. Важно - сколько из них помогут тебе в трудную минуту и сколько вспомнят о тебе когда им хорошо. "Худ" и "Умное выпадание частей монстров" для Народной солянки Ссылка на комментарий
Lebedev30 7 Опубликовано 10 Октября 2016 Поделиться Опубликовано 10 Октября 2016 (изменено) Возможно ли прописать дополнительный вид состояния ранения и лечения (чтобы на него всех квестовых NPC перевести)? Если возможно, просьба указать файлы и примерно, что прописывать. Изменено 10 Октября 2016 пользователем Lebedev30 Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 11 Октября 2016 Поделиться Опубликовано 11 Октября 2016 как можно по ходу игры поменять имя ГГ и его иконку Поднимал уже вопрос - в движок лезть...Скриптами проблему не решим... Не соответствует правилам. Ссылка на комментарий
TIGER_VLAD 361 Опубликовано 14 Октября 2016 Поделиться Опубликовано 14 Октября 2016 Всем привет. Как можно создать прогресс бар, как например шкала жизни или шкала выносливости, вот только чтобы прогресс бар показывал значение моей переменной? Ссылка на комментарий
naxac 2 445 Опубликовано 15 Октября 2016 Поделиться Опубликовано 15 Октября 2016 (изменено) @TIGER_VLAD, в ЧН/ЗП для этого экспортирован отдельный gui-класс, в ТЧ - можно с помощью CUIStatic сделать. Изменено 15 Октября 2016 пользователем naxac 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
FonSwong 33 Опубликовано 15 Октября 2016 Поделиться Опубликовано 15 Октября 2016 (изменено) ЗП. Помогите понять как работать с нет пакетами. Допустим я хочу перепаковать нет пакет аномалии Как я понял, чтобы правильно считать а затем записать обратно, мне требуется знать структуру. Вот как выглядит первая попавшаяся аномалия в распакованном с помощью ACDC олл спавне: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [4645] ; cse_abstract properties section_name = zone_mine_gravitational_weak name = esc_zone_mine_gravitational_weak position = -238.472381591797, -14.1582250595093, -18.8305053710938 direction = -0.00182200002018362, -0.000296000012895092, -0.160981997847557 id = 65535 version = 128 script_version = 12 spawn_id = 1158 ; cse_alife_object properties game_vertex_id = 386 distance = 44.099998 level_vertex_id = 19709 object_flags = 0xffffff3e ; cse_shape properties shapes = 1 shape_0:type = sphere shape_0:offset = 0,0,0 shape_0:radius = 3 ; cse_alife_space_restrictor properties restrictor_type = 0 ; cse_alife_custom_zone properties ; cse_alife_anomalous_zone properties offline_interactive_radius = 30 artefact_spawn_count = 32 artefact_position_offset = 0x24c0 ; se_zone_anom properties ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Нашёл такой вот код для перепаковки аномалии: local p_obj = alife():create(section,vector():set(pos.x+10,pos.y,pos.z+10),lv,gv) local packet = net_packet() packet:w_begin(0) p_obj:STATE_Write(packet) packet:r_seek(2) local game_vertex_id = packet:r_u16() local cse_alife_object__unk1_f32 = packet:r_float() local cse_alife_object__unk2_u32 = 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 cse_alife_object__unk3_u32 = packet:r_s32() local shape_count = packet:r_u8() for i=1,shape_count do local shape_type = packet:r_u8() if shape_type == 0 then local center = packet:r_vec3() local radius = packet:r_float() else local box = packet:r_matrix() end end local restrictor_type = packet:r_u8() local cse_alife_custom_zone__unk1_f32 = packet:r_float() local cse_alife_custom_zone__unk2_u32 = packet:r_s32() local on_off_mode_enabled_time = packet:r_s32() local on_off_mode_disabled_time = packet:r_s32() local on_off_mode_shift_time = packet:r_s32() local offline_interactive_radius = packet:r_float() local artefact_spawn_places_count = packet:r_u16() local cse_alife_anomalous_zone__unk1_u32 = packet:r_s32() local last_spawn_time_present = packet:r_u8() packet:w_u16(game_vertex_id) packet:w_float(cse_alife_object__unk1_f32) packet:w_s32(cse_alife_object__unk2_u32) packet:w_s32(level_vertex_id) packet:w_s32(object_flags) if mode~=nil then custom_data = mode end packet:w_stringZ(custom_data) packet:w_s32(story_id) packet:w_s32(cse_alife_object__unk3_u32) packet:w_u8(1) packet:w_u8(0) local sphere_center = vector() sphere_center:set(0, 0, 0) packet:w_vec3(sphere_center) radius = rad_anom packet:w_float(radius) packet:w_u8(restrictor_type) packet:w_float(cse_alife_custom_zone__unk1_f32) cse_alife_custom_zone__unk2_u32 = bit_not(0) packet:w_s32(cse_alife_custom_zone__unk2_u32) if time1 ~= nil then packet:w_s32(time1) else packet:w_s32(on_off_mode_enabled_time) end if time2 ~= nil then packet:w_s32(time2) else packet:w_s32(on_off_mode_disabled_time) end packet:w_s32(on_off_mode_shift_time) packet:w_float(offline_interactive_radius) packet:w_u16(artefact_spawn_places_count) packet:w_s32(cse_alife_anomalous_zone__unk1_u32) if mode==nil then packet:w_u8(last_spawn_time_present) end p_obj:STATE_Read(packet, packet:w_tell()-packet:r_tell()) Да, он вроде как работает, но то что считывает и перезаписывает скрипт не соответствует строкам аномалии в распакованном олл спавне, где же тогда конструкцию узнавать и как понимать каким именно методом читать нужно?:/ Изменено 15 Октября 2016 пользователем FonSwong Ссылка на комментарий
naxac 2 445 Опубликовано 15 Октября 2016 Поделиться Опубликовано 15 Октября 2016 @FonSwong, в распакованном спавне не все параметры написаны, а только те, которые отличаются от дефолтных. Для того, чтобы узнать структуру пакета, открывай acdc.pl (желательно тот, который чисто для ЗП предназначен) и изучай классы - начиная с того, который тебе нужен - и дальше по наследованию. Или проще - есть много готовых парсеров (от Artos, xSrteam), используй их (есть в теме "Сборочный цех"). 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Карлан 1 049 Опубликовано 15 Октября 2016 Поделиться Опубликовано 15 Октября 2016 TIGER_VLAD, в ЧН/ЗП для этого экспортирован отдельный gui-класс, в ТЧ - можно с помощью CUIStatic сделать. В ТЧ SetWndPos тоже присутствует, и все работает. ЗП. Помогите понять как работать с нет пакетами. По уму с нет-пакетами лучше совсем не работать. Советую направить силы на понимание как работать БЕЗ нет-пакетов, совсем без них не выйдет, но минимизировать и локализировать их использование очень даже удастся. 1 Ссылка на комментарий
naxac 2 445 Опубликовано 15 Октября 2016 Поделиться Опубликовано 15 Октября 2016 (изменено) @Карлан, при чем тут SetWndPos? Я про экспортированный в ЗП и ЧН класс прогресс-бара, которого нет в ТЧ. upd: пардон, в ТЧ он тоже есть, но недоэкспортирован нормально. Изменено 15 Октября 2016 пользователем naxac 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Карлан 1 049 Опубликовано 15 Октября 2016 Поделиться Опубликовано 15 Октября 2016 @naxac, еще раз, я написал, что прогресс-бар в ТЧ работает, конкретно вопрошающему необходим SetWndPos, о котором я и упомянул. 1 Ссылка на комментарий
TIGER_VLAD 361 Опубликовано 15 Октября 2016 Поделиться Опубликовано 15 Октября 2016 @Карлан, @naxac, А можно поподробнее? И как метод SetWndPos поможет мне сделать прогресс бар? Ссылка на комментарий
FonSwong 33 Опубликовано 15 Октября 2016 Поделиться Опубликовано 15 Октября 2016 @TIGER_VLAD, Я просто растягивал текстурку по ширине да и всё Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти