Raised This Month: $12 Target: $400
 3% 

repair plugin


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
sOnick
Senior Member
Join Date: Aug 2007
Old 07-08-2008 , 19:37   repair plugin
Reply With Quote #1

my srv is crashing because this error,
Code:
L 07/09/2008 - 02:12:03: Start of error session.
L 07/09/2008 - 02:12:03: Info (map "cs_havana") (file "addons/amxmodx/logs/error_20080709.log")
L 07/09/2008 - 02:12:03: [ENGINE] Invalid entity 437
L 07/09/2008 - 02:12:03: [AMXX] Displaying debug trace (plugin "lasermine.amxx")
L 07/09/2008 - 02:12:03: [AMXX] Run time error 10: native error (native "entity_get_vector")
L 07/09/2008 - 02:12:03: [AMXX]    [0] lasermine.sma::LaserMine_Activate (line 392)
i use the biohazard mod.

Code:
/*
-=LaserMine Entity=- 

Each player can set LaserMine on the wall.

================================================ 

-=VERSIONS=- 

Releaseed(Time in JP)    Version     comment 
------------------------------------------------ 
2006/03/21        1.0        FirstRelease
================================================ 

-=INSTALLATION=- 

Compile and install plugin. (configs/plugins.ini) 

================================================ 

-=USAGE=- 

Client command / +setlaser
- ex) bind v +setlaser 
- can set lasermine on the wall

Server command(CVAR SETTING)
- amx_lasermine_ammo //The setup of ammo (default 2 max 10)
- amx_lasermine_fragmoney //A setup for the reward (default 300 min 100)
- amx_lasermine_cost //The settlement of the cost (default 500 min 100 max 16000)
- amx_lasermine_health //The settlement of the degree of durability (default 500 min 1 max 800)
- amx_lasermine_dmg //The setup of the damage (default 10000 min 1)

================================================ 

-=SpecialThanks=-
Tester    justice
    snake21jpn

================================================
*/
#include <amxmodx> 
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <fun>

#define TASK_PLANT        15100
#define TASK_NOTICE        15300

#define LASERMINE_INT_TEAM    EV_INT_iuser1
#define LASERMINE_OWNER        EV_INT_iuser3
#define DMG_BULLET        (1<<1)
#define MAX_MINES        10

new MINE_COST
new FRAGMONEY
new LASER_HIT_DMG
new MINE_HEALTH
new MAX_MINES_CVAR

new beam, boom
new player_mines_ent[33][MAX_MINES]
new player_mines_count[33]
new bool:g_settinglaser[33]
new g_msgDeathMsg
new g_msgScoreInfo
new g_msgDamage
new g_msgStatusText
new Float:plspeed[33]
new plsetting[33]

public plugin_modules() {
    require_module("engine")
    require_module("cstrike")
    require_module("fun")
}

detonate_mine(iCurrent, iHit) {
    
    new Float:vOrigin[3]
    entity_get_vector(iCurrent, EV_VEC_origin, vOrigin)

    message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
    write_byte(99) //99 = KillBeam
    write_short(iCurrent)
    message_end()

    message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
    write_byte(3)
    write_coord(floatround(vOrigin[0]))
    write_coord(floatround(vOrigin[1]))
    write_coord(floatround(vOrigin[2]))
    write_short(boom)
    write_byte(50)
    write_byte(15)
    write_byte(0)
    message_end()

    radius_damage(vOrigin, 1, 50)

    new id,slot

    //id = Entvars_Get_Edict(iCurrent, EV_ENT_owner)
    remove_entity(iCurrent)





    // clear this from the list of live lasermines
    for (id=1;id<33;id++) {
        for (slot=0;slot<MAX_MINES;slot++) {
            if (player_mines_ent[id][slot] == iCurrent) {
                player_mines_ent[id][slot] = -1
                player_mines_count[id] = player_mines_count[id] - 1
   
                if (iHit == -1){
                    client_print(id, print_chat, "[LaserMines] Your mine has detonated.")
                } else {
                    new szNetName[32]
                    entity_get_string(iHit, EV_SZ_netname, szNetName, 32)
                    client_print(id, print_chat, "[LaserMines] %s detonated your mine.",szNetName)
                }
                break
            }
        }
    }

}

public CreateLaserMine_Progress(id){ 


    if (!CreateCheck(id))
        return PLUGIN_HANDLED
    g_settinglaser[id] = true
    //
    // Progress Bar (Activate) -- This was taken almost directly from xeroblood!
    //
    message_begin( MSG_ONE, 108, {0,0,0}, id )
    write_byte(1)   // duration
    write_byte(0)   // duration
    message_end()


    new PID[1] 
    PID[0] = id
    set_task(1.0, "CreateLaserMine", (TASK_PLANT + id), PID, 1)

    return PLUGIN_HANDLED;
}

public StopCreateLaserMine(id)
{
    if (task_exists((TASK_PLANT + id)))
    {
        remove_task((TASK_PLANT + id))
    }
    g_settinglaser[id] = false
    //
    // Progress Bar (Terminate)
    //
    message_begin(MSG_ONE, 108, {0,0,0}, id)
    write_byte(0) // duration
    write_byte(0) // duration
    message_end()

    return PLUGIN_HANDLED
}

public bool:CreateCheck(id){
    new Status = get_cvar_num( "amx_lasermine" )
    if( Status != 1  ){
        client_print(id, print_chat, "[Lasermines] Lasermines are not currently active.")
        return false
    }

    if(entity_get_int(id, EV_INT_deadflag) != 0)
        return false
 
    if(is_user_alive(id) == 0)
        return false

    if(player_mines_count[id] >= MAX_MINES_CVAR) {
        client_print(id, print_chat, "[Lasermines] Maximum mines have been deployed.")
        return false
    }
    if (cs_get_user_money(id) < MINE_COST) {
        client_print(id, print_chat, "[Lasermines] You don't have enough money to set a lasermine! ($%d needed)", MINE_COST)    
        return false    
    }
    new Float:vOrigin[3]
    new Float:vAngles[3]
    new NewEnt
    new Float:MinBox[3]
    new Float:MaxBox[3]
    new Float:vNormal[3]
    new Float:vTraceDirection[3]
    new Float:vTraceEnd[3]
    new Float:vTraceResult[3]

    entity_get_vector(id, EV_VEC_origin, vOrigin)
    entity_get_vector(id, EV_VEC_v_angle, vAngles)

    NewEnt = create_entity("info_target")

    if(NewEnt == 0) {
        return false
    }

    entity_set_string(NewEnt, EV_SZ_classname, "lasermine")
    
    entity_set_int(NewEnt, EV_INT_movetype, 5) //5 = movetype_fly, No grav, but collides.
    entity_set_int(NewEnt, EV_INT_solid, 0) 
    
    entity_set_model(NewEnt, "models/v_tripmine.mdl")
    
    entity_set_float(NewEnt, EV_FL_frame, 0.0)
    entity_set_int(NewEnt, EV_INT_body, 3)
    entity_set_int(NewEnt, EV_INT_sequence, 7) // 7 = TRIPMINE_WORLD
    entity_set_float(NewEnt, EV_FL_framerate, 0.0)

    entity_set_float(NewEnt, EV_FL_takedamage, 1.0)
    entity_set_float(NewEnt, EV_FL_dmg, 100.0)
    entity_set_float(NewEnt, EV_FL_health, float(MINE_HEALTH))

    entity_set_int(NewEnt, EV_INT_iuser2, 0) //0 Will be for inactive.


    MinBox[0] = -8.0
    MinBox[1] = -8.0
    MinBox[2] = -8.0
    MaxBox[0] = 8.0
    MaxBox[1] = 8.0
    MaxBox[2] = 8.0

    entity_set_vector(NewEnt, EV_VEC_mins, MinBox)
    entity_set_vector(NewEnt, EV_VEC_maxs, MaxBox)


    velocity_by_aim(id, 64, vTraceDirection)

    vTraceEnd[0] = vTraceDirection[0] + vOrigin[0]
    vTraceEnd[1] = vTraceDirection[1] + vOrigin[1]
    vTraceEnd[2] = vTraceDirection[2] + vOrigin[2]

    trace_line(id, vOrigin, vTraceEnd, vTraceResult)

    if(trace_normal(id, vOrigin, vTraceEnd, vNormal) == 0) {
        remove_entity(NewEnt)
        client_print(id, print_chat, "[Lasermines] You must plant the lasermine on a wall!")
        g_settinglaser[id] = false
        return false
    }
    remove_entity(NewEnt)

    return true
}

public CreateLaserMine(PID[]){
    new id = PID[0]
    new Float:vOrigin[3]
    new Float:vAngles[3]
    entity_get_vector(id, EV_VEC_origin, vOrigin)
    entity_get_vector(id, EV_VEC_v_angle, vAngles)

    new NewEnt
    NewEnt = create_entity("func_breakable"/*"info_target"*/)

    if(NewEnt == 0) {
        return PLUGIN_HANDLED_MAIN
    }

    entity_set_string(NewEnt, EV_SZ_classname, "lasermine")
    
    entity_set_int(NewEnt, EV_INT_movetype, 5) //5 = movetype_fly, No grav, but collides.
    entity_set_int(NewEnt, EV_INT_solid, 0) 
    
    entity_set_model(NewEnt, "models/v_tripmine.mdl")
    
    entity_set_float(NewEnt, EV_FL_frame, 0.0)
    entity_set_int(NewEnt, EV_INT_body, 3)
    entity_set_int(NewEnt, EV_INT_sequence, 7) // 7 = TRIPMINE_WORLD
    entity_set_float(NewEnt, EV_FL_framerate, 0.0)

    entity_set_float(NewEnt, EV_FL_takedamage, 1.0)
    entity_set_float(NewEnt, EV_FL_dmg, 100.0)
    entity_set_float(NewEnt, EV_FL_health, float(MINE_HEALTH))

    entity_set_int(NewEnt, EV_INT_iuser2, 0) //0 Will be for inactive.

    new Float:MinBox[3]
    new Float:MaxBox[3]

    MinBox[0] = -8.0
    MinBox[1] = -8.0
    MinBox[2] = -8.0
    MaxBox[0] = 8.0
    MaxBox[1] = 8.0
    MaxBox[2] = 8.0

    entity_set_vector(NewEnt, EV_VEC_mins, MinBox)
    entity_set_vector(NewEnt, EV_VEC_maxs, MaxBox)

    new Float:vNewOrigin[3]
    new Float:vNormal[3]
    new Float:vTraceDirection[3]
    new Float:vTraceEnd[3]
    new Float:vTraceResult[3]
    new Float:vEntAngles[3]

    velocity_by_aim(id, 64, vTraceDirection)

    vTraceEnd[0] = vTraceDirection[0] + vOrigin[0]
    vTraceEnd[1] = vTraceDirection[1] + vOrigin[1]
    vTraceEnd[2] = vTraceDirection[2] + vOrigin[2]

    trace_line(id, vOrigin, vTraceEnd, vTraceResult)

    if(trace_normal(id, vOrigin, vTraceEnd, vNormal) == 0) {
        remove_entity(NewEnt)
        g_settinglaser[id] = false
        client_print(id, print_chat, "[Lasermines] You must plant the lasermine on a wall!")
        return PLUGIN_HANDLED_MAIN
    }


    new slot = 0;
    for (slot = 0; slot < MAX_MINES; slot++) {
        if (player_mines_ent[id][slot] == -1)
            break;
    }
    if (slot >= MAX_MINES)  //unhandled error
        return PLUGIN_HANDLED_MAIN
 
    player_mines_ent[id][slot] = NewEnt
    player_mines_count[id] = player_mines_count[id] + 1

    vNewOrigin[0] = vTraceResult[0] + (vNormal[0] * 8.0)
    vNewOrigin[1] = vTraceResult[1] + (vNormal[1] * 8.0)
    vNewOrigin[2] = vTraceResult[2] + (vNormal[2] * 8.0)

    entity_set_origin(NewEnt, vNewOrigin)
    vector_to_angle(vNormal, vEntAngles)

    entity_set_vector(NewEnt, EV_VEC_angles, vEntAngles)

    new Float:vBeamEnd[3]
    new Float:vTracedBeamEnd[3]
    vBeamEnd[0] = vNewOrigin[0] + (vNormal[0] * 8192)
    vBeamEnd[1] = vNewOrigin[1] + (vNormal[1] * 8192)
    vBeamEnd[2] = vNewOrigin[2] + (vNormal[2] * 8192)
    trace_line(-1, vNewOrigin, vBeamEnd, vTracedBeamEnd)
    entity_set_vector(NewEnt, EV_VEC_vuser1, vTracedBeamEnd)

    emit_sound(NewEnt, CHAN_WEAPON, "weapons/mine_deploy.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
    emit_sound(NewEnt, CHAN_VOICE, "weapons/mine_charge.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)

    new args[4]
    num_to_str(NewEnt,args,4)
    
    entity_set_int(NewEnt, LASERMINE_INT_TEAM, int:cs_get_user_team(id))
    entity_set_int(NewEnt, LASERMINE_OWNER,id)
    g_settinglaser[id] = false
    cs_set_user_money(id,cs_get_user_money(id) - MINE_COST)
    ShowAmmo(id)
    set_task(3.0, "LaserMine_Activate", 0, args, 4)

    return PLUGIN_HANDLED_MAIN
}

ShowAmmo(id)     
{ 
    new ammo[51] 
    format(ammo, 50, "LaserMines: %i", MAX_MINES_CVAR - player_mines_count[id]) 

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

public LaserMine_Activate(MineID[]) {

    new EntID = str_to_num(MineID)
    new iCurrent = find_ent_by_model(-1,"lasermine","models/v_tripmine.mdl") 
    if(iCurrent == 0)
        return PLUGIN_CONTINUE

    new Float:vOrigin[3]
    entity_get_vector(EntID, EV_VEC_origin, vOrigin)

    new Float:vEnd[3]
    entity_get_vector(EntID, EV_VEC_vuser1, vEnd)
    new teamid = entity_get_int(EntID, LASERMINE_INT_TEAM)
    if(teamid == 1){
        message_begin(MSG_BROADCAST,SVC_TEMPENTITY) 
        write_byte(0)
        write_coord(floatround(vOrigin[0]))
        write_coord(floatround(vOrigin[1]))
        write_coord(floatround(vOrigin[2]))
        write_coord(floatround(vEnd[0])) //Random
        write_coord(floatround(vEnd[1])) //Random
        write_coord(floatround(vEnd[2])) //Random
        write_short(beam)
        write_byte(0)
        write_byte(0)
        write_byte(3) //Life
        write_byte(5) //Width
        write_byte(0)//wave
        write_byte(255) // r
        write_byte(0) // g
        write_byte(0) // b
        write_byte(255)
        write_byte(0)
        message_end() 
    }else{

        message_begin(MSG_BROADCAST,SVC_TEMPENTITY) 
        write_byte(0)
        write_coord(floatround(vOrigin[0]))
        write_coord(floatround(vOrigin[1]))
        write_coord(floatround(vOrigin[2]))
        write_coord(floatround(vEnd[0])) //Random
        write_coord(floatround(vEnd[1])) //Random
        write_coord(floatround(vEnd[2])) //Random
        write_short(beam)
        write_byte(0)
        write_byte(0)
        write_byte(3) //Life
        write_byte(5) //Width
        write_byte(0)//wave
        write_byte(0) // r
        write_byte(0) // g
        write_byte(255) // b
        write_byte(255)
        write_byte(0)
        message_end() 
    }
    entity_set_int(EntID, EV_INT_iuser2, 1) //1 Will be for active.
    entity_set_int(EntID, EV_INT_solid, 2) //1 Will be for active.

    emit_sound(EntID, CHAN_VOICE, "weapons/mine_activate.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
    return PLUGIN_CONTINUE
}

public LaserMineThink() {
    if(get_cvar_num( "amx_lasermine" ) != 1  )
        return PLUGIN_HANDLED

    new iCurrent
    iCurrent = find_ent_by_class(-1, "lasermine")
    while(iCurrent != 0) {
        if(entity_get_int(iCurrent, EV_INT_iuser2) == 1) {
            new Float:vOrigin[3]
            entity_get_vector(iCurrent, EV_VEC_origin, vOrigin)

            new Float:vEnd[3]
            entity_get_vector(iCurrent, EV_VEC_vuser1, vEnd)

            new Float:vTrace[3]
            new iHit
            iHit = trace_line(iCurrent, vOrigin, vEnd, vTrace)

            new Float:health[1]
            health[0] = entity_get_float(iCurrent, EV_FL_health)

            new teamid = entity_get_int(iCurrent, LASERMINE_INT_TEAM)
    
            if (health[0] <= 0) {
                detonate_mine(iCurrent,-1)
            }else{
                if(iHit > 0 ) {
                    new szClassName[32]
                    entity_get_string(iHit, EV_SZ_classname, szClassName, 32)
                    if(equal(szClassName, "player")){
                        if(is_user_alive(iHit) && !get_user_godmode(iHit)){ 
                            new iHitTeam = int:cs_get_user_team(iHit)
                            new iHitHP = get_user_health(iHit) - LASER_HIT_DMG
                            new id = entity_get_int(iCurrent,LASERMINE_OWNER)//, szNetName[32]

                            if(iHitHP <= 0){
                                new hitscore                        
                                if (get_cvar_num("mp_friendlyfire") == 0){
                                    if(iHitTeam != teamid){
                                        hitscore = 1
                                        cs_set_user_money(id,cs_get_user_money(id) + FRAGMONEY)
                                        //set_user_health(iHit, 0)    
                                        //entity_set_float(iHit, EV_FL_health,0.0)
                                        emit_sound(iHit, CHAN_WEAPON, "debris/beamstart9.wav", 1.0, ATTN_NORM, 0, PITCH_NORM )
                                        set_score(id,iHit,hitscore,iHitHP)
                                        //entity_get_string(iHit, EV_SZ_netname, szNetName, 32)
                                        //client_print(id, print_chat, "[LaserMines] %s killed your mine.",szNetName)
                                    }
                                }else{
                                    if(iHitTeam != teamid){
                                        hitscore = 1
                                        cs_set_user_money(id,cs_get_user_money(id) + FRAGMONEY)
                                    }else{
                                        hitscore = -1                                    
                                        cs_set_user_money(id,cs_get_user_money(id) - FRAGMONEY)
                                    }
                                    //set_user_health(iHit, 0)
                                    //entity_set_float(iHit, EV_FL_health, 0.0)
                                    emit_sound(iHit, CHAN_WEAPON, "debris/beamstart9.wav", 1.0, ATTN_NORM, 0, PITCH_NORM )
                                    set_score(id,iHit,hitscore,iHitHP)
                                    //entity_get_string(iHit, EV_SZ_netname, szNetName, 32)
                                    //client_print(id, print_chat, "[LaserMines] %s killed your mine.",szNetName)
                                }
                            }else{
                                set_user_health(iHit, iHitHP)
                                message_begin(MSG_ONE_UNRELIABLE, g_msgDamage, {0,0,0}, iHit) 
                                write_byte(LASER_HIT_DMG)
                                write_byte(LASER_HIT_DMG)
                                write_long(DMG_BULLET)
                                write_coord(floatround(vOrigin[0]))
                                write_coord(floatround(vOrigin[1]))
                                write_coord(floatround(vOrigin[2]))
                                message_end()
                            }
                        }
                    }
                }
            }
        }

        iCurrent =  find_ent_by_class(iCurrent, "lasermine")
    }
    return PLUGIN_CONTINUE
}

public LaserMine_LaserThink() {
    if(get_cvar_num( "amx_lasermine" ) != 1  )
        return PLUGIN_HANDLED

    new iCurrent
    iCurrent = find_ent_by_class(-1, "lasermine")
    while(iCurrent != 0){
        if(entity_get_int(iCurrent, EV_INT_iuser2) == 1){
            new Float:vOrigin[3]
            entity_get_vector(iCurrent, EV_VEC_origin, vOrigin)
    
            new Float:vEnd[3]
            entity_get_vector(iCurrent, EV_VEC_vuser1, vEnd)
                
            new teamid = entity_get_int(iCurrent, LASERMINE_INT_TEAM)

            if(teamid == 1){
                message_begin(MSG_BROADCAST,SVC_TEMPENTITY) 
                write_byte(0)
                write_coord(floatround(vOrigin[0]))
                write_coord(floatround(vOrigin[1]))
                write_coord(floatround(vOrigin[2]))
                write_coord(floatround(vEnd[0])) //Random
                write_coord(floatround(vEnd[1])) //Random
                write_coord(floatround(vEnd[2])) //Random
                write_short(beam)
                write_byte(0)
                write_byte(0)
                write_byte(3) //Life
                write_byte(5) //Width
                write_byte(0)//wave
                write_byte(255) // r
                write_byte(0) // g
                write_byte(0) // b
                write_byte(255)
                write_byte(0)
                message_end() 
            }else{
                message_begin(MSG_BROADCAST,SVC_TEMPENTITY) 
                write_byte(0)
                write_coord(floatround(vOrigin[0]))
                write_coord(floatround(vOrigin[1]))
                write_coord(floatround(vOrigin[2]))
                write_coord(floatround(vEnd[0])) //Random
                write_coord(floatround(vEnd[1])) //Random
                write_coord(floatround(vEnd[2])) //Random
                write_short(beam)
                write_byte(0)
                write_byte(0)
                write_byte(3) //Life
                write_byte(5) //Width
                write_byte(0)//wave
                write_byte(0) // r
                write_byte(0) // g
                write_byte(255) // b
                write_byte(255)
                write_byte(0)
                message_end() 
            }
        }
        iCurrent =  find_ent_by_class(iCurrent, "lasermine")
    }
    return PLUGIN_CONTINUE
}

public set_score(id,target,hitscore,HP){

//    entity_set_float(id, EV_FL_frags, entity_get_float(id, EV_FL_frags) + hitscore)
//    entity_set_float(target, EV_FL_frags, entity_get_float(target, EV_FL_frags) + 1.0)

    new idfrags = get_user_frags(id) + hitscore    
    set_user_frags(id, idfrags)
    
    new tarfrags = get_user_frags(target) + 1
    set_user_frags(target,tarfrags)
    
    new idteam = int:cs_get_user_team(id)
    new iddeaths = 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("lasermine")
    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)

}

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

    entity_set_float(id, EV_FL_maxspeed, 1.0)
//    ShowAmmo(id)

    return PLUGIN_CONTINUE
}

public client_PostThink(id) {
    if (!g_settinglaser[id] && plsetting[id]){
        resetspeed(id)
    }
    else if (g_settinglaser[id] && !plsetting[id]) {
        plspeed[id] = entity_get_float(id, EV_FL_maxspeed)
        entity_set_float(id, EV_FL_maxspeed, 1.0)
    }
    plsetting[id] = g_settinglaser[id]
    return PLUGIN_CONTINUE
}

public resetspeed(who) {
    entity_set_float(who, EV_FL_maxspeed, plspeed[who])
}

public client_connect(id){
    new j
    for (j=0;j<MAX_MINES;j++) {
        player_mines_ent[id][j] = -1
        player_mines_count[id] = 0
    }
    g_settinglaser[id] = false
    return PLUGIN_CONTINUE
}

public client_disconnect(id){
    if(get_cvar_num( "amx_lasermine" ) != 1  )
        return PLUGIN_CONTINUE

    reset_laser(id)
    g_settinglaser[id] = false
    return PLUGIN_CONTINUE
}

public newround(id){
    if(get_cvar_num( "amx_lasermine" ) != 1  )
        return PLUGIN_CONTINUE
    plspeed[id] = entity_get_float(id, EV_FL_maxspeed)
    reset_laser(id)
    g_settinglaser[id] = false
    return PLUGIN_CONTINUE
}

public DeathEvent(){
    if(get_cvar_num( "amx_lasermine" ) != 1  )
        return PLUGIN_CONTINUE

    new id = read_data(2)

    if (task_exists(id))
        remove_task(id)
    g_settinglaser[id] = false
    return PLUGIN_CONTINUE
}

public reset_laser(id){
    if(get_cvar_num( "amx_lasermine" ) != 1  )
        return PLUGIN_CONTINUE

    new j, iCurrent
    player_mines_count[id] = 0

    for (j=0;j<MAX_MINES;j++) {
        if (player_mines_ent[id][j] != -1) {
 
            iCurrent = player_mines_ent[id][j]
 
            new Float:vOrigin[3]
            entity_get_vector(iCurrent, EV_VEC_origin, vOrigin)
  
            message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
            write_byte(99) //99 = KillBeam
            write_short(iCurrent)
            message_end()
/*
            message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
            write_byte(3)
            write_coord(floatround(vOrigin[0]))
            write_coord(floatround(vOrigin[1]))
            write_coord(floatround(vOrigin[2]))
            write_short(boom)
            write_byte(50)
            write_byte(15)
            write_byte(0)
            message_end()
 
            radius_damage(vOrigin, 1, 50)
 */
            remove_entity(iCurrent)
  
            player_mines_ent[id][j] = -1
  
        }
    }
    return PLUGIN_CONTINUE
}

public check_cvars(){
    if (get_cvar_num("amx_lasermine_ammo") > 10) {
        server_print("[Lasermines] amx_lasermine_ammo can't be greater than 10, setting cvar to 10 now.")
        set_cvar_num("amx_lasermine_ammo", 10)
    }
    if (get_cvar_num("amx_lasermine_ammo") < 1) {
        server_print("[Lasermines] amx_lasermine_ammo can't be less than 1, setting cvar to 1 now.")
        set_cvar_num("amx_lasermine_ammo", 1)
    }
    if (get_cvar_num("amx_lasermine_health") > 800){
        server_print("[Lasermines] amx_lasermine_health can't be greater than 800, setting cvar to 800 now.")
        set_cvar_num("amx_lasermine_health", 800)    
    }
    if (get_cvar_num("amx_lasermine_health") < 1) {
        server_print("[Lasermines] amx_lasermine_health can't be less than 1, setting cvar to 1 now.")
        set_cvar_num("amx_lasermine_health", 1)
    }
    if (get_cvar_num("amx_lasermine_cost") > 16000){
        server_print("[Lasermines] amx_lasermine_cost can't be greater than 16000, setting cvar to 16000 now.")
        set_cvar_num("amx_lasermine_cost", 16000)    
    }
    if (get_cvar_num("amx_lasermine_cost") < 100) {
        server_print("[Lasermines] amx_lasermine_cost can't be less than 100, setting cvar to 100 now.")
        set_cvar_num("amx_lasermine_cost", 100)
    }
    if (get_cvar_num("amx_lasermine_dmg") < 1) {
        server_print("[Lasermines] amx_lasermine_dmg can't be less than 1, setting cvar to 1 now.")
        set_cvar_num("amx_lasermine_dmg", 1)
    }
    if (get_cvar_num("amx_lasermine_fragmoney") < 100) {
        server_print("[Lasermines] amx_lasermine_dmg can't be less than 100, setting cvar to 100 now.")
        set_cvar_num("amx_lasermine_dmg", 100)
    }

    MAX_MINES_CVAR = get_cvar_num("amx_lasermine_ammo")
    FRAGMONEY = get_cvar_num("amx_lasermine_fragmoney")
    MINE_COST = get_cvar_num("amx_lasermine_cost")
    MINE_HEALTH = get_cvar_num("amx_lasermine_health")
    LASER_HIT_DMG = get_cvar_num("amx_lasermine_dmg")

}
public plugin_precache() {
    precache_sound("weapons/mine_deploy.wav")
    precache_sound("weapons/mine_charge.wav")
    precache_sound("weapons/mine_activate.wav")
    precache_sound("debris/beamstart9.wav")
    precache_model("models/v_tripmine.mdl")
    beam = precache_model("sprites/laserbeam.spr")
    boom = precache_model("sprites/zerogxplode.spr")

    return PLUGIN_CONTINUE 
}

public server_changelevel(map[]){

    MAX_MINES_CVAR = get_cvar_num("amx_lasermine_ammo")
    FRAGMONEY = get_cvar_num("amx_lasermine_fragmoney")
    MINE_COST = get_cvar_num("amx_lasermine_cost")
    MINE_HEALTH = get_cvar_num("amx_lasermine_health")
    LASER_HIT_DMG = get_cvar_num("amx_lasermine_dmg")

}
public plugin_init(){ 
    register_plugin("LaserMine Entity","1.0","+ARUKARI-") 
    register_clcmd("+setlaser","CreateLaserMine_Progress")
       register_clcmd("-setlaser","StopCreateLaserMine")
    register_cvar( "amx_lasermine", "1", FCVAR_UNLOGGED )

    register_event("DeathMsg", "DeathEvent", "a")
     register_event("CurWeapon", "standing", "be", "1=1")
    register_event("ResetHUD", "newround", "b")

    register_cvar("amx_lasermine_ammo","2")
    register_cvar("amx_lasermine_dmg","10000")
    register_cvar("amx_lasermine_cost","500")
    register_cvar("amx_lasermine_fragmoney","300")
    register_cvar("amx_lasermine_health","500")

    g_msgDeathMsg = get_user_msgid("DeathMsg")
    g_msgScoreInfo = get_user_msgid("ScoreInfo")
    g_msgDamage = get_user_msgid("Damage")
    g_msgStatusText = get_user_msgid("StatusText")

    set_task(0.01, "LaserMineThink", 0, "", 0, "b")
    set_task(0.1, "LaserMine_LaserThink", 0, "", 0, "b")
    set_task(2.0,"check_cvars",0,"",0,"b")

    return PLUGIN_CONTINUE 
}
sry for my bad english
__________________
I love zm servers
sOnick is offline
ZombieMan
Senior Member
Join Date: May 2008
Location: Italy.
Old 07-08-2008 , 20:07   Re: repair plugin
Reply With Quote #2

Try this ...
Attached Files
File Type: sma Get Plugin or Get Source (lasermine.sma - 2618 views - 22.7 KB)
__________________
BACK TO BUSINESS

If you want to feel better give me + karma but ... don't forget to leave your name

DO NOT PM me for support
ZombieMan is offline
sOnick
Senior Member
Join Date: Aug 2007
Old 07-09-2008 , 14:26   Re: repair plugin
Reply With Quote #3

Code:
L 07/09/2008 - 21:19:57: Start of error session.
L 07/09/2008 - 21:19:57: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20080709.log")
L 07/09/2008 - 21:19:57: [ENGINE] Invalid entity 188
L 07/09/2008 - 21:19:57: [AMXX] Run time error 10 (plugin "lasermine_tepy.amxx") (native "entity_get_vector") - debug not enabled!
L 07/09/2008 - 21:19:57: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
wtf

all my locks and I give the same error, look here plugins:

biohazard.amxx
bio_misc.amxx
bio_flashflare.amxx
high_ping_kicker.amxx
admin_check.amxx
lasermine_tepy.amxx
ghostchat.amxx
autorr.amxx
gamenamechanger.amxx
purchasemod.amxx
spectnvgx.amxx

which of plugins think that is at fault

I want to say that the use of Biohazard, my server stops after 2-4 hours do not know what I'll do please help me
__________________
I love zm servers

Last edited by sOnick; 07-09-2008 at 14:36.
sOnick is offline
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 12:04.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode