Я нашёл вот такой скрипт в Shadow Echelon
тут не всё понятно
self.found = 40
for i = 1,MovableMan:GetMOIDCount()-1 do
self.finder = MovableMan:GetMOFromID(i)
if self.finder.PresetName == self.gunname then
if self.found > (self.finder.Pos - self.Pos).Magnitude then
self.mag = ToAttachable(MovableMan:GetMOFromID(self.finder.ID))
self.z = ToActor(MovableMan:GetMOFromID(ToAttachable(self.finder).RootID))
self.found = (self.finder.Pos - self.Pos).Magnitude
print(self.found)
end
end
end
что такое self.found?
if self.found > (self.finder.Pos - self.Pos).Magnitude вообще непонятно что, у разности позиций вдруг появилось свойство...
self.mag = ToAttachable дык магазин - вообще не аттач, даже если бы был, кто сказал что он единственный аттач в оружии?
self.found = (self.finder.Pos - self.Pos).Magnitude и снова эта фигняДобавлено (21.08.2013, 13:15)
---------------------------------------------
Цитата (puksus)
if self.found > (self.finder.Pos - self.Pos).Magnitude вообще непонятно что, у разности позиций вдруг появилось свойство...
дошло, вызывается конструктор.
Но всё равно, что такое magnitude? непонятно, переводится как "величина". Как у позиции может быть какаято величина?Добавлено (28.08.2013, 00:11)
---------------------------------------------
написал такой код и прилепил к патрону:
function Create(self)
self.Name = "Minibull"
self.MinDist = 99999999
self.CurrDist = 0
self.ClosestObject = 0
print("язь")
for i = 0, MovableMan:GetMOIDCount()-1 do
print(i)
self.Object = MovableMan:GetMOFromID(i)
self.CurrDist = SceneMan:shortestDistance(self.Object.Pos, self.Pos, true).Magnitude
if self.CurrDist < Self.MinDist and self.finder.PresetName == self.Name and self.object:IsDevice() then
self.ClosestObject = self.Object
self.MinDist = self.CurrDist
end
end
self.PGun = ToAttachable(MovableMan:GetMOFromID(self.ClosestObject.ID))
--if self.PGun.RootID == self.PGun.ID then
-- self.self.PGunParent = self.self.PGun
--else
-- self.self.PGunParent = ToActor(MovableMan:GetMOFromID(self.ClosestObject.ID))
--end
self.PGun.Magazine.RoundCount = self.PGun.Magazine.RoundCount + 1
end
ни язя ни кучу i в консоль не вывело, пробовал точки_с_запятой расставить - не помогло
кстати, можно ли написать self.PGun.Magazine.RoundCount += 1 вместо той абракадабры?
Добавлено (28.08.2013, 15:27)
---------------------------------------------
так, уже лучше, как прилепил к мопикселю вместо раунда, заработало(с ошибками). Пойду исправлять дальше.
Добавлено (28.08.2013, 16:35)
---------------------------------------------
теперь ругается на строчку self.PGun.Magazine.RoundCount = self.PGun.Magazine.RoundCount + 1, никак не пойму...
function Create(self)
self.Name = "Minibull"
self.MinDist = 999999
self.CurrDist = 9999999
self.ClosestObject = 0
self.number = 0
for i = 1, MovableMan:GetMOIDCount()-1 do
self.Object = MovableMan:GetMOFromID(i)
self.DeltaPos = self.Object.Pos - self.Pos
self.CurrDist = self.DeltaPos.Magnitude
if self.CurrDist < self.MinDist and self.Object.PresetName == self.Name then --and self.object:IsDevice() then
self.ClosestObject = self.Object
self.MinDist = self.CurrDist
self.number = i
end
end
self.PGun = ToAttachable(MovableMan:GetMOFromID(self.ClosestObject.ID))
print("found: "..self.number)
print("name: "..self.Object.PresetName)
--if self.PGun.RootID == self.PGun.ID then
-- self.self.PGunParent = self.self.PGun
--else
-- self.self.PGunParent = ToActor(MovableMan:GetMOFromID(self.ClosestObject.ID))
--end
self.PGun.Magazine.RoundCount = self.PGun.Magazine.RoundCount + 1
end