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

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


Моддинг - это сезонное. По крайней мере, у меня...
 
Форум » 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.