Приветствую Вас Гость | RSSГлавная | как в луа снаряда получить указатель на выстрелевшее оружие? - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Cortex Command » Вопросы по моддингу » как в луа снаряда получить указатель на выстрелевшее оружие?
как в луа снаряда получить указатель на выстрелевшее оружие?
puksusДата: Вторник, 20.08.2013, 13:53 | Сообщение # 1
Пукс
Группа: Модераторы
Сообщений: 987
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
значит, при выстреле нужно "вернуть" выстреленный патрон в магазин. Для этого в функции create() патрона нужно получить указатель на выстрелевшее оружие и прибавить единицу к количеству патронов в магазине. Как это сделать?

https://vk.com/beezoya
 
Z-ТёмаДата: Вторник, 20.08.2013, 13:59 | Сообщение # 2
Краб
Группа: Проверенные
Сообщений: 36
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Сделай оружие однозарядным и быструю перезарядку.
 
puksusДата: Вторник, 20.08.2013, 14:21 | Сообщение # 3
Пукс
Группа: Модераторы
Сообщений: 987
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
нет. Мне нужно чтобы в магазине была инфа об оставшихся обоймах, а не патронов. Патроны реализую вручную. При выстреле количество патронов в магазине уменьшается на 1, мне нужно эту потерю восполнить. А во время перезарядки количество патронов в магазине(обойм) уменьшается на 1.

https://vk.com/beezoya
 
Z-ТёмаДата: Вторник, 20.08.2013, 14:50 | Сообщение # 4
Краб
Группа: Проверенные
Сообщений: 36
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Ты хочешь сделать чтобы патроны кончались ? ну типа изначально было (например) 5 обойм и при перезарядки они уменьшались ?
 
puksusДата: Вторник, 20.08.2013, 14:52 | Сообщение # 5
Пукс
Группа: Модераторы
Сообщений: 987
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
именно так

https://vk.com/beezoya
 
Z-ТёмаДата: Вторник, 20.08.2013, 14:57 | Сообщение # 6
Краб
Группа: Проверенные
Сообщений: 36
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Глянь этот мод там реализованы оружие с патронами
http://forums.datarealms.com/viewtopic.php?f=1&t=45250
 
puksusДата: Вторник, 20.08.2013, 15:15 | Сообщение # 7
Пукс
Группа: Модераторы
Сообщений: 987
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
ничего подобного я там не заметил

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


https://vk.com/beezoya
 
Mad_AlexДата: Среда, 21.08.2013, 03:26 | Сообщение # 8
Печальный Скнюссик
Группа: Главный Администратор
Сообщений: 1914
Награды: 38  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Классический способ: перебор всего оружия на карте, проверка по имени (соответствует ли название тому оружию, из которого должен вылететь патрон) и по расстоянию (найти ближайшее).

Если вы читаете этот текст, значит вы посетили кладбище моей юности.
Прощай, cortexcommandru.3dn.ru, ты для меня много значил когда-то.
 
puksusДата: Среда, 28.08.2013, 16:35 | Сообщение # 9
Пукс
Группа: Модераторы
Сообщений: 987
Награды: 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


https://vk.com/beezoya
 
Форум » Cortex Command » Вопросы по моддингу » как в луа снаряда получить указатель на выстрелевшее оружие?
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Последние темы Читаемые темы Последние зарегистрированные пользователи
Флудильня! [yksys147keti3626]

АнтиБК/Бойцовский клуб/Сombats [greendayone82]

The Sims 3 [greendayone82]

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

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

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

Русификатор Cortex Command Build 32 [puksus]

CC теперь в Open Source и B33 с мультиплеером !!! [gjrfytn]

игра обломи предыдущего [puksus]

Smarter AI Mod v1 [TerrariMan]

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

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

[3]>игра обломи предыдущего [360]

[4]>Фан-арт по Cortex Command [349]

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

[6]>Russian Combat Small Arms {B24-B27} [246]

[7]>[UNITED TERRAN FORCES] [240]

[8]>Elzirs [229]

[9]>Выход 24 билда. [214]

[10]>Cortex Command - Online Deathmatch [208]

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]

Silencer18 [24.07.2023|21:52]

yksys147keti3626 [30.01.2023|23:11]

islambabaev1100 [22.12.2022|01:14]

Ded_Babay [03.12.2022|07:55]


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