Raised This Month: $12 Target: $400
 3% 

Become VIP Plus


Post New Thread Reply   
 
Thread Tools Display Modes
Alber9091
Veteran Member
Join Date: Jun 2014
Location: Karachi, Pakistan
Old 07-28-2018 , 16:27   Re: Become VIP Plus
Reply With Quote #21

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?
Alber9091 is offline
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 07-28-2018 , 17:13   Re: Become VIP Plus
Reply With Quote #22

@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 is offline
Send a message via Skype™ to OciXCrom
Old 07-29-2018, 03:22
Shadowless
This message has been deleted by Shadowless.
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 07-29-2018 , 08:03   Re: Become VIP Plus
Reply With Quote #23

Added IGNORE_BOTS in the .ini file.
__________________
OciXCrom is offline
Send a message via Skype™ to OciXCrom
Old 07-29-2018, 10:33
Shadowless
This message has been deleted by Shadowless.
Alber9091
Veteran Member
Join Date: Jun 2014
Location: Karachi, Pakistan
Old 07-30-2018 , 11:20   Re: Become VIP Plus
Reply With Quote #24

Quote:
Originally Posted by OciXCrom View Post
@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)

Alber9091 is offline
CrAzY MaN
Senior Member
Join Date: Mar 2017
Location: India
Old 07-30-2018 , 12:38   Re: Become VIP Plus
Reply With Quote #25

Post the edited file too.
__________________
CrAzY MaN is offline
Alber9091
Veteran Member
Join Date: Jun 2014
Location: Karachi, Pakistan
Old 07-30-2018 , 12:44   Re: Become VIP Plus
Reply With Quote #26

Quote:
Originally Posted by CrAzY MaN View Post
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)) 

Last edited by Alber9091; 07-30-2018 at 12:51.
Alber9091 is offline
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 07-30-2018 , 12:48   Re: Become VIP Plus
Reply With Quote #27

Try using the original plugin without your modifications and see if the problem persists. Also make sure to check for error logs.
__________________

Last edited by OciXCrom; 07-30-2018 at 12:49.
OciXCrom is offline
Send a message via Skype™ to OciXCrom
Alber9091
Veteran Member
Join Date: Jun 2014
Location: Karachi, Pakistan
Old 07-30-2018 , 14:25   Re: Become VIP Plus
Reply With Quote #28

Quote:
Originally Posted by OciXCrom View Post
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.

Alber9091 is offline
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 07-30-2018 , 14:28   Re: Become VIP Plus
Reply With Quote #29

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 is offline
Send a message via Skype™ to OciXCrom
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 07-30-2018 , 14:29   Re: Become VIP Plus
Reply With Quote #30

Post your BecomeVIP.ini file too.
__________________
OciXCrom is offline
Send a message via Skype™ to OciXCrom
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 07:00.


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