Русское сообщество по скриптингу

Прострелка стен для не стандартного оружия

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Прострелка стен для не стандартного оружия

Сообщение russia091 » 02 апр 2021, 11:33

Всем привет

Помогите пожалуйста решить задачку:

есть вот такой инфо_таргет с моделью красной точки:


Образуется в центре экрана на ближайшем препятсвии
Необходимо продлить координаты на определенное растояние относительно взгляда игрока и установить вторую точку, что бы это выглядело примерно вот так:


Суть в том, что бы между ними могла оказаться стена или другой объект

Для теста создал такой плаг, который устанавливает первую точку и определяет между игроком и этой точкой растояние:

Код: Выделить всё
    #include <amxmodx>
    #include <fakemeta_util>
    #include <hl_wpnmod>
    #include < engine >

#define LSPOT_SPRITE            "sprites/laserdot.spr"
#define TASK_NZ 58726


new rd

public plugin_precache
(){

    PRECACHE_MODEL( LSPOT_SPRITE )
    
}

public plugin_init() {
    register_plugin("red_dote","SF[AdmiN]","SF[AdmiN]")
    
    register_clcmd
("rd", "distance_dote_funk")
  
    
}


public distance_dote_funk(id)
{


    if(is_valid_ent(rd)) remove_entity(rd)
    
    
    
    rd 
= create_entity("info_target")
    new Float:vecSrc[3],Float:vecAiming[3],Float:vecEnd[3]

    entity_set_int(rd,EV_INT_rendermode,kRenderGlow)
    entity_set_int(rd,EV_INT_renderfx,kRenderFxNoDissipation) //DALNOST LAZERA
    entity_set_float(rd,EV_FL_renderamt,255.0) //Jarkostb
    set_pev(rd, pev_scale, 0.5)
    
    entity_set_model
(rd,LSPOT_SPRITE)
    
    
    wpnmod_get_gun_position
(id,vecSrc)
    fm_get_aim_origin(id,vecAiming)    
    trace_line
(id,vecSrc,vecAiming,vecEnd)
    entity_set_origin(rd,vecEnd)
    
    
    new distann 
= get_entity_distance ( id, rd );
    
    client_print
(id,print_chat,"Distance between you and a hen of %d", distann);
    
    
    return distann
    
    
}


Буду признателен за любую помощь!
Аватара пользователя
russia091
 
Сообщения: 1
Зарегистрирован: 23 дек 2019, 10:56
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Я ничего не знаю

Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: sb123 и гости: 12