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

Узнать игрока, который выбросил дигл и создать линию

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

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

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

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

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

Re: Узнать игрока, который выбросил дигл и создать линию

Сообщение spree » 11 мар 2018, 15:25

Накидал код без тача, нужно допиливать.
Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <engine> 
#include <hamsandwich>

public plugin_init(){
    register_plugin("amx-x", "0,1", "spree")
    register_clcmd("drop", "drop_deagle")
    register_logevent("round_start", 2, "1=Round_Start")
    RegisterHam(Ham_Item_AddToPlayer, "weapon_deagle", "ham_item_add", 1)
    //RegisterHam(Ham_Item_Drop, "weapon_deagle", "drop_deagle", 1)
}

public plugin_precache( ){
    precache_model("sprites/laserbeam.spr")
}

public ham_item_add(weapid, id){
    client_print(id, print_chat, "deagle id: %d", weapid)
    return HAM_IGNORED
}

public round_start(){
    new ent_laser, i
    while
((ent_laser = find_ent_by_class(-1, "env_laser"))) engfunc(EngFunc_RemoveEntity, ent_laser)
    for(= 1; i <= 32; i++){
    if(task_exists(i)) remove_task(i)
    }
}

public drop_deagle(id)
{
    set_task(0.1,"deagle_on_the_ground",id,_,_,"b")
}

public deagle_on_the_ground(id){
    new ent = find_ent_by_model(-1,"weaponbox","models/w_deagle.mdl")
    if(ent != 0 && pev(ent , pev_flags) & FL_ONGROUND){
    new model[32]
    entity_get_string(ent, EV_SZ_model, model, 31)
    client_print(id, print_chat, "ent id: %d", ent)
    
    client_print
(id, print_chat, "distance: %d", get_entity_distance(id, ent))
    
    new Float
:origin[3]
    pev(ent, pev_origin, origin)
    new newent2 = create_entity("env_laser")
    set_pev(newent2, pev_origin, origin)
    DispatchKeyValue(newent2,"spawnflags","1")
    DispatchKeyValue(newent2,"renderamt","200")
    DispatchKeyValue(newent2,"rendercolor","0 255 0")
    DispatchKeyValue(newent2,"texture","sprites/laserbeam.spr")
    DispatchKeyValue(newent2,"TextureScroll","35")
    DispatchKeyValue(newent2,"damage","0")
    DispatchKeyValue(newent2,"width","20")
    DispatchKeyValue(newent2,"LaserTarget","DLaser")
    DispatchSpawn( newent2 )
    
    new TargetEnt 
= create_entity("info_target")
    DispatchKeyValue(TargetEnt,"targetname","DLaser")
    DispatchSpawn(TargetEnt)
    set_pev(TargetEnt, pev_movetype, MOVETYPE_FOLLOW)
    set_pev(TargetEnt, pev_aiment, id)
    set_pev(TargetEnt, pev_owner, id)
    
    remove_task
(id)
    }
Аватара пользователя
spree
 
Сообщения: 708
Зарегистрирован: 05 дек 2013, 15:01
Благодарил (а): 67 раз.
Поблагодарили: 128 раз.
Языки программирования: PAWN

Пред.

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

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

Сейчас этот форум просматривают: Google [Bot] и гости: 7