AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   General (https://forums.alliedmods.net/forumdisplay.php?f=7)
-   -   Door-Sniffer - Rev.1.0 - 2006-08-10 (https://forums.alliedmods.net/showthread.php?t=98052)

NemesisDelta 07-22-2009 08:17

Door-Sniffer - Rev.1.0 - 2006-08-10
 
Please help i always get
[DEF] your not near a Buy-Zone with this Plugin here

NemesisDelta 07-22-2009 08:56

Re: Door-Sniffer - Rev.1.0 - 2006-08-10
 
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
}


Brad 07-22-2009 09:11

Re: Door-Sniffer - Rev.1.0 - 2006-08-10
 
You posted already in the correct place, which, is not on this board, but in the plugin's thread in which you're having an issue. Further, you shouldn't double post at all.


All times are GMT -4. The time now is 11:21.

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