Приветствую Вас Гость | RSSГлавная | Нужен луа для актора! - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Cortex Command » Вопросы по моддингу » Нужен луа для актора! (Луа!)
Нужен луа для актора!
Dart_VederДата: Понедельник, 18.07.2016, 15:51 | Сообщение # 1
Зомби
Группа: Проверенные
Сообщений: 112
Награды: 2  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Мне бы луа для актора, суть такова:
Нужно что бы от актора был лазерный прицел, как у нановинтовки техионов, куда смотришь, там и прицел, желательно из головы а не из тела.

Экспериментальный код:
Код
dofile("Base.rte/Constants.lua")
require("Actors/AI/NativeHumanAI")
function Create(self)
    self.AI = NativeHumanAI:Create(self);
    self.laserTimer = Timer();
    self.laserLength = 800;
    self.laserSpaceCheck = 5; -- For optimization purposes. Smaller value means a more accurate but slower check.
    self.laserDensity = math.ceil(self.laserLength/self.laserSpaceCheck);
end
function Update(self)
    if self.laserTimer:IsPastSimMS(50) then
  self.laserTimer:Reset();
  if self:GetController():IsState(Controller.AIM_SHARP) and self:IsPlayerControlled() == true then
   local roughLandPos = self.EyePos + Vector(self.laserLength,0):RadRotate(self):GetAimAngle(true);
   for i = 0, self.laserDensity do
    local checkPos = self.EyePos + Vector(self.laserSpaceCheck*i,0):GetAimAngle(true);
    if SceneMan.SceneWrapsX == true then
     if checkPos.X > SceneMan.SceneWidth then
      checkPos = Vector(checkPos.X - SceneMan.SceneWidth,checkPos.Y);
     elseif checkPos.X < 0 then
      checkPos = Vector(SceneMan.SceneWidth + checkPos.X,checkPos.Y);
     end
    end
    local terrCheck = SceneMan:GetTerrMatter(checkPos.X,checkPos.Y);
    if terrCheck == 0 then
     local moCheck = SceneMan:GetMOIDPixel(checkPos.X,checkPos.Y);
     if moCheck ~= rte.NoMOID and MovableMan:GetMOFromID(moCheck).Team ~= self.Team then
      roughLandPos = checkPos;
      break;
     end
    else
     roughLandPos = checkPos;
     break;
    end
   end
   local checkRoughLandPos = roughLandPos + Vector(self.laserSpaceCheck*-1,0):RadRotate(self):GetAimAngle(true);
   for i = 0, self.laserSpaceCheck do
    local checkPos = checkRoughLandPos + Vector(i,0):GetAimAngle(true);
    if SceneMan.SceneWrapsX == true then
     if checkPos.X > SceneMan.SceneWidth then
      checkPos = Vector(checkPos.X - SceneMan.SceneWidth,checkPos.Y);
     elseif checkPos.X < 0 then
      checkPos = Vector(SceneMan.SceneWidth + checkPos.X,checkPos.Y);
     end
    end
    local terrCheck = SceneMan:GetTerrMatter(checkPos.X,checkPos.Y);
    if terrCheck == 0 then
     local moCheck = SceneMan:GetMOIDPixel(checkPos.X,checkPos.Y);
     if moCheck ~= 255 then
      break;
     end
    else
     break;
    end
    roughLandPos = checkPos;
   end
   local laserPar = CreateMOPixel("Nanorifle Laser Sight Glow");
   laserPar.Pos = roughLandPos;
   MovableMan:AddParticle(laserPar);
  end
    end
end
function UpdateAI(self)
    self.AI:Update(self)
end


Не работает. В консоле ошибка:
ERROR: no overload of 'Vector:RadRotate' matched the arguments (Vector, AHuman)
candidates are:
Vector:RadRotate(custom [float])

Мне это не о чем не говорит.


Работаю на модокомбинате.
Mercury Incorporated - Complete!
Void Carabins Update - Complete!
Duper Team Update - 7%

У кого нибудь есть лишний Cortex в Steam?


Сообщение отредактировал Dart_Veder - Понедельник, 18.07.2016, 16:24
 
SfabrikanДата: Вторник, 19.07.2016, 04:47 | Сообщение # 2
Швабри
Группа: Половина модератора
Сообщений: 1470
Награды: 1  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Dart_Veder, ему наверное нужна цифра, а не сам объект self

 
BlumpДата: Среда, 20.07.2016, 15:14 | Сообщение # 3
Коалиция
Группа: Проверенные
Сообщений: 767
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Dart_Veder, там функция так задаётся Vector("такой-то"):RadRotate("угол"). В твоём случае "угол"= self:GetAimAngle(true).
А то не известно, откуда он угол берёт). Лучше, чтобы он угол оружия брал - угол головы не всегда совпадает с углом оружия. Хотя, выглядеть это будет не очень...


Моддинг - это сезонное. По крайней мере, у меня...
 
Форум » Cortex Command » Вопросы по моддингу » Нужен луа для актора! (Луа!)
Страница 1 из 11
Поиск:
Статистика Форума
Последние темы Читаемые темы Последние зарегистрированные пользователи
Компания ронинов Escape - v.1.2.3 {B32} [Xterian]

AK 47 | Redline [Xterian]

Imperial Lost [Xterian]

Комиксы по моду Imperial Lost [Xterian]

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

23 Билд [Xterian]

Coalition Heavy Mount Turret [Xterian]

BAW [Xterian]

Подразделение Анти Зомби [Xterian]

Happy New Year [Xterian]

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

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

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

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

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

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

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

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

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

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

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]

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]


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