AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Block Buttons (https://forums.alliedmods.net/showthread.php?t=308497)

PurposeLessx 06-22-2018 07:52

Block Buttons
 
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;



maqi 06-22-2018 08:03

Re: Block Buttons
 
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 ?

PurposeLessx 06-22-2018 08:07

Re: Block Buttons
 
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?


All times are GMT -4. The time now is 12:46.

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