Raised This Month: $ Target: $400
 0% 

Block Buttons


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
PurposeLessx
Senior Member
Join Date: Jun 2017
Old 06-22-2018 , 07:52   Block Buttons
Reply With Quote #1

Hello friends, I have still a problem about block buttons and unblock from file.
Can you teach me about correct codes? Thanks

PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <engine>
#include <hamsandwich>

#pragma semicolon 1

new filename[128];
new 
g_iButtonCounter;
new 
g_iButtons[900];

public 
plugin_init() {
    
register_plugin("Buton Engelleme""1.2""PurposeLess");
    
    
register_clcmd("say /buton""cmd_buton");
    
register_clcmd("say /button""cmd_buton");
    
    
RegisterHam(Ham_Use"func_button""RHam_Use");
    
    new 
mapname[32];
    
get_mapname(mapnamecharsmax(mapname));
    
get_localinfo("amxx_configsdir"filenamecharsmax(filename));
    
format(filenamecharsmax(filename), "%s/buton_engelleme/%s.ini"filenamemapname);
    
    
LoadButtons();
}

public 
cmd_buton(id)
{
    if(
get_user_flags(id) & ADMIN_RCON)
    {
        new 
menu menu_create("Button Menu""cmd_buton2");
        
        
menu_additem(menu"\yButon ID Ogren^n""1");
        
menu_additem(menu"\yButonu Yasakla""2");
        
menu_additem(menu"\yButonun Yasagini Kaldir""3");
        
        
menu_setprop(menuMPROP_EXITNAME"Cikis");
        
menu_display(idmenu);
    }
    return 
PLUGIN_HANDLED;
}

public 
cmd_buton2(idmenuitem)
{
    if(
item == MENU_EXIT || !(get_user_flags(id) & ADMIN_RCON))
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    static 
data[6], accesscallback;
    
menu_item_getinfo(menuitemaccessdatacharsmax(data), __callback);
    new 
key str_to_num(data);
    switch(
key)
    {
        case 
1: {
            new 
entaim;
            
get_user_aiming(identaim);
            
            if(
ent)
            {
                
client_print(idprint_center"[LeaderGaming] Buton ID : %d"ent);
            }
            
menu_display(idmenu);
        }
        case 
2: {
            new 
entaim;
            
get_user_aiming(identaim);
            
            if(
ent)
            {
                if(
is_button_blocked(ent))
                {
                    
client_print_color(idid"^1[^4LeaderGaming^1] ^3Bu buton ^4zaten ^3yasaklanmis^1.");
                }
                else
                {
                    new 
ID[4];
                    
format(IDcharsmax(ID), "%d"ent);
                    
//fputs(filename, ID, true); WRONG COMMAND
                    // What is correct?
                    
LoadButtons();
                    
client_print_color(idid"^1[^4LeaderGaming^1] ^3Bu buton ^4yasaklanmistir^1. ^3Buton ID^1: ^4%d"ent);
                }
            }
            
menu_display(idmenu);
        }
        case 
3: {
            new 
entaim;
            
get_user_aiming(identaim);
            
            if(
ent)
            {
                if(!
is_button_blocked(ent))
                {
                    
client_print_color(idid"^1[^4LeaderGaming^1] ^3Bu buton ^4zaten ^3yasaklanmamis^1.");
                }
                else
                {
                    
DeleteButton(ent);
                    
client_print_color(idid"^1[^4LeaderGaming^1] ^3Bu butonun yasagi ^4kaldirilmistir^1. ^3Buton ID^1: ^4%d"ent);
                }
            }
            
menu_display(idmenu);
        }
    }
    return 
PLUGIN_HANDLED;
}

public 
RHam_Use(entid)
{
    if(
get_user_team(id) == 1)
    {
        if(
get_godmode())
        {
            
client_print(idprint_center"[LeaderGaming] Godmode varken bu butonu kullanamazsin.");
            return 
HAM_SUPERCEDE;
        }
        if(
is_button_blocked(id))
        {
            
client_print(idprint_center"[LeaderGaming] Bu butonu kullanamazsin.");
            return 
HAM_SUPERCEDE;
        }
    }
    return 
HAM_IGNORED;
}

public 
LoadButtons()
{
    new 
filehandle fopen(filename"rt");

    new 
data[128];
    if(
filehandle)
    {
        while(!
feof(filehandle))
        {
            
fgets(filehandledatacharsmax(data));
            
trim(data);

            if(
equal(data" "))
            {
                
replace(datacharsmax(data), " ","");
                continue;
            }

            
g_iButtons[g_iButtonCounter] = str_to_num(data);

            if(!
pev_valid(g_iButtons[g_iButtonCounter]))
            {
                continue;
            }

            
g_iButtonCounter++;
        }

        
fclose(filehandle);
    }
    else
    {
        
set_fail_state("Couldn't read from a file");
    }
}

public 
DeleteButton(ent)
{
    new 
filehandle fopen(filename"rt");

    new 
data[128], PurposeLess[600];
    if(
filehandle)
    {
        while(!
feof(filehandle))
        {
            
fgets(filehandledatacharsmax(data));
            
trim(data);

            
g_iButtons[g_iButtonCounter] = str_to_num(data);

            if(
g_iButtons[g_iButtonCounter] == ent)
            {
                continue;
            }

            
copy(g_iButtonscharsmax(g_iButtons), PurposeLess);
        }
        
fclose(filehandle);
    }

    
filehandle fopen(filename"rt");

    if(
filehandle)
    {
        while(!
feof(filehandle))
        {
            
fgets(filehandledatacharsmax(data));
            
trim(data);

            
g_iButtons[g_iButtonCounter] = str_to_num(data);

            
replace_all(datacharsmax(data), g_iButtons[g_iButtonCounter], "");
            
//fprintf(filename, PurposeLess);
            //AGAIN WRONG NUMBER [ Puts all buttons to file again ]
        
}
        
fclose(filehandle);
    }
}

public 
get_godmode()
{
    new 
a=0b=0;
    for(new 
id 1id <= 32id++)
    {
        if(!
is_user_connected(id)) continue;
        new 
team get_user_team(id);
        if(
team == && is_user_alive(id))
        {
            
a++;
            if(!
pev(idpev_takedamage))
            {
                
b++;
            }
        }
    }
    return (
&& 0) ? 1:0;
}

bool:is_button_blocked(ent)
{
    for(new 
0g_iButtonCounteri++)
    {
        if(!
g_iButtons[i]) continue;
        if(
ent== g_iButtons[i]) return true;
    }
    return 
false;

PurposeLessx is offline
 



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:46.


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