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

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

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

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

Cheat.Print('Local player index: ' + p) //Выводим индекс в консоль

Entity.GetPlayers() - метод, позволяющий получить всех игроков на сервере (в том числе и ботов). Возвращает нам массив со всеми индексами игроков.
JavaScript:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
var a = Entity.IsEnemy(Entity.GetLocalPlayer()) //Проверяем, является ли врагом индекс 1 и записываем это значение в переменную

Cheat.Print(a.toString()) //Выводим в консоль состояние индекса
Приведем маленький пример:
JavaScript:
Expand Collapse Copy
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:
Expand Collapse Copy
var a = Entity.IsTeammate(Entity.GetLocalPlayer()) //Проверяем, является ли врагом индекс 1 и записываем это значение в переменную

Cheat.Print(a.toString() )//Выводим в консоль состояние индекса
Приведем маленький пример:
JavaScript:
Expand Collapse Copy
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:
Expand Collapse Copy
const a = Entity.IsBot(Entity.GetLocalPlayer()) //Проверяем, является ли врагом индекс 1 и записываем это значение в переменную

Cheat.Print(a.toString()) //Выводим в консоль состояние индекса
Приведем аналогичный пример
JavaScript:
Expand Collapse Copy
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:
Expand Collapse Copy
var a = Entity.IsAlive(Entity.GetLocalPlayer()) //Проверяем, является ли врагом индекс 1 и записываем это значение в переменную

Cheat.Print(a.toString()) //Выводим в консоль состояние индекса

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

Cheat.Print(a.toString()) //Выводим в консоль состояние индекса

Entity.IsDormant(entity_index) - метод, позволяющий узнать, находится ли объект (в данном случе игрок) в дорманте. Принимает в себя один аргумент - число, являющееся индексом. Вернет true если игрок в дорманте, иначе false.
JavaScript:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:

PicsArt_06-02-01.png

Предыдущая часть: https://yougame.biz/threads/206527/
 
Последнее редактирование:
Для того, чтобы понять что здесь происходит нужно знать хотя бы основы языка JavaScript (learn.javascript.ru - хороший учебник для новичков, учился там же) и английский язык на уровне средней школы.
В этом посте я расскажу подробно о Entity классе в API вантапа. В Entity классе всего 26 методов (Мне пезда :roflanPominki: ), о них мы поговорим ниже. Сначала разберем простые методы, а под конец более сложные. И так, поехали...

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

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

Cheat.Print('Local player index: ' + p) //Выводим индекс в консоль

Entity.GetPlayers() - метод, позволяющий получить всех игроков на сервере (в том числе и ботов). Возвращает нам массив со всеми индексами игроков.
JavaScript:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
var a = Entity.IsEnemy(Entity.GetLocalPlayer()) //Проверяем, является ли врагом индекс 1 и записываем это значение в переменную

Cheat.Print(a.toString()) //Выводим в консоль состояние индекса
Приведем маленький пример:
JavaScript:
Expand Collapse Copy
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:
Expand Collapse Copy
var a = Entity.IsTeammate(Entity.GetLocalPlayer()) //Проверяем, является ли врагом индекс 1 и записываем это значение в переменную

Cheat.Print(a.toString() )//Выводим в консоль состояние индекса
Приведем маленький пример:
JavaScript:
Expand Collapse Copy
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:
Expand Collapse Copy
const a = Entity.IsBot(Entity.GetLocalPlayer()) //Проверяем, является ли врагом индекс 1 и записываем это значение в переменную

Cheat.Print(a.toString()) //Выводим в консоль состояние индекса
Приведем аналогичный пример
JavaScript:
Expand Collapse Copy
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:
Expand Collapse Copy
var a = Entity.IsAlive(Entity.GetLocalPlayer()) //Проверяем, является ли врагом индекс 1 и записываем это значение в переменную

Cheat.Print(a.toString()) //Выводим в консоль состояние индекса

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

Cheat.Print(a.toString()) //Выводим в консоль состояние индекса

Entity.IsDormant(entity_index) - метод, позволяющий узнать, находится ли объект (в данном случе игрок) в дорманте. Принимает в себя один аргумент - число, являющееся индексом. Вернет true если игрок в дорманте, иначе false.
JavaScript:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:

PicsArt_06-02-01.png

Предыдущая часть: https://yougame.biz/threads/206527/
не заебался писать?
 
Теперь я сделал js на резольвер. СПАСИБО!
 
Блин. А рил полезно, спасиб)))
PS: Иди спать уже ема йо
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Жаль когда я начинал учить жаба скрипт, таких тем не было (
Молодец !
 
пастись скрипт! ПАСТИСЬ!!!!!
 
Назад
Сверху Снизу