Приветствую Вас Гость | 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
Коалиция
Группа: Проверенные
Сообщений: 777
Награды: 0  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Dart_Veder, там функция так задаётся Vector("такой-то"):RadRotate("угол"). В твоём случае "угол"= self:GetAimAngle(true).
А то не известно, откуда он угол берёт). Лучше, чтобы он угол оружия брал - угол головы не всегда совпадает с углом оружия. Хотя, выглядеть это будет не очень...


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

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

District 9 Multi-National United (MNU) [Xterian]

Песенки или музыка. [puksus]

Super Weapons of AcoACorp [puksus]

Black Ravens v.0.8.8 {B27} [degtyar02]

Outposts v.1.5.1 {B32} [Xterian]

OnLine Tech [alexgamer0092]

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

Command & Conquer [alexgamer0092]

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

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

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

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

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

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

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

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

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

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

serezhka8402 [16.11.2017|13:23]

fedorofflucka2017 [14.11.2017|18:43]

abramovfilip1989 [10.11.2017|11:18]

maksa1990ra [04.11.2017|15:55]

dimatchagin [01.11.2017|07:55]

doktorkto529 [31.10.2017|20:30]

lvivua [29.10.2017|12:30]

farsj10i2 [24.10.2017|14:44]

adrianfames [14.10.2017|08:24]

alexgamer0092 [07.10.2017|02:00]


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