Главная | Комментарии | О проекте
Чтение RSS
Суперсайт
Главная Контакты Карта сайта Добавить в избранное
  • Кто OnLine

    Всего на сайте: 16
    Гостей: 8
    Пользователи: Noghost
    Роботы: Google AdSense, crawl Bot, Google Bot, Yandex Bot, Yandex Bot, Yandex Bot, Google Bot

    Опрос пользователей

    Для какого мода Вы пишите плагины?

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 26-10-2011, 03:10 Просмотров: 3120

    get_entity_distance Функция получает расстояние между двумя игроками или объектами/игроками

    Лично мне не приходилось использовать данную функцию в своих плагинах, да и не знаю где ее можно применить, ну как вариант измерить расстояние от жертвы до киллера.

    Инфо из engine_stocks.inc:
    /* Get the distance between two entities */
    stock get_entity_distance(ent1, ent2)
    {
        return floatround(entity_range(ent1, ent2));
    }


    Синтаксис:
    get_entity_distance ( ent1, ent2 )

    • ent1 - Первый объект/игрок
    • ent2 - Второй объект/игрок


    Тип функции:
    stock

    Пример:
    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>
    #include <engine>

    #define PLUGIN "[engine.inc] get_entity_distance"
    #define VERSION "1.0"
    #define AUTHOR "Admin"

    new Ent
    new g_Model[] = {"models/chick.mdl"}

    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        register_clcmd("say /distance","distance")
        register_clcmd("say /chick","add_chicken")
        
    }
    public plugin_precache(){
        precache_model(g_Model)
    }
    public distance(id){    

        new units = get_entity_distance(id,Ent)
        client_print(id,print_chat,"Distance between you and a hen of %d", units)
    }

    public add_chicken(id){
        
        Ent = create_entity("info_target")
        
        if(is_valid_ent(Ent)){
            
            entity_set_model(Ent, g_Model)
            entity_set_size(Ent,Float:{-6.0, -10.0, 0.0},Float:{6.0, 10.0, 18.0})
            new Float:f_Origin[3]
            entity_get_vector(id, EV_VEC_origin, f_Origin)    
            f_Origin[0] += 50.0
            entity_set_origin(Ent, f_Origin)        
            entity_set_int(Ent,EV_INT_solid,SOLID_BBOX)
            
            entity_set_float(Ent, EV_FL_takedamage, DAMAGE_YES)
            
            new Float:angles[3]
            angles[0] = 0.0
            angles[1] = 0.0
            angles[2] = 0.0
            entity_set_vector(Ent,EV_VEC_angles,angles)
            
            drop_to_floor(Ent)
        }
    }


    Описание:
    По всей вероятности, все функции данного модуля будут описываться с объектом "курочка ряба", удобно все таки :)
    К делу, создаем объект "курочка ряба" привычной уже, из ранее изученных функций, командой say /chick, отходим на какой то расстояние и выполняем команду say /distance и тут же получаем результат в виде расстояния в чат.

    Работа функции предельно проста, даем ей два объекта(id объектов), будь то игрок или 2 любых объекта и получаем результат.
    Результат получаем в целых числах. Если нужно более точное расстояние, используйте функцию entity_range, которая возвращает чисо с плавающей точкой.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Наверх

Реклама