После выхода 30-го билда с добавлением возможности вручения оружия в фазе постройки бункеров перестал работать луа код у турели в моде trappers (http://forums.datarealms.com/viewtopic.php?f=61&t=25661) раньше у этой замечательной турели была возможность поднимать два любых оружий и стрелять с них одновременно,сейчас же оружия не поднимает и брать в режиме строительства не хочет.Помогите кто может исправить
собственно луа код турели
function Create(self) self.Gun = nil self.Gun2 = nil self.Gun2HFlipped = false local i = 1; while i < MovableMan:GetMOIDCount() do if MovableMan:GetMOFromID(i).RootID == self.ID and i ~= self.ID then self.att = MovableMan:GetMOFromID(i) if self.att.PresetName == "Sentry Gun Turret" then self.Turret = ToAttachable(self.att) end end i = i + 1 end self.PickupTimer = Timer(); end
function Update(self)
local ctrl = self:GetController()
if (self.Gun == nil or not MovableMan:ValidMO(self.Gun) or self.Gun2 == nil or not MovableMan:ValidMO(self.Gun2)) and self.PickupTimer:IsPastSimMS(1000) then local testgun = nil local guncurdist = 15 for actor in MovableMan.Items do local dist = SceneMan:ShortestDistance(actor.Pos,self.Pos,SceneMan.SceneWrapsX).Magnitude - actor.Diameter * 0.5 if self.Gun ~= nil and self.Gun.ID ~= nil then if dist < guncurdist and actor.ID ~= self.Gun.ID then guncurdist = dist - actor.Diameter * 0.5 testgun = actor end else if dist < guncurdist then guncurdist = dist - actor.Diameter * 0.5 testgun = actor end end end if testgun ~= nil then if self.Gun == nil or not MovableMan:ValidMO(self.Gun) then self.Gun = testgun self.HFlipped = testgun.HFlipped else self.Gun2 = testgun self.Gun2HFlipped = false if testgun.HFlipped ~= self.HFlipped then self.Gun2HFlipped = true end end testgun.HitsMOs = false testgun.GetsHitByMOs = false end end if self.Turret ~= nil and self.Turret.ID ~= 255 then if self.Gun ~= nil and MovableMan:ValidMO(self.Gun) then self.Gun.RotAngle = self:GetAimAngle(false) if self.HFlipped then self.Gun.RotAngle = self.Gun.RotAngle * -1 end self.Gun.HFlipped = self.HFlipped self.Gun.Pos = self.Turret.Pos + self:RotateOffset(Vector(5 , 0)) self.Gun.Vel = self.Vel if self.Gun.ClassName == "HDFirearm" then self.ViewPoint = self.Gun.Pos + self.Gun:RotateOffset(Vector(math.min(ToHDFirearm(self.Gun).SharpLength*0.5 , FrameMan.PlayerScreenWidth*0.95) , 0)) end if self.Gun.ClassName == "HeldDevice" then self.ViewPoint = self.Gun.Pos + self.Gun:RotateOffset(Vector(math.min(ToHeldDevice(self.Gun).SharpLength*0.5 , FrameMan.PlayerScreenWidth*0.95) , 0)) end if ctrl:IsState(Controller.WEAPON_RELOAD) then if self.Gun.ClassName == "TDExplosive" then ToTDExplosive(self.Gun):Reload() elseif self.Gun.ClassName == "HDFirearm" then ToHDFirearm(self.Gun):Reload() elseif self.Gun.ClassName == "HeldDevice" then ToHeldDevice(self.Gun):Reload() end end if ctrl:IsState(Controller.WEAPON_FIRE) then if self.Gun.ClassName == "TDExplosive" then ToTDExplosive(self.Gun):Activate() elseif self.Gun.ClassName == "HDFirearm" then ToHDFirearm(self.Gun):Activate() elseif self.Gun.ClassName == "HeldDevice" then ToHeldDevice(self.Gun):Activate() end else if self.Gun.ClassName == "TDExplosive" then ToTDExplosive(self.Gun):Deactivate() elseif self.Gun.ClassName == "HDFirearm" then ToHDFirearm(self.Gun):Deactivate() elseif self.Gun.ClassName == "HeldDevice" then ToHeldDevice(self.Gun):Deactivate() end end end if self.Gun2 ~= nil and MovableMan:ValidMO(self.Gun2) then self.Gun2.RotAngle = self:GetAimAngle(false) if self.HFlipped then self.Gun2.RotAngle = self.Gun2.RotAngle * -1 end self.Gun2.HFlipped = self.HFlipped if self.Gun2HFlipped then self.Gun2.HFlipped = not self.HFlipped end self.Gun2.Pos = self.Turret.Pos + self:RotateOffset(Vector(0 , -6)) self.Gun2.Vel = self.Vel if ctrl:IsState(Controller.WEAPON_RELOAD) then if self.Gun2.ClassName == "TDExplosive" then ToTDExplosive(self.Gun2):Reload() elseif self.Gun2.ClassName == "HDFirearm" then ToHDFirearm(self.Gun2):Reload() elseif self.Gun.ClassName == "HeldDevice" then ToHeldDevice(self.Gun2):Reload() end end if ctrl:IsState(Controller.BODY_CROUCH) or (ctrl:IsState(Controller.WEAPON_FIRE) and not self:GetController():IsMouseControlled() == true) then if self.Gun2.ClassName == "TDExplosive" then ToTDExplosive(self.Gun2):Activate() elseif self.Gun2.ClassName == "HDFirearm" then ToHDFirearm(self.Gun2):Activate() elseif self.Gun2.ClassName == "HeldDevice" then ToHeldDevice(self.Gun2):Activate() end else if self.Gun2.ClassName == "TDExplosive" then ToTDExplosive(self.Gun2):Deactivate() elseif self.Gun2.ClassName == "HDFirearm" then ToHDFirearm(self.Gun2):Deactivate() elseif self.Gun2.ClassName == "HeldDevice" then ToHeldDevice(self.Gun2):Deactivate() end end end end if self.Sharpness ~= 1 then if self.Sharpness == 2 then if self.Gun2 ~= nil and MovableMan:ValidMO(self.Gun2) then self.Gun2.HitsMOs = true self.Gun2.GetsHitByMOs = true self.Gun2.Pos = self.Pos + self:RotateOffset(Vector(5 + self.Gun.Diameter*0.5 , -2)) self.Gun2.Vel = self.Vel + self:RotateOffset(Vector(5 , -5)) self.Gun2 = nil elseif self.Gun ~= nil and MovableMan:ValidMO(self.Gun) then self.Gun.HitsMOs = true self.Gun.GetsHitByMOs = true self.Gun.Pos = self.Pos + self:RotateOffset(Vector(5 + self.Gun.Diameter*0.5 , -2)) self.Gun.Vel = self.Vel + self:RotateOffset(Vector(5 , -5)) self.Gun = nil end self.PickupTimer:Reset(); end self.Sharpness = 1 end end
function Destroy(self) if self.Gun ~= nil and MovableMan:ValidMO(self.Gun) then self.Gun.HitsMOs = true self.Gun.GetsHitByMOs = true end if self.Gun2 ~= nil and MovableMan:ValidMO(self.Gun2) then self.Gun2.HitsMOs = true self.Gun2.GetsHitByMOs = true end end
RozaR, во-первых, при запуске КК с этим модом открой консоль и посмотри, не пишет ли ничего игра об этом скрипте. Если не пишет - то ошибки нет. Просто, с новым билдом какие-то функции перестали работать. Например, случайный выбор из определённой группы, игра выбирает вообще случайный объект из всего каталога.
Blump, ясно спасибо,а ещё вопрос там с у skavenger в 27 билде после покупки менялись головы (спрайты брались из папки с ронинами, в 30 билде когда сгрупировали ронинов и добавили хеви и снайпера спрайты головы становятся не на то место и выглядит так как будто очки натянуты на нос (видимо на несколько px головы изменились) изменяю вектор у (там ещё рядом ссылка на спрайт шлем) но ничего не происходит,никто не знает что именно за размещение гибов отвечает?