Raised This Month: $ Target: $400
 0% 

Block menu from another plugin.


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
benamo6
Veteran Member
Join Date: Aug 2008
Location: NeverLand
Old 12-31-2009 , 14:32   Block menu from another plugin.
Reply With Quote #1

Is it possible to block a player open a menu from another plugin that is executed by chooseteam?

I added this to my code, but I get a warning ( Function ClCmd_ChooseTeam should return a value on line 350) when I compile.

PHP Code:
register_clcmd("chooseteam""ClCmd_ChooseTeam"



PHP Code:
LINE 347 public clcmd_chooseteam(id)
LINE 348 {
LINE 349 if (id == it_player) return PLUGIN_HANDLED
LINE 350 
It player is like a team inside Tag Mod by GHW
__________________
Please help me with this Thread
I am 70% addicted to Counterstrike. What about you?
Ill make any spanish translation of a plugin. Just ask for it

Last edited by benamo6; 12-31-2009 at 16:51.
benamo6 is offline
Send a message via MSN to benamo6
AppStore
BANNED
Join Date: Dec 2009
Location: Saladillo
Old 12-31-2009 , 17:42   Re: Block menu from another plugin.
Reply With Quote #2

can you leave all code?
AppStore is offline
benamo6
Veteran Member
Join Date: Aug 2008
Location: NeverLand
Old 12-31-2009 , 17:48   Re: Block menu from another plugin.
Reply With Quote #3

Yes here you have.
PHP Code:
/*
*   _______     _      _  __          __
*  | _____/    | |    | | \ \   __   / /
*  | |         | |    | |  | | /  \ | |
*  | |         | |____| |  | |/ __ \| |
*  | |   ___   | ______ |  |   /  \   |
*  | |  |_  |  | |    | |  |  /    \  |
*  | |    | |  | |    | |  | |      | |
*  | |____| |  | |    | |  | |      | |
*  |_______/   |_|    |_|  \_/      \_/
*
*
*
*  Last Edited: 07-12-09
*
*  ============
*   Changelog:
*  ============
*
*  v2.3
*    -Bug Fixes
*
*  v2.2
*    -Added ML
*
*  v2.1
*    -Added rules
*
*  v2.0
*    -Rewrite
*
*  v1.1
*    -Made less laggy and more compadible (by taking out client_PreThink)
*
*  v1.0
*    -Initial Release
*
*/

#define VERSION    "2.3b"

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <fakemeta>

#define TAG_BASE_DISTANCE    150

#define TASK_SELECT_IT        1335
#define TASK_CREATE_BASE    1336
#define TASK_REDRAW_BASE    1337

enum MODE
{
    
OFF,
    
REGULAR,
    
FREEZE,
    
BASE,
    
TEAM
}

new 
MODE:game_mode
new it_player
new old_it
new immune_player
new maxplayers

new individual_msg_pcvar
new restart_pcvar
new activity_pcvar

new bool:frozen[33]
new 
bool:defrostable[33]
new 
bool:respawning[33]
new 
bool:tagged[33]
new 
bool:gottobase[33]

new 
Float:base_origin[3]
new 
base_origin_I[3]

new 
beamsprite

public plugin_init()
{
    
register_plugin("Tag Mod",VERSION,"GHW_Chronic")
        
register_clcmd("chooseteam""ClCmd_ChooseTeam"
    
register_concmd("amx_tag","cmd_start",ADMIN_SLAY," Starts a game of tag [Normal, Freeze, Base, Team]")
    
register_concmd("amx_tag_off","cmd_stop",ADMIN_SLAY," Stops a currently running game of tag")

    
register_forward(FM_Touch,"FM_Touch_Hook")
    
register_forward(FM_PlayerPreThink,"FM_Think_Hook")
    
register_event("ResetHUD","ResetHUD_Hook","b")

    
register_cvar("tag_mode","0")
    
individual_msg_pcvar register_cvar("tag_individual_msg","0")
    
restart_pcvar get_cvar_pointer("sv_restart")
    
activity_pcvar get_cvar_pointer("amx_show_activity")

    
maxplayers get_maxplayers()

    if(
get_cvar_num("tag_mode"))
    {
        switch(
get_cvar_num("tag_mode"))
        {
            case 
1:
            {
                
game_mode REGULAR
            
}
            case 
2:
            {
                
game_mode FREEZE
            
}
            case 
3:
            {
                
game_mode BASE
            
}
            case 
4:
            {
                
game_mode TEAM
            
}
        }

        
reset_game()

        new 
players[32], num
        get_players
(players,num,"h")
        for(new 
i=0;i<num;i++)
        {
            
set_pev(players[i],pev_takedamage,0.0)
            
frozen[players[i]] = false
        
}

        
select_it()
    }

    
register_dictionary("GHW_TagMod.txt")
}

public 
plugin_precache()
{
    
beamsprite precache_model("sprites/dot.spr")
}

public 
client_connect(id)
{
    
frozen[id] = false
    respawning
[id] = false
    tagged
[id] = false
    gottobase
[id] = false
}

public 
client_disconnect(id)
{
    if(
id==it_player)
    {
        
select_it()
    }
}

public 
cmd_start(id,level,cid)
{
    if(!
cmd_access(id,level,cid,1))
    {
        return 
PLUGIN_HANDLED
    
}

    
game_mode REGULAR

    
if(read_argc()>1)
    {
        new 
arg[32]
        
read_argv(1,arg,31)
        if(
equali(arg,"Freeze"))
        {
            
game_mode FREEZE
        
}
        else if(
equali(arg,"Base"))
        {
            
game_mode BASE
        
}
        else if(
equali(arg,"Team"))
        {
            
game_mode TEAM
        
}
    }

    new 
name[32]
    if(
get_pcvar_num(activity_pcvar)>1)
    {
        
format(name,31,"Admin")
    }
    else
    {
        
get_user_name(id,name,31)
    }

    new 
type[32]
    new 
rules[128]
    switch(
game_mode)
    {
        case 
REGULAR:
        {
            
format(type,31,"%L",0,"TAG_TYPE_REGULAR")
            
format(rules,127,"[AMXX] %L",0,"TAG_RULES_REGULAR")
        }
        case 
FREEZE:
        {
            
format(type,31,"%L",0,"TAG_TYPE_FREEZE")
            
format(rules,127,"[AMXX] %L",0,"TAG_RULES_FREEZE")
        }
        case 
BASE:
        {
            
format(type,31,"%L",0,"TAG_TYPE_BASE")
            
format(rules,127,"[AMXX] %L",0,"TAG_RULES_BASE")
        }
        case 
TEAM:
        {
            
format(type,31,"%L",0,"TAG_TYPE_TEAM")
            
format(rules,127,"[AMXX] %L",0,"TAG_RULES_TEAM")
        }
    }

    
reset_game()

    
set_pcvar_num(restart_pcvar,1)

    new 
players[32], num
    get_players
(players,num,"h")
    for(new 
i=0;i<num;i++)
    {
        
set_pev(players[i],pev_takedamage,0.0)
        
frozen[players[i]] = false
    
}

    
console_print(id,"[AMXX] %L",id,"TAG_GAME_STARTED_CON",type)
    
client_print(0,print_chat,"[AMXX] %L",0,"TAG_GAME_STARTED_CHAT",name,type)
    
client_print(0,print_chat,"%s",rules)

    
select_it()

    return 
PLUGIN_HANDLED
}

public 
clcmd_chooseteam(id)
{
        if (
id == it_player) return PLUGIN_HANDLED
}  

public 
Create_Base()
{
    if(
game_mode==BASE)
    {
        if(
it_player && is_user_alive(it_player))
        {
            
pev(it_player,pev_origin,base_origin)
            
FVecIVec(base_origin,base_origin_I)
            
set_task(2.0,"Redraw_Base")
            
set_task(30.0,"Redraw_Base",TASK_REDRAW_BASE,"",0,"b")
            
remove_task(TASK_CREATE_BASE)
        }
    }
    else
    {
        
remove_task(TASK_CREATE_BASE)
    }
}

public 
Redraw_Base()
{
    if(
game_mode!=BASE)
    {
        
remove_task(TASK_REDRAW_BASE)
    }

    
draw_sprite(100,100,100,-100)
    
draw_sprite(100,100,-100,100)
    
draw_sprite(100,-100,-100,-100)
    
draw_sprite(-100,100,-100,-100)
}

public 
draw_sprite(addx1,addy1,addx2,addy2)
{
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY
    
write_byte(0)        //TE_BEAMPOINTS
    
write_coord(base_origin_I[0] + addx1)
    
write_coord(base_origin_I[1] + addy1)
    
write_coord(base_origin_I[2])
    
write_coord(base_origin_I[0] + addx2)
    
write_coord(base_origin_I[1] + addy2)
    
write_coord(base_origin_I[2])
    
write_short(beamsprite)
    
write_byte(1)    // framestart
    
write_byte(1)    // framerate
    
write_byte(1200)    // life in 0.1's
    
write_byte(5)    // width
    
write_byte(0)    // noise
    
write_byte(random_num(0,255))
    
write_byte(random_num(0,255))
    
write_byte(random_num(0,255))
    
write_byte(200)    // brightness
    
write_byte(0)    // speed
    
message_end()
}

public 
reset_game()
{
    for(new 
i=1;i<=maxplayers;i++)
    {
        if(
is_user_connected(i))
        {
            
set_user_noclip(i)
            
_set_rendering(i)
        }
        
frozen[i] = false
        tagged
[i] = false
    
}
}

public 
reset_game2()
{
    for(new 
i=1;i<=maxplayers;i++)
    {
        
gottobase[i] = false
    
}
}

public 
select_it()
{
    if(
task_exists(TASK_SELECT_IT) && it_player && is_user_connected(it_player))
    {
        
remove_task(TASK_SELECT_IT)
    }
    else if(!
task_exists(TASK_SELECT_IT))
    {
        
old_it is_user_connected(it_player) ? it_player 0
        it_player 
0
        set_task
(5.0,"select_it",TASK_SELECT_IT,"",0,"b")
    }
    else
    {
        
select_it2()
    }
}

public 
select_it2()
{
    if(
it_player && is_user_connected(it_player))
        
_set_rendering(it_player)

    
it_player 0

    
new numplayers[32]
    
get_players(players,num,"h")

    if(
num)
    {
        new 
tries 100
        
new tempplayer
        
while(!it_player && tries--)
        {
            
tempplayer random_num(0,num 1)
            if(
tempplayer!=old_it && (game_mode!=BASE || !gottobase[players[tempplayer]]))
            {
                
it_player tempplayer
            
}
        }
        if(!
it_player)
            
it_player players[random_num(0,num 1)]

        if(
is_user_connected(it_player))
        {
            
_set_rendering(it_player,kRenderFxDistort,255,0,0,kRenderTransAdd,127)
    
            new 
name[32]
            
get_user_name(it_player,name,31)
            
client_print(0,print_chat,"[AMXX] %L",0,"TAG_IT_SELECTED",name)

            if(
it_player && game_mode==BASE)
            {
                
reset_game2()
                if(!
task_exists(TASK_CREATE_BASE))
                {
                    
set_task(10.0,"Create_Base",TASK_CREATE_BASE,"",0,"b")
                }
            }
        }
        else
        {
            
select_it2() /////////
            
it_player 0
        
}
    }
}

public 
ResetHUD_Hook(id)
{
    if(
game_mode && pev_valid(id) && pev(id,pev_takedamage))
        
set_pev(id,pev_takedamage,0.0)
}

public 
cmd_stop(id,level,cid)
{
    if(!
cmd_access(id,level,cid,1))
    {
        return 
PLUGIN_HANDLED
    
}

    if(
game_mode)
    {
        
game_mode OFF

        
new players[32], num
        get_players
(players,num,"h")
        for(new 
i=0;i<num;i++)
        {
            
_set_rendering(players[i])
            
set_pev(players[i],pev_takedamage,1.0)
            
set_user_noclip(players[i])
        }

        new 
name[32]
        if(
get_pcvar_num(activity_pcvar)>1)
        {
            
format(name,31,"Admin")
        }
        else
        {
            
get_user_name(id,name,31)
        }
        
console_print(id,"[AMXX] %L",id,"TAG_GAME_STOPPED_CON")
        
client_print(0,print_chat,"[AMXX] %L",0,"TAG_GAME_STOPPED_CHAT",name)
    }
    else
    {
        
console_print(id,"[AMXX] %L",id,"TAG_GAME_NOTRUNNING")
    }

    return 
PLUGIN_HANDLED
}

public 
respawn_player(id)
{
    if(
is_user_connected(id))
    {
        
//Make the engine think he is spawning
        
set_pev(id,pev_deadflag,DEAD_RESPAWNABLE)
        
set_pev(id,pev_iuser1,0)
        
dllfunc(DLLFunc_Think,id)

        
//Move his body so if corpse is created it is not in map
        
engfunc(EngFunc_SetOrigin,id,Float:{-4800.0,-4800.0,-4800.0})

        
//Actual Spawn
        
set_task(0.5,"spawnagain",id)
    }
}

public 
spawnagain(id)
{
    
//Make sure he didn't disconnect in the 0.5 seconds that have passed.
    
if(is_user_connected(id))
    {
        
//Spawn player
        
spawn(id)
        
dllfunc(DLLFunc_Spawn,id)

        
set_task(0.2,"spawned",id)
    }
}

public 
spawned(id)
{
    if(
is_user_connected(id))
    {
        if(
id==it_player)
        {
            
_set_rendering(id,kRenderFxDistort,255,0,0,kRenderTransAdd,127)
        }
        else if(
game_mode==BASE)
        {
            if(
tagged[id])
            {
                
_set_rendering(id,kRenderFxGlowShell,0,255,0,kRenderTransAlpha,70)
                
set_user_noclip(id,1)
            }
            else if(
gottobase[id])
            {
                
_set_rendering(id,kRenderFxGlowShell,0,0,0,kRenderTransAdd,0)
                
engfunc(EngFunc_SetView,id,it_player)
            }
        }
        else if(
game_mode==FREEZE && frozen[id])
        {
            
_set_rendering(id,kRenderFxGlowShell,0,0,255,kRenderTransAlpha,70)
        }
    
        
set_pev(id,pev_takedamage,0.0)
        
respawning[id] = false
    
        
if(!it_player)
        {
            
select_it()
        }
    }
}

public 
FM_Think_Hook(ent)
{
    if(!
game_mode || ent maxplayers)
        return 
PLUGIN_CONTINUE

    
if(!respawning[ent] && !is_user_alive(ent) && get_user_team(ent))
    {
        
respawning[ent] = true
        respawn_player
(ent)
    }

    if(
frozen[ent])
    {
        
set_pev(ent,pev_velocity,Float:{0.0,0.0,-100.0})
    }

    if(
ent!=it_player && !tagged[ent] && !gottobase[ent] && is_user_alive(ent) && game_mode==BASE)
    {
        static 
Float:origin[3]
        
pev(ent,pev_origin,origin)
        if(
get_distance_f(origin,base_origin)<TAG_BASE_DISTANCE)
        {
            
gottobase[ent] = true
            frozen
[ent] = true
            set_user_noclip
(ent,1)
            
_set_rendering(ent,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,0)

            if(
get_pcvar_num(individual_msg_pcvar))
            {
                static 
name[32]
                
get_user_name(ent,name,31)
                
client_print(ent,print_chat,"[AMXX] %L",ent,"TAG_GOTTOBASE_CLIENT")
                
                if(
get_pcvar_num(individual_msg_pcvar))
                {
                    
client_print(0,print_chat,"[AMXX] %L",0,"TAG_GOTTOBASE_ALL",name)
                }

                if(
allout())
                {
                    
client_print(0,print_chat,"[AMXX] %L",0,"TAG_NEXTROUND")

                    
reset_game()
                    
select_it()
                    
reset_game2()
                }
            }
        }
    }

    return 
PLUGIN_CONTINUE
}

public 
FM_Touch_Hook(ent1,ent2)
{
    static 
name[32]
    if(
ent1 <= maxplayers && is_user_alive(ent1) && ent2 <= maxplayers && is_user_alive(ent1) && is_user_alive(ent2))
    {
        switch(
game_mode)
        {
            case 
REGULAR:
            {
                if(
ent1==it_player && ent2!=immune_player)
                {
                    if(
frozen[it_player])
                        
frozen[it_player] = false

                    immune_player 
it_player
                    set_task
(5.0,"unimmune")
                    
frozen[ent2] = true
                    set_task
(5.0,"unfreeze",ent2)
                    
it_player ent2

                    get_user_name
(ent2,name,31)
                    
client_print(0,print_chat,"[AMXX] %L",0,"TAG_TAGGED",name)

                    
_set_rendering(ent1)
                    
_set_rendering(ent2,kRenderFxDistort,0,0,0,kRenderTransAdd,127)
                }
            }
            case 
FREEZE:
            {
                if(
defrostable[ent1] && frozen[ent1] && ent2!=it_player && !frozen[ent2])
                {
                    
unfreeze(ent1)
                    
_set_rendering(ent1)

                    if(
get_pcvar_num(individual_msg_pcvar))
                    {
                        
get_user_name(ent1,name,31)
                        
client_print(0,print_chat,"[AMXX] %L",0,"TAG_UNFROZEN",name)
                    }
                }
                else if(
ent1==it_player && !frozen[ent2])
                {
                    
freeze(ent2)
                    
_set_rendering(ent2,kRenderFxGlowShell,0,0,255,kRenderTransAlpha,70)

                    if(
get_pcvar_num(individual_msg_pcvar))
                    {
                        
get_user_name(ent2,name,31)
                        
client_print(0,print_chat,"[AMXX] %L",0,"TAG_FROZEN",name)
                    }

                    
defrostable[ent2] = false
                    set_task
(1.0,"unfreezeable",ent2)

                    if(
allfrozen())
                    {
                        
set_pcvar_num(restart_pcvar,1)

                        
get_user_name(it_player,name,31)
                        
client_print(0,print_chat,"[AMXX] %L",0,"TAG_FROZEN_FINISHED",name)

                        
reset_game()
                        
select_it()
                    }
                }
            }
            case 
BASE:
            {
                if(
ent1==it_player && !tagged[ent2] && !gottobase[ent2])
                {
                    
tagged[ent2] = true;
                    
_set_rendering(ent2,kRenderFxGlowShell,0,255,0,kRenderTransAlpha,70)
                    
set_user_noclip(ent2,1)

                    if(
get_pcvar_num(individual_msg_pcvar))
                    {
                        
get_user_name(ent2,name,31)
                        
client_print(0,print_chat,"[AMXX] %L",0,"TAG_BASE_TAGGED",name)
                    }

                    if(
allout())
                    {
                        
client_print(0,print_chat,"[AMXX] %L",0,"TAG_NEXTROUND")

                        
reset_game()
                        
select_it()
                    }
                }
            }
            case 
TEAM:
            {
                if((
ent1==it_player || tagged[ent1]) && (!tagged[ent2] && ent2!=it_player))
                {
                    
client_print(ent2,print_chat,"[AMXX] %L",ent2,"TAG_TEAM_TAGGED")
                    
tagged[ent2] = true
                    _set_rendering
(ent2,kRenderFxDistort,0,0,0,kRenderTransAdd,127)
                    if(
alltagged())
                    {
                        
client_print(0,print_chat,"[AMXX] %L",0,"TAG_NEXTROUND")

                        
reset_game()
                        
select_it()
                    }
                }
            }
        }
    }
}

public 
allfrozen()
{
    new 
numplayers[32]
    
get_players(players,num,"ah")

    for(new 
i=0;i<num;i++)
    {
        if(
players[i]!=it_player && !frozen[players[i]])
            return 
0;
    }

    return 
1;
}

public 
allout()
{
    new 
numplayers[32]
    
get_players(players,num,"ah")

    for(new 
i=0;i<num;i++)
    {
        if(
players[i]!=it_player && !tagged[players[i]] && !gottobase[players[i]])
            return 
0;
    }

    return 
1;
}

public 
alltagged()
{
    new 
numplayers[32]
    
get_players(players,num,"ah")

    for(new 
i=0;i<num;i++)
    {
        if(
players[i]!=it_player && !tagged[players[i]])
            return 
0;
    }

    return 
1;
}

public 
unfreezeable(id)
{
    
defrostable[id] = true
}

public 
freeze(id)
{
    
frozen[id] = true
}

public 
unfreeze(id)
{
    
frozen[id] = false
}

public 
unimmune()
{
    
immune_player 0
}

// Taken from csdm_protection.sma by BAILOPAN.
stock _set_rendering(indexfx=kRenderFxNoner=255g=255b=255render=kRenderNormalamount=16)
{
    
set_pev(indexpev_renderfxfx);
    new 
Float:RenderColor[3];
    
RenderColor[0] = float(r);
    
RenderColor[1] = float(g);
    
RenderColor[2] = float(b);
    
set_pev(indexpev_rendercolorRenderColor);
    
set_pev(indexpev_rendermoderender);
    
set_pev(indexpev_renderamtfloat(amount));

    return 
1;

__________________
Please help me with this Thread
I am 70% addicted to Counterstrike. What about you?
Ill make any spanish translation of a plugin. Just ask for it
benamo6 is offline
Send a message via MSN to benamo6
fysiks
Veteran Member
Join Date: Sep 2007
Location: Flatland, USA
Old 12-31-2009 , 19:59   Re: Block menu from another plugin.
Reply With Quote #4

Functions and variables are CaSe sEnsItiVe!

PHP Code:
public ClCmd_ChooseTeam(id)
{
    if (
id == it_player)
        return 
PLUGIN_HANDLED
    
return PLUGIN_CONTINUE

Although, I'm not sure this will work. What are you trying to block?
__________________
fysiks is offline
benamo6
Veteran Member
Join Date: Aug 2008
Location: NeverLand
Old 01-01-2010 , 11:26   Re: Block menu from another plugin.
Reply With Quote #5

I'm trying to block a menu that pops up ( pressing chooseteam) from another plugin.
__________________
Please help me with this Thread
I am 70% addicted to Counterstrike. What about you?
Ill make any spanish translation of a plugin. Just ask for it
benamo6 is offline
Send a message via MSN to benamo6
fysiks
Veteran Member
Join Date: Sep 2007
Location: Flatland, USA
Old 01-02-2010 , 04:27   Re: Block menu from another plugin.
Reply With Quote #6

I believe you would need to list this plugin above the plugin in question.
__________________
fysiks is offline
benamo6
Veteran Member
Join Date: Aug 2008
Location: NeverLand
Old 01-02-2010 , 09:15   Re: Block menu from another plugin.
Reply With Quote #7

Thanks fysiks, now working
__________________
Please help me with this Thread
I am 70% addicted to Counterstrike. What about you?
Ill make any spanish translation of a plugin. Just ask for it
benamo6 is offline
Send a message via MSN to benamo6
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 04:14.


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