Gonarh 5 Опубликовано 25 Июня 2010 (изменено) Не знаю как вы мужики, а я от чекбоксов отказался, нихрена оно не работает... сделал изменение цвета текста простого батона в зависимости от булевы (красный - фэлс, зелёный - тру) Изменено 25 Июня 2010 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 27 Июня 2010 Если ни того ни другого не осилили - скажу прямо - делать здесь нечего. Неистово плюсую, задолбали 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 29 Июня 2010 Так одно и то-же одно и тоже... Хоть на заходи, поэтому давно тут и не отписываюсь.... Вообще редко стал отписываться ... Аналогично 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 11 Августа 2010 можно отлавливать переход псин в онлайн щюпать нетпакет и переписывать налету 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 11 Августа 2010 я рассматривал случай с динамическим содержанием кастомдаты 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 13 Августа 2010 (изменено) тады вариант маландринуса в самый раз Изменено 13 Августа 2010 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 14 Августа 2010 в том что к именам объекта созданным скриптово (не через аллспавн) добавляется его айдишник. Т.е. имя будет не esc_unik_guard а чонить типа esc_unik_guard12345, тебе нужно в цикле перебрать все объекте, и грохнуть тот в имени которого есть esc_unik_guard, но учти если ты создашь двух и более неписей с этого профиля - грохнуты будут все они. 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 22 Августа 2010 (изменено) Игра будет быстрее обрабатывать данные? Должна ли увеличится производительность? Теоритически - да. Практически нет. При распакованной геймдате отпадает необходимость в поиске и распаковке файлов из архива. => Времени на прогрузку уровня уходит меньше. Изменено 22 Августа 2010 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 22 Августа 2010 архивы надо УДАЛИТЬ 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 1 Октября 2010 есть ли возможность определить момент попадания болта в спейсрестриктор? 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 20 Октября 2010 (изменено) есть ли возможность определить момент попадания болта в спейсрестриктор? Если кому интересно, проблему решил навешиванием на болт своего биндера в файле config\weapons\w_bolt.ltx добавляем строку script_binding = xr_bolt.bind создаем скрипт xr_bolt.script примерно такого содержания function bind(obj) local new_binder = bolt_binder(obj) obj:bind_object(new_binder) end class "bolt_binder" ( object_binder ) function bolt_binder:__init(obj) super(obj) self.obj = obj self.timer_update = game.time() self.worked = false self.trigger = false end function bolt_binder:update(delta) if self.timer_update<=game.time() then self.timer_update=game.time()+1500 else return end --здесь делаем необходимые нам дела )))) --в моем случае необходимо было из подготовленной заранее таблицы спейсрестрикторов --выбрать ту в которую текущий болт попал if not self.trigger then for i, tp in pairs(g_teleports.array_space_rest) do local obj = alife():object(tp.id) if obj then if self.obj:position():distance_to(obj.position)<=2.5 then if not self.worked then self.worked = true self.trigger = true break end end end end end if self.worked then --выполняем нужные нам действия ))) self.worked = false end end Изменено 20 Октября 2010 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 20 Февраля 2011 Давно не заглядал, всем ку! Как сделать юзабельным физ. объект (костер)? 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 21 Марта 2011 Т.о. респавненный объект не получит имя 'escape_lager', а получит именем типа 'escape_lager23456' и, если работа завязана на конкретном имени объекта (а таких немало) - она (работа) уже до конца игры не будет задействована в случае гибели и исчезновения/удаления неписи. В этом случае только спавн по заведомо известной секции из all.spawn'а можно 'воссоздать' объект с нужным именем. Штатный респавн подобным не занимается. Конечно попахивает быдлокодерством, но что мешает нам наплодить потомков в конфиге типа [escape_lager_1]:escape_lager [escape_lager_2]:escape_lager [escape_lager_3]:escape_lager [escape_lager_4]:escape_lager [escape_lager_5]:escape_lager ... [escape_lager_n]:escape_lager Добавлено через 19 мин.: Как с помощью net_packet() поставить "restrictor_type = 2" для всех аномалий? В цикле выбрать все аномалии из объектов, и с помощью нижеследующих функций перепаковать аномалии. for i=.... local obj = alife():object(i) if obj and --тут поставить условие, шобы отбирались только аномалии local data = read_anomaly_params(obj) data.restrictor_type=2 --учти что перепаковывать можно объекты находящиеся в оффлайне, иначе эффекта ты не увидишь. write_anomaly_params(data,obj) end end function read_anomaly_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 t={} t.gvid=stpk:r_u16() t.obf32u1=stpk:r_float() t.obs32u2=stpk:r_s32() t.lvid=stpk:r_s32() t.oflags=stpk:r_s32() t.custom=stpk:r_stringZ() t.sid=stpk:r_s32() t.obs32u3=stpk:r_s32() local shape_count = stpk:r_u8() t.shapes={} for i=1,shape_count do local shape_type = stpk:r_u8() t.shapes[i]={} t.shapes[i].shtype=shape_type if shape_type == 0 then -- sphere t.shapes[i].center = stpk:r_vec3() t.shapes[i].radius = stpk:r_float() else -- box t.shapes[i].v1 = stpk:r_vec3() t.shapes[i].v2 = stpk:r_vec3() t.shapes[i].v3 = stpk:r_vec3() t.shapes[i].offset = stpk:r_vec3() end end t.restrictor_type = stpk:r_u8() t.max_power = stpk:r_float() t.owner_id = stpk:r_s32() t.enabled_time = stpk:r_s32() t.disabled_time = stpk:r_s32() t.start_time_shift = stpk:r_s32() t.offline_interactive_radius = stpk:r_float() t.artefact_spawn_count = stpk:r_u16() t.artefact_position_offset = stpk:r_s32() t.last_spawn_time_present = stpk:r_u8() return t end function write_anomaly_params(t,sobj) local stpk=net_packet() local uppk=net_packet() stpk:w_u16(t.gvid) stpk:w_float(t.obf32u1) stpk:w_s32(t.obs32u2) stpk:w_s32(t.lvid) stpk:w_s32(t.oflags) stpk:w_stringZ(t.custom) stpk:w_s32(t.sid) stpk:w_s32(t.obs32u3) stpk:w_u8(table.getn(t.shapes)) for i=1,table.getn(t.shapes) do stpk:w_u8(t.shapes[i].shtype) if t.shapes[i].shtype == 0 then stpk:w_vec3(t.shapes[i].center) stpk:w_float(t.shapes[i].radius) else stpk:w_vec3(t.shapes[i].v1) stpk:w_vec3(t.shapes[i].v2) stpk:w_vec3(t.shapes[i].v3) stpk:w_vec3(t.shapes[i].offset) end end stpk:w_u8(t.restrictor_type) stpk:w_float(t.max_power) stpk:w_s32(t.owner_id) stpk:w_s32(t.enabled_time) stpk:w_s32(t.disabled_time) stpk:w_s32(t.start_time_shift) stpk:w_float(t.offline_interactive_radius) stpk:w_u16(t.artefact_spawn_count) stpk:w_s32(t.artefact_position_offset) stpk:w_u8(t.last_spawn_time_present) local size=stpk:w_tell() local size1=uppk:w_tell() stpk:r_seek(0) uppk:r_seek(0) sobj:STATE_Read(stpk,size) sobj:UPDATE_Read(uppk) end 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение