UWAGA
W związku z upgrade'em Forum Wiaderko do vB 4.x ewentualne błędy i nieprawidłowości proszę zgłaszać w tym temacie
Serwery Counter Strike 1.6 wiaderko.com

HashJama [TP] 193.33.176.148:27015 status serwera HashJama [TP] połącz

HashJama [FFA] 193.33.176.188:27015status serwera HashJama [FFA] połącz

HashJama [DM] 193.33.176.53:27015status serwera HashJama [DM] połącz

HashJama [Aim Hs] 193.33.176.15:27015status serwera HashJama [Aim Hs] połącz

HashJama [Flags] 193.33.176.111:27015status serwera HashJama  [Flags] połącz

HashJama [AWP/HG DM] 193.33.176.50:27015status serwera HashJama [AWP/HG DM] 193.33.176.50:27015 połącz

HashJama [TP #2] 193.33.176.54:27015status serwera HashJama [TP #2] 193.33.176.54:27015 połącz

wiaderko.com [Ventrilo] v1.svoice.pl:6416status serwera wiaderko.com [Ventrilo]

SPONSOR:
pukawka.pl

Wątek: Zombi MOD PROBLEM Zombi moga robic lasery i miny wybuchaja jak ktos w nie walnie odrazu

Pokaż wyniki od 1 do 1 z 1
  1. #1 Zombi MOD PROBLEM Zombi moga robic lasery i miny wybuchaja jak ktos w nie walnie odrazu 
    Lamka
    Dołączył
    Feb 2008
    Posty
    8
    To tak prosze aby ktos mi pomogl przerobic tego skrypta aby zombi nie moglo podkladac min i rowniez aby miny wybuchaly np po 10 strzalach a nie po 1 jak sie w nie walnie bede wdzieczny








    Kod:
    /* Plugin generated by AMXX-Studio */
    //#define BIOHAZARD_SUPPORT
    //#define UL_MONEY_SUPPORT
    
    #include <amxmodx>
    #include <fakemeta>
    #include <xs>
    
    #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"
    #define VERSION "+1.4"
    #else
    #define PLUGIN "Laser/Tripmine Entity"
    #define VERSION "2.3"
    #endif
    #define AUTHOR "SandStriker"
    
    #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 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/v_tripmine.mdl",
    ENT_SOUND1[] = "weapons/mine_deploy.wav",
    ENT_SOUND2[] = "weapons/mine_charge.wav",
    ENT_SOUND3[] = "weapons/mine_activate.wav",
    ENT_SOUND4[] = "debris/beamstart9.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[] = "[BioLaser]",
    #else
    CHATTAG[] = "[Lasermine]",
    #endif
    //STR_MINEDETNATED[] = "Your mine has detonated.",
    //STR_MINEDETNATED2[] = "detonated your mine.",
    STR_NOTACTIVE[] = "Lasermines are not currently active.",
    STR_DONTHAVEMINE[] = "Nie posiadasz miny laserowej.",
    //STR_CANTDEPLOY[] = "Your team can't deploying lasermine!",
    STR_MAXDEPLOY[] = "Polozyles limit laserow.",
    STR_MANYPPL[] = "Too many ppl on your team...",
    STR_PLANTWALL[] = "Mine musisz zamontowac na scianie!",
    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[] = "Can't buying this server.",
    STR_HAVEMAX[] = "You have a maximum lasermine.",
    STR_NOMONEY[] = "You don't have enough money to buy a lasermine! ($",
    STR_NEEDED[] = "needed)",
    STR_DELAY[] = "You can buying and deploying lasermine in after",
    STR_SECONDS[] = "seconds.",
    STR_BOUGHT[] = "You have successfully bought a lasermine.",
    STR_STATE[] = "LaserMines Ammo:",
    STR_NOACCESS[] = "You can't access, this command.";
    
    new g_EntMine;
    new beam, boom
    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(PLUGIN, VERSION, AUTHOR);
    
    // Add your code here...
    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");
    
    #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","2");
    g_LDMG = register_cvar("bio_ltm_dmg","2"); //laser hit dmg
    g_LCOST = register_cvar("bio_ltm_cost","0");
    g_LFMONEY = register_cvar("bio_ltm_fragmoney","300");
    g_LHEALTH = register_cvar("bio_ltm_health","5000");
    g_LTMAX = register_cvar("bio_ltm_teammax","15");
    g_LRADIUS = register_cvar("bio_ltm_radius","320.0");
    g_LRDMG = register_cvar("bio_ltm_rdmg","2"); //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","3");
    //g_LTHINK = register_cvar("bio_ltm_think","0.01");
    g_LVISIBLE = register_cvar("bio_ltm_line","1");
    g_LGLOW = register_cvar("bio_ltm_glow","0");
    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","1");
    g_LCMDMODE = register_cvar("bio_ltm_cmdmode","0"); //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","2"); //laser hit dmg
    g_LCOST = register_cvar("amx_ltm_cost","0");
    g_LFMONEY = register_cvar("amx_ltm_fragmoney","300");
    g_LHEALTH = register_cvar("amx_ltm_health","5000");
    g_LTMAX = register_cvar("amx_ltm_teammax","15");
    g_LRADIUS = register_cvar("amx_ltm_radius","320.0");
    g_LRDMG = register_cvar("amx_ltm_rdmg","2"); //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","3");
    //g_LTHINK = register_cvar("amx_ltm_think","0.01")
    g_LVISIBLE = register_cvar("amx_ltm_line","1");
    g_LGLOW = register_cvar("amx_ltm_glow","0");
    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","1");
    g_LCMDMODE = register_cvar("amx_ltm_cmdmode","0"); //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");
    // -- Forward.
    register_forward(FM_Think, "ltm_Think" );
    register_forward(FM_PlayerPostThink, "ltm_PostThink" );
    register_forward(FM_PlayerPreThink, "ltm_PreThink");
    }
    
    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);
    
    return PLUGIN_CONTINUE;
    }
    
    public plugin_modules() 
    {
    require_module("fakemeta");
    require_module("cstrike");
    //require_module("fun")
    }
    
    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(file, 63, "%s/bhltm_cvars.cfg", file);
    #else
    format(file, 63, "%s/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 CreateLaserMine_Progress_b(id)
    {
    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, 108, {0,0,0}, id );
    write_byte(1);
    write_byte(0);
    message_end();
    
    set_task(1.2, "Spawn", (TASK_PLANT + id));
    
    return PLUGIN_HANDLED;
    }
    
    public ReturnLaserMine_Progress(id)
    {
    
    if (!ReturnCheck(id))
    return PLUGIN_HANDLED;
    g_settinglaser[id] = true;
    
    message_begin( MSG_ONE, 108, {0,0,0}, id );
    write_byte(1);
    write_byte(0);
    message_end();
    
    set_task(1.2, "ReturnMine", (TASK_RELEASE + id));
    
    
    return PLUGIN_HANDLED;
    }
    
    public StopCreateLaserMine(id)
    {
    
    DeleteTask(id);
    message_begin(MSG_ONE, 108, {0,0,0}, id);
    write_byte(0);
    write_byte(0);
    message_end();
    
    return PLUGIN_HANDLED;
    }
    
    public StopReturnLaserMine(id)
    {
    
    DeleteTask(id);
    message_begin(MSG_ONE, 108, {0,0,0}, id);
    write_byte(0);
    write_byte(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) > 70.0) return;
    
    new EntityName[32];
    pev(tgt, pev_classname, EntityName, 31);
    if(!equal(EntityName, ENT_CLASS_NAME)) return;
    if(pev(tgt,LASERMINE_OWNER) != id) return;
    RemoveEntity(tgt);
    
    g_havemine[id] ++;
    g_deployed[id] --;
    emit_sound(id, CHAN_ITEM, ENT_SOUND5, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
    ShowAmmo(id)
    
    return;
    }
    
    public Spawn( id )
    {
    id -= TASK_PLANT
    // motor
    new i_Ent = engfunc(EngFunc_CreateNamedEntity,g_EntMine);
    if(!i_Ent)
    {
    client_print(id,print_chat,"[Laesrmine 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( id, pev_origin, vOrigin );
    velocity_by_aim( id, 128, vTraceDirection );
    xs_vec_add( vTraceDirection, vOrigin, vTraceEnd );
    
    engfunc( EngFunc_TraceLine, vOrigin, vTraceEnd, DONT_IGNORE_MONSTERS, id, 0 );
    
    new Float:fFraction;
    get_tr2( 0, TR_flFraction, fFraction );
    
    
    // -- We hit something!
    if ( fFraction < 1.0 )
    {
    // -- Save results to be used later.
    get_tr2( 0, TR_vecEndPos, vTraceEnd );
    get_tr2( 0, TR_vecPlaneNormal, vNormal );
    }
    
    
    xs_vec_mul_scalar( vNormal, 8.0, vNormal );
    xs_vec_add( vTraceEnd, vNormal, vNewOrigin );
    
    engfunc(EngFunc_SetSize, i_Ent, Float:{ -4.0, -4.0, -4.0 }, Float:{ 4.0, 4.0, 4.0 } );
    engfunc(EngFunc_SetOrigin, i_Ent, vNewOrigin );
    
    // -- 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(vNormal, 8192.0, vNormal );
    xs_vec_add( vNewOrigin, vNormal, vBeamEnd );
    
    engfunc( EngFunc_TraceLine, vNewOrigin, vBeamEnd, IGNORE_MONSTERS, -1, 0 );
    
    get_tr2( 0, TR_vecPlaneNormal, vNormal );
    get_tr2( 0, TR_vecEndPos, vTracedBeamEnd );
    
    // -- Save results to be used later.
    set_pev(i_Ent, LASERMINE_OWNER, id );
    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_POWERUP, fCurrTime + 2.5 );
    
    set_pev(i_Ent,LASERMINE_STEP,POWERUP_THINK);
    set_pev(i_Ent,pev_nextthink, fCurrTime + 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;t = cs_get_user_team(id);
    static cnt;cnt=0;
    
    for(i = 1;i <= g_MaxPL;i++)
    {
    if(is_user_connected(i))
    if(t == 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_num( g_LENABLE ) )
    {
    client_print(id, print_chat, "%s %s",CHATTAG,STR_NOTACTIVE);
    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);
    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);
    return false;
    }
    #endif
    if (!CheckCanTeam(id))
    {
    client_print(id, print_chat, "%s %s",CHATTAG,STR_CBT);
    return false;
    }
    if( mode == 0)
    {
    if(g_havemine[id] <= 0)
    {
    client_print(id, print_chat, "%s %s",CHATTAG,STR_DONTHAVEMINE);
    return false;
    }
    }
    if (mode == 1)
    {
    if (get_pcvar_num(g_LBUYMODE) == 0)
    {
    client_print(id, print_chat, "%s %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);
    return false;
    }
    if (cs_get_user_money(id) < get_pcvar_num(g_LCOST))
    {
    client_print(id, print_chat, "%s %s%d %s",CHATTAG, STR_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);
    return false;
    }
    
    return true;
    }
    
    bool:ReturnCheck( id )
    {
    if(!CanCheck(id,-1)) return false;
    if(g_havemine[id] + 1 > 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) > 70.0) return false;
    
    new EntityName[32];
    pev(tgt, pev_classname, EntityName, 31);
    if(!equal(EntityName, ENT_CLASS_NAME)) return false;
    if(pev(tgt,LASERMINE_OWNER) != id) return false;
    
    return true;
    }
    
    bool:CreateCheck( id )
    {
    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);
    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);
    return false;
    }
    
    new Float:vTraceDirection[3], Float:vTraceEnd[3],Float:vOrigin[3];
    
    pev( id, pev_origin, vOrigin );
    velocity_by_aim( id, 128, vTraceDirection );
    xs_vec_add( vTraceDirection, vOrigin, vTraceEnd );
    
    engfunc( EngFunc_TraceLine, vOrigin, vTraceEnd, DONT_IGNORE_MONSTERS, id, 0 );
    
    new Float:fFraction,Float:vTraceNormal[3];
    get_tr2( 0, TR_flFraction, fFraction );
    
    // -- We hit something!
    if ( fFraction < 1.0 )
    {
    // -- Save results to be used later.
    get_tr2( 0, TR_vecEndPos, vTraceEnd );
    get_tr2( 0, TR_vecPlaneNormal, vTraceNormal );
    
    //get_tr2( 0, TR_pHit );
    
    return true;
    }
    
    client_print(id, print_chat, "%s %s",CHATTAG,STR_PLANTWALL)
    DeleteTask(id);
    // -- Did not touched something. (not solid)
    return false;
    }
    
    public ltm_Think( i_Ent )
    {
    if ( !pev_valid( i_Ent ) )
    return FMRES_IGNORED;
    new EntityName[32];
    pev( i_Ent, pev_classname, EntityName, 31);
    if(!get_pcvar_num(g_LENABLE)) return FMRES_IGNORED;
    // -- Entity is not a tripmine, ignoring the next...
    if ( !equal( EntityName, ENT_CLASS_NAME ) )
    return FMRES_IGNORED;
    
    static Float:fCurrTime;
    fCurrTime = get_gametime();
    
    switch( pev( i_Ent, LASERMINE_STEP ) )
    {
    case POWERUP_THINK :
    {
    new Float:fPowerupTime;
    pev( i_Ent, LASERMINE_POWERUP, fPowerupTime );
    
    if( fCurrTime > fPowerupTime )
    {
    set_pev( i_Ent, pev_solid, SOLID_BBOX );
    set_pev( i_Ent, LASERMINE_STEP, BEAMBREAK_THINK );
    
    PlaySound( i_Ent, ACTIVATE_SOUND );
    }
    if(get_pcvar_num(g_LGLOW)!=0)
    {
    if(get_pcvar_num(g_LCLMODE)==0)
    {
    switch (pev(i_Ent,LASERMINE_TEAM))
    {
    case CS_TEAM_T: set_rendering(i_Ent,kRenderFxGlowShell,255,0,0,kRenderNormal,5);
    case CS_TEAM_CT:set_rendering(i_Ent,kRenderFxGlowShell,0,0,255,kRenderNormal,5);
    }
    }else
    {
    set_rendering(i_Ent,kRenderFxGlowShell,0,255,0,kRenderNormal,5);
    }
    }
    set_pev( i_Ent, pev_nextthink, fCurrTime + 0.1 );
    }
    case BEAMBREAK_THINK :
    {
    static Float:vEnd[3],Float:vOrigin[3];
    pev( i_Ent, pev_origin, vOrigin );
    pev( i_Ent, LASERMINE_BEAMENDPOINT, vEnd );
    
    static iHit, Float:fFraction;
    engfunc( EngFunc_TraceLine, vOrigin, vEnd, DONT_IGNORE_MONSTERS, i_Ent, 0 );
    
    get_tr2( 0, TR_flFraction, fFraction );
    iHit = get_tr2( 0, TR_pHit );
    
    // -- Something has passed the laser.
    if ( fFraction < 1.0 )
    {
    // -- Ignoring others tripmines entity.
    if(pev_valid(iHit))
    {
    pev( iHit, pev_classname, EntityName, 31 );
    
    if( !equal( EntityName, ENT_CLASS_NAME ) )
    {
    set_pev( i_Ent, pev_enemy, iHit );
    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_Ent, LASERMINE_STEP, EXPLOSE_THINK );
    
    set_pev( i_Ent, pev_nextthink, fCurrTime + random_float( 0.1, 0.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_valid( i_Ent ))
    {
    static Float:fHealth;
    pev( i_Ent, pev_health, fHealth );
    
    if( fHealth <= 0.0 || (pev(i_Ent,pev_flags) & FL_KILLME))
    {
    set_pev( i_Ent, LASERMINE_STEP, EXPLOSE_THINK );
    set_pev( i_Ent, pev_nextthink, fCurrTime + random_float( 0.1, 0.3 ) );
    }
    
    static Float:fBeamthink;
    pev( i_Ent, LASERMINE_BEAMTHINK, fBeamthink );
    
    if( fBeamthink < fCurrTime && get_pcvar_num(g_LVISIBLE))
    {
    DrawLaser(i_Ent, vOrigin, vEnd );
    set_pev( i_Ent, LASERMINE_BEAMTHINK, fCurrTime + 0.1 );
    }
    set_pev( i_Ent, pev_nextthink, fCurrTime + 0.01 );
    }
    }
    case EXPLOSE_THINK :
    {
    // -- Stopping entity to think
    set_pev( i_Ent, pev_nextthink, 0.0 );
    PlaySound( i_Ent, STOP_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_Ent, i_SoundType )
    {
    switch ( i_SoundType )
    {
    case POWERUP_SOUND :
    {
    emit_sound( i_Ent, CHAN_VOICE, ENT_SOUND1, VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
    emit_sound( i_Ent, CHAN_BODY , ENT_SOUND2, 0.2, ATTN_NORM, 0, PITCH_NORM );
    }
    case ACTIVATE_SOUND :
    {
    emit_sound( i_Ent, CHAN_VOICE, ENT_SOUND3, 0.5, ATTN_NORM, 1, 75 );
    }
    case STOP_SOUND :
    {
    emit_sound( i_Ent, CHAN_BODY , ENT_SOUND2, 0.2, ATTN_NORM, SND_STOP, PITCH_NORM );
    emit_sound( i_Ent, CHAN_VOICE, ENT_SOUND3, 0.5, ATTN_NORM, SND_STOP, 75 );
    }
    }
    }
    
    DrawLaser(i_Ent, const Float:v_Origin[3], const Float:v_EndOrigin[3] )
    {
    new tcolor[3];
    new teamid = pev(i_Ent, LASERMINE_TEAM);
    if(get_pcvar_num(g_LCLMODE) == 0)
    {
    switch(teamid){
    case 1:{
    tcolor[0] = 255;
    tcolor[1] = 0;
    tcolor[2] = 0;
    }
    case 2:{
    tcolor[0] = 0;
    tcolor[1] = 0;
    tcolor[2] = 255;
    }
    }
    }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,FloatmgMAX,Float:Radius)
    {
    // Get given parameters
    
    new Float:vecSrc[3];
    pev(iCurrent, pev_origin, vecSrc);
    
    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 
    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_FindEntityInSphere, ent, vecSrc, Radius)) != 0)
    {
    if(!pev_valid(ent)) continue;
    if(!(pev(ent, pev_flags) & (FL_CLIENT | FL_FAKECLIENT | FL_MONSTER)))
    {
    // 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(ent, pev_absmin, Tabsmin);
    pev(ent, pev_absmax, Tabsmax);
    xs_vec_add(Tabsmin,Tabsmax,Tabsmin);
    xs_vec_mul_scalar(Tabsmin,0.5,vecSpot);
    
    pev(iCurrent, pev_absmin, Aabsmin);
    pev(iCurrent, pev_absmax, Aabsmax);
    xs_vec_add(Aabsmin,Aabsmax,Aabsmin);
    xs_vec_mul_scalar(Aabsmin,0.5,vecSee);
    
    engfunc(EngFunc_TraceLine, vecSee, vecSpot, 0, iCurrent, trRes);
    get_tr2(trRes, TR_flFraction, flFraction);
    // Explosion can 'see' this entity, so hurt them! (or impact through objects has been enabled xD)
    if (flFraction >= 0.9 || get_tr2(trRes, TR_pHit) == ent)
    {
    // Work out the distance between impact and entity
    get_tr2(trRes, TR_vecEndPos, vecEndPos);
    
    distance = get_distance_f(vecSrc, vecEndPos) * 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(vecSpot, vecSee);
    
    xs_vec_mul_scalar(origin,invlen,vecPush);
    pev(ent, pev_velocity, velocity)
    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(ent, pev_velocity, velocity)
    }
    }
    
    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(ent, iHitHP)
    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_BROADCAST, SVC_TEMPENTITY);
    write_byte(99); //99 = KillBeam
    write_short(iCurrent);
    message_end();
    
    engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, vOrigin, 0);
    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 < 0 ) 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(iCurrent, LASERMINE_TEAM)
    
    new szClassName[32]
    new Alive,God
    new iHitTeam,iHitHP,id
    new hitscore
    
    
    szClassName[0] = '^0'
    pev(isHit,pev_classname,szClassName,32)
    
    if((pev(isHit, pev_flags) & (FL_CLIENT | FL_FAKECLIENT | FL_MONSTER)))
    {
    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)
    {
    emit_sound(isHit, CHAN_WEAPON, ENT_SOUND4, 1.0, ATTN_NORM, 0, PITCH_NORM )
    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))
    {
    emit_sound(isHit, CHAN_WEAPON, ENT_SOUND4, 1.0, ATTN_NORM, 0, PITCH_NORM )
    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))
    {
    emit_sound(isHit, CHAN_WEAPON, ENT_SOUND4, 1.0, ATTN_NORM, 0, PITCH_NORM )
    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(szClassName, ENT_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 > 0 ? set_pev(id, pev_health, float(health)) : dllfunc(DLLFunc_ClientKill, id);
    }
    
    stock get_user_godmode(index) {
    new Float:val
    pev(index, pev_takedamage, val)
    
    return (val == DAMAGE_NO)
    }
    
    stock set_user_frags(index, frags)
    {
    set_pev(index, pev_frags, float(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) + 1 //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_ALL, g_msgDeathMsg, {0, 0, 0} ,0)
    write_byte(id)
    write_byte(target)
    write_byte(0)
    write_string(ENT_CLASS_NAME)
    message_end()
    
    message_begin(MSG_ALL, g_msgScoreInfo)
    write_byte(id)
    write_short(idfrags)
    write_short(iddeaths)
    write_short(0)
    write_short(idteam)
    message_end()
    
    set_msg_block(g_msgDeathMsg, BLOCK_ONCE)
    
    //entity_set_float(target, EV_FL_health,float(HP))
    set_user_health(target, HP)
    //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)
    emit_sound(id, CHAN_ITEM, ENT_SOUND5, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
    ShowAmmo(id)
    return PLUGIN_HANDLED
    }
    
    ShowAmmo(id)
    { 
    new ammo[51] 
    formatex(ammo, 50, "%s %i/%i",STR_STATE, g_havemine[id],get_pcvar_num(g_LAMMO))
    
    message_begin(MSG_ONE, g_msgStatusText, {0,0,0}, id) 
    write_byte(0) 
    write_string(ammo) 
    message_end() 
    } 
    
    public showInfo(id)
    {
    client_print(id, print_chat, STR_REF)
    }
    
    public say_lasermine(id){
    new said[32]
    read_argv(1,said,31);
    if( !get_pcvar_num( g_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(id, msg, "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(id, pev_maxspeed, 1.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(id, pev_maxspeed,plspeed[id])
    set_pev(id, pev_maxspeed, 1.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(id, pev_button ) & IN_USE && !(pev(id, pev_oldbuttons ) & IN_USE ))
    //client_print(id,print_chat,"test");
    CreateLaserMine_Progress(id)
    return FMRES_IGNORED;
    }
    
    resetspeed(id)
    {
    set_pev(id, pev_maxspeed, plspeed[id])
    }
    
    public client_putinserver(id){
    g_deployed[id] = 0;
    g_havemine[id] = 0;
    DeleteTask(id);
    return PLUGIN_CONTINUE
    }
    
    public client_disconnect(id){
    if(!get_pcvar_num( g_LENABLE ))
    return PLUGIN_CONTINUE
    DeleteTask(id);
    RemoveAllTripmines(id);
    return PLUGIN_CONTINUE
    }
    
    
    public newround(id){
    if(!get_pcvar_num( g_LENABLE ))
    return PLUGIN_CONTINUE
    pev(id, pev_maxspeed,plspeed[id])
    DeleteTask(id);
    RemoveAllTripmines(id);
    delaycount(id);
    SetStartAmmo(id);
    return PLUGIN_CONTINUE
    }
    
    public DeathEvent(){
    if(!get_pcvar_num( g_LENABLE ))
    return PLUGIN_CONTINUE
    
    new id = read_data(2)
    if(is_user_connected(id)) DeleteTask(id);
    return PLUGIN_CONTINUE
    }
    
    public RemoveAllTripmines( i_Owner )
    {
    new iEnt = g_MaxPL + 1;
    new clsname[32];
    while( ( iEnt = engfunc( EngFunc_FindEntityByString, iEnt, "classname", ENT_CLASS_NAME ) ) )
    {
    if ( i_Owner )
    {
    if( pev( iEnt, LASERMINE_OWNER ) != i_Owner )
    continue;
    clsname[0] = '^0'
    pev( iEnt, pev_classname, clsname, sizeof(clsname)-1 );
    
    if ( equali( clsname, ENT_CLASS_NAME ) )
    {
    PlaySound( iEnt, STOP_SOUND );
    RemoveEntity( iEnt );
    }
    }
    else
    set_pev( iEnt, pev_flags, FL_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(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
    {
    static Float:RenderColor[3];
    RenderColor[0] = float(r);
    RenderColor[1] = float(g);
    RenderColor[2] = float(b);
    
    set_pev(entity, pev_renderfx, fx);
    set_pev(entity, pev_rendercolor, RenderColor);
    set_pev(entity, pev_rendermode, render);
    set_pev(entity, pev_renderamt, float(amount));
    
    return 1
    }
    
    // Gets offset data
    get_offset_value(id, type)
    {
    new key = -1;
    switch(type)
    {
    case OFFSET_TEAM: key = OFFSET_TEAM;
    case OFFSET_MONEY:
    {
    #if defined UL_MONEY_SUPPORT
    return cs_get_user_money_ul(id);
    #else
    key = OFFSET_MONEY;
    #endif
    }
    case OFFSET_DEATH: key = OFFSET_DEATH;
    }
    
    if(key != -1)
    {
    if(is_amd64_server()) key += 25;
    return get_pdata_int(id, key);
    }
    
    return -1;
    }
    
    // Sets offset data
    set_offset_value(id, type, value)
    {
    new key = -1;
    switch(type)
    {
    case OFFSET_TEAM: key = OFFSET_TEAM;
    case OFFSET_MONEY:
    {
    #if defined UL_MONEY_SUPPORT
    return cs_set_user_money_ul(id, value);
    #else
    key = OFFSET_MONEY;
    
    // Send Money message to update player's HUD
    message_begin(MSG_ONE_UNRELIABLE, g_msgMoney, {0,0,0}, id);
    write_long(value);
    write_byte(1); // Flash (difference between new and old money)
    message_end();
    #endif
    }
    case OFFSET_DEATH: key = OFFSET_DEATH;
    }
    
    if(key != -1)
    {
    if(is_amd64_server()) key += 25;
    set_pdata_int(id, key, value);
    }
    
    return PLUGIN_CONTINUE;
    }
    Ostatnio edytowane przez naven ; 30-12-2009 o 10:58 Powód: używaj [code]!
     

Podobne wątki

  1. zombi mod serwer
    By Brewka in forum OffTopic - Counter Strike
    Odpowiedzi: 0
    Ostatni post / autor: 05-07-2010, 14:42
  2. [Steam & Non Steam] Jak usunac aby zombi nie mogl robic laserow na zombi modzie naprawde nikt sie nie zna
    By zloman in forum Problemy z CS 1.6
    Odpowiedzi: 0
    Ostatni post / autor: 30-12-2009, 17:10
  3. Zombi mod !
    By patryk006 in forum Archiwum serwerów Counter Strike 1.6 Steam i Non Steam
    Odpowiedzi: 0
    Ostatni post / autor: 10-08-2009, 14:53
  4. Zombi
    By PaXLo in forum Problemy z CS 1.6
    Odpowiedzi: 6
    Ostatni post / autor: 27-07-2009, 20:52
  5. Zombi mod non-steam do Css
    By LubieCie in forum Archiwum forum
    Odpowiedzi: 1
    Ostatni post / autor: 16-07-2009, 11:30
  6. plugin do zombi mod
    By n3cr0 #. in forum Problemy i konfiguracja AMXX
    Odpowiedzi: 7
    Ostatni post / autor: 15-07-2009, 19:12
  7. zombi mod
    By maxpoter in forum HLDS2 czyli serwer dla CS Source
    Odpowiedzi: 1
    Ostatni post / autor: 26-03-2009, 20:16
  8. zombi
    By pawel KILLER XD in forum Archiwum serwerów Counter Strike 1.6 Steam i Non Steam
    Odpowiedzi: 1
    Ostatni post / autor: 23-07-2008, 11:48
  9. Zombi
    By Redbul_15 in forum Amx Mod X
    Odpowiedzi: 0
    Ostatni post / autor: 01-03-2008, 21:35
  10. zombi mod help
    By wizard92 in forum Problem z pluginem AMX/AMXX
    Odpowiedzi: 1
    Ostatni post / autor: 24-02-2008, 15:43

Odwiedzający znaleźli tę stronę szukając:

amx_ltm_dmg2

cs 1.6 lasermine co zrobic zeby nie wybuchaly

jak zamontować laser mine

Uprawnienia umieszczania postów
  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •