Приветствую Вас Гость | RSSГлавная | Нужен луа для актора! - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Нужен луа для актора!
Dart_VederДата: Понедельник, 18.07.2016, 15:51 | Сообщение # 1
Краб
Группа: Проверенные
Сообщений: 92
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: 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
Краб
Группа: Половина модератора
Сообщений: 1176
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Dart_Veder, ему наверное нужна цифра, а не сам объект self
 
BlumpДата: Среда, 20.07.2016, 15:14 | Сообщение # 3
Краб
Группа: Проверенные
Сообщений: 702
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Dart_Veder, там функция так задаётся Vector("такой-то"):RadRotate("угол"). В твоём случае "угол"= self:GetAimAngle(true).
А то не известно, откуда он угол берёт). Лучше, чтобы он угол оружия брал - угол головы не всегда совпадает с углом оружия. Хотя, выглядеть это будет не очень...
 
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Последние темы Читаемые темы Последние зарегистрированные пользователи
Флудильня! [gjrfytn]

Качалка не выходя из дома [tonyrose2003]

Хы! [tonyrose2003]

HELP [tonyrose2003]

The Sims 3 [greendayone82]

ЯДЕРНЫЙ ТРОН!!! [greendayone82]

Очень интересная игра [greendayone82]

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

Smarter AI Mod v1 [TerrariMan]

The Military Forces [npolickin]

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

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

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

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

[5]>[UNITED TERRAN FORCES] [227]

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

[7]>Russian Combat Small Arms {B24-B27} [206]

[8]>Cortex Command - Online Deathmatch [197]

[9]>Elzirs [194]

[10]>Techion Warpbot [172]

space-pay [09.10.2024|00:20]

tonyrose2003 [02.07.2024|06:03]

ktota12345678 [23.06.2024|20:14]

BlackShadow7755 [11.04.2024|22:28]

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]


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