View Single Post
wildbiker
Junior Member
Join Date: Jul 2023
Location: Hungary
Old 04-11-2024 , 14:51   Re: nVault save + load
Reply With Quote #11

Quote:
Originally Posted by bigdaddy424 View Post
PHP Code:
#include <amxmodx>
#include <chatmanager>
#include <nvault>

#define PLUGIN_VERSION "4.1"

#define SetBit(%1,%2)      (%1 |= (1<<%2))
#define ClearBit(%1,%2)    (%1 &= ~(1<<%2))
#define CheckBit(%1,%2)    (%1 & (1<<%2)) 

new vaultvalue[MAX_PLAYERS 1]
enum
{
    
CM_MENU_ITEM_PREFIX,
    
CM_MENU_ITEM_CHAT_COLOR,
    
CM_MENU_ITEM_CUSTOM_NAME
}

public 
plugin_init()
{
    
register_plugin("CM: Toggle Chat"PLUGIN_VERSION"OciXCrom")
    
register_cvar("CRXCMToggleChat"PLUGIN_VERSIONFCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
    
register_dictionary("ChatManager.txt")
    
register_clcmd("say /cm""Menu_Display")
    
register_clcmd("say_team /cm""Menu_Display")
    
vault nvault_open("chatmanager")
}

public 
plugin_end()
{
    
nvault_close(vault);
}

public 
Menu_Display(id)
{
    new 
szText[128], szItem[128]
    
formatex(szTextcharsmax(szText), "%L"id"CM_MENU_TITLE")
    
    new 
iMenu menu_create(szText"Menu_Handler")

    
cm_get_user_prefix(idszTextcharsmax(szText))
    
check_validity(szTextcharsmax(szText))
    
formatex(szItemcharsmax(szItem), "%L %L%s"id"CM_MENU_PREFIX"idcm_get_user_prefix_status(id) ? "CM_MENU_ENABLED" "CM_MENU_DISABLED"szText)
    
menu_additem(iMenuszItem)
    
    
cm_get_user_chat_color(idszTextcharsmax(szText))
    
check_validity(szTextcharsmax(szText))
    
formatex(szItemcharsmax(szItem), "%L %L%s"id"CM_MENU_CHAT_COLOR"idcm_get_user_chat_color_status(id) ? "CM_MENU_ENABLED" "CM_MENU_DISABLED"szText)
    
menu_additem(iMenuszItem)
    
    
cm_get_user_custom_name(idszTextcharsmax(szText))
    
check_validity(szTextcharsmax(szText))
    
formatex(szItemcharsmax(szItem), "%L %L%s"id"CM_MENU_CUSTOM_NAME"idcm_get_user_custom_name_status(id) ? "CM_MENU_ENABLED" "CM_MENU_DISABLED"szText)
    
menu_additem(iMenuszItem)
    
    
menu_display(idiMenu)
    return 
PLUGIN_HANDLED
}

public 
Menu_Handler(idiMenuiItem)
{
    switch(
iItem)
    {
        case 
MENU_EXIT:
        {
            
menu_destroy(iMenu)
            return 
PLUGIN_HANDLED
        
}
        case 
CM_MENU_ITEM_PREFIX
        {
            
cm_set_user_prefix_status(id, !cm_get_user_prefix_status(id))
            
cm_get_user_prefix_status(id) ? SetBit(value[id], CM_MENU_ITEM_PREFIX) : ClearBit(value[id], CM_MENU_ITEM_PREFIX)
        }
        case 
CM_MENU_ITEM_CHAT_COLOR
        {
            
cm_set_user_chat_color_status(id, !cm_get_user_chat_color_status(id))
            
cm_get_user_chat_color_status(id) ? SetBit(value[id], CM_MENU_ITEM_CHAT_COLOR) : ClearBit(value[id], CM_MENU_ITEM_CHAT_COLOR)
        }
        case 
CM_MENU_ITEM_CUSTOM_NAME
        {
            
cm_set_user_custom_name_status(id, !cm_get_user_custom_name_status(id))
            
cm_get_user_custom_name_status(id) ? SetBit(value[id], CM_MENU_ITEM_CUSTOM_NAME) : ClearBit(value[id], CM_MENU_ITEM_CUSTOM_NAME)
        }
    }
    
    
menu_destroy(iMenu)
    
Menu_Display(id)
    return 
PLUGIN_HANDLED
}

check_validity(szText[], const iLen)
{
    if(
szText[0])
        
format(szTextiLen"\d: %s"szText)
}

public 
client_authorized(id, const authid[])
{
    
value[id] = nvault_get(vaultauthid)
    
cm_set_user_prefix_status(idbool:CheckBit(value[id], CM_MENU_ITEM_PREFIX))
    
cm_set_user_chat_color_status(idbool:CheckBit(value[id], CM_MENU_ITEM_CHAT_COLOR))
    
cm_set_user_custom_name_status(idbool:CheckBit(value[id], CM_MENU_ITEM_CUSTOM_NAME))
}

public 
client_disconnected(id)
{
    new 
authid[32]
    
get_user_authid(idauthid31)
    
nvault_set(vaultauthidfmt("%d"value[id]))

Hi!

Thank you very much, I roughly understand this solution, but unfortunately it doesn't work.

By default, all three options are enabled. I disable it and after changing the map or reconnecting it is still enabled.
__________________
wildbiker is offline