Приветствую Вас Гость | RSSГлавная | как в луа снаряда получить указатель на выстрелевшее оружие? - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Cortex Command » Вопросы по моддингу » как в луа снаряда получить указатель на выстрелевшее оружие?
как в луа снаряда получить указатель на выстрелевшее оружие?
puksusДата: Вторник, 20.08.2013, 13:53 | Сообщение # 1
Пукс
Группа: Модераторы
Сообщений: 931
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
значит, при выстреле нужно "вернуть" выстреленный патрон в магазин. Для этого в функции create() патрона нужно получить указатель на выстрелевшее оружие и прибавить единицу к количеству патронов в магазине. Как это сделать?
 
Z-ТёмаДата: Вторник, 20.08.2013, 13:59 | Сообщение # 2
Краб
Группа: Проверенные
Сообщений: 36
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Сделай оружие однозарядным и быструю перезарядку.
 
puksusДата: Вторник, 20.08.2013, 14:21 | Сообщение # 3
Пукс
Группа: Модераторы
Сообщений: 931
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
нет. Мне нужно чтобы в магазине была инфа об оставшихся обоймах, а не патронов. Патроны реализую вручную. При выстреле количество патронов в магазине уменьшается на 1, мне нужно эту потерю восполнить. А во время перезарядки количество патронов в магазине(обойм) уменьшается на 1.
 
Z-ТёмаДата: Вторник, 20.08.2013, 14:50 | Сообщение # 4
Краб
Группа: Проверенные
Сообщений: 36
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Ты хочешь сделать чтобы патроны кончались ? ну типа изначально было (например) 5 обойм и при перезарядки они уменьшались ?
 
puksusДата: Вторник, 20.08.2013, 14:52 | Сообщение # 5
Пукс
Группа: Модераторы
Сообщений: 931
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
именно так
 
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
Пукс
Группа: Модераторы
Сообщений: 931
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
ничего подобного я там не заметил

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

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

С вопросами, в том числе касающимися моддинга, пишите мне в личные сообщения. Они должны дойти до меня, даже если я не часто захожу на сам сайт.
А вообще можете связаться со мной через VK: https://vk.com/dizzybat
Там я, возможно, отвечу чуть быстрее.
 
puksusДата: Среда, 28.08.2013, 16:35 | Сообщение # 9
Пукс
Группа: Модераторы
Сообщений: 931
Награды: 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

 
Форум » Cortex Command » Вопросы по моддингу » как в луа снаряда получить указатель на выстрелевшее оружие?
Страница 1 из 11
Поиск:
Статистика Форума
Последние темы Читаемые темы Последние зарегистрированные пользователи
Свалка идей. [troller]

Введение в моддинг. [gjrfytn]

ВНИМАНИЕ! Всем, кто первый раз на форуме, читать! [puksus]

Общие вопросы по моддингу в Lua [gjrfytn]

Mercury Incorporated [Ok23]

Как поставить пуксусу минус в репу [puksus]

Выход 24 билда. [puksus]

Мало пользователей [Xterian]

Флудильня! [puksus]

Build 32 [tabsthesbat]

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

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

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

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

[5]>Black Ravens v.0.8.8 {B27} [283]

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

[7]>[UNITED TERRAN FORCES] [274]

[8]>Улучшения форума [270]

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

[10]>Russian Combat Small Arms {B24-B27} [263]

Sanidze [20.08.2017|11:14]

kapustyansahsa [24.07.2017|16:08]

tema4ka123 [24.07.2017|15:49]

troller [21.07.2017|12:30]

watttt311 [17.07.2017|21:06]

popsalida [13.07.2017|18:12]

mihaildmitriev2016 [12.07.2017|05:58]

zzzcc2013 [07.07.2017|16:53]

chiefaslanoff2018 [03.07.2017|13:27]

eropzez800 [03.07.2017|13:23]


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