JS-скрипт [Part 2] All about Entity class in onetap crack (for newbies)

Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,747
Реакции[?]
1,465
Поинты[?]
2K
Для того, чтобы понять что здесь происходит нужно знать хотя бы основы языка JavaScript (learn.javascript.ru - хороший учебник для новичков, учился там же) и английский язык на уровне средней школы.
В этом посте я расскажу подробно о Entity классе в API вантапа. В Entity классе всего 26 методов (Мне пезда :roflanPominki: ), о них мы поговорим ниже. Сначала разберем простые методы, а под конец более сложные. И так, поехали...

Начнем мы с самого используемого метода в классе:
Entity.GetName(entity_index) - Метод позволяет нам узнать имя любого доступного объекта, будь то игрок или, например, оружие. Вернет нам строку с именем объекта.
JavaScript:
const localPlayer = Entity.GetLocalPlayer() //Получаем индекс локального игрока (о нем поговорим ниже) и записываем его в переменную
var localPlayerName = Entity.GetName(localPlayer) //Получаем имя локального игрока и заносим его в переменную
Cheat.Print(localPlayerName + '\n')
Этот код выведет нам имя локального игрока в консоль

Entity.GetLocalPlayer() - метод, позволяющий получить локального игрока на сервере. Возвращает индекс локального игрока.
JavaScript:
var p = Entity.GetLocalPlayer() //Записываем индекс локального игрока в переменную

Cheat.Print('Local player index: ' + p) //Выводим индекс в консоль
Entity.GetPlayers() - метод, позволяющий получить всех игроков на сервере (в том числе и ботов). Возвращает нам массив со всеми индексами игроков.
JavaScript:
var players = Entity.GetPlayers() //Записываем всех игроков в переменную

function a() { //Инициализируем фунцию
    for (var i in players) { //Создаем цикл в котором перебираем каждый элемент в массиве players
        Cheat.Print(Entity.GetName(players[i]) + '\n') //Получаем имя каждого игрока и выводим его в консоль
    }
}

Cheat.RegisterCallback('CreateMove', 'a') //Создаем callback для функции
На локальном сервере находятся три игрока: я, и два бота. Этот код выведет такой результат:
sv_cheats 1 (Я)
Brian (Первый бот)
Jim (Второй бот)


Entity.GetEnemies() - метод, позволяющий получить всех врагов на сервере. Возвращает нам массив со всеми индексами врагов.
JavaScript:
var enemies = Entity.GetEnemies() //Записываем всех врагов в переменную

function a() {  //Инициализируем функцию
    for (var i in enemies) { //Создаем цикл, в котором перебираем всех врагов
        Cheat.Print(Entity.GetName(enemies[i]) + '\n') //Получаем имена всех врагов и выводим их в консоль
    }
}

Cheat.RegisterCallback('CreateMove', 'a') //Создаем callback для функции
На локальном сервере при тех же ботах в противоположной команде скрипт выводит следующее:
Jim (Первый бот)
Brian (Второй бот)


Для следующего метода добавим пару ботов в свою команду.
Entity.GetTeammates() - метод, позволяющий получить всех союзников на сервере. Возвращает нам массив со всеми индексами союзников.
JavaScript:
var teammates = Entity.GetTeammates() //Записываем всех союзников в переменную

function a() {  //Инициализируем функцию
    for (var i in teammates) { //Создаем цикл, в котором перебираем всех союзников
        Cheat.Print(Entity.GetName(teammates[i]) + '\n') //Получаем имена всех союзников и выводим их в консоль
    }
}

Cheat.RegisterCallback('CreateMove', 'a') //Создаем callback для функции
На локальном сервере при еще двух ботах выводит следующее:
sv_cheats 1 (Я)
Ivan (Первый бот)
Ted (Второй бот)


Entity.GetWeapon(entity_index) - метод, позволяющий узнать индекс оружия игрока. Принимает в себя один аргумент - число, являющееся индексом игрока.
Вернет индекс активного оружия.
JavaScript:
var localPlayer = Entity.GetLocalPlayer() //Получаем индекс локального игрока и записываем его в переменную
var localPlayerWeaponName = Entity.GetName(Entity.GetWeapon(Entity.GetLocalPlayer())) //Получаем имя активного оружия у локального игрока

if (localPlayerWeaponName == 'ssg 08') { //Проверяем, держит ли он в руках скаут
    Cheat.Print('Local player weapon is scout!') //Выводим сообщение в консоль о том, что его оружие сейчас - скаут
} else {
    Cheat.Print('Local player weapon is not scout!') //Выводим сообщение в консоль от том, что его оружие сейчас - не скаут.
}
Код выведет в консоль "Local player weapon is scout", если оружие локального игрока будет скаутом, иначе код выведет "Local player weapon is not scout"

Entity.GetWeapons(entityt_index) - метод, позволяющий узнать ВСЕ индексы оружий игрока. Принимает в себя один аргумент - число, являющееся индексом игрока. Вернет массив со всеми оружиями игрока.
JavaScript:
var localPlayer = Entity.GetLocalPlayer() //Занесем локального игрока в переменную
var localPlayerWeapons = Entity.GetWeapons(localPlayer) //Занесем все оружия локального игрока в переменную

for (var i in localPlayerWeapons) { //Переберем все оружия через цикл
    weaponsName = Entity.GetName(localPlayerWeapons[i]) //Получм название всех оружий
    Cheat.Print(weaponsName + '\n') //Выведем список оружий в консоль
}
Этот код вернет все оружия в инвентаре игрока, от ножа до главного оружия.

Entity.GetEntities() - метод, позволяющий получить все индексы объектов. Возвращает нам массив со всеми индексами объектов на карте.
JavaScript:
var entities = Entity.GetEntities() //Получаем все объекты и записываем их в переменную
for (i in entities) { //Перебираем массив с объектами в цикле
    entitiesName = Entity.GetName(entities[i]) //Заносим в переменную имена всех объектов
    Cheat.Print("Entity class ID: " + entitiesName + "\n") //Выводим имена объекто в консоль
}
Этот код выведет например:
Entity class ID: ssg 08
Entity class ID: 304
Entity class ID: negev
Entity class ID: 312
Entity class ID: zeus x27
Entity class ID: 325
Entity class ID: five seven
Entity class ID: g3sg1
Entity class ID: high explosive grenade
Entity class ID: incendiary grenade
Entity class ID: aug
Entity class ID: 352
Entity class ID: sg 553
Entity class ID: 358
Entity class ID: negev
Entity class ID: 360
Entity class ID: m9 bayonet


Entity.IsEnemy(entity_index) - метод, позволяющий узнать, является ли врагом указанный нам индекс. Принимает в себя один аргумент - число, являющееся индексом. Вернет true если указанный индекс является врагом, иначе false.
JavaScript:
var a = Entity.IsEnemy(Entity.GetLocalPlayer()) //Проверяем, является ли врагом индекс 1 и записываем это значение в переменную

Cheat.Print(a.toString()) //Выводим в консоль состояние индекса
Приведем маленький пример:
JavaScript:
var players = Entity.GetPlayers() //Получаем все индексы игроков, находящихся на сервере

for (var i in players) { //Создадим цикл который переберет все индексы игроков.
    if (Entity.IsEnemy(players[i])) { //Проверим, имеются ли среди игроков враги
        enemiesName = Entity.GetName(players[i]) //Получаем имена всех врагов

        Cheat.Print('Enemies has ' + enemiesName + ' nickname and ' + players[i] + ' indexes' + '\n') //Выводим в консоль имя и индекс каждого врага.
    }
}
Entity.IsTeammate(entity_index) - метод, позволяющий узнать, является ли союзником указанный нам индекс. Принимает в себя один аргумент - число, являющееся индексом. Вернет true если указанный индекс является союзником, иначе false.

JavaScript:
var a = Entity.IsTeammate(Entity.GetLocalPlayer()) //Проверяем, является ли врагом индекс 1 и записываем это значение в переменную

Cheat.Print(a.toString() )//Выводим в консоль состояние индекса
Приведем маленький пример:
JavaScript:
var players = Entity.GetPlayers() //Получаем все индексы игроков, находящихся на сервере

for (var i in players) { //Создадим цикл который переберет все индексы игроков.
    if (Entity.IsTeammate(players[i])) { //Проверим, имеются ли среди игроков союзники
        teammateName = Entity.GetName(players[i]) //Получаем имена всех союзников

        Cheat.Print('Teammate has ' + teammateName + ' nickname and ' + players[i] + ' indexes' + '\n') //Выводим в консоль имя и индекс каждого союзника.
    }
}
Entity.IsBot(entity_index) - метод, позволяющий узнать, является ли ботом указанный нам индекс. Принимает в себя один аргумент - число, являющееся индексом. Вернет true если указанный индекс является ботом, иначе false.
JavaScript:
const a = Entity.IsBot(Entity.GetLocalPlayer()) //Проверяем, является ли врагом индекс 1 и записываем это значение в переменную

Cheat.Print(a.toString()) //Выводим в консоль состояние индекса
Приведем аналогичный пример
JavaScript:
var players = Entity.GetPlayers() //Получаем все индексы игроков, находящихся на сервере

for (var i in players) { //Создадим цикл который переберет все индексы игроков.
    if (Entity.IsBot(players[i])) { //Проверим, имеются ли среди игроков боты
       botName = Entity.GetName(players[i]) //Получаем имена всех ботов

        Cheat.Print('Bot has ' + botName + ' nickname and ' + players[i] + ' indexes' + '\n') //Выводим в консоль имя и индекс каждого бота.

    }
}
Entity.IsAlive(entity_index) - метод, позволяющий узнать, жив ли указанный нам индекс. Принимает в себя один аргумент - число, являющееся индексом. Вернет true если указанный индекс жив, иначе false.
JavaScript:
var a = Entity.IsAlive(Entity.GetLocalPlayer()) //Проверяем, является ли врагом индекс 1 и записываем это значение в переменную

Cheat.Print(a.toString()) //Выводим в консоль состояние индекса
Entity.IsValid(entity_index) - метод, позволяющий узнать, является ли действительным указанный нам индекс. Принимает в себя один аргумент - число, являющееся индексом. Вернет true если указанный индекс является действительным, иначе false.
JavaScript:
var a = Entity.IsValid(Entity.GetLocalPlayer()) //Проверяем, является ли врагом индекс 1 и записываем это значение в переменную

Cheat.Print(a.toString()) //Выводим в консоль состояние индекса
Entity.IsDormant(entity_index) - метод, позволяющий узнать, находится ли объект (в данном случе игрок) в дорманте. Принимает в себя один аргумент - число, являющееся индексом. Вернет true если игрок в дорманте, иначе false.
JavaScript:
var enemies = Entity.GetEnemies() //Получаем всех врагов и записываем это в переменную

for (var i in enemies) { //Переберем врагов в цикле
    if (Entity.IsDormant(enemies[i])) { //Проверим, какие враги находятся в дорманте
        dormantPlayersName = Entity.GetName(enemies[i]) //Получим имя игроков в дорманте
        Cheat.Print('Dormant player is ' + dormantPlayersName) //Выведем в консоль имена врагов, находящихся в дорманте
    }
}
Этот код выведет примерно такое:
Dormant player is John
Dormant player is Jim.


Entity.GetProp(entity_index, table_name, prop_name) - метод, позволяющий получить характеристику того или иного объекта. Принимает в себя 3 аргумента:
Первый - индекс объекта, второй - название таблицы, третий - название самой характеристики (Всё перечисленное можно найти тут -https://pastebin.com/raw/Rb2TYAcg).
JavaScript:
function a() { //Инициализируем функцию
    localPlayer = Entity.GetLocalPlayer() // Получаем локального игрока и записываем его в переменную
    inAir = Entity.GetProp(localPlayer, 'CBasePlayer', 'm_hGroundEntity' /*Эта характеристика отвечает за положение игрока*/) //Получаем положение игрока
    if (inAir) { //Проверяем, находятся ли в воздухе локальный игрок
        Cheat.Print('Local player is flying!' + '\n') //Выводим текст, обозначающий о полете, в консоль
    } else {
        Cheat.Print('Local player is standing!' + '\n') //Выводим текст, обозначающий о нахождении на земле, в консоль
    }
}

Cheat.RegisterCallback('CreateMove', 'a') //Создаем callback для функции
Если локальный игрок будет в воздухе - в консоль выведет Local player is flying!
Если локальный игрок будет на земле - в консоль выведет Local player is standing!


Entity.GetGamerulesProxy() - вспомогательный метод для Entity.GetProp(entity_index, table_name, prop_name), позволяющий определить Gamerules из таблицы
CCSGameRulesProxy.
JavaScript:
var gamerules = Entity.GetGameRulesProxy() //Записываем вспомогательный метод в перменную
valve_server = Entity.GetProp(gamerules, 'CCSGameRulesProxy', 'm_bIsValveDS') //Делаем проверку на valve сервер
server = valve_server ? true : false //Делаем провенку на valve сервер #2
Cheat.Print('This server is valve - ' + server) //Выводим в консоль результат
Этот код выведет в консоль This server is valve -true, если это сервер valve, иначе выведет This server is valve - false

Entity.SetProp(entity_index, table_name, prop_name, value) - метод, позволяющий выставлять характеристики объекту. Прошу заметить, не все характеристики для объекта можно выставить этим методом! Принимает в себя 4 аргумента:
Первый - индекс объекта, второй - название таблицы, третий - название самой характеристики, четвертый - новое значение характеристики.
(Ничего не буду сам писать, просто потому что не нашел примеров, поэтому возьмем пример из самой документации :))) )
JavaScript:
function ragdollForce( )
{
    framestage = Cheat.FrameStage();
    if (framestage == 3)
    {
        entities = Entity.GetEntities();
        for (i = 0; i < entities.length; i++)
        {
            classID = Entity.GetClassID(entities[i]);
            if (classID == 42)
            {
                dir = Entity.GetProp(entities[i], "CCSRagdoll", "m_vecRagdollVelocity"); //Получаем значение m_vecRagdollVelocity
                dir[0] = dir[0] * 100; //Умножаем X координату на 100
                dir[1] = dir[1] * 100; //Умножаем Y координату на 100
                dir[2] = dir[2] * 100; //Умножаем Z координату на 100
                dir1 = Entity.GetProp(entities[i], "CBaseAnimating", "m_vecForce"); //Получаем значение m_vecForce
                dir1[0] = dir1[0] * 100; //Умножаем X координату на 100
                dir1[1] = dir1[1] * 100; //Умножаем Y координату на 100
                dir1[2] = dir1[2] * 100; //Умножаем Z координату на 100
                Entity.SetProp(entities[i], "CCSRagdoll", "m_vecRagdollVelocity", dir); //Выставим для m_vecRagdollVelocity обновленное значение dir
                Entity.SetProp(entities[i], "CBaseAnimating", "m_vecForce", dir1); //Выставим для m_vecForce обновленное значение dir1
            }
        }
    }
}

Cheat.RegisterCallback("FrameStageNotify", "ragdollForce")
Entity.GetClassName(entity_index) - метод, позволяющий узнать имя класса к которому относится объект. Принимает в себя один аргумент - число, являющееся индексом. Вернет название класса к которому относится объект.
JavaScript:
var entities = Entity.GetEntities() //Получаем все объекты и заносим их в переменную

for (var i in entities) { //Перебираем их в цикле
    var className = Entity.GetClassName( entities[i] ) //Получаем имена класса каждого объекта
    Cheat.Print(className.toString() + '\n') //Выводим в консоль названия классов.
}
Этот код выведет примерно такое:
CWeaponNegev
CBaseWeaponWorldModel
CWeaponTaser
CBaseWeaponWorldModel
CWeaponFiveSeven
CWeaponG3SG1
CHEGrenade


Entity.GetEntityFromUserID(user_id) - метод, позволяющий получить объект из его ID. Принимает в себя один аргумент - число, являющееся id. Вернет объект (Игрока).
JavaScript:
function on_player_death() {
    attacker = Event.GetInt("attacker"); //Получаем атакующего
    attacker_index = Entity.GetEntityFromUserID(attacker); //получем индекс атакующего
    victim = Event.GetInt("userid"); //Получаем пострадавшего
    victim_index = Entity.GetEntityFromUserID(victim); //Получаем индекс постадавшего
    attacker_name = Entity.GetName(attacker_index); //Получем имя атакующего
    victim_name = Entity.GetName(victim_index); //Получаем имя постадавшего
    Cheat.Print(attacker_name + " just killed " + victim_name + "\n"); //Выводим в консоль
}

Cheat.RegisterCallback("player_death", "on_player_death");
Код выведет примерно такое:
sv_cheats 1 just killed John

Entity.GetClassID(entity_index) - метод, позволяющий узнать ID класса из индекса объекта. Принимает в себя один аргумент - число, являющееся индексом объекта.
JavaScript:
var entities = Entity.GetEntities(); //Получаем все объекты
for (var i in entities) { //Перебираем все объекты с помощью цикла
    classID = Entity.GetClassID(entities[i]); //Получаем их ID класса
    Cheat.Print("Entity class ID: " + classID + "\n"); //Выводим в консоль их ID класса.
}
Код выведет примерно такое:
Entity class ID: 23
Entity class ID: 107
Entity class ID: 23
Entity class ID: 245
Entity class ID: 23
Entity class ID: 23
Entity class ID: 107


Entity.GetEntityByClassID(class_id) - метод, позволяющий нам узнать объект по его ID класса. (Все ID можно найти тут -
Пожалуйста, авторизуйтесь для просмотра ссылки.
). Принимает в себя один аргумент - число, являющееся ID объекта. Вернет индекс объекта.
JavaScript:
entities = Entity.GetEntities();
cEnt = Entity.GetEntitiesByClassID(11);
for (i in cEnt)
{
    cName = Entity.GetName(cEnt[i]);
    Cheat.Print("Entity class: " + cName + "\n");
}
Этот код выведет все объекты с ID 11, т.е к примеру:
Entity class: 229
Entity class: 250
Entity class: 251
Entity class: 272
Entity class: 279
Entity class: 281


Entity.GetEyePostition(entity_index) - метод, позволяющий нам узнать viewangles игрока. Принимает в себя один аргумент - число, являющееся индексом игрока. Вернет массив из X Y Z координат.
JavaScript:
var eyePos = Entity.GetEyePosition(Entity.GetLocalPlayer()) //Получаем viewangles локального игрока
Cheat.Print('Local player eye position X: ' + eyePos[0] + ', Y: ' + eyePos[1] + ', Z: ' + eyePos[2]) //Выводим в консоль эти значения
Код выведет примерно такое:
Local player eye position X: -14.180006980895996, Y: -748.324462890625, Z: -319.96875

Entity.GetRenderOrigin(entity_index) - метод, позволяющий нам узнать позицию объекта. Принимает в себя один аргумент - число, являющееся индексом объекта. Вернет массив из X Y Z координат.
JavaScript:
var pos = Entity.GetRenderOrigin(Entity.GetLocalPlayer()) //Получаем позицию локального игрока
Cheat.Print('Local player pos X: ' + pos[0] + ', Y: ' + pos[1] + ', Y: ' + pos[2]) //Выводим эту позицию в консоль
Код выведет примерно такое:
Local player pos X: -14.189970970153809, Y: -748.3322143554688, Y: -383.96875

Entity.GetHitboxPosition(entity_index, hitbox_index) - метод, позволяющий получить позицию хитбокса определенного игрока. Принимает в себя два аргумента - число, являющееся индексом игрока и индекс хитбокса (тоже число)
HITBOX_HEAD = 0
HITBOX_NECK = 1
HITBOX_PELVIS = 2
HITBOX_BODY = 3
HITBOX_THORAX = 4
HITBOX_CHEST = 5
HITBOX_UPPER_CHEST = 6
HITBOX_LEFT_THIGH = 7
HITBOX_RIGHT_THIGH = 8
HITBOX_LEFT_CALF = 9
HITBOX_RIGHT_CALF = 10
HITBOX_LEFT_FOOT = 11
HITBOX_RIGHT_FOOT = 12
HITBOX_LEFT_HAND = 13
HITBOX_RIGHT_HAND = 14
HITBOX_LEFT_UPPER_ARM = 15
HITBOX_LEFT_FOREARM = 16
HITBOX_RIGHT_UPPER_ARM = 17
HITBOX_RIGHT_FOREARM = 18
JavaScript:
var localPlayer = Entity.GetLocalPlayer()
var headPosition = Entity.GetHitboxPosition(localPlayer, 0)
Cheat.Print('Local player head position X:' + headPosition[0] + ', Y:' + headPosition[1] + ', Z:' + headPosition[2])
Этот код выведет примерно такое:
Local player head position X:-145.43527221679688, Y:-651.7484130859375, Z:-326.55584716796875

Entity.GetRenderBox(entity_index) - метод, позволяющий определить минимальный X и Y, а так же максимальный X и Y бокса. Принимает в себя один аргумент - индекс объекта.
JavaScript:
var localPlayer = Entity.GetLocalPlayer()
var box =  Entity.GetRenderBox(localPlayer)

Cheat.Print('Local player MIN X pos:' + box[0], ', MIN Y pos:' + box[1] + ', MAX X pos:' + box[2] + ', MAX Y pos:' + box[3])
Код выведет в консоль примерно следующее:
Local player MIN X pos:1, MIN Y pos:871, MAX X pos:494, MAX Y pos:1048

КАРОЧЕ!!!! На этом с классом Entity покончено. Очень прошу указать на ошибки, а так же на неправильное описание той или иной функции. Буду очень благодарен.

Meme:


Предыдущая часть: https://yougame.biz/threads/206527/
 
Последнее редактирование:
Эксперт
Статус
Оффлайн
Регистрация
10 Фев 2021
Сообщения
1,740
Реакции[?]
559
Поинты[?]
2K
Для того, чтобы понять что здесь происходит нужно знать хотя бы основы языка JavaScript (learn.javascript.ru - хороший учебник для новичков, учился там же) и английский язык на уровне средней школы.
В этом посте я расскажу подробно о Entity классе в API вантапа. В Entity классе всего 26 методов (Мне пезда :roflanPominki: ), о них мы поговорим ниже. Сначала разберем простые методы, а под конец более сложные. И так, поехали...

Начнем мы с самого используемого метода в классе:
Entity.GetName(entity_index) - Метод позволяет нам узнать имя любого доступного объекта, будь то игрок или, например, оружие. Вернет нам строку с именем объекта.
JavaScript:
const localPlayer = Entity.GetLocalPlayer() //Получаем индекс локального игрока (о нем поговорим ниже) и записываем его в переменную
var localPlayerName = Entity.GetName(localPlayer) //Получаем имя локального игрока и заносим его в переменную
Cheat.Print(localPlayerName + '\n')
Этот код выведет нам имя локального игрока в консоль

Entity.GetLocalPlayer() - метод, позволяющий получить локального игрока на сервере. Возвращает индекс локального игрока.
JavaScript:
var p = Entity.GetLocalPlayer() //Записываем индекс локального игрока в переменную

Cheat.Print('Local player index: ' + p) //Выводим индекс в консоль
Entity.GetPlayers() - метод, позволяющий получить всех игроков на сервере (в том числе и ботов). Возвращает нам массив со всеми индексами игроков.
JavaScript:
var players = Entity.GetPlayers() //Записываем всех игроков в переменную

function a() { //Инициализируем фунцию
    for (var i in players) { //Создаем цикл в котором перебираем каждый элемент в массиве players
        Cheat.Print(Entity.GetName(players[i]) + '\n') //Получаем имя каждого игрока и выводим его в консоль
    }
}

Cheat.RegisterCallback('CreateMove', 'a') //Создаем callback для функции
На локальном сервере находятся три игрока: я, и два бота. Этот код выведет такой результат:
sv_cheats 1 (Я)
Brian (Первый бот)
Jim (Второй бот)


Entity.GetEnemies() - метод, позволяющий получить всех врагов на сервере. Возвращает нам массив со всеми индексами врагов.
JavaScript:
var enemies = Entity.GetEnemies() //Записываем всех врагов в переменную

function a() {  //Инициализируем функцию
    for (var i in enemies) { //Создаем цикл, в котором перебираем всех врагов
        Cheat.Print(Entity.GetName(enemies[i]) + '\n') //Получаем имена всех врагов и выводим их в консоль
    }
}

Cheat.RegisterCallback('CreateMove', 'a') //Создаем callback для функции
На локальном сервере при тех же ботах в противоположной команде скрипт выводит следующее:
Jim (Первый бот)
Brian (Второй бот)

Для следующего метода добавим пару ботов в свою команду.
Entity.GetTeammates() - метод, позволяющий получить всех союзников на сервере. Возвращает нам массив со всеми индексами союзников.
JavaScript:
var teammates = Entity.GetTeammates() //Записываем всех союзников в переменную

function a() {  //Инициализируем функцию
    for (var i in teammates) { //Создаем цикл, в котором перебираем всех союзников
        Cheat.Print(Entity.GetName(teammates[i]) + '\n') //Получаем имена всех союзников и выводим их в консоль
    }
}

Cheat.RegisterCallback('CreateMove', 'a') //Создаем callback для функции
На локальном сервере при еще двух ботах выводит следующее:
sv_cheats 1 (Я)
Ivan (Первый бот)
Ted (Второй бот)


Entity.GetWeapon(entity_index) - метод, позволяющий узнать индекс оружия игрока. Принимает в себя один аргумент - число, являющееся индексом игрока.
Вернет индекс активного оружия.
JavaScript:
var localPlayer = Entity.GetLocalPlayer() //Получаем индекс локального игрока и записываем его в переменную
var localPlayerWeaponName = Entity.GetName(Entity.GetWeapon(Entity.GetLocalPlayer())) //Получаем имя активного оружия у локального игрока

if (localPlayerWeaponName == 'ssg 08') { //Проверяем, держит ли он в руках скаут
    Cheat.Print('Local player weapon is scout!') //Выводим сообщение в консоль о том, что его оружие сейчас - скаут
} else {
    Cheat.Print('Local player weapon is not scout!') //Выводим сообщение в консоль от том, что его оружие сейчас - не скаут.
}
Код выведет в консоль "Local player weapon is scout", если оружие локального игрока будет скаутом, иначе код выведет "Local player weapon is not scout"

Entity.GetWeapons(entityt_index) - метод, позволяющий узнать ВСЕ индексы оружий игрока. Принимает в себя один аргумент - число, являющееся индексом игрока. Вернет массив со всеми оружиями игрока.
JavaScript:
var localPlayer = Entity.GetLocalPlayer() //Занесем локального игрока в переменную
var localPlayerWeapons = Entity.GetWeapons(localPlayer) //Занесем все оружия локального игрока в переменную

for (var i in localPlayerWeapons) { //Переберем все оружия через цикл
    weaponsName = Entity.GetName(localPlayerWeapons[i]) //Получм название всех оружий
    Cheat.Print(weaponsName + '\n') //Выведем список оружий в консоль
}
Этот код вернет все оружия в инвентаре игрока, от ножа до главного оружия.

Entity.GetEntities() - метод, позволяющий получить все индексы объектов. Возвращает нам массив со всеми индексами объектов на карте.
JavaScript:
var entities = Entity.GetEntities() //Получаем все объекты и записываем их в переменную
for (i in entities) { //Перебираем массив с объектами в цикле
    entitiesName = Entity.GetName(entities[i]) //Заносим в переменную имена всех объектов
    Cheat.Print("Entity class ID: " + entitiesName + "\n") //Выводим имена объекто в консоль
}
Этот код выведет например:
Entity class ID: ssg 08
Entity class ID: 304
Entity class ID: negev
Entity class ID: 312
Entity class ID: zeus x27
Entity class ID: 325
Entity class ID: five seven
Entity class ID: g3sg1
Entity class ID: high explosive grenade
Entity class ID: incendiary grenade
Entity class ID: aug
Entity class ID: 352
Entity class ID: sg 553
Entity class ID: 358
Entity class ID: negev
Entity class ID: 360
Entity class ID: m9 bayonet


Entity.IsEnemy(entity_index) - метод, позволяющий узнать, является ли врагом указанный нам индекс. Принимает в себя один аргумент - число, являющееся индексом. Вернет true если указанный индекс является врагом, иначе false.
JavaScript:
var a = Entity.IsEnemy(Entity.GetLocalPlayer()) //Проверяем, является ли врагом индекс 1 и записываем это значение в переменную

Cheat.Print(a.toString()) //Выводим в консоль состояние индекса
Приведем маленький пример:
JavaScript:
var players = Entity.GetPlayers() //Получаем все индексы игроков, находящихся на сервере

for (var i in players) { //Создадим цикл который переберет все индексы игроков.
    if (Entity.IsEnemy(players[i])) { //Проверим, имеются ли среди игроков враги
        enemiesName = Entity.GetName(players[i]) //Получаем имена всех врагов

        Cheat.Print('Enemies has ' + enemiesName + ' nickname and ' + players[i] + ' indexes' + '\n') //Выводим в консоль имя и индекс каждого врага.
    }
}
Entity.IsTeammate(entity_index) - метод, позволяющий узнать, является ли союзником указанный нам индекс. Принимает в себя один аргумент - число, являющееся индексом. Вернет true если указанный индекс является союзником, иначе false.

JavaScript:
var a = Entity.IsTeammate(Entity.GetLocalPlayer()) //Проверяем, является ли врагом индекс 1 и записываем это значение в переменную

Cheat.Print(a.toString() )//Выводим в консоль состояние индекса
Приведем маленький пример:
JavaScript:
var players = Entity.GetPlayers() //Получаем все индексы игроков, находящихся на сервере

for (var i in players) { //Создадим цикл который переберет все индексы игроков.
    if (Entity.IsTeammate(players[i])) { //Проверим, имеются ли среди игроков союзники
        teammateName = Entity.GetName(players[i]) //Получаем имена всех союзников

        Cheat.Print('Teammate has ' + teammateName + ' nickname and ' + players[i] + ' indexes' + '\n') //Выводим в консоль имя и индекс каждого союзника.
    }
}
Entity.IsBot(entity_index) - метод, позволяющий узнать, является ли ботом указанный нам индекс. Принимает в себя один аргумент - число, являющееся индексом. Вернет true если указанный индекс является ботом, иначе false.
JavaScript:
const a = Entity.IsBot(Entity.GetLocalPlayer()) //Проверяем, является ли врагом индекс 1 и записываем это значение в переменную

Cheat.Print(a.toString()) //Выводим в консоль состояние индекса
Приведем аналогичный пример
JavaScript:
var players = Entity.GetPlayers() //Получаем все индексы игроков, находящихся на сервере

for (var i in players) { //Создадим цикл который переберет все индексы игроков.
    if (Entity.IsBot(players[i])) { //Проверим, имеются ли среди игроков боты
       botName = Entity.GetName(players[i]) //Получаем имена всех ботов

        Cheat.Print('Bot has ' + botName + ' nickname and ' + players[i] + ' indexes' + '\n') //Выводим в консоль имя и индекс каждого бота.

    }
}
Entity.IsAlive(entity_index) - метод, позволяющий узнать, жив ли указанный нам индекс. Принимает в себя один аргумент - число, являющееся индексом. Вернет true если указанный индекс жив, иначе false.
JavaScript:
var a = Entity.IsAlive(Entity.GetLocalPlayer()) //Проверяем, является ли врагом индекс 1 и записываем это значение в переменную

Cheat.Print(a.toString()) //Выводим в консоль состояние индекса
Entity.IsValid(entity_index) - метод, позволяющий узнать, является ли действительным указанный нам индекс. Принимает в себя один аргумент - число, являющееся индексом. Вернет true если указанный индекс является действительным, иначе false.
JavaScript:
var a = Entity.IsValid(Entity.GetLocalPlayer()) //Проверяем, является ли врагом индекс 1 и записываем это значение в переменную

Cheat.Print(a.toString()) //Выводим в консоль состояние индекса
Entity.IsDormant(entity_index) - метод, позволяющий узнать, находится ли объект (в данном случе игрок) в дорманте. Принимает в себя один аргумент - число, являющееся индексом. Вернет true если игрок в дорманте, иначе false.
JavaScript:
var enemies = Entity.GetEnemies() //Получаем всех врагов и записываем это в переменную

for (var i in enemies) { //Переберем врагов в цикле
    if (Entity.IsDormant(enemies[i])) { //Проверим, какие враги находятся в дорманте
        dormantPlayersName = Entity.GetName(enemies[i]) //Получим имя игроков в дорманте
        Cheat.Print('Dormant player is ' + dormantPlayersName) //Выведем в консоль имена врагов, находящихся в дорманте
    }
}
Этот код выведет примерно такое:
Dormant player is John
Dormant player is Jim.

Entity.GetProp(entity_index, table_name, prop_name) - метод, позволяющий получить характеристику того или иного объекта. Принимает в себя 3 аргумента:
Первый - индекс объекта, второй - название таблицы, третий - название самой характеристики (Всё перечисленное можно найти тут -https://pastebin.com/raw/Rb2TYAcg).
JavaScript:
function a() { //Инициализируем функцию
    localPlayer = Entity.GetLocalPlayer() // Получаем локального игрока и записываем его в переменную
    inAir = Entity.GetProp(localPlayer, 'CBasePlayer', 'm_hGroundEntity' /*Эта характеристика отвечает за положение игрока*/) //Получаем положение игрока
    if (inAir) { //Проверяем, находятся ли в воздухе локальный игрок
        Cheat.Print('Local player is flying!' + '\n') //Выводим текст, обозначающий о полете, в консоль
    } else {
        Cheat.Print('Local player is standing!' + '\n') //Выводим текст, обозначающий о нахождении на земле, в консоль
    }
}

Cheat.RegisterCallback('CreateMove', 'a') //Создаем callback для функции
Если локальный игрок будет в воздухе - в консоль выведет Local player is flying!
Если локальный игрок будет на земле - в консоль выведет Local player is standing!

Entity.GetGamerulesProxy() - вспомогательный метод для Entity.GetProp(entity_index, table_name, prop_name), позволяющий определить Gamerules из таблицы
CCSGameRulesProxy.
JavaScript:
var gamerules = Entity.GetGameRulesProxy() //Записываем вспомогательный метод в перменную
valve_server = Entity.GetProp(gamerules, 'CCSGameRulesProxy', 'm_bIsValveDS') //Делаем проверку на valve сервер
server = valve_server ? true : false //Делаем провенку на valve сервер #2
Cheat.Print('This server is valve - ' + server) //Выводим в консоль результат
Этот код выведет в консоль This server is valve -true, если это сервер valve, иначе выведет This server is valve - false

Entity.SetProp(entity_index, table_name, prop_name, value) - метод, позволяющий выставлять характеристики объекту. Прошу заметить, не все характеристики для объекта можно выставить этим методом! Принимает в себя 4 аргумента:
Первый - индекс объекта, второй - название таблицы, третий - название самой характеристики, четвертый - новое значение характеристики.
(Ничего не буду сам писать, просто потому что не нашел примеров, поэтому возьмем пример из самой документации :))) )
JavaScript:
function ragdollForce( )
{
    framestage = Cheat.FrameStage();
    if (framestage == 3)
    {
        entities = Entity.GetEntities();
        for (i = 0; i < entities.length; i++)
        {
            classID = Entity.GetClassID(entities[i]);
            if (classID == 42)
            {
                dir = Entity.GetProp(entities[i], "CCSRagdoll", "m_vecRagdollVelocity"); //Получаем значение m_vecRagdollVelocity
                dir[0] = dir[0] * 100; //Умножаем X координату на 100
                dir[1] = dir[1] * 100; //Умножаем Y координату на 100
                dir[2] = dir[2] * 100; //Умножаем Z координату на 100
                dir1 = Entity.GetProp(entities[i], "CBaseAnimating", "m_vecForce"); //Получаем значение m_vecForce
                dir1[0] = dir1[0] * 100; //Умножаем X координату на 100
                dir1[1] = dir1[1] * 100; //Умножаем Y координату на 100
                dir1[2] = dir1[2] * 100; //Умножаем Z координату на 100
                Entity.SetProp(entities[i], "CCSRagdoll", "m_vecRagdollVelocity", dir); //Выставим для m_vecRagdollVelocity обновленное значение dir
                Entity.SetProp(entities[i], "CBaseAnimating", "m_vecForce", dir1); //Выставим для m_vecForce обновленное значение dir1
            }
        }
    }
}

Cheat.RegisterCallback("FrameStageNotify", "ragdollForce")
Entity.GetClassName(entity_index) - метод, позволяющий узнать имя класса к которому относится объект. Принимает в себя один аргумент - число, являющееся индексом. Вернет название класса к которому относится объект.
JavaScript:
var entities = Entity.GetEntities() //Получаем все объекты и заносим их в переменную

for (var i in entities) { //Перебираем их в цикле
    var className = Entity.GetClassName( entities[i] ) //Получаем имена класса каждого объекта
    Cheat.Print(className.toString() + '\n') //Выводим в консоль названия классов.
}
Этот код выведет примерно такое:
CWeaponNegev
CBaseWeaponWorldModel
CWeaponTaser
CBaseWeaponWorldModel
CWeaponFiveSeven
CWeaponG3SG1
CHEGrenade

Entity.GetEntityFromUserID(user_id) - метод, позволяющий получить объект из его ID. Принимает в себя один аргумент - число, являющееся id. Вернет объект (Игрока).
JavaScript:
function on_player_death() {
    attacker = Event.GetInt("attacker"); //Получаем атакующего
    attacker_index = Entity.GetEntityFromUserID(attacker); //получем индекс атакующего
    victim = Event.GetInt("userid"); //Получаем пострадавшего
    victim_index = Entity.GetEntityFromUserID(victim); //Получаем индекс постадавшего
    attacker_name = Entity.GetName(attacker_index); //Получем имя атакующего
    victim_name = Entity.GetName(victim_index); //Получаем имя постадавшего
    Cheat.Print(attacker_name + " just killed " + victim_name + "\n"); //Выводим в консоль
}

Cheat.RegisterCallback("player_death", "on_player_death");
Код выведет примерно такое:
sv_cheats 1 just killed John

Entity.GetClassID(entity_index) - метод, позволяющий узнать ID класса из индекса объекта. Принимает в себя один аргумент - число, являющееся индексом объекта.
JavaScript:
var entities = Entity.GetEntities(); //Получаем все объекты
for (var i in entities) { //Перебираем все объекты с помощью цикла
    classID = Entity.GetClassID(entities[i]); //Получаем их ID класса
    Cheat.Print("Entity class ID: " + classID + "\n"); //Выводим в консоль их ID класса.
}
Код выведет примерно такое:
Entity class ID: 23
Entity class ID: 107
Entity class ID: 23
Entity class ID: 245
Entity class ID: 23
Entity class ID: 23
Entity class ID: 107


Entity.GetEntityByClassID(class_id) - метод, позволяющий нам узнать объект по его ID класса. (Все ID можно найти тут -
Пожалуйста, авторизуйтесь для просмотра ссылки.
). Принимает в себя один аргумент - число, являющееся ID объекта. Вернет индекс объекта.
JavaScript:
entities = Entity.GetEntities();
cEnt = Entity.GetEntitiesByClassID(11);
for (i in cEnt)
{
    cName = Entity.GetName(cEnt[i]);
    Cheat.Print("Entity class: " + cName + "\n");
}
Этот код выведет все объекты с ID 11, т.е к примеру:
Entity class: 229
Entity class: 250
Entity class: 251
Entity class: 272
Entity class: 279
Entity class: 281


Entity.GetEyePostition(entity_index) - метод, позволяющий нам узнать viewangles игрока. Принимает в себя один аргумент - число, являющееся индексом игрока. Вернет массив из X Y Z координат.
JavaScript:
var eyePos = Entity.GetEyePosition(Entity.GetLocalPlayer()) //Получаем viewangles локального игрока
Cheat.Print('Local player eye position X: ' + eyePos[0] + ', Y: ' + eyePos[1] + ', Z: ' + eyePos[2]) //Выводим в консоль эти значения
Код выведет примерно такое:
Local player eye position X: -14.180006980895996, Y: -748.324462890625, Z: -319.96875

Entity.GetRenderOrigin(entity_index) - метод, позволяющий нам узнать позицию объекта. Принимает в себя один аргумент - число, являющееся индексом объекта. Вернет массив из X Y Z координат.
JavaScript:
var pos = Entity.GetRenderOrigin(Entity.GetLocalPlayer()) //Получаем позицию локального игрока
Cheat.Print('Local player pos X: ' + pos[0] + ', Y: ' + pos[1] + ', Y: ' + pos[2]) //Выводим эту позицию в консоль
Код выведет примерно такое:
Local player pos X: -14.189970970153809, Y: -748.3322143554688, Y: -383.96875

Entity.GetHitboxPosition(entity_index, hitbox_index) - метод, позволяющий получить позицию хитбокса определенного игрока. Принимает в себя два аргумента - число, являющееся индексом игрока и индекс хитбокса (тоже число)
HITBOX_HEAD = 0
HITBOX_NECK = 1
HITBOX_PELVIS = 2
HITBOX_BODY = 3
HITBOX_THORAX = 4
HITBOX_CHEST = 5
HITBOX_UPPER_CHEST = 6
HITBOX_LEFT_THIGH = 7
HITBOX_RIGHT_THIGH = 8
HITBOX_LEFT_CALF = 9
HITBOX_RIGHT_CALF = 10
HITBOX_LEFT_FOOT = 11
HITBOX_RIGHT_FOOT = 12
HITBOX_LEFT_HAND = 13
HITBOX_RIGHT_HAND = 14
HITBOX_LEFT_UPPER_ARM = 15
HITBOX_LEFT_FOREARM = 16
HITBOX_RIGHT_UPPER_ARM = 17
HITBOX_RIGHT_FOREARM = 18
JavaScript:
var localPlayer = Entity.GetLocalPlayer()
var headPosition = Entity.GetHitboxPosition(localPlayer, 0)
Cheat.Print('Local player head position X:' + headPosition[0] + ', Y:' + headPosition[1] + ', Z:' + headPosition[2])
Этот код выведет примерно такое:
Local player head position X:-145.43527221679688, Y:-651.7484130859375, Z:-326.55584716796875

Entity.GetRenderBox(entity_index) - метод, позволяющий определить минимальный X и Y, а так же максимальный X и Y бокса. Принимает в себя один аргумент - индекс объекта.
JavaScript:
var localPlayer = Entity.GetLocalPlayer()
var box =  Entity.GetRenderBox(localPlayer)

Cheat.Print('Local player MIN X pos:' + box[0], ', MIN Y pos:' + box[1] + ', MAX X pos:' + box[2] + ', MAX Y pos:' + box[3])
Код выведет в консоль примерно следующее:
Local player MIN X pos:1, MIN Y pos:871, MAX X pos:494, MAX Y pos:1048

КАРОЧЕ!!!! На этом с классом Entity покончено. Очень прошу указать на ошибки, а так же на неправильное описание той или иной функции. Буду очень благодарен.

Meme:


Предыдущая часть: https://yougame.biz/threads/206527/
не заебался писать?
 
Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,747
Реакции[?]
1,465
Поинты[?]
2K
Начинающий
Статус
Оффлайн
Регистрация
15 Фев 2019
Сообщения
97
Реакции[?]
2
Поинты[?]
0
Блин. А рил полезно, спасиб)))
PS: Иди спать уже ема йо
 
Забаненный
Статус
Оффлайн
Регистрация
26 Мар 2021
Сообщения
65
Реакции[?]
24
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Жаль когда я начинал учить жаба скрипт, таких тем не было (
Молодец !
 
Сверху Снизу