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

Как "поднять" entity  [Решено]

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

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

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

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

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

Как "поднять" entity  [Решено]

Сообщение fixteam » 03 мар 2018, 13:59

На координатах игрока спавнится entity. Летит в направлении взгляда игрока. При столкновении с картой entity удаляется. НО! Возможно ли сделать такое, чтобы энтити удалялось только когда вектор направлен перпендикулярно стене, например. То есть по пологим подъемам, entity, при косании не удалялось, а поднималось по ним, а удалялось только когда лоб в лоб в стену упирается.
Код: Выделить всё

public plugin_init
() {
    RegisterHam(Ham_Touch,"info_target","touch_ent")
}

//Команда спавна entity
public test(id){
new Float:StartOrigin[3]
new PlayerOrigin[3]
    
    get_user_origin
(id, PlayerOrigin, 0)
    IVecFVec(PlayerOrigin, StartOrigin)
    new ent = create_entity("info_target")

    if(!pev_valid(ent)) return PLUGIN_HANDLED 
     
    entity_set_string
(ent, EV_SZ_classname, "test_ent")   
    entity_set_model
(ent, m_ent)
    entity_set_origin(ent, StartOrigin)
    entity_set_int(ent, EV_INT_solid, SOLID_TRIGGER)
    entity_set_vector(ent, EV_VEC_mins, {-1.0, -1.0, -1.0})
    entity_set_vector(ent, EV_VEC_maxs, {1.0, 1.0, 1.0})
    entity_set_int(ent, EV_INT_movetype, 5)
    engfunc(EngFunc_SetSize,ent,Float:{-10.0,-10.0,0.0},Float:{10.0,10.0,100.0})

    new Float:Velocity[3]    
    VelocityByAim
(id, 1000, Velocity)
    entity_set_vector(ent, EV_VEC_velocity, Velocity)
}

//Команда при касании
touch_ent(ident,id){
new Classname[32]
pev(ident,pev_classname,Classname,31)
if(!
equal(Classname,"test_ent")) return HAM_IGNORED
if(id==0) {
remove_entity(ident)
return HAM_IGNORED
}
}
 
Аватара пользователя
fixteam
 
Сообщения: 168
Зарегистрирован: 19 фев 2018, 20:08
Откуда: Москва
Благодарил (а): 28 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, C++, Python, Js, Php

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10