Raised This Month: $ Target: $400
 0% 

Door-Sniffer - Rev.1.0 - 2006-08-10


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
NemesisDelta
Senior Member
Join Date: Jul 2006
Location: Germany/Hessen/Kassel
Old 07-22-2009 , 08:56   Re: Door-Sniffer - Rev.1.0 - 2006-08-10
#2

i fixed it, simply use this code instead

Code:
/*
    .___                                          .__  _____  _____       
  __| _/____   ___________            ______ ____ |__|/ ____\/ ____\___________
 / __ |/  _ \ /  _ \_  __ \  ______  /  ___//    \|  \   __\\   __\/ __ \_  __ \
/ /_/ (  <_> |  <_> )  | \/ /_____/  \___ \|   |  \  ||  |   |  | \  ___/|  | \/
\____ |\____/ \____/|__|            /____  >___|  /__||__|   |__|  \___  >__|
     \/                                  \/     \/                     \/ 
version 1.0 by Skipper
*/

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <engine>
#include <cstrike>

#define PLUGIN "door-sniffer"
#define VERSION "1.0"
#define AUTHOR "Skipper"


new is = 1
new w_sprite
new bool:g_doors_ready
new g_doors_max
new g_doors[40]
new g_playercandef[33][2]
new Float:g_pos[33][3]

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_cvar("door_defuse", "1")
    register_cvar("door_defusecost", "800")
    register_cvar("door_defusetime", "6")
    register_cvar("door_defuseteam", "ALL")
    register_cvar("door_showsprite", "1")
    register_cvar("door_defuseiconyellow", "1")

    register_forward(FM_EmitSound, "forward_emitsound")
    
    register_clcmd("say /buydef","give_def")
    register_clcmd("defuser","give_def")
    
    set_task(5.0, "loadworld")
    set_task(0.2, "def", 0, "", 0, "b")
}

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

public plugin_precache() {
    precache_sound("lockpickbeginn.wav")
    precache_sound("lockpickready.wav")
    precache_sound("lockpickbuying.wav")
    w_sprite = precache_model("sprites/lockpick.spr")
}

public give_def(id){
    new defteam[4]
    new p_team[12]
    get_user_team(id, p_team, 11)
    get_cvar_string("door_defuseteam", defteam, 11)
    if(equal(defteam, "ALL") || equal(defteam, "CT") && equal(p_team, "CT") || equal(defteam, "T") && equal(p_team, "TERRORIST")){
        if(get_cvar_num("door_defuse") == 1 && g_doors_ready == true){
                if(is_user_alive(id)){
                    if(cs_get_user_defuse(id) == 0){
                        new defusecolor = get_cvar_num("door_defuseiconyellow")
                        new cost = get_cvar_num("door_defusecost")
                        if(cs_get_user_money(id) >= cost) {
                            cs_set_user_money(id, cs_get_user_money(id)-cost, 1)
                            client_cmd(id, "spk sound/lockpickbuying")
                            if(defusecolor == 1){
                                cs_set_user_defuse(id, 1, 245, 245, 0)
                            } else {
                                cs_set_user_defuse(id, 1, 0, 160, 0)
                            }
                        } else {
                            client_print(id, print_chat, "[DEF] You don't have enought money.")
                        }
                    } else {
                        client_print(id, print_chat, "[DEF] You already have one.")
                    }
                } else {
                    client_print(id, print_chat, "[DEF] You can't buy something when you're dead.")
                }
        } else {
            client_print(id, print_chat, "[DEF] The plugin is turned of or not ready.")
        }
    } else {
        client_print(id, print_chat, "[DEF] You're not allowed to buy a defusekit.")
    }
    return PLUGIN_HANDLED
}

public defuseit(id) {
    if(g_playercandef[id][0] == 1){
        new give[2]
        give[0] = g_playercandef[id][1]
        give[1] = id
        defuse(id, 6)
        client_cmd(id, "spk sound/lockpickbeginn")
        entity_get_vector(id, EV_VEC_origin, g_pos[id])
        set_task(0.1, "doeshedef", 101, give, 2, "b")
        set_task(6.0, "open_door_silent", 100, give, 2)
        return FMRES_SUPERCEDE
    }
    return FMRES_IGNORED
}

public loadworld() {
    while(is != 0) {
        is = find_ent_by_class ( is, "func_door_rotating" )
        g_doors[g_doors_max] = is
        g_doors_ready = true
        if(is != 0) {
            g_doors_max++
        }
    }
    if(g_doors[0] == 0 && g_doors_ready == true) {
        pause("a")
    }
}

public def() {
    if(get_cvar_num("door_defuse") == 1){
        for(new id=1; id <= 32; id++) {
            if(is_user_connected (id) == 1){
                if(cs_get_user_defuse(id) == 1){
                    rangetest(id)
                }
            }
        }
    } else {
        for(new id=1; id <= 32; id++) {
            if(is_user_connected (id) == 1){
                if(cs_get_user_defuse(id) == 1){
                    cs_set_user_defuse(id, 1, 0, 160, 0, "defuser", 0)
                }
            }
        }
    }
}

public rangetest(id) {
    new range[2]
    new defusecolor = get_cvar_num("door_defuseiconyellow")
    for(new i=0;i<g_doors_max;i++) {
        if(i==0) {
            range[0] = floatround(entity_range (id, g_doors[i]))
            range[1] = g_doors[i]
        } else {
            new temprange [2]
            temprange[0] = floatround(entity_range (id, g_doors[i]))
            temprange[1] = g_doors[i]
            if (range[0] > temprange[0]) {
                range[0] = temprange[0]
                range[1] = temprange[1]
            }
        }
    }
    if(range[0] <= 70){
        if(defusecolor == 1){
            cs_set_user_defuse(id, 1, 255, 255, 0, "defuser", 1)
        } else {
            cs_set_user_defuse(id, 1, 0, 160, 0, "defuser", 1)
        }
        g_playercandef[id][0] = 1
        g_playercandef[id][1] = range[1]
    } else {
        if(defusecolor == 1){
            cs_set_user_defuse(id, 1, 255, 255, 0, "defuser", 0)
        } else {
            cs_set_user_defuse(id, 1, 0, 160, 0, "defuser", 0)
        }
        g_playercandef[id][0] = 0
        g_playercandef[id][1] = range[1]
    }
}

public defuse (id, bartime) {
    message_begin(MSG_ONE, get_user_msgid("BarTime"), {0,0,0}, id)
    write_byte(bartime)
    write_byte(0)
    message_end()
    if(get_cvar_num("door_showsprite") == 1){
        if(bartime != 0) {
            message_begin(MSG_ALL,SVC_TEMPENTITY)
            write_byte(124)
            write_byte(id)
            write_coord(40)
            write_short(w_sprite)
            write_short(65)
            message_end()
        } else {
            message_begin(MSG_ALL,SVC_TEMPENTITY)
            write_byte(125)
            write_byte(id)
            message_end()
        }
    }
}

public doeshedef(give[]) {
    if(!is_user_alive(give[1])){
        remove_task (100)
        remove_task (101)
        defuse(give[1], 0)
    }
        
        
    if(!(entity_get_int(give[1], EV_INT_button) & IN_USE)) {
        remove_task (100)
        remove_task (101)
        defuse(give[1], 0)
    }

    new Float:currentpos[3]
    entity_get_vector(give[1], EV_VEC_origin, currentpos)
    for (new i = 0; i < 3; i++) {
        if (currentpos[i] != g_pos[give[1]][i]) {
            remove_task (100)
            remove_task (101)
            defuse(give[1], 0)
        }
    }
}

public open_door_silent(give[]) {
    client_cmd(give[1], "spk sound/lockpickready")
    entity_set_int(give[0], EV_INT_iuser1, 1)
    fake_touch(give[0], give[1])
    remove_task (101)
    set_task(8.0,"door_loud", 0, give, 2)
}

public door_loud(give[]) {
    entity_set_int(give[0], EV_INT_iuser1, 0)
}

public forward_emitsound(const ent, const lol, const sound[]) {
    if (ent < 1) {
        return FMRES_IGNORED
    }
    
    if (ent >= 1 && ent <= 32) {
        if (equal(sound, "common/wpn_denyselect.wav"))
            return defuseit(ent)
    }
    
    new classname[32]
    entity_get_string(ent, EV_SZ_classname, classname, 31)
    if (equal(classname, "func_door_rotating") && entity_get_int(ent, EV_INT_iuser1) == 1) {
        return FMRES_SUPERCEDE
    }
    return FMRES_IGNORED
}
__________________
NemesisDelta is offline
Send a message via ICQ to NemesisDelta
 


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 11:22.


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