AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   New Plugin Submissions (https://forums.alliedmods.net/forumdisplay.php?f=26)
-   -   Become VIP Plus (https://forums.alliedmods.net/showthread.php?t=304480)

Alber9091 07-28-2018 16:27

Re: Become VIP Plus
 
I have little question?
Do this plugin gives flags to only non-flaggers (I mean z access) or anyone who already have flags.

Like: An Admin Having Flags bcdeimnu and t is defined flag.
When he achives target, will his flags be bcdeimntu or we have to manually change them?

OciXCrom 07-28-2018 17:13

Re: Become VIP Plus
 
@Shadowless - what's the problem exactly? Of course it gives to bots too, why wouldn't it? If you don't want to, simply edit the plugin you're using. I'll add an option in my plugin too.

@Alber9091 - it gives them to everyone, you don't need to change them manually.

OciXCrom 07-29-2018 08:03

Re: Become VIP Plus
 
Added IGNORE_BOTS in the .ini file.

Alber9091 07-30-2018 11:20

Re: Become VIP Plus
 
Quote:

Originally Posted by OciXCrom (Post 2606690)
@Shadowless - what's the problem exactly? Of course it gives to bots too, why wouldn't it? If you don't want to, simply edit the plugin you're using. I'll add an option in my plugin too.

@Alber9091 - it gives them to everyone, you don't need to change them manually.

Plugin is not providing VIP Flag.
Just Displays Message, but not providing flag. (Even this Guy, don't have any flag registered in user.ini, still its not registering)

https://preview.ibb.co/iPazio/receiv...0683095138.jpg

CrAzY MaN 07-30-2018 12:38

Re: Become VIP Plus
 
Post the edited file too.

Alber9091 07-30-2018 12:44

Re: Become VIP Plus
 
Quote:

Originally Posted by CrAzY MaN (Post 2607094)
Post the edited file too.

Diff Checker (Changes Made): https://www.diffchecker.com/j6JX24tp

PHP Code:

#include <amxmodx>
#include <amxmisc>
#include <cromchat>
#include <hamsandwich>
#include <nvault>

#define PLUGIN_VERSION "2.1"
#define ARG_RANDOM -1
#define RANDOM_COLOR random_num(50, 255) 
#define FLAGS_DELAY 0.1

#if defined client_disconnected
    #define client_disconnect client_disconnected
#endif

enum _:Settings
{
    
SAVE_TYPE,
    
KILLS_NEEDED,
    
VIP_FLAGS_BIT,
    
VIP_FLAGS_STR[32],
    
IGNORE_BOTS,
    
VIP_SUCCESS_MESSAGE,
    
bool:HUD_MESSAGE_ENABLED,
    
HUD_MESSAGE_COLOR[3],
    
Float:HUD_MESSAGE_POSITION[2],
    
Float:HUD_MESSAGE_DURATION,
    
HUD_MESSAGE_EFFECTS,
    
Float:HUD_MESSAGE_TIME[3]
}

enum _:PlayerData
{
    
Name[32],
    
Info[35],
    
Kills
}

new 
g_eSettings[Settings],
    
g_ePlayerData[33][PlayerData],
    
g_iObject,
    
g_iVault

public plugin_init()
{
    
register_plugin("BecomeVIP Plus"PLUGIN_VERSION"OciXCrom")
    
register_cvar("CRXBecomeVIP"PLUGIN_VERSIONFCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
    
register_dictionary("BecomeVIP.txt")
    
register_event("DeathMsg""OnPlayerKilled""a")
    
register_concmd("becomevip_give_kills""Cmd_GiveKills"ADMIN_LEVEL_C"<nick|#userid> <kills>")
    
register_concmd("becomevip_reset_kills""Cmd_ResetKills"ADMIN_LEVEL_C"<nick|#userid>")
    
ReadFile()
}

public 
plugin_end()
    
nvault_close(g_iVault)

ReadFile()
{
    new 
szConfigsName[256], szFilename[256]
    
get_configsdir(szConfigsNamecharsmax(szConfigsName))
    
formatex(szFilenamecharsmax(szFilename), "%s/BecomeVIP.ini"szConfigsName)
    new 
iFilePointer fopen(szFilename"rt")
    
    if(
iFilePointer)
    {
        new 
szData[96], szValue[64], szKey[32], szTemp[4][5], i
        
        
while(!feof(iFilePointer))
        {
            
fgets(iFilePointerszDatacharsmax(szData))
            
trim(szData)
            
            switch(
szData[0])
            {
                case 
EOS'#'';': continue
                default:
                {
                    
strtok(szDataszKeycharsmax(szKey), szValuecharsmax(szValue), '=')
                    
trim(szKey); trim(szValue)
                    
                    if(
equal(szKey"PLUGIN_PREFIX"))
                        
CC_SetPrefix(szValue)
                    else if(
equal(szKey"SAVE_TYPE"))
                        
g_eSettings[SAVE_TYPE] = str_to_num(szValue)
                    else if(
equal(szKey"KILLS_NEEDED"))
                        
g_eSettings[KILLS_NEEDED] = str_to_num(szValue)
                    else if(
equal(szKey"VIP_FLAGS"))
                    {
                        
copy(g_eSettings[VIP_FLAGS_STR], charsmax(g_eSettings[VIP_FLAGS_STR]), szValue)
                        
g_eSettings[VIP_FLAGS_BIT] = read_flags(szValue)
                    }
                    else if(
equal(szKey"IGNORE_BOTS"))
                        
g_eSettings[IGNORE_BOTS] = str_to_num(szValue
                    if(
equal(szKey"CHECK_KILLS_COMMANDS"))
                    {
                        while(
szValue[0] != && strtok(szValueszKeycharsmax(szKey), szValuecharsmax(szValue), ','))
                        {
                            
trim(szKey); trim(szValue)
                            
                            if(
szKey[0] == '/' || szKey[0] == '!')
                            {
                                
formatex(szDatacharsmax(szData), "say %s"szKey)
                                
register_clcmd(szData"Cmd_CheckKills")
                                
formatex(szDatacharsmax(szData), "say_team %s"szKey)
                                
register_clcmd(szData"Cmd_CheckKills")
                            }
                            else 
register_clcmd(szData"Cmd_CheckKills")
                        }
                    }
                    else if(
equal(szKey"VAULT_FILE"))
                        
g_iVault nvault_open(szValue)
                    else if(
equal(szKey"VIP_SUCCESS_MESSAGE"))
                        
g_eSettings[VIP_SUCCESS_MESSAGE] = str_to_num(szValue)
                    else if(
equal(szKey"HUD_MESSAGE_ENABLED"))
                    {
                        
g_eSettings[HUD_MESSAGE_ENABLED] = bool:str_to_num(szValue)
                        
                        if(
g_eSettings[HUD_MESSAGE_ENABLED])
                        {
                            
g_iObject CreateHudSyncObj()
                            
RegisterHam(Ham_Spawn"player""OnPlayerSpawn"1)
                        }
                    }
                    else if(
equal(szKey"HUD_MESSAGE_COLOR"))
                    {
                        
parse(szValueszTemp[0], charsmax(szTemp[]), szTemp[1], charsmax(szTemp[]), szTemp[2], charsmax(szTemp[]))
                        
                        for(
03i++)
                            
g_eSettings[HUD_MESSAGE_COLOR][i] = str_to_num(szTemp[i])
                    }
                    else if(
equal(szKey"HUD_MESSAGE_POSITION"))
                    {
                        
parse(szValueszTemp[0], charsmax(szTemp[]), szTemp[1], charsmax(szTemp[]))
                        
                        for(
02i++)
                            
g_eSettings[HUD_MESSAGE_POSITION][i] = _:str_to_float(szTemp[i])
                    }
                    else if(
equal(szKey"HUD_MESSAGE_DURATION"))
                        
g_eSettings[HUD_MESSAGE_DURATION] = _:str_to_float(szValue)
                    else if(
equal(szKey"HUD_MESSAGE_EFFECTS"))
                    {
                        
parse(szValueszTemp[0], charsmax(szTemp[]), szTemp[1], charsmax(szTemp[]), szTemp[2], charsmax(szTemp[]), szTemp[3], charsmax(szTemp[]))
                        
g_eSettings[HUD_MESSAGE_EFFECTS] = str_to_num(szTemp[0])
                        
                        for(
03i++)
                            
g_eSettings[HUD_MESSAGE_TIME][i] = _:str_to_float(szTemp[1])
                    }
                }
            }
        }
        
        
fclose(iFilePointer)
    }
}

public 
client_authorized(id)
{
    if(
ignore_bot(id))
        return

    switch(
g_eSettings[SAVE_TYPE])
    {
        case 
0:
        {
            
get_user_name(idg_ePlayerData[id][Info], charsmax(g_ePlayerData[][Info]))
            
strtolower(g_ePlayerData[id][Info])
        }
        case 
1get_user_ip(idg_ePlayerData[id][Info], charsmax(g_ePlayerData[][Info]), 1)
        case 
2get_user_authid(idg_ePlayerData[id][Info], charsmax(g_ePlayerData[][Info]))
    }
    
    
get_user_name(idg_ePlayerData[id][Name], charsmax(g_ePlayerData[][Name]))
    
use_vault(idfalseg_ePlayerData[id][Info])
}

public 
client_disconnect(id)
{
    if(
ignore_bot(id))
        return

    
use_vault(idtrueg_ePlayerData[id][Info])
}
    
public 
client_infochanged(id)
{
    if(
ignore_bot(id))
        return

    static 
szNewName[32], szOldName[32]
    
get_user_info(id"name"szNewNamecharsmax(szNewName))
    
get_user_name(idszOldNamecharsmax(szOldName))
    
    if(!
equal(szNewNameszOldName))
    {
        if(!
g_eSettings[SAVE_TYPE])
        {
            
use_vault(idtrueszOldName)
            
use_vault(idfalseszNewName)
            
copy(g_ePlayerData[id][Info], charsmax(g_ePlayerData[][Info]), szNewName)
            
strtolower(g_ePlayerData[id][Info])
        }
        
        
set_task(FLAGS_DELAY"refresh_status"id)
        
copy(g_ePlayerData[id][Name], charsmax(g_ePlayerData[][Name]), szNewName)
    }
}

public 
OnPlayerSpawn(id)
{
    if(!
is_user_alive(id) || has_vip_flags(id) || ignore_bot(id))
        return
        
    new 
szName[32], szAuthId[35], szDateAndTime[22]
    
get_user_name(idszNamecharsmax(szName))
    
get_user_authid(idszAuthIdcharsmax(szAuthId))
    
get_time("%H:%M - %d/%m/%Y"szDateAndTimecharsmax(szDateAndTime))
    
    
set_hudmessage
    
(
        
g_eSettings[HUD_MESSAGE_COLOR][0] == ARG_RANDOM RANDOM_COLOR g_eSettings[HUD_MESSAGE_COLOR][0],
        
g_eSettings[HUD_MESSAGE_COLOR][1] == ARG_RANDOM RANDOM_COLOR g_eSettings[HUD_MESSAGE_COLOR][1],
        
g_eSettings[HUD_MESSAGE_COLOR][2] == ARG_RANDOM RANDOM_COLOR g_eSettings[HUD_MESSAGE_COLOR][2],
        
g_eSettings[HUD_MESSAGE_POSITION][0], g_eSettings[HUD_MESSAGE_POSITION][1],    g_eSettings[HUD_MESSAGE_EFFECTS],
        
g_eSettings[HUD_MESSAGE_TIME][0], g_eSettings[HUD_MESSAGE_DURATION], g_eSettings[HUD_MESSAGE_TIME][1], g_eSettings[HUD_MESSAGE_TIME][2]
    )
    
    
ShowSyncHudMsg(idg_iObject"%L"id"BECOMEVIP_HUD_MSG"szNameszAuthIdg_eSettings[KILLS_NEEDED], g_ePlayerData[id][Kills], szDateAndTime)
}

public 
OnPlayerKilled()
{
    new 
iAttacker read_data(1), iVictim read_data(2)
        
    if(
is_user_connected(iAttacker) && iAttacker != iVictim && !ignore_bot(iAttacker))
    {
        
g_ePlayerData[iAttacker][Kills]++
        
check_status(iAttackertrue)
    }
}

public 
Cmd_CheckKills(id)
{
    new 
szName[32], szAuthId[35], szDateAndTime[22]
    
get_user_name(idszNamecharsmax(szName))
    
get_user_authid(idszAuthIdcharsmax(szAuthId))
    
get_time("%H:%M - %d/%m/%Y"szDateAndTimecharsmax(szDateAndTime))
    
    if(
has_vip_flags(id))
        
CC_SendMessage(id"%L"id"BECOMEVIP_INFO_YES"szNameszAuthIdg_eSettings[KILLS_NEEDED], g_eSettings[VIP_FLAGS_STR], szDateAndTime)
    else
        
CC_SendMessage(id"%L"id"BECOMEVIP_INFO_NO"szNameszAuthIdg_eSettings[KILLS_NEEDED] - g_ePlayerData[id][Kills], g_ePlayerData[id][Kills], g_eSettings[VIP_FLAGS_STR], szDateAndTime)
        
    return 
PLUGIN_HANDLED
}

public 
Cmd_GiveKills(idiLeveliCid)
{
    if(!
cmd_access(idiLeveliCid3))
        return 
PLUGIN_HANDLED
        
    
new szPlayer[32]
    
read_argv(1szPlayercharsmax(szPlayer))
    
    new 
iPlayer cmd_target(idszPlayerCMDTARGET_ALLOW_SELF)
    
    if(!
iPlayer)
        return 
PLUGIN_HANDLED
        
    
new szName[2][32], szAmount[8]
    
get_user_name(idszName[0], charsmax(szName[]))
    
get_user_name(iPlayerszName[1], charsmax(szName[]))
    
read_argv(2szAmountcharsmax(szAmount))
    
    new 
iAmount str_to_num(szAmount)
    
g_ePlayerData[iPlayer][Kills] += iAmount
    check_status
(iPlayertrue)
    
    
CC_LogMessage(0_"%L"LANG_PLAYERiAmount >= "BECOMEVIP_GIVE_KILLS" "BECOMEVIP_TAKE_KILLS"szName[0], iAmountszName[1])
    return 
PLUGIN_HANDLED
}

public 
Cmd_ResetKills(idiLeveliCid)
{
    if(!
cmd_access(idiLeveliCid2))
        return 
PLUGIN_HANDLED
        
    
new szPlayer[32]
    
read_argv(1szPlayercharsmax(szPlayer))
    
    new 
iPlayer cmd_target(idszPlayerCMDTARGET_ALLOW_SELF|CMDTARGET_OBEY_IMMUNITY)
    
    if(!
iPlayer)
        return 
PLUGIN_HANDLED
        
    
new szName[2][32]
    
get_user_name(idszName[0], charsmax(szName[]))
    
get_user_name(iPlayerszName[1], charsmax(szName[]))
    
g_ePlayerData[iPlayer][Kills] = 0
    CC_LogMessage
(0_"%L"LANG_PLAYER"BECOMEVIP_RESET_KILLS"szName[0], szName[1])
    return 
PLUGIN_HANDLED
}

public 
refresh_status(id)
    
check_status(idfalse)

bool:check_status(const id, const bool:bAnnounce)
{
    if(
has_vip_flags(id) || ignore_bot(id))
        return
        
    if(
g_ePlayerData[id][Kills] >= g_eSettings[KILLS_NEEDED])
        
set_vip_flags(idbAnnounce)
}
    
set_vip_flags(const id, const bool:bAnnounce)
{
    
set_user_flags(idg_eSettings[VIP_FLAGS_BIT])
    
    new 
szName[32], szAuthId[35], szDateAndTime[22]
    
get_user_name(idszNamecharsmax(szName))
    
get_user_authid(idszAuthIdcharsmax(szAuthId))
    
get_time("%H:%M - %d/%m/%Y"szDateAndTimecharsmax(szDateAndTime))
    
    if(
bAnnounce)
    {
        switch(
g_eSettings[VIP_SUCCESS_MESSAGE])
        {
            case 
1CC_SendMessage(id"%L"id"BECOMEVIP_SUCCESS_PLR"szNameszAuthIdg_eSettings[VIP_FLAGS_STR], g_eSettings[KILLS_NEEDED], szDateAndTime)
            case 
2CC_SendMessage(0"%L"LANG_PLAYER"BECOMEVIP_SUCCESS_ALL"szNameszAuthIdg_eSettings[VIP_FLAGS_STR], g_eSettings[KILLS_NEEDED], szDateAndTime)
        }
    }
}

bool:ignore_bot(const id)
    return (
g_eSettings[IGNORE_BOTS] && is_user_bot(id))

bool:has_vip_flags(const id)
    return ((
get_user_flags(id) & g_eSettings[VIP_FLAGS_BIT]) == g_eSettings[VIP_FLAGS_BIT])

use_vault(const id, const bool:bSave, const szInfo[])
{
    if(!
szInfo[0])
        return
    
    if(
bSave)
    {
        static 
szKills[10]
        
num_to_str(g_ePlayerData[id][Kills], szKillscharsmax(szKills))
        
nvault_set(g_iVaultszInfoszKills)
    }
    else
    {
        
g_ePlayerData[id][Kills] = nvault_get(g_iVaultszInfo)
        
set_task(FLAGS_DELAY"refresh_status"id)
    }
}

public 
plugin_natives()
{
    
register_library("becomevip")
    
register_native("becomevip_get_flags""_becomevip_get_flags")
    
register_native("becomevip_get_kills_needed""_becomevip_get_kills_needed")
    
register_native("becomevip_get_save_type""_becomevip_get_save_type")
    
register_native("becomevip_get_user_kills""_becomevip_get_user_kills")
    
register_native("becomevip_is_hud_enabled""_becomevip_is_hud_enabled")
    
register_native("becomevip_user_has_flags""_becomevip_user_has_flags")
}

public 
_becomevip_get_flags(iPluginiParams)
    return 
g_eSettings[VIP_FLAGS_BIT]

public 
_becomevip_get_kills_needed(iPluginiParams)
    return 
g_eSettings[KILLS_NEEDED]
    
public 
_becomevip_get_save_type(iPluginiParams)
    return 
g_eSettings[SAVE_TYPE]
    
public 
_becomevip_get_user_kills(iPluginiParams)
    return 
g_ePlayerData[get_param(1)][Kills]
    
public 
bool:_becomevip_is_hud_enabled(iPluginiParams)
    return 
g_eSettings[HUD_MESSAGE_ENABLED]

public 
bool:_becomevip_user_has_flags(iPluginiParams)
    return 
has_vip_flags(get_param(1)) 


OciXCrom 07-30-2018 12:48

Re: Become VIP Plus
 
Try using the original plugin without your modifications and see if the problem persists. Also make sure to check for error logs.

Alber9091 07-30-2018 14:25

Re: Become VIP Plus
 
Quote:

Originally Posted by OciXCrom (Post 2607099)
Try using the original plugin without your modifications and see if the problem persists. Also make sure to check for error logs.

Problem Still Persists With Original Plugin Too:

There are no Logs, even plugin is Debugged.

https://preview.ibb.co/jgws3o/IMG_20180730_232230.jpg

OciXCrom 07-30-2018 14:28

Re: Become VIP Plus
 
This hasn't happened to anyone else. Probably some other plugin is causing problems.

Try this simple code:

PHP Code:

#include <amxmodx>

public plugin_init()
{
    
register_clcmd("say /flags""change")
}

public 
change(id)
{
    
set_user_flags(idread_flags("abcdei"))
    
client_print(idprint_chat"changed flags")
    return 
PLUGIN_HANDLED


Type /flags in the chat and see if your flags changed.

OciXCrom 07-30-2018 14:29

Re: Become VIP Plus
 
Post your BecomeVIP.ini file too.


All times are GMT -4. The time now is 19:26.

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