⭐🚀 TkyNET | Blacklist ve Profesyonel DDoS Korumalı TeamSpeak 3 Sunucuları 🚀⭐
Sponsor Görsel
🇹🇷 TR Lokasyon | 🛡️ Gelişmiş DDoS Koruması | ⚡ Düşük Ping | 🎧 Kesintisiz TS3 | Hostlar
Sponsor Görsel 2
SponsorSponsor

Konu

#1
arkadaşlar forumdaki paylaşılan lazer eklentilerini tek tek kurdum çalışmadı
zp 4.3 modunu kullanıyorum bugsuz olursa çok iyi olur
içerisine insanlar için menzili 1000metre olup zmlerde menzili sorunu olmayan ve en fazla 3 adet kurabilen 
adminler 4 kurabilme ve lazer üstünde lazer sahibi kim olduğu belli olan bir eklenti bakabilir misiniz 
şimdiden teşekkür ediyorum 
#2
eklentiyi eke koyar mısınız.
ZebaniBey
#3
(11-10-2025, 09:12)ZebaniBey Adlı Kullanıcıdan Alıntı: eklentiyi eke koyar mısınız.
hocam şuan işteyim ama buradaki kurmaya çalıştım

https://www.webailesi.com/konu-bio-lasermines-v2-8-3-edit-update-by-sideswipe-24096
#5
(11-10-2025, 11:07)osmanbnm Adlı Kullanıcıdan Alıntı: https://www.webailesi.com/konu-lazer-plu...tegi-29892

Konuyu inceller misiniz ?
tabi hocam eve geçince bakayım

(11-10-2025, 11:07)osmanbnm Adlı Kullanıcıdan Alıntı: https://www.webailesi.com/konu-lazer-plu...tegi-29892

Konuyu inceller misiniz ?
hocam kurdum sunucuya fakat herhangi bir yok çalışmıyor sanırısam 
konsola bind v +setlaser yazıyorum 
lazer ile ilgili hiçbirşey yok
Son Düzenleme: 11-10-2025, 17:47, Düzenleyen: STAR FORGER.
#6
(11-10-2025, 13:09)STAR FORGER Adlı Kullanıcıdan Alıntı:
(11-10-2025, 11:07)osmanbnm Adlı Kullanıcıdan Alıntı: https://www.webailesi.com/konu-lazer-plu...tegi-29892

Konuyu inceller misiniz ?
tabi hocam eve geçince bakayım

(11-10-2025, 11:07)osmanbnm Adlı Kullanıcıdan Alıntı: https://www.webailesi.com/konu-lazer-plu...tegi-29892

Konuyu inceller misiniz ?
hocam kurdum sunucuya fakat herhangi bir yok çalışmıyor sanırısam 
konsola bind v +setlaser yazıyorum 
lazer ile ilgili hiçbirşey yok

Eklenti uyumsuzluk sorunu çıkartıyor muhtemelen.
✦ Discord: Osmanbnm ✦
#7
(11-10-2025, 20:16)osmanbnm Adlı Kullanıcıdan Alıntı:
(11-10-2025, 13:09)STAR FORGER Adlı Kullanıcıdan Alıntı: tabi hocam eve geçince bakayım

hocam kurdum sunucuya fakat herhangi bir yok çalışmıyor sanırısam 
konsola bind v +setlaser yazıyorum 
lazer ile ilgili hiçbirşey yok

Eklenti uyumsuzluk sorunu çıkartıyor muhtemelen.
sanki hocam bu eklenti bio mod için yazılmış

söyle bir lazer buldum fakat tam kurmaya yakın serveri çökeltiyor sorunlu galiba


PHP Kod:
/* Plugin generated by AMXX-Studio */  
//#define BIOHAZARD_SUPPORT  
//#define UL_MONEY_SUPPORT  


#include <amxmodx>  
#include <cstrike> 
#include <fakemeta>  
#include <xs>  
#include <hamsandwich>
#include <zombieplague>

#if defined _colorchat_included 
  #endinput 
#endif 
#define _colorchat_included 

enum Color 

    NORMAL 1// clients scr_concolor cvar color 
    GREEN// Green Color 
    TEAM_COLOR// Red, grey, blue 
    GREY// grey 
    RED// Red 
    BLUE// Blue 


new 
TeamName[][] =  

    ""
    "TERRORIST"
    "CT"
    "SPECTATOR" 


ColorChat(idColor:type, const msg[], {Float,Sql,Result,_}:...) 

    if( !get_playersnum() ) return; 
     
    
new message[256]; 

    switch(type
    
        case NORMAL// clients scr_concolor cvar color 
        
            message[0] = 0x01
        
        case GREEN// Green 
        
            message[0] = 0x04
        
        default: // White, Red, Blue 
        
            message[0] = 0x03
        
    

    vformat(message[1], 251msg4); 

    // Make sure message is not longer than 192 character. Will crash the server. 
    message[192] = '^0'

    new teamColorChangeindexMSG_Type
     
    
if(id
    
        MSG_Type MSG_ONE
        index id
    } else { 
        index FindPlayer(); 
        MSG_Type MSG_ALL
    
     
    team 
get_user_team(index); 
    ColorChange ColorSelection(indexMSG_Typetype); 

    ShowColorMessage(indexMSG_Typemessage); 
         
    
if(ColorChange
    
        Team_Info(indexMSG_TypeTeamName[team]); 
    


ShowColorMessage(idtypemessage[]) 

    static bool:saytext_used
    static get_user_msgid_saytext
    if(!saytext_used
    
        get_user_msgid_saytext get_user_msgid("SayText"); 
        saytext_used true
    
    message_begin(typeget_user_msgid_saytext_id); 
    write_byte(id)         
    write_string
(message); 
    message_end();     


Team_Info(idtypeteam[]) 

    static bool:teaminfo_used
    static get_user_msgid_teaminfo
    if(!teaminfo_used
    
        get_user_msgid_teaminfo get_user_msgid("TeamInfo"); 
        teaminfo_used true
    
    message_begin(typeget_user_msgid_teaminfo_id); 
    write_byte(id); 
    write_string(team); 
    message_end(); 

    return 1


ColorSelection(indextypeColor:Type

    switch(Type
    
        case RED
        
            return Team_Info(indextypeTeamName[1]); 
        
        case BLUE
        
            return Team_Info(indextypeTeamName[2]); 
        
        case GREY
        
            return Team_Info(indextypeTeamName[0]); 
        
    

    return 0


FindPlayer() 

    new = -1

    while(<= get_maxplayers()) 
    
        if(is_user_connected(++i)) 
            return i
    

    return -1


#if defined BIOHAZARD_SUPPORT  
    #include <biohazard>  
#endif  

#if defined UL_MONEY_SUPPORT  
    #include <money_ul>  
#endif  


#if AMXX_VERSION_NUM < 180  
    #assert AMX Mod X v1.8.0 or greater library required!  
#endif  

#if defined BIOHAZARD_SUPPORT  
    #define PLUGIN "LTM for BIOHAZARD"  
#else  
    #define PLUGIN "Laser/Tripmine Entity"  
#endif  
#define AUTHOR "SandStriker, Crunch98" //Remaked by Crunch98 for Csyardim.Com 

#define RemoveEntity(%1)    engfunc(EngFunc_RemoveEntity,%1)  
//#define ACCESSLEVEL        ADMIN_LEVEL_H  
#define TASK_PLANT        15100  
#define TASK_RESET        15500  
#define TASK_RELEASE        15900  
#define VERSION "2.8.3"  

#define LASERMINE_TEAM        pev_iuser1//EV_INT_iuser1  
#define LASERMINE_OWNER        pev_iuser2 //EV_INT_iuser3  
#define LASERMINE_STEP        pev_iuser3  
#define LASERMINE_HITING    pev_iuser4  
#define LASERMINE_COUNT        pev_fuser1  

#define LASERMINE_POWERUP    pev_fuser2  
#define LASERMINE_BEAMTHINK    pev_fuser3  

#define LASERMINE_BEAMENDPOINT    pev_vuser1  
#define MAX_MINES        10  
#define MODE_LASERMINE        0  
#define OFFSET_TEAM         114  
#define OFFSET_MONEY        115  
#define OFFSET_DEATH         444  

#define cs_get_user_team(%1)        CsTeams:get_offset_value(%1,OFFSET_TEAM)  
#define cs_get_user_deaths(%1)        get_offset_value(%1,OFFSET_DEATH)  
#define cs_get_user_money(%1)        get_offset_value(%1,OFFSET_MONEY)  
#define cs_set_user_money(%1,%2)    set_offset_value(%1,OFFSET_MONEY,%2)  



/*enum CsTeams {  
    CS_TEAM_UNASSIGNED = 0,  
    CS_TEAM_T = 1,  
    CS_TEAM_CT = 2,  
    CS_TEAM_SPECTATOR = 3  
}; 
*/ 

enum tripmine_e {  
    TRIPMINE_IDLE1 
0,  
    TRIPMINE_IDLE2
,  
    TRIPMINE_ARM1
,  
    TRIPMINE_ARM2
,  
    TRIPMINE_FIDGET
,  
    TRIPMINE_HOLSTER
,  
    TRIPMINE_DRAW
,  
    TRIPMINE_WORLD
,  
    TRIPMINE_GROUND
,  
};  

enum  
{  
    POWERUP_THINK
,  
    BEAMBREAK_THINK
,  
    EXPLOSE_THINK  
};  

enum  
{  
    POWERUP_SOUND
,  
    ACTIVATE_SOUND
,  
    STOP_SOUND  
};  

new const  
    ENT_MODELS
[]    "models/ucgen_lazer.mdl",  
    ENT_SOUND1
[]    "weapons/mine_deploy.wav",  
    ENT_SOUND2
[]    "weapons/mine_charge.wav",  
    ENT_SOUND3
[]    "weapons/mine_activate.wav",  
    ENT_SOUND4
[]    "weapons/electro5.wav",  
    ENT_SOUND5
[]    "items/gunpickup2.wav",  
    ENT_SOUND6
[]    "debris/bustglass1.wav",  
    ENT_SOUND7
[]    "debris/bustglass2.wav"
    ENT_SPRITE1[]     "sprites/laserbeam.spr",  
    ENT_SPRITE2
[]     "sprites/zerogxplode.spr";  

new const  
    ENT_CLASS_NAME
[]    "lasermine",  
    
//ENT_CLASS_NAME2[]    = "info_target",  
    ENT_CLASS_NAME3[]    "func_breakable";  

new const  
#if defined BIOHAZARD_SUPPORT  
    CHATTAG[]         "[D]",  
#else  
    CHATTAG[]         "[D]",  
#endif  
    //STR_MINEDETNATED[]     = "Your mine has detonated.",  
    //STR_MINEDETNATED2[]    = "detonated your mine.",  
    STR_NOTACTIVE[]     "Lazerler Aktif Degil.",  
    STR_DONTHAVEMINE
[]    "Hic Lazerin Kalmadi.",  
    
//STR_CANTDEPLOY[]    = "Your team can't deploying lasermine!",  
    STR_MAXDEPLOY[]        "Daha Fazla Lazer Kuramazsin !",  
    STR_MANYPPL
[]        "Takiminda Cok Fazla Lazer Kuruldu...",  
    STR_PLANTWALL
[]        "Lazeri Sadece Duvara Kurabilirsin!",  
    STR_REF
[]        "Refer to a lasermine rule with this server. say 'lasermine'",  
#if defined BIOHAZARD_SUPPORT      
    STR_CBT[]        "Your Zombie! Can't buy and deploying lasermine!",  
#else  
    STR_CBT[]        "Your Team Can't buy and deploying lasermine!",  
#endif  
    STR_CANTBUY[]        "Satin Alma Kapali.",  
    STR_HAVEMAX
[]        "Zaten Yeterince Lazer Almissin.",  
    STR_NOMONEY
[]        "You don't have enough money to buy a lasermine! ($",  
    STR_NEEDED
[]        "needed)",  
    STR_DELAY
[]        "Lazer Kurabilmek Icin",  
    STR_SECONDS
[]        "Saniye Beklemelisin.",  
    STR_BOUGHT
[]        "You have successfully bought a lasermine.",  
    STR_STATE
[]        "Lazer Cephanesi:",  
    STR_NOACCESS
[]        "Bu Komuta Erisim Yetkiniz Yok.";  

new g_EntMine  
new beamboom  
new g_msgid_bartime  
new   
    g_LENABLE
,g_LFMONEY,g_LAMMO,g_LDMG,  
    g_LTMAX
,g_LCOST,g_LHEALTH,g_LMODE,g_LRADIUS,g_LRDMG,g_LFF,g_LCBT;  
new  
    g_LDELAY
,/*g_LTHINK,*/g_LVISIBLE,  
    g_LSTAMMO
,g_LACCESS,g_LGLOW,g_LDMGMODE,g_LCLMODE,g_LCBRIGHT,g_LDSEC,g_LCMDMODE,g_LBUYMODE;  

new g_dcount[33],g_nowtime,g_MaxPL  
new bool:g_settinglaser[33]  
new g_msgDeathMsg,g_msgScoreInfo,g_msgDamage,g_msgStatusText,g_msgMoney;  
new Float:plspeed[33]  
new plsetting[33]  
new g_havemine[33];  
new g_deployed[33];  

public plugin_init() {  
    register_plugin
(PLUGINVERSIONAUTHOR);  
      
    
// Add your code here...  
    RegisterHam(Ham_Killed"player""fw_PlayerKilled");   
    register_clcmd
("+setlaser","CreateLaserMine_Progress_b");  
    register_clcmd
("-setlaser","StopCreateLaserMine");  
    register_clcmd
("+dellaser","ReturnLaserMine_Progress");  
    register_clcmd
("-dellaser","StopReturnLaserMine");  
    register_clcmd
("say","say_lasermine");  
    register_clcmd
("buy_lasermine","BuyLasermine");  
    register_logevent
("endround"2"0=World triggered""1=Round_End");
//    register_logevent("logevent_round_start", 2, "1=Round_Start") 

#if defined BIOHAZARD_SUPPORT  
    g_LENABLE    register_cvar("bio_ltm","1");  
    g_LACCESS    
register_cvar("bio_ltm_acs","0");          //0 all, 1 admin  
    g_LMODE        register_cvar("bio_ltm_mode","0");         //0 lasermine, 1 tripmine  
    g_LAMMO        register_cvar("bio_ltm_ammo","3");  
    g_LDMG        
register_cvar("bio_ltm_dmg","99999999");        //laser hit dmg  
    g_LCOST        register_cvar("bio_ltm_cost","0");  
    g_LFMONEY    
register_cvar("bio_ltm_fragmoney","0");  
    g_LHEALTH    
register_cvar("bio_ltm_health","999999999");  
    g_LTMAX        
register_cvar("bio_ltm_teammax","99999");  
    g_LRADIUS    
register_cvar("bio_ltm_radius","320.0");  
    g_LRDMG        
register_cvar("bio_ltm_rdmg","0");         //radius damage  
    g_LFF        register_cvar("bio_ltm_ff","0");  
    g_LCBT        
register_cvar("bio_ltm_cbt","ALL");  
    g_LBUYMODE    
register_cvar("bio_ltm_buymode","0");  
    g_LDELAY    
register_cvar("bio_ltm_delay","15");  
//    g_LTHINK = register_cvar("bio_ltm_think","0.01");  
    g_LVISIBLE    register_cvar("bio_ltm_line","1");  
    g_LGLOW        
register_cvar("bio_ltm_glow","1");  
    g_LCBRIGHT    
register_cvar("bio_ltm_bright","255");    //laser line brightness.  
    g_LCLMODE    register_cvar("bio_ltm_color","0");        //0 is team color,1 is green  
    g_LDMGMODE    register_cvar("bio_ltm_ldmgmode","0");     //0 - frame dmg, 1 - once dmg, 2 - 1 second dmg  
    g_LDSEC        register_cvar("bio_ltm_ldmgseconds","1");    //mode 2 only, damage / seconds. default 1 (sec)  
    g_LSTAMMO    register_cvar("bio_ltm_startammo","2");  
    g_LCMDMODE    
register_cvar("bio_ltm_cmdmode","1");        //0 is +USE key, 1 is bind, 2 is each.  
#else  
    g_LENABLE    register_cvar("amx_ltm","1");  
    g_LACCESS    
register_cvar("amx_ltm_acs","0");          //0 all, 1 admin  
    g_LMODE        register_cvar("amx_ltm_mode","0");         //0 lasermine, 1 tripmine  
    g_LAMMO        register_cvar("amx_ltm_ammo","2");  
    g_LDMG        
register_cvar("amx_ltm_dmg","99999999");         //laser hit dmg  
    g_LCOST        register_cvar("amx_ltm_cost","2500");  
    g_LFMONEY    
register_cvar("amx_ltm_fragmoney","0");  
    g_LHEALTH    
register_cvar("amx_ltm_health","99999999");  
    g_LTMAX        
register_cvar("amx_ltm_teammax","99999");  
    g_LRADIUS    
register_cvar("amx_ltm_radius","320.0");  
    g_LRDMG        
register_cvar("amx_ltm_rdmg","0");        //radius damage  
    g_LFF        register_cvar("amx_ltm_ff","0");  
    g_LCBT        
register_cvar("amx_ltm_cbt","ALL");  
    g_LBUYMODE    
register_cvar("amx_ltm_buymode","0");  
    g_LDELAY    
register_cvar("amx_ltm_delay","15");  
//    g_LTHINK = register_cvar("amx_ltm_think","0.01")  
    g_LVISIBLE    register_cvar("amx_ltm_line","1");  
    g_LGLOW        
register_cvar("amx_ltm_glow","1");  
    g_LCBRIGHT    
register_cvar("amx_ltm_bright","255");    //laser line brightness.  
    g_LCLMODE    register_cvar("amx_ltm_color","0");         //0 is team color,1 is green  
    g_LDMGMODE    register_cvar("amx_ltm_ldmgmode","0");     //0 - frame dmg, 1 - once dmg, 2 - 1 second dmg  
    g_LDSEC        register_cvar("amx_ltm_ldmgseconds","1");    //mode 2 only, damage / seconds. default 1 (sec)  
    g_LSTAMMO    register_cvar("amx_ltm_startammo","2");  
    g_LCMDMODE    
register_cvar("amx_ltm_cmdmode","1");        //0 is +USE key, 1 is bind, 2 is each.  
#endif  
    register_event("DeathMsg""DeathEvent""a");  
    register_event
("CurWeapon""standing""be""1=1");  
    register_event
("ResetHUD""delaycount""a");  
    register_event
("ResetHUD""newround""b");  
    register_event
("Damage","CutDeploy_onDamage","b");  
    g_msgDeathMsg     
get_user_msgid("DeathMsg");  
    g_msgScoreInfo    
get_user_msgid("ScoreInfo");  
    g_msgDamage     
get_user_msgid("Damage");  
    g_msgStatusText 
get_user_msgid("StatusText");  
    g_msgMoney    
get_user_msgid("Money");  
    g_msgid_bartime 
get_user_msgid("BarTime")  
    
// -- Forward.  
    register_forward(FM_Think"ltm_Think" );  
    register_forward
(FM_PlayerPostThink"ltm_PostThink" );  
    register_forward
(FM_PlayerPreThink"ltm_PreThink");  
    register_forward
FM_TraceLine "fw_TraceLine" );
}
  

public plugin_precache()   
{  
    precache_sound
(ENT_SOUND1);  
    precache_sound
(ENT_SOUND2);  
    precache_sound
(ENT_SOUND3);  
    precache_sound
(ENT_SOUND4);  
    precache_sound
(ENT_SOUND5);  
    precache_sound
(ENT_SOUND6);  
    precache_sound
(ENT_SOUND7);  
    precache_model
(ENT_MODELS);  
    beam 
precache_model(ENT_SPRITE1);  
    boom 
precache_model(ENT_SPRITE2);  
    precache_sound
("buttons/button2.wav"
      
    
return PLUGIN_CONTINUE;  
}  


public fw_PlayerKilled(id)  
{  
    RemoveAllTripmines
(id); 
    DeleteTask(id); 
}
   

public plugin_cfg()  
{  
    g_EntMine 
engfunc(EngFunc_AllocString,ENT_CLASS_NAME3);  
    arrayset
(g_havemine,0,sizeof(g_havemine));  
    arrayset
(g_deployed,0,sizeof(g_deployed));  
    g_MaxPL 
get_maxplayers();  

    
new file[64]; get_localinfo("amxx_configsdir",file,63);  
#if defined BIOHAZARD_SUPPORT  
    format(file63"%s/bhltm_cvars.cfg"file);  
#else  
    format(file63"%s/zp_ltm_cvars.cfg"file);  
#endif  
    if(file_exists(file)) server_cmd("exec %s"file), server_exec();  

}  

public delaycount(id)  
{  
    g_dcount
[id] = floatround(get_gametime());  
}   

bool
:CheckTime(id)  
{  
    g_nowtime 
floatround(get_gametime()) - g_dcount[id];  
    
if(g_nowtime >= get_pcvar_num(g_LDELAY))  
        
return true;  
    
return false;  
}  

/* 
public event_infect(id, victim)  
{  
       RemoveAllTripmines(id)  
}   


public logevent_round_end(id) 

        RemoveAllTripmines(id) 



public logevent_round_start() 

    server_cmd("amx_cvar amx_ltm 1") 

*/ 

public CreateLaserMine_Progress_b(id)
{
   if(zp_is_nemesis_round()){
      client_print(id,print_center,"[OZEL MOD NEMESIS] Nemesis modunda lazer kuramazsiniz.")
      return PLUGIN_HANDLED
   
}
   if(get_pcvar_num(g_LCMDMODE) != 0)
      CreateLaserMine_Progress(id);
   return PLUGIN_HANDLED;
}

public 
CreateLaserMine_Progress(id)  
{  
    
if (!CreateCheck(id)) 
        return PLUGIN_HANDLED;  
    g_settinglaser
[id] = true;  

    message_begin
MSG_ONE_UNRELIABLEg_msgid_bartime, {0,0,0}, id );  
    write_short
(1);  
    message_end
();  

    set_task
(1.2"Spawn", (TASK_PLANT id)); 
    client_cmd(id"spk buttons/button3.wav"); 

    return PLUGIN_HANDLED;  
}  

public ReturnLaserMine_Progress(id)  
{  
    
if (!ReturnCheck(id)) 
    return PLUGIN_HANDLED;  
    g_settinglaser
[id] = true;  

    message_begin
MSG_ONE_UNRELIABLEg_msgid_bartime, {0,0,0}, id );  
    write_short
(1);  
    message_end
(); 
    set_task(1.2"ReturnMine", (TASK_RELEASE id)); 
    client_cmd(id"spk buttons/button3.wav"); 

    return PLUGIN_HANDLED;  
}  

public StopCreateLaserMine(id)  
{  

    DeleteTask
(id);  
    message_begin
MSG_ONE_UNRELIABLEg_msgid_bartime, {0,0,0}, id );  
    write_short
(0);  
    message_end
();  

    
return PLUGIN_HANDLED;  
}  

public StopReturnLaserMine(id)  
{  

    DeleteTask
(id);  
    message_begin
MSG_ONE_UNRELIABLEg_msgid_bartime, {0,0,0}, id );  
    write_short
(0);  
    message_end
(); 

    return PLUGIN_HANDLED;  
}  

public ReturnMine(id)  
{  
    id 
-= TASK_RELEASE;  
    
new tgt,body,Float:vo[3],Float:to[3];  
    get_user_aiming
(id,tgt,body);  
    
if(!pev_valid(tgt)) return;  
    pev
(id,pev_origin,vo);  
    pev
(tgt,pev_origin,to);  
    
if(get_distance_f(vo,to) > 90.0) return;  
      
    
new EntityName[32];  
    pev
(tgtpev_classnameEntityName31);  
    
if(!equal(EntityNameENT_CLASS_NAME)) return;  
    
if(pev(tgt,LASERMINE_OWNER) != id) return;  
    RemoveEntity
(tgt);  

    g_havemine
[id] ++;  
    g_deployed
[id] --;  
    emit_sound
(idCHAN_ITEMENT_SOUND5VOL_NORMATTN_NORM0PITCH_NORM)  
    ShowAmmo
(id)  

    
return;  
}  

public Spawnid )  
{  
    id 
-= TASK_PLANT  
    
// motor  
    new i_Ent engfunc(EngFunc_CreateNamedEntity,g_EntMine);  
    
if(!i_Ent)  
    
{  
        client_print
(id,print_chat,"[Lasermine Debug] Can't Create Entity");  
        
return PLUGIN_HANDLED_MAIN;  
    
}  
    set_pev
(i_Ent,pev_classname,ENT_CLASS_NAME);  

    engfunc
(EngFunc_SetModel,i_Ent,ENT_MODELS);  

    set_pev
(i_Ent,pev_solid,SOLID_NOT);  
    set_pev
(i_Ent,pev_movetype,MOVETYPE_FLY);  

    set_pev
(i_Ent,pev_frame,0);  
    set_pev
(i_Ent,pev_body,3);  
    set_pev
(i_Ent,pev_sequence,TRIPMINE_WORLD);  
    set_pev
(i_Ent,pev_framerate,0);  
      
    set_pev
(i_Ent,pev_takedamage,DAMAGE_YES);  
      
    set_pev
(i_Ent,pev_dmg,100.0);  
    set_user_health
(i_Ent,get_pcvar_num(g_LHEALTH));  
    
new Float:vOrigin[3];  
    new    Float
:vNewOrigin[3],Float:vNormal[3],Float:vTraceDirection[3],  
        Float
:vTraceEnd[3],Float:vEntAngles[3];  
    pev
idpev_originvOrigin );  
    velocity_by_aim
id128vTraceDirection );  
    xs_vec_add
vTraceDirectionvOriginvTraceEnd );  
      
    engfunc
EngFunc_TraceLinevOriginvTraceEndDONT_IGNORE_MONSTERSid);  
      
    
new Float:fFraction;  
    get_tr2
0TR_flFractionfFraction );  
      

    
// -- We hit something!  
    if ( fFraction 1.0 )  
    
{  
        
// -- Save results to be used later.  
        get_tr20TR_vecEndPosvTraceEnd );  
        get_tr2
0TR_vecPlaneNormalvNormal );  
    
}  


    xs_vec_mul_scalar
vNormal8.0vNormal );  
    xs_vec_add
vTraceEndvNormalvNewOrigin );  

    engfunc
(EngFunc_SetSizei_EntFloat:{ -4.0, -4.0, -4.0 }, Float:{ 4.04.04.0 } );  
    engfunc
(EngFunc_SetOrigini_EntvNewOrigin );  

    
// -- Rotate tripmine.  
    vector_to_angle(vNormal,vEntAngles );  
    set_pev
(i_Ent,pev_angles,vEntAngles );  

    
// -- Calculate laser end origin.  
    new Float:vBeamEnd[3], Float:vTracedBeamEnd[3];  
          
    xs_vec_mul_scalar
(vNormal8192.0vNormal );  
    xs_vec_add
vNewOriginvNormalvBeamEnd );  

    engfunc
EngFunc_TraceLinevNewOriginvBeamEndIGNORE_MONSTERS, -1);  

    get_tr2
0TR_vecPlaneNormalvNormal );  
    get_tr2
0TR_vecEndPosvTracedBeamEnd );  

    
// -- Save results to be used later.  
    set_pev(i_EntLASERMINE_OWNERid );  
    set_pev
(i_Ent,LASERMINE_BEAMENDPOINT,vTracedBeamEnd);  
    set_pev
(i_Ent,LASERMINE_TEAM,int:cs_get_user_team(id));  
    
new Float:fCurrTime get_gametime();  

    set_pev
(i_Ent,LASERMINE_POWERUPfCurrTime 2.5 );  
     
    set_pev
(i_Ent,LASERMINE_STEP,POWERUP_THINK);  
    set_pev
(i_Ent,pev_nextthinkfCurrTime 0.2 );  

    PlaySound
(i_Ent,POWERUP_SOUND );  
    g_deployed
[id]++;  
    g_havemine
[id]--;  
    DeleteTask
(id);  
    ShowAmmo
(id);  
    
return 1;  
}  

stock TeamDeployedCount
(id)  
{  
    
//new tid[32];  
      
    
static i;  
    
static CsTeams:t;cs_get_user_team(id);  
    
static cnt;cnt=0;  

    
for(1;<= g_MaxPL;i++)  
    
{  
        
if(is_user_connected(i))  
            
if(== cs_get_user_team(i))  
                cnt 
+= g_deployed[i];  
    
}  

    
return cnt;  
}  

bool
:CheckCanTeam(id)  
{  
    
new arg[5],CsTeam:num;  
    get_pcvar_string
(g_LCBT,arg,3);  
    
if(equali(arg,"T"))  
    
{  
        num 
CsTeam:CS_TEAM_T;  
    
}  
    
else if(equali(arg,"CT"))  
    
{  
        num 
CsTeam:CS_TEAM_CT;  
    
}  
    
else if(equali(arg,"ALL"))  
    
{  
        num 
CsTeam:CS_TEAM_UNASSIGNED;  
    
}      
    else  
    
{  
        num 
CsTeam:CS_TEAM_UNASSIGNED;  
    
}  
    
if(num != CsTeam:CS_TEAM_UNASSIGNED && num != CsTeam:cs_get_user_team(id))  
        
return false;  
    
return true;  
}  

bool
:CanCheck(id,mode)  
{  
    
if( !get_pcvar_numg_LENABLE ) )  
    
{  
//        client_print(id, print_chat, "%s %s",CHATTAG,STR_NOTACTIVE); 
    ColorChat(idNORMAL"^4%s ^3%s",CHATTAG,STR_NOTACTIVE); 
        client_cmd(id"spk buttons/button2.wav"); 
        return false;  
    
}  
    
if( get_pcvar_num(g_LACCESS) != 0)  
        
if(!(get_user_flags(id) & ADMIN_IMMUNITY))  
        
{  
//            client_print(id, print_chat, "%s %s",CHATTAG,STR_NOACCESS); 
        ColorChat(idNORMAL"^4%s ^3%s",CHATTAG,STR_NOACCESS);             
            
return false;  
        
}  
    
if(!pev_user_alive(id)) return false;  
#if defined BIOHAZARD_SUPPORT  
    if(is_user_zombie(id))  
    
{  
//        client_print(id, print_chat, "%s %s",CHATTAG,STR_CBT);  
    ColorChat(idNORMAL"^4%s ^3%s",CHATTAG,STR_CBT); 
        return false;  
    
}  
#endif  
    if (!CheckCanTeam(id))  
    
{  
//       client_print(id, print_chat, "%s %s",CHATTAG,STR_CBT);  
    ColorChat(idNORMAL"^4%s ^3%s",CHATTAG,STR_CBT);  
        
return false;  
    
}  
    
if( mode == 0)  
    
{  
        
if(g_havemine[id] <= 0)  
        
{  
//            client_print(id, print_chat, "%s %s",CHATTAG,STR_DONTHAVEMINE); 
        ColorChat(idNORMAL"^4%s ^3%s",CHATTAG,STR_DONTHAVEMINE); 
        client_cmd(id"spk buttons/button2.wav"); 
            return false;  
        
}  
    
}  
    
if (mode == 1)  
    
{  
        
if (get_pcvar_num(g_LBUYMODE) == 0)  
        
{  
//            client_print(id, print_chat, "%s %s",CHATTAG,STR_CANTBUY);  
        ColorChat(idNORMAL"^4%s ^3%s",CHATTAG,STR_CANTBUY); 
            return false;  
        
}  
        
if (g_havemine[id] >= get_pcvar_num(g_LAMMO))  
        
{  
//            client_print(id, print_chat, "%s %s",CHATTAG,STR_HAVEMAX);  
        ColorChat(idNORMAL"^4%s ^3%s",CHATTAG,STR_HAVEMAX); 
            return false;  
        
}  
        
if (cs_get_user_money(id) < get_pcvar_num(g_LCOST))  
        
{  
            client_print
(idprint_chat"%s %s%d %s",CHATTAGSTR_NOMONEY,get_pcvar_num(g_LCOST),STR_NEEDED);  
            
return false;  
        
}  
    
}  
    
if(!CheckTime(id))  
    
{  
//        client_print(id,print_chat, "%s %s %d %s",CHATTAG,STR_DELAY,get_pcvar_num(g_LDELAY)-g_nowtime,STR_SECONDS); 
    ColorChat(id,NORMAL"^4%s ^3%s ^1%d ^3%s",CHATTAG,STR_DELAY,get_pcvar_num(g_LDELAY)-g_nowtime,STR_SECONDS); 
        client_cmd(id"spk buttons/button2.wav"); 
        return false;  
    
}  

    
return true;  
}  

bool
:ReturnCheckid )  
{  
    
if(!CanCheck(id,-1)) return false;  
    
if(g_havemine[id] + get_pcvar_num(g_LAMMO)) return false;  
    
new tgt,body,Float:vo[3],Float:to[3];  
    get_user_aiming
(id,tgt,body);  
    
if(!pev_valid(tgt)) return false;  
    pev
(id,pev_origin,vo);  
    pev
(tgt,pev_origin,to);  
    
if(get_distance_f(vo,to) > 90.0) return false;  
      
    
new EntityName[32];  
    pev
(tgtpev_classnameEntityName31);  
    
if(!equal(EntityNameENT_CLASS_NAME)) return false;  
    
if(pev(tgt,LASERMINE_OWNER) != id) return false;  
      
    
return true;  
}  

bool
:CreateCheckid )  
{  
    
if (!CanCheck(id,0)) return false;  
    
if (g_deployed[id] >= get_pcvar_num(g_LAMMO))  
    
{  
//        client_print(id, print_chat, "%s %s",CHATTAG,STR_MAXDEPLOY);  
    ColorChat(idNORMAL"^4%s ^3%s",CHATTAG,STR_MAXDEPLOY); 
        return false;  
    
}  

    
//client_print(id,print_chat,"[Lasermine] your team deployed %d",TeamDeployedCount(id))  
    if(TeamDeployedCount(id) >= get_pcvar_num(g_LTMAX))  
    
{  
//        client_print(id, print_chat, "%s %s",CHATTAG,STR_MANYPPL);  
    ColorChat(idNORMAL"^4%s ^3%s",CHATTAG,STR_MANYPPL); 
        return false;  
    
}  
      
    
new Float:vTraceDirection[3], Float:vTraceEnd[3],Float:vOrigin[3];  
      
    pev
idpev_originvOrigin );  
    velocity_by_aim
id128vTraceDirection );  
    xs_vec_add
vTraceDirectionvOriginvTraceEnd );  
      
    engfunc
EngFunc_TraceLinevOriginvTraceEndDONT_IGNORE_MONSTERSid);  
      
    
new Float:fFraction,Float:vTraceNormal[3];  
    get_tr2
0TR_flFractionfFraction );  
      
    
// -- We hit something!  
    if ( fFraction 1.0 )  
    
{  
        
// -- Save results to be used later.  
        get_tr20TR_vecEndPosvTraceEnd );  
        get_tr2
0TR_vecPlaneNormalvTraceNormal );  

        
//get_tr2( 0, TR_pHit );  

        return true;  
    
}  

//    client_print(id, print_chat, "%s %s",CHATTAG,STR_PLANTWALL) 
    ColorChat(idNORMAL"^4%s ^3%s",CHATTAG,STR_PLANTWALL
    client_cmd(id"spk buttons/button2.wav");     
    DeleteTask
(id);  
    
// -- Did not touched something. (not solid)  
    return false;  
}  

public ltm_Thinki_Ent )  
{  
    
if ( !pev_validi_Ent ) )  
        
return FMRES_IGNORED;  
    
new EntityName[32];  
    pev
i_Entpev_classnameEntityName31);  
    
if(!get_pcvar_num(g_LENABLE)) return FMRES_IGNORED;  
    
// -- Entity is not a tripmine, ignoring the next...  
    if ( !equalEntityNameENT_CLASS_NAME ) )  
        
return FMRES_IGNORED;  

    
static Float:fCurrTime;  
    fCurrTime 
get_gametime();  

    
switch( pevi_EntLASERMINE_STEP ) )  
    
{  
        
case POWERUP_THINK :  
        
{  
            
new Float:fPowerupTime;  
            pev
i_EntLASERMINE_POWERUPfPowerupTime );  

            
if( fCurrTime fPowerupTime )  
            
{  
                set_pev
i_Entpev_solidSOLID_BBOX );  
                set_pev
i_EntLASERMINE_STEPBEAMBREAK_THINK );  

                PlaySound
i_EntACTIVATE_SOUND );  
            
}  
            
if(get_pcvar_num(g_LGLOW)!=0)  
            
{  
                
if(get_pcvar_num(g_LCLMODE)==0)  
                
{  
                    
switch (pev(i_Ent,LASERMINE_TEAM))  
                    
{  
                        
case CS_TEAM_Tset_rendering(i_Ent,kRenderFxGlowShell,255,0,20,kRenderNormal,5);  
                        
case CS_TEAM_CT:set_rendering(i_Ent,kRenderFxGlowShell,255,250,240,kRenderNormal,5);  
                    
}  
                
}else  
                
{  
                    set_rendering
(i_Ent,kRenderFxGlowShell,0,255,0,kRenderNormal,5);  
                
}  
            
}  
            set_pev
i_Entpev_nextthinkfCurrTime 0.1 );  
        
}  
        
case BEAMBREAK_THINK :  
        
{  
            
static Float:vEnd[3],Float:vOrigin[3];  
            pev
i_Entpev_originvOrigin );  
            pev
i_EntLASERMINE_BEAMENDPOINTvEnd );  

            
static iHitFloat:fFraction;  
            engfunc
EngFunc_TraceLinevOriginvEndDONT_IGNORE_MONSTERSi_Ent);  

            get_tr2
0TR_flFractionfFraction );  
            iHit 
get_tr20TR_pHit );  

            
// -- Something has passed the laser.  
            if ( fFraction 1.0 )  
            
{  
                
// -- Ignoring others tripmines entity.  
                if(pev_valid(iHit))  
                
{  
                    pev
iHitpev_classnameEntityName31 );  
      
                    
if( !equalEntityNameENT_CLASS_NAME ) )  
                    
{  
                        set_pev
i_Entpev_enemyiHit );  
                        
if(get_pcvar_num(g_LMODE) == MODE_LASERMINE)  
                            CreateLaserDamage
(i_Ent,iHit);  
                        else  
                            
if(get_pcvar_num(g_LFF) || CsTeams:pev(i_Ent,LASERMINE_TEAM) != cs_get_user_team(iHit))  
                                set_pev
i_EntLASERMINE_STEPEXPLOSE_THINK );  
                  
                        set_pev
i_Entpev_nextthinkfCurrTime random_float0.10.3 ) );  
                    
}  
                
}  
            
}  
            
if(get_pcvar_num(g_LDMGMODE)!=0)  
                
if(pev(i_Ent,LASERMINE_HITING) != iHit)  
                    set_pev
(i_Ent,LASERMINE_HITING,iHit);  
   
            
// -- Tripmine is still there.  
            if ( pev_validi_Ent ))  
            
{  
                
static Float:fHealth;  
                pev
i_Entpev_healthfHealth );  

                
if( fHealth <= 0.0 || (pev(i_Ent,pev_flags) & FL_KILLME))  
                
{  
                    set_pev
i_EntLASERMINE_STEPEXPLOSE_THINK );  
                    set_pev
i_Entpev_nextthinkfCurrTime random_float0.10.3 ) );  
                
}  
                      
                
static Float:fBeamthink;  
                pev
i_EntLASERMINE_BEAMTHINKfBeamthink );  
                      
                
if( fBeamthink fCurrTime && get_pcvar_num(g_LVISIBLE))  
                
{  
                    DrawLaser
(i_EntvOriginvEnd );  
                    set_pev
i_EntLASERMINE_BEAMTHINKfCurrTime 0.1 );  
                
}  
                set_pev
i_Entpev_nextthinkfCurrTime 0.01 );  
            
}  
        
}  
        
case EXPLOSE_THINK :  
        
{  
            
// -- Stopping entity to think  
            set_pevi_Entpev_nextthink0.0 );  
            PlaySound
i_EntSTOP_SOUND );  
            g_deployed
[pev(i_Ent,LASERMINE_OWNER)]--;  
            CreateExplosion
i_Ent );  
            CreateDamage
(i_Ent,get_pcvar_float(g_LRDMG),get_pcvar_float(g_LRADIUS))  
            RemoveEntity   
i_Ent );  
        
}  
    
}  

    
return FMRES_IGNORED;  
}  

PlaySound
i_Enti_SoundType )  
{  
    
switch ( i_SoundType )  
    
{  
        
case POWERUP_SOUND :  
        
{  
            emit_sound
i_EntCHAN_VOICEENT_SOUND1VOL_NORMATTN_NORM0PITCH_NORM );  
            emit_sound
i_EntCHAN_BODY ENT_SOUND20.2ATTN_NORM0PITCH_NORM );  
        
}  
        
case ACTIVATE_SOUND :  
        
{  
            emit_sound
i_EntCHAN_VOICEENT_SOUND30.5ATTN_NORM175 );  
        
}  
        
case STOP_SOUND :  
        
{  
            emit_sound
i_EntCHAN_BODY ENT_SOUND20.2ATTN_NORMSND_STOPPITCH_NORM );  
            emit_sound
i_EntCHAN_VOICEENT_SOUND30.5ATTN_NORMSND_STOP75 );  
        
}  
    
}  
}  

DrawLaser
(i_Ent, const Float:v_Origin[3], const Float:v_EndOrigin[3] )  
{  
    
new tcolor[3];  
    
new teamid pev(i_EntLASERMINE_TEAM);  
    
if(get_pcvar_num(g_LCLMODE) == 0)  
    
{  
        
switch(teamid){  
            
case 1:{  
                tcolor
[0] = 255;  
                tcolor
[1] = 20;  
                tcolor
[2] = 0;  
            
}  
            
case 2:{  
                tcolor
[0] = 255;  
                tcolor
[1] = 250;  
                tcolor
[2] = 240;  
            
}  
        
}  
    
}else  
    
{  
        tcolor
[0] = 0;  
        tcolor
[1] = 255;  
        tcolor
[2] = 0;  
    
}  
    message_begin
(MSG_BROADCAST,SVC_TEMPENTITY);  
    write_byte
(TE_BEAMPOINTS);  
    engfunc
(EngFunc_WriteCoord,v_Origin[0]);  
    engfunc
(EngFunc_WriteCoord,v_Origin[1]);  
    engfunc
(EngFunc_WriteCoord,v_Origin[2]);  
    engfunc
(EngFunc_WriteCoord,v_EndOrigin[0]); //Random  
    engfunc(EngFunc_WriteCoord,v_EndOrigin[1]); //Random  
    engfunc(EngFunc_WriteCoord,v_EndOrigin[2]); //Random  
    write_short(beam);  
    write_byte
(0);  
    write_byte
(0);  
    write_byte
(1);    //Life  
    write_byte(5);    //Width  
    write_byte(0);    //wave  
    write_byte(tcolor[0]); // r  
    write_byte(tcolor[1]); // g  
    write_byte(tcolor[2]); // b  
    write_byte(get_pcvar_num(g_LCBRIGHT));  
    write_byte
(255);  
    message_end
();  
}  
/*  
CreateDamage(iCurrent,DmgMAX,Float:Radius)  
{  
    new AtkID = pev(iCurrent,LASERMINE_OWNER)// entity_get_int(iCurrent,LASERMINE_OWNER)  
    new TeamID= pev(iCurrent,LASERMINE_TEAM) //entity_get_int(iCurrent,LASERMINE_INT_TEAM)  
    new Player = -1;  
    new Float:distance,dmg;  
    new Float:tOrigin[3];  
    new Float:vOrigin[3];  
    new iHitHP,iHitTeam;  
    pev(iCurrent,pev_origin,vOrigin);  
    while((Player = engfunc(EngFunc_FindEntityInSphere, Player, vOrigin, Radius)) != 0)  
    {  
        if(is_user_alive(Player))  
        {  
            pev(Player,pev_origin,tOrigin)  
            distance = get_distance_f(vOrigin, tOrigin)  
            dmg = floatround(DmgMAX - ((DmgMAX / Radius) * distance))  
            iHitHP = pev_user_health(Player) - dmg  
            iHitTeam = int:bio_get_user_team(Player)  
            if(iHitHP <= 0)  
            {  
                if(iHitTeam != TeamID)  
                {  
                    cs_set_user_money(AtkID,cs_get_user_money(AtkID) + get_pcvar_num(g_LFMONEY))  
                    set_score(AtkID,Player,1,iHitHP)  
                }else  
                {  
                    if(get_pcvar_num(g_LFF))  
                    {  
                        cs_set_user_money(AtkID,cs_get_user_money(AtkID) - get_pcvar_num(g_LFMONEY))  
                        set_score(AtkID,Player,-1,iHitHP)  
                    }  
                }  
            }else  
            {  
                if(iHitTeam != TeamID || get_pcvar_num(g_LFF))  
                {  
                    //set_pev(Player,pev_health,iHitHP)  
                    set_user_health(Player, iHitHP)  
                    message_begin(MSG_ONE_UNRELIABLE, g_msgDamage, {0,0,0}, Player)   
                    write_byte(dmg)  
                    write_byte(dmg)  
                    write_long(DMG_BULLET)  
                    engfunc(EngFunc_WriteCoord,vOrigin[0])  
                    engfunc(EngFunc_WriteCoord,vOrigin[1])  
                    engfunc(EngFunc_WriteCoord,vOrigin[2])  
                    message_end()  
                }  
            }  
        }  
        Player =  engfunc(EngFunc_FindEntityInSphere,Player,vOrigin,Radius)  
    }  
    return PLUGIN_CONTINUE  
}  
*/
  
CreateDamage
(iCurrent,Float:DmgMAX,Float:Radius)  
{  
    
// Get given parameters  
      
    
new Float:vecSrc[3];  
    pev
(iCurrentpev_originvecSrc);  

    
new AtkID =pev(iCurrent,LASERMINE_OWNER);  
    
new TeamID=pev(iCurrent,LASERMINE_TEAM);  

    
new ent = -1;  
    
new Float:tmpdmg DmgMAX;  

    
new Float:kickback 0.0;  
      
    
// Needed for doing some nice calculations :P  
    new Float:Tabsmin[3], Float:Tabsmax[3];  
    
new Float:vecSpot[3];  
    
new Float:Aabsmin[3], Float:Aabsmax[3];  
    
new Float:vecSee[3];  
    
new trRes;  
    
new Float:flFraction;  
    
new Float:vecEndPos[3];  
    
new Float:distance;  
    
new Float:origin[3], Float:vecPush[3];  
    
new Float:invlen;  
    
new Float:velocity[3];  
    
new iHitHP,iHitTeam;  
    
// Calculate falloff  
    new Float:falloff;  
    
if (Radius 0.0)  
    
{  
        falloff 
DmgMAX Radius;  
    
} else {  
        falloff 
1.0;  
    
}  
      
    
// Find monsters and players inside a specifiec radius  
    while((ent engfunc(EngFunc_FindEntityInSphereentvecSrcRadius)) != 0)  
    
{  
        
if(!pev_valid(ent)) continue;  
        
if(!(pev(entpev_flags) & (FL_CLIENT FL_FAKECLIENT)))  
        
{  
            
// Entity is not a player or monster, ignore it  
            continue;  
        
}  
        
if(!pev_user_alive(ent)) continue;  
        
// Reset data  
        kickback 1.0;  
        tmpdmg 
DmgMAX;  
          
        
// The following calculations are provided by Orangutanz, THANKS!  
        // We use absmin and absmax for the most accurate information  
        pev(entpev_absminTabsmin);  
        pev
(entpev_absmaxTabsmax);  
        xs_vec_add
(Tabsmin,Tabsmax,Tabsmin);  
        xs_vec_mul_scalar
(Tabsmin,0.5,vecSpot);  
          
        pev
(iCurrentpev_absminAabsmin);  
        pev
(iCurrentpev_absmaxAabsmax);  
        xs_vec_add
(Aabsmin,Aabsmax,Aabsmin);  
        xs_vec_mul_scalar
(Aabsmin,0.5,vecSee);  
          
        engfunc
(EngFunc_TraceLinevecSeevecSpot0iCurrenttrRes);  
        get_tr2
(trResTR_flFractionflFraction);  
        
// Explosion can 'see' this entity, so hurt them! (or impact through objects has been enabled xD)  
        if (flFraction >= 0.9 || get_tr2(trResTR_pHit) == ent)  
        
{  
            
// Work out the distance between impact and entity  
            get_tr2(trResTR_vecEndPosvecEndPos);  
              
            distance 
get_distance_f(vecSrcvecEndPos) * falloff;  
            tmpdmg 
-= distance;  
            
if(tmpdmg 0.0)  
                tmpdmg 
0.0;  
              
            
// Kickback Effect  
            if(kickback != 0.0)  
            
{  
                xs_vec_sub
(vecSpot,vecSee,origin);  
                  
                invlen 
1.0/get_distance_f(vecSpotvecSee);  

                xs_vec_mul_scalar
(origin,invlen,vecPush);  
                pev
(entpev_velocityvelocity)  
                xs_vec_mul_scalar
(vecPush,tmpdmg,vecPush);  
                xs_vec_mul_scalar
(vecPush,kickback,vecPush);  
                xs_vec_add
(velocity,vecPush,velocity);  
                  
                
if(tmpdmg 60.0)  
                
{  
                    xs_vec_mul_scalar
(velocity,12.0,velocity);  
                
} else {  
                    xs_vec_mul_scalar
(velocity,4.0,velocity);  
                
}  
                  
                
if(velocity[0] != 0.0 || velocity[1] != 0.0 || velocity[2] != 0.0)  
                
{  
                    
// There's some movement todo :)  
                    set_pev(entpev_velocityvelocity)  
                
}  
            
}  

            iHitHP 
pev_user_health(ent) - floatround(tmpdmg)  
            iHitTeam 
int:cs_get_user_team(ent)  
            
if(iHitHP <= 0)  
            
{  
                
if(iHitTeam != TeamID)  
                
{  
                    cs_set_user_money
(AtkID,cs_get_user_money(AtkID) + get_pcvar_num(g_LFMONEY))  
                    set_score
(AtkID,ent,1,iHitHP)  
                
}else  
                
{  
                    
if(get_pcvar_num(g_LFF))  
                    
{  
                        cs_set_user_money
(AtkID,cs_get_user_money(AtkID) - get_pcvar_num(g_LFMONEY))  
                        set_score
(AtkID,ent,-1,iHitHP)  
                    
}  
                
}  
            
}else  
            
{  
                
if(iHitTeam != TeamID || get_pcvar_num(g_LFF))  
                
{  
                    
//set_pev(Player,pev_health,iHitHP)  
                    set_user_health(entiHitHP)  
                    engfunc
(EngFunc_MessageBegin,MSG_ONE_UNRELIABLE,g_msgDamage,{0.0,0.0,0.0},ent);  
                    write_byte
(floatround(tmpdmg))  
                    write_byte
(floatround(tmpdmg))  
                    write_long
(DMG_BULLET)  
                    engfunc
(EngFunc_WriteCoord,vecSrc[0])  
                    engfunc
(EngFunc_WriteCoord,vecSrc[1])  
                    engfunc
(EngFunc_WriteCoord,vecSrc[2])  
                    message_end
()  
                
}  
            
}      
        
}  
    
}  
      
    return  
}  

bool
:pev_user_alive(ent)  
{  
    
new deadflag pev(ent,pev_deadflag);  
    
if(deadflag != DEAD_NO)  
        
return false;  
    
return true;  
}  

CreateExplosion
(iCurrent)  
{  
      
    
new Float:vOrigin[3];  
    pev
(iCurrent,pev_origin,vOrigin);  

    message_begin
(MSG_BROADCASTSVC_TEMPENTITY);  
    write_byte
(99); //99 = KillBeam  
    write_short(iCurrent);  
    message_end
();  

    engfunc
(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYvOrigin0);  
    write_byte
(TE_EXPLOSION);  
    engfunc
(EngFunc_WriteCoord,vOrigin[0]);  
    engfunc
(EngFunc_WriteCoord,vOrigin[1]);  
    engfunc
(EngFunc_WriteCoord,vOrigin[2]);  
    write_short
(boom);  
    write_byte
(30);  
    write_byte
(15);  
    write_byte
(0);  
    message_end
();  
}  

CreateLaserDamage
(iCurrent,isHit)  
{  
        
if(isHit ) return PLUGIN_CONTINUE  
        
switch(get_pcvar_num(g_LDMGMODE))  
        
{  
                
case 1:  
                
{  
                        
if(pev(iCurrent,LASERMINE_HITING) == isHit)  
                                
return PLUGIN_CONTINUE  
                
}  
                
case 2:  
                
{  
                        
if(pev(iCurrent,LASERMINE_HITING) == isHit)  
                        
{  
                                
static Float:cnt  
                                
static now,htime;now floatround(get_gametime())  
   
                                pev
(iCurrent,LASERMINE_COUNT,cnt)  
                                htime 
floatround(cnt)  
                                
if(now htime get_pcvar_num(g_LDSEC))  
                                
{  
                                        
return PLUGIN_CONTINUE;  
                                
}else{  
                                        set_pev
(iCurrent,LASERMINE_COUNT,get_gametime())  
                                
}  
                        
}else  
                        
{  
                                set_pev
(iCurrent,LASERMINE_COUNT,get_gametime())  
                        
}  
                
}  
        
}  
   
        
new Float:vOrigin[3],Float:vEnd[3]  
        pev
(iCurrent,pev_origin,vOrigin)  
        pev
(iCurrent,pev_vuser1,vEnd)  
   
        
new teamid pev(iCurrentLASERMINE_TEAM)  
   
        
new szClassName[32]  
        
new Alive,God  
        
new iHitTeam,iHitHP,id  
        
new hitscore  
   
         
        szClassName
[0] = '^0'  
        pev
(isHit,pev_classname,szClassName,32)  
         
        
if((pev(isHitpev_flags) & (FL_CLIENT FL_FAKECLIENT)) && !equal(szClassNameENT_CLASS_NAME))  
        
{  
                Alive 
pev_user_alive(isHit)  
                God 
get_user_godmode(isHit)  
                
if(!Alive || God) return PLUGIN_CONTINUE  
                           
                iHitTeam 
int:cs_get_user_team(isHit)  
                iHitHP 
pev_user_health(isHit) - get_pcvar_num(g_LDMG)  
                id 
pev(iCurrent,LASERMINE_OWNER)//, szNetName[32]  
                if(iHitHP <= 0)  
                
{  
                        
if(iHitTeam != teamid)  
                        
{  
                                client_cmd
(isHit"spk %s"ENT_SOUND4)  
                                hitscore 
1  
                                cs_set_user_money
(id,cs_get_user_money(id) + get_pcvar_num(g_LFMONEY))  
                                set_score
(id,isHit,hitscore,iHitHP)  
                        
}else  
                        
{  
                                
if(get_pcvar_num(g_LFF))  
                                
{  
                                        client_cmd
(isHit"spk %s"ENT_SOUND4)  
                                        hitscore 
= -1                                                                    
                                        cs_set_user_money
(id,cs_get_user_money(id) - get_pcvar_num(g_LFMONEY))  
                                        set_score
(id,isHit,hitscore,iHitHP)  
                                
}  
                        
}  
                
}else if(iHitTeam != teamid || get_pcvar_num(g_LFF))  
                
{  
                        client_cmd
(isHit"spk %s"ENT_SOUND4)  
                        set_user_health
(isHit,iHitHP)  
                        set_pev
(iCurrent,LASERMINE_HITING,isHit);  
                         
                        engfunc
(EngFunc_MessageBegin,MSG_ONE_UNRELIABLE,g_msgDamage,{0.0,0.0,0.0},isHit);  
                        write_byte
(get_pcvar_num(g_LDMG))  
                        write_byte
(get_pcvar_num(g_LDMG))  
                        write_long
(DMG_BULLET)  
                        engfunc
(EngFunc_WriteCoord,vOrigin[0])  
                        engfunc
(EngFunc_WriteCoord,vOrigin[1])  
                        engfunc
(EngFunc_WriteCoord,vOrigin[2])  
                        message_end
()  
                
}  
        
}else if(equal(szClassNameENT_CLASS_NAME3))  
        
{  
                
new hl;  
                hl 
pev_user_health(isHit);  
                set_user_health
(isHit,hl-get_pcvar_num(g_LDMG));  
        
}  
        
return PLUGIN_CONTINUE  
}  

stock pev_user_health
(id)  
{  
    
new Float:health  
    pev
(id,pev_health,health)  
    
return floatround(health)  
}  

stock set_user_health
(id,health)  
{  
    health 
set_pev(idpev_healthfloat(health)) : dllfunc(DLLFunc_ClientKillid);  
}  

stock get_user_godmode
(index) {  
    
new Float:val  
    pev
(indexpev_takedamageval)  

    
return (val == DAMAGE_NO)  
}  

stock set_user_frags
(indexfrags)  
{  
    set_pev
(indexpev_fragsfloat(frags))  

    
return 1  
}  

stock pev_user_frags
(index)  
{  
    
new Float:frags;  
    pev
(index,pev_frags,frags);  
    
return floatround(frags);  
}  

set_score
(id,target,hitscore,HP){  

    
new idfrags pev_user_frags(id) + hitscore// get_user_frags(id) + hitscore      
    set_user_frags(id,idfrags)  
    
//set_user_frags(id, idfrags)  
    //entity_set_float(id, EV_FL_frags, float(idfrags))  
      
    
new tarfrags pev_user_frags(target) + //get_user_frags(target) + 1  
    set_user_frags(target,tarfrags)  
    
//set_user_frags(target,tarfrags)  
    //entity_set_float(target, EV_FL_frags, float(tarfrags))  
      
    
new idteam int:cs_get_user_team(id)  
    
new iddeaths cs_get_user_deaths(id)  


    message_begin
(MSG_BROADCASTg_msgDeathMsg, {000} ,0)  
    write_byte
(id)  
    write_byte
(target)  
    write_byte
(0)  
    write_string
(ENT_CLASS_NAME)  
    message_end
()  

    message_begin
(MSG_BROADCASTg_msgScoreInfo)  
    write_byte
(id)  
    write_short
(idfrags)  
    write_short
(iddeaths)  
    write_short
(0)  
    write_short
(idteam)  
    message_end
()  

    set_msg_block
(g_msgDeathMsgBLOCK_ONCE)  

    
//entity_set_float(target, EV_FL_health,float(HP))  
    set_user_health(targetHP)  
    
//set_pev(target,pev_health,HP)  

}  

public BuyLasermine(id)  
{      
    
if( !CanCheck(id,1) ) return PLUGIN_CONTINUE  
    cs_set_user_money
(id,cs_get_user_money(id) - get_pcvar_num(g_LCOST))  
    g_havemine
[id]++;  
//    client_print(id, print_chat, "%s %s",CHATTAG,STR_BOUGHT)  
    ColorChat(idNORMAL"^4%s ^3%s",CHATTAG,STR_BOUGHT)  
    emit_sound
(idCHAN_ITEMENT_SOUND5VOL_NORMATTN_NORM0PITCH_NORM)  
    ShowAmmo
(id)  
    
return PLUGIN_HANDLED  
}  

ShowAmmo
(id)  
{   
    
new ammo[51]   
    formatex
(ammo50"%s %i/%i",STR_STATEg_havemine[id],get_pcvar_num(g_LAMMO))  

    message_begin
(MSG_ONE_UNRELIABLEg_msgStatusText, {0,0,0}, id)   
    write_byte
(0)   
    write_string
(ammo)   
    message_end
()   
}   

public showInfo(id)  
{  
    client_print
(idprint_chatSTR_REF
}
  

public say_lasermine(id){  
    
new said[32]  
    read_argv
(1,said,31);  
    
if( !get_pcvar_numg_LENABLE )  ){  
//        client_print(id, print_chat, "%s Lasermines are not currently active.",CHATTAG)  
        return PLUGIN_CONTINUE  
    
}  
      
    
if (equali(said,"/buy lasermine")||equali(said,"/lm")){  
        BuyLasermine
(id)  
    
}else if (equali(said"lasermine") || equali(said"/lasermine")){  
        
const SIZE 1024  
        
new msg[SIZE+1],len 0;  
        len 
+= formatex(msg[len], SIZE len"<html><body>")  
        len 
+= formatex(msg[len], SIZE len"<p><b>LaserMine</b></p><br/><br/>")  
        len 
+= formatex(msg[len], SIZE len"<p>You can be setting the mine on the wall.</p><br/>")  
        len 
+= formatex(msg[len], SIZE len"<p>That laser will give what touched it damage.</p><br/><br/>")  
        len 
+= formatex(msg[len], SIZE len"<p><b>LaserMine Commands</b></p><br/><br/>")  
        len 
+= formatex(msg[len], SIZE len"<p><b>Say /buy lasermine</b> or <b>Say /lm</b> //buying lasermine<br/>")  
        len 
+= formatex(msg[len], SIZE len"<b>buy_lasermine</b> //bind ^"F2^" buy_lasermine : using F2 buying lasermine<br/>")  
        len 
+= formatex(msg[len], SIZE len"<b>+setlaser</b> //bind mouse3 +setlaser : using mouse3 set lasermine on wall<br/>")  
        len 
+= formatex(msg[len], SIZE len"</body></html>")  
        show_motd
(idmsg"Lasermine Entity help")  
        
return PLUGIN_CONTINUE  
    
}  
    
else if (containi(said"laser") != -1) {  
        showInfo
(id)  
        
return PLUGIN_CONTINUE  
    
}  
    
return PLUGIN_CONTINUE  
}  

public standing(id)   
{  
    
if (!g_settinglaser[id])  
        
return PLUGIN_CONTINUE  

    set_pev
(idpev_maxspeed1.0)  
//    ShowAmmo(id)  

    return PLUGIN_CONTINUE  
}  

public ltm_PostThink(id)   
{  
    
if (!g_settinglaser[id] && plsetting[id]){  
        resetspeed
(id)  
    
}  
    
else if (g_settinglaser[id] && !plsetting[id]) {  
        pev
(idpev_maxspeed,plspeed[id])  
        set_pev
(idpev_maxspeed1.0)  
    
}  
    plsetting
[id] = g_settinglaser[id]  
    
return FMRES_IGNORED  
}  

public ltm_PreThink(id)  
{  
    
if (!pev_user_alive(id) || g_settinglaser[id] == true || is_user_bot(id) || get_pcvar_num(g_LCMDMODE) == 1)  
        
return FMRES_IGNORED;  

    
if(pev(idpev_button ) & IN_USE && !(pev(idpev_oldbuttons ) & IN_USE ))  
        
//client_print(id,print_chat,"test");  
        CreateLaserMine_Progress(id)  
    
return FMRES_IGNORED;  
}  

resetspeed
(id)  
{  
    set_pev
(idpev_maxspeedplspeed[id])  
}  

public client_putinserver(id){  
    g_deployed
[id] = 0;  
    g_havemine
[id] = 0;  
    DeleteTask
(id);  
    
return PLUGIN_CONTINUE  
}  

public endround(id)
{
    if(!
get_pcvar_num(g_LENABLE))
        return 
PLUGIN_CONTINUE

    
// ???????? ??? ????? ????? ??????
    
DeleteTask(id);
    
RemoveAllTripmines(id);

    return 
PLUGIN_CONTINUE
}

public 
client_disconnect(id){  
    
if(!get_pcvar_numg_LENABLE ))  
        
return PLUGIN_CONTINUE  
    DeleteTask
(id);  
    RemoveAllTripmines
(id);  
    
return PLUGIN_CONTINUE  
}  


public newround(id){  
    
if(!get_pcvar_numg_LENABLE ))  
        
return PLUGIN_CONTINUE  
    pev
(idpev_maxspeed,plspeed[id])  
    DeleteTask
(id);  
    RemoveAllTripmines
(id);  
    delaycount
(id);  
    SetStartAmmo
(id);  
    
return PLUGIN_CONTINUE  
}  

public DeathEvent(){  
    
if(!get_pcvar_numg_LENABLE ))  
        
return PLUGIN_CONTINUE  

    
new id read_data(2)  
    
if(is_user_connected(id)) DeleteTask(id);  
    
return PLUGIN_CONTINUE  
}  

public zp_user_infected_post(id) {
    if(!
get_pcvar_num(g_LENABLE))
        return 
PLUGIN_CONTINUE
        
    DeleteTask
(id);
    
RemoveAllTripmines(id);
    
SetStartAmmo(id);

    return 
PLUGIN_CONTINUE
}

public 
RemoveAllTripminesi_Owner )  
{  
    
new iEnt g_MaxPL 1;  
    
new clsname[32];  
    
while( ( iEnt engfuncEngFunc_FindEntityByStringiEnt"classname"ENT_CLASS_NAME ) ) )  
    
{  
        
if ( i_Owner )  
        
{  
            
if( peviEntLASERMINE_OWNER ) != i_Owner )  
                
continue;  
            clsname
[0] = '^0'  
            pev
iEntpev_classnameclsnamesizeof(clsname)-);  
                  
            
if ( equaliclsnameENT_CLASS_NAME ) )  
            
{  
                PlaySound
iEntSTOP_SOUND );  
                RemoveEntity
iEnt );  
            
}  
        
}  
        else  
            set_pev
iEntpev_flagsFL_KILLME );  
    
}  
    g_deployed
[i_Owner]=0;  
}  

SetStartAmmo
(id)  
{  
    
new stammo get_pcvar_num(g_LSTAMMO);  
    
if(stammo <= 0) return PLUGIN_CONTINUE;  
    g_havemine
[id] = (g_havemine[id] <= stammo) ? stammo g_havemine[id];  
    
return PLUGIN_CONTINUE;  
}  

public CutDeploy_onDamage(id)  
{  
    
if(get_user_health(id) < 1)  
        DeleteTask
(id);  
}  

#if defined BIOHAZARD_SUPPORT  
public event_infect2(id)  
{  
//    DeleteTask(id);  
    return PLUGIN_CONTINUE  
}  
#endif  

DeleteTask(id)  
{  
    
if (task_exists((TASK_PLANT id)))  
    
{  
        remove_task
((TASK_PLANT id))  
    
}  
    
if (task_exists((TASK_RELEASE id)))  
    
{  
        remove_task
((TASK_RELEASE id))  
    
}  
    g_settinglaser
[id] = false  
    
return PLUGIN_CONTINUE;  
}  

stock set_rendering
(entityfx kRenderFxNone255255255render kRenderNormalamount 16)  
{  
    
static Float:RenderColor[3];  
    RenderColor
[0] = float(r);  
    RenderColor
[1] = float(g);  
    RenderColor
[2] = float(b);  

    set_pev
(entitypev_renderfxfx);  
    set_pev
(entitypev_rendercolorRenderColor);  
    set_pev
(entitypev_rendermoderender);  
    set_pev
(entitypev_renderamtfloat(amount));  

    
return 1  
}  

// Gets offset data  
get_offset_value(idtype)  
{  
    
new key = -1;  
    
switch(type)  
    
{  
        
case OFFSET_TEAMkey OFFSET_TEAM;  
        
case OFFSET_MONEY:  
        
{  
#if defined UL_MONEY_SUPPORT  
            return cs_get_user_money_ul(id);  
#else  
            key OFFSET_MONEY;  
#endif  
        }  
        
case OFFSET_DEATHkey OFFSET_DEATH;  
    
}  
      
    
if(key != -1)  
    
{  
        
if(is_amd64_server()) key += 25;  
        
return get_pdata_int(idkey);  
    
}  
      
    
return -1;  
}  

public fw_TraceLineFloat:fStart[3] , Float:fEnd[3] , Conditions id iTrace )  
{  
    
static entszClassName[33], szPlayerName[32], playerid

    
if( pev_valid( ( ent get_tr2iTrace TR_pHit ) ) ) )  
    
{  
        pev
(entpev_classnameszClassNameszClassName,32

        if(
equal(szClassNameENT_CLASS_NAME))  
        

            
playerid pev(entLASERMINE_OWNER
            
get_user_name(playeridszPlayerName31

            if(
cs_get_user_team(playerid) == CS_TEAM_T) {
            
set_hudmessage(240255255, -1.00.8200.10.10.10.1);  
            show_hudmessage
(id"Sahibi: %s"szPlayerName);
            } 
            if(
cs_get_user_team(playerid) == CS_TEAM_CT) {
            
set_hudmessage(240255255, -1.00.8200.10.10.10.1);  
            show_hudmessage
(id"Sahibi: %s"szPlayerName);
            } 
        }
    }
}

// Sets offset data  
set_offset_value(idtypevalue)  
{  
    
new key = -1;  
    
switch(type)  
    
{  
        
case OFFSET_TEAMkey OFFSET_TEAM;  
        
case OFFSET_MONEY:  
        
{  
#if defined UL_MONEY_SUPPORT  
            return cs_set_user_money_ul(idvalue);  
#else  
            key OFFSET_MONEY;  
              
            
// Send Money message to update player's HUD  
            message_begin(MSG_ONE_UNRELIABLEg_msgMoney, {0,0,0}, id);  
            write_long
(value);  
            write_byte
(1);    // Flash (difference between new and old money)  
            message_end();  
#endif  
        }  
        
case OFFSET_DEATHkey OFFSET_DEATH;  
    
}  
      
    
if(key != -1)  
    
{  
        
if(is_amd64_server()) key += 25;  
        set_pdata_int
(idkeyvalue);  
    
}  
      
    
return PLUGIN_CONTINUE;  
}  
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1254\\ deff0\\ deflang1055{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1254\\ deff0\\ deflang1055{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1254\\ deff0\\ deflang1055{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/ 

KONU GÜNCELLL
Son Düzenleme: 13-10-2025, 08:12, Düzenleyen: STAR FORGER.
#9
çalışmıyor hocam bu eklenti

(16-10-2025, 13:59)Lynchk Adlı Kullanıcıdan Alıntı: https://www.webailesi.com/konu-lazer-plu...tegi-29892
oyt kurdum eklenti 1 hata vermedi ama oyun içeirsinde aktif değil çalışmıyor cvar komutyla denedim bilinmyen kod diyor görmüyor şuan
Son Düzenleme: 17-10-2025, 01:13, Düzenleyen: STAR FORGER.
#10
Sunucuya kuruluyken eklenti listesini atın.
https://www.webailesi.com/konu-sunucudaki-calisan-calismayan-eklenti-listesi-21786
Steam:Tıkla • Discord: lynchk

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task