Приветствую Вас Гость | RSSГлавная | как в луа снаряда получить указатель на выстрелевшее оружие? - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
как в луа снаряда получить указатель на выстрелевшее оружие?
puksusДата: Вторник, 20.08.2013, 13:53 | Сообщение # 1
Краб
Группа: Модераторы
Сообщений: 776
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
значит, при выстреле нужно "вернуть" выстреленный патрон в магазин. Для этого в функции create() патрона нужно получить указатель на выстрелевшее оружие и прибавить единицу к количеству патронов в магазине. Как это сделать?
 
Z-ТёмаДата: Вторник, 20.08.2013, 13:59 | Сообщение # 2
Краб
Группа: Проверенные
Сообщений: 33
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Сделай оружие однозарядным и быструю перезарядку.
 
puksusДата: Вторник, 20.08.2013, 14:21 | Сообщение # 3
Краб
Группа: Модераторы
Сообщений: 776
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
нет. Мне нужно чтобы в магазине была инфа об оставшихся обоймах, а не патронов. Патроны реализую вручную. При выстреле количество патронов в магазине уменьшается на 1, мне нужно эту потерю восполнить. А во время перезарядки количество патронов в магазине(обойм) уменьшается на 1.
 
Z-ТёмаДата: Вторник, 20.08.2013, 14:50 | Сообщение # 4
Краб
Группа: Проверенные
Сообщений: 33
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Ты хочешь сделать чтобы патроны кончались ? ну типа изначально было (например) 5 обойм и при перезарядки они уменьшались ?
 
puksusДата: Вторник, 20.08.2013, 14:52 | Сообщение # 5
Краб
Группа: Модераторы
Сообщений: 776
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
именно так
 
Z-ТёмаДата: Вторник, 20.08.2013, 14:57 | Сообщение # 6
Краб
Группа: Проверенные
Сообщений: 33
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Глянь этот мод там реализованы оружие с патронами
http://forums.datarealms.com/viewtopic.php?f=1&t=45250
 
puksusДата: Вторник, 20.08.2013, 15:15 | Сообщение # 7
Краб
Группа: Модераторы
Сообщений: 776
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
ничего подобного я там не заметил

Добавлено (20.08.2013, 15:15)
---------------------------------------------
там даже луашки к оружиям не крепятся

 
Mad_AlexДата: Среда, 21.08.2013, 03:26 | Сообщение # 8
Манекен
Группа: Главный Администратор
Сообщений: 1665
Награды: 32  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Классический способ: перебор всего оружия на карте, проверка по имени (соответствует ли название тому оружию, из которого должен вылететь патрон) и по расстоянию (найти ближайшее).
 
puksusДата: Среда, 28.08.2013, 16:35 | Сообщение # 9
Краб
Группа: Модераторы
Сообщений: 776
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Я нашёл вот такой скрипт в 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

 
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Последние темы Читаемые темы Последние зарегистрированные пользователи
Флудильня! [gjrfytn]

Качалка не выходя из дома [tonyrose2003]

Хы! [tonyrose2003]

HELP [tonyrose2003]

The Sims 3 [greendayone82]

ЯДЕРНЫЙ ТРОН!!! [greendayone82]

Очень интересная игра [greendayone82]

Проблема с Loadouts [mekkievbk]

Smarter AI Mod v1 [TerrariMan]

The Military Forces [npolickin]

[1]>Флудильня! [4210]

[2]>Свалка арта. [774]

[3]>Фан-арт по Cortex Command [348]

[4]>Песенки или музыка. [250]

[5]>[UNITED TERRAN FORCES] [227]

[6]>Выход 24 билда. [207]

[7]>Russian Combat Small Arms {B24-B27} [206]

[8]>Cortex Command - Online Deathmatch [197]

[9]>Elzirs [194]

[10]>Techion Warpbot [172]

space-pay [09.10.2024|00:20]

tonyrose2003 [02.07.2024|06:03]

ktota12345678 [23.06.2024|20:14]

BlackShadow7755 [11.04.2024|22:28]

ghost4559 [28.03.2024|12:29]

rostislavpoarkov55 [21.03.2024|10:44]

dawidponomaryow [08.03.2024|21:16]

nekoplay18 [31.01.2024|20:10]

Provv [19.10.2023|20:58]

ranatolevnko200 [01.10.2023|17:56]


Вверх
Русский Фан Сайт Cortex Command © 2024.