Перейти к контенту

[CoP] Ковыряемся в файлах


Halford

Рекомендуемые сообщения

IQDDD, активное окно без правки движка не получить. Читайте соседнюю тему #409.

Поделиться этим сообщением


Ссылка на сообщение

Shredder, при спавне в радиусе онлайна можно использовать client_spawn_manager.

 local sobj = alife():create('stalker_outfit', vector(), 0, 0, db.actor:id())
level.client_spawn_manager():add(sobj.id, 0, function (id,obj) obj:set_condition(0.5) end)

Поделиться этим сообщением


Ссылка на сообщение

Shredder, сделай размер иконок для удаляемых предметов 0х0.

 

Странно, в ТЧ такого вылета не было. Выкидывание этих предметов из инвентаря перед удалением тоже не помогает?

Изменено пользователем Charsi
  • Нравится 2

Поделиться этим сообщением


Ссылка на сообщение

когда полтергейста валишь чтобы его труп вываливался

 

В файле файле bind_monster.script удали или закомментируй строчки

	local obj_clsid = self.object:clsid()
	if obj_clsid == clsid.poltergeist_s then
		printf("releasing object ["..self.object:name().."]")
		if alife():object(self.object:id()) ~= nil then
			alife():release(alife():object(self.object:id()), true)
		end
	end 

 

 

Поделиться этим сообщением


Ссылка на сообщение

Prorok_Stalker, при настройке модели в ActorEditor в поле UserData нужно прописывать настройки модели или ссылку на файл с этими настройками.

Поделиться этим сообщением


Ссылка на сообщение

Удаление полтергейста, как оказалось, нужно для отключения его эффектов. Можно заспавнить фейковый труп - физический объект с визуалом полтергейста.

	local obj_clsid = self.object:clsid()
	if obj_clsid == clsid.poltergeist_s then
		if alife():object(self.object:id()) ~= nil then
			-- удаляем полтергейста
			alife():release(alife():object(self.object:id()), true)
			-- спавним фейковый труп
			local sobj = alife():create("polter_dead",self.object:position(),self.object:level_vertex_id(),self.object:game_vertex_id())
			self.object:set_fastcall(function()
				-- ждем спавна трупа
				 local obj=level.object_by_id(sobj.id)
				 if not obj then return false end
				 -- пинаем физическую оболочку
				 obj:get_physics_shell():apply_force(0,0.1,0)
				 return true
			end)
		end
	end 
[polter_dead]
class       = O_PHYS_S
remove_time = 999999
visual = monsters\poltergeist\poltergeist 

 

 

  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение

В АМК в обновлении биндера физических объектов function generic_physics_binder:update(delta)

после обновления активной секции логики и переустановки колбеков

		xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "update", delta)
  		self.object:set_callback(callback.hit, generic_physics_binder.hit_callback, self)
  		self.object:set_callback(callback.death, generic_physics_binder.death_callback, self)
  		self.object:set_callback(callback.use_object, generic_physics_binder.use_callback, self) 

 

 

есть такая врезка

    -- для бтра hit_callback не вызывается. заткнём эту дырку.
    if self.health and (not self.nofixonhit) then
      local health=self.object:get_car() and self.object:get_car():GetfHealth()
      if health then
        if self.health-health>0.00001 then
          -- amk.mylog("health decrease for "..self.object:name())
          self.health=health
          self:hit_callback(self.object, self.health-health, vector():set(1,0,0), db.actor, 0)
          self.nofixonhit=nil
        end
      end
    end 

 

 

 

То есть, также как у актора, у машин не работает хитколбек и скриптом вызывается его обработка при падении "здоровья" на некоторую величину. Следует иметь ввиду, что виновником хита всегда будет считаться актор.

 

Переменная self.health определена в методе reinit

self.health=self.object:get_car() and self.object:get_car():GetfHealth()
Изменено пользователем Charsi
  • Нравится 2

Поделиться этим сообщением


Ссылка на сообщение

@Grif_on, скорее всего логика рестриктора не просчитывается, т.к. он в оффлайне. Укажи рестриктору position и вертексы от точки перехода.

Поделиться этим сообщением


Ссылка на сообщение

@Serge!, при создании окна ui_numpad.numpad(self) у объекта self подразумевается наличие метода OnNumberReceive.

Обычно это объект класса codepad, реализующего логическую схему ph_code. При нажатии Enter по окончании ввода отрабатывает метод numpad:OnButton_OK_clicked. В нем окно закрывается, получается текст из поля ввода и передается в метод OnNumberReceive объекта self, переданного в конструктор окна.

Если ты запускаешь окно из главного меню, то в класс main_menu нужно добавить метод main_menu:OnNumberReceive(text). Тогда введенное значение будет в него передаваться.

  • Спасибо 1

Поделиться этим сообщением


Ссылка на сообщение

Вместо

xr_logic.switch_to_section(self.object, self.st,section)

напиши 

xr_logic.switch_to_section(self.object, self.st.ini, section)
  • Спасибо 1

Поделиться этим сообщением


Ссылка на сообщение

@Дедушка Тапок, отображение прицела выключается командой "hud_crosshair off". А команда "cl_dynamiccrosshair off" выключает зависимость размеров прицела от текущего разброса стрельбы.

Поделиться этим сообщением


Ссылка на сообщение

Это тоже самое, только через меню.

-------

Никто не проверял скорее всего.

Поделиться этим сообщением


Ссылка на сообщение

@FonSwong, кнопки бывают только прямоугольные. Колбеки наведения и потери курсора в оригинале движка ЗП не экспортированы.

Поделиться этим сообщением


Ссылка на сообщение

@Space.Marine, в keep_items пишутся секции предметов, которые death_manager не должен удалять из инвентаря нпс.

Кондиции оружия в первом и втором слоте задается случайное значение, всё остальное удаляется.

Поделиться этим сообщением


Ссылка на сообщение

@BoBaH_671, файл ph_car.script нужно было брать из ЧН. Если взял из ТЧ, то доработай его как написано на wiki.

  • Спасибо 1
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

@WizziGun, нужно сделать в LevelEditor анимацию камеры и запускать её в игре скриптом. Например, в "Чистом Небе" в начале сюжета из логики рестриктора функцией run_cam_effector_global запускается анимация scenario_cam\Marsh\camera_mar_04_on_foot .

  • Спасибо 1

Поделиться этим сообщением


Ссылка на сообщение

@MgSolidus, в MilkShape 3D можно скрыть ненужные группы, а OGFviewer показывает модель только целиком.

Поделиться этим сообщением


Ссылка на сообщение

@alex5773, не надо на глаз. Для расчета положения иконок есть Addon Calculator в STALKER Icon Editor.

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...