Приветствую Вас Гость | RSSГлавная | Нужен луа для актора! - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » 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
Швабри
Группа: Половина модератора
Сообщений: 1489
Награды: 1  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Dart_Veder, ему наверное нужна цифра, а не сам объект self

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


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

Phoenix VTOL fighter + AA armor [12bogdan08]

The Military Forces [npolickin]

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

Russian Combat Small Arms {B24-B27} [sarnogowitsin]

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

Warhammer 40K [vladossX]

UNSC [vladossX]

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

TF Grappling Gun [Xt3Ri4N]

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

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

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

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

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

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

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

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

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

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

mrmaksimka00 [01.05.2019|13:24]

okeyletsgo357 [08.03.2019|23:57]

ekovaasi [08.03.2019|12:30]

Vomik92 [04.03.2019|22:09]

npolickin [06.02.2019|05:24]

sarnogowitsin [10.01.2019|15:18]

vladossX [04.01.2019|12:29]

egor020620062 [01.01.2019|11:26]

orlovv200443 [28.12.2018|19:44]

maximdude [22.12.2018|14:29]


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