Приветствую Вас Гость | 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
Поиск:
Статистика Форума
Последние темы Читаемые темы Последние зарегистрированные пользователи
Black Ravens v.0.8.8 {B27} [Xterian]

OnLine Tech [alexgamer0092]

Новые Бункеры [Xterian]

Command & Conquer [alexgamer0092]

Little Armory [gjrfytn]

Super Weapons of AcoACorp [Blump]

AcoA [Blump]

Techion Warpbot [alexgamer0092]

AK 47 | Redline [alexgamer0092]

Corporation of Improbable Researches v0.7.5 [alexgamer0092]

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

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

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

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

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

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

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

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

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

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

adrianfames [14.10.2017|08:24]

alexgamer0092 [07.10.2017|02:00]

ppsermolaev [30.09.2017|22:25]

kpalrpoclas [29.09.2017|17:19]

danildv0 [25.09.2017|13:01]

lorderplay [06.09.2017|15:21]

gergeswael855 [01.09.2017|19:40]

leva_soot [25.08.2017|11:46]

Sanidze [20.08.2017|11:14]

kapustyansahsa [24.07.2017|16:08]


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