Raised This Month: $32 Target: $400
 8% 

Block Buttons


Post New Thread Reply   
 
Thread Tools Display Modes
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
maqi
Senior Member
Join Date: Apr 2017
Location: Serbia
Old 06-22-2018 , 08:03   Re: Block Buttons
Reply With Quote #2

First of all, I already told you everything you need to know about that matter.
And second of all, are we supposed to read your mind what kind of problems ?
__________________
stuff
maqi is offline
PurposeLessx
Senior Member
Join Date: Jun 2017
Old 06-22-2018 , 08:07   Re: Block Buttons
Reply With Quote #3

I tried to do it but I am not sure that where is the mistake. And also I couldn't use "fprintc" "fputs" commands perfectly.

PHP Code:
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); 
    } 

May you give an example?

Last edited by PurposeLessx; 06-22-2018 at 08:07.
PurposeLessx 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 05:58.


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