Modificare (ajutor) plugin

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
Alexandru P.
Membru, skill 0
Membru, skill 0
Posts: 77
Joined: 10 Apr 2020, 11:27
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: CS.BHZD.RO
Fond eXtream: 0
Has thanked: 7 times
Contact:

06 Feb 2022, 14:22

Salut!
Am si eu nevoie de ajutor cu acest plugin.
Am primit o eroare si nu stiu exact de ce si cum sa o repar. Serverul a picat in urma acestei erori.

[ PLUGIN ]
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <fvault>
#include <colorchat>
#include <cstrike>

#define TASK_CANCEL 235
#define MAX_PREFIX_CHARS 25

native get_gold_coins( id )
native set_gold_coins( id, num )

new const PrefixVault[] = "Buy_Prefix_Vault";

new g_iTrialPeriod[ 33 ]
new g_iUID[ 33 ]
new g_szPrefix[ 33 ][ 32 ]
new g_szUntilDate[ 33 ][ 32 ]

new bool: g_bAllowedChange[ 33 ]
new g_iDays[ 33 ], g_iItem[ 33 ]

new const g_szRestrictString[][] =
{
    "/",
    "*",
    "owner",
    "admin",
    "founder",
	"co-owner",
	"insane",
	"VIP",
	"GOLD",
	"SILVER",
	"administrator",
	"moderator",
	"helper",
	"slot",
	"****",
	"****",
	"sugi",
	"****",
	"retard",
    "manager"
}

new const g_iSortCoins[ 7 ][ 2 ] =
{
    { 3, 50 },
    { 5, 100 },
    { 7, 300 },
    { 10, 500 },
    { 15, 700 },
    { 30, 1200 },
    { 365, 3500 }
}

public plugin_init()
{
    register_plugin( "Buy Prefix Days", "1.0", "LLGRo" )

    register_clcmd( "say /buytag", "buy_prefix" )

    register_clcmd( "say", "say_prefix" )
    register_clcmd( "say_team", "say_team_prefix" )

    register_concmd( "set_my_prefix", "check_my_prefix" )

    set_task( 20.0, "task_check_trial", .flags = "b" )
}
public task_check_trial()
{
    for( new id = 1; id <= get_maxplayers(); id++ )
    {
        if( !is_user_connected( id ) )
            continue

        if( !g_szPrefix[ id ][ 0 ] )
            continue

        if( get_systime() > g_iTrialPeriod[ id ] )
        {
            ColorChat( id, GREY, "^1(^4LLG^1) Your ^4Prefix^1 period is^4 Over^1 !" )
            g_szPrefix[ id ][ 0 ] = EOS
            g_iTrialPeriod[ id ] = 0
            g_szUntilDate[ id ][ 0 ] = EOS
            g_iDays[ id ] = 0

            new sid[ 35 ]; get_user_authid( id, sid, charsmax( sid ) )
            fvault_remove_key( PrefixVault, sid )
        }
    }
}
public say_prefix( id )
{
    new text[ 100 ]
    read_args( text, charsmax( text ) )
    remove_quotes( text )

    if( !text[ 0 ] )
        return PLUGIN_HANDLED

    new prefix_be[ 40 ]
    if( g_szPrefix[ id ][ 0 ] )
        formatex( prefix_be, charsmax( prefix_be ), "^1(^4%s^1) ", g_szPrefix[ id ] )

    ColorChat( 0, cs_get_user_team( id ) == CS_TEAM_T ? RED:BLUE, "%s%s^3%n:%s %s", is_user_alive( id ) ? "":"^1*DEAD* ", prefix_be, id, get_user_flags( id ) & ADMIN_RESERVATION ? "^4":"^1", text )

    return PLUGIN_HANDLED_MAIN
}
public say_team_prefix( id )
{
    new text[ 100 ]
    read_args( text, charsmax( text ) )
    remove_quotes( text )

    if( !text[ 0 ] )
        return PLUGIN_HANDLED

    new prefix_be[ 40 ]
    if( g_szPrefix[ id ][ 0 ] )
        formatex( prefix_be, charsmax( prefix_be ), "^1(^4%s^1) ", g_szPrefix[ id ] )

    for( new i = 1; i <= get_maxplayers(); i++ )
    {
        if( !is_user_connected( i ) )
            continue

        if( cs_get_user_team( id ) != cs_get_user_team( i ) )
            continue

        ColorChat( i, cs_get_user_team( id ) == CS_TEAM_T ? RED:BLUE, "^1(%sTerrorist) %s%s^3%n:%s %s", cs_get_user_team( id ) == CS_TEAM_CT ? "Counter-":"", is_user_alive( id ) ? "":"^1*DEAD* ", prefix_be, id, get_user_flags( id ) & ADMIN_RESERVATION ? "^4":"^1", text )
    }
    return PLUGIN_HANDLED_MAIN
}
public client_putinserver( id )
{
    g_bAllowedChange[ id ] = false
    g_szPrefix[ id ][ 0 ] = EOS
    g_szUntilDate[ id ][ 0 ] = EOS
    g_iTrialPeriod[ id ] = 0
    g_iDays[ id ] = 0
    g_iItem[ id ] = -1
    Load_Data( id )

    set_task( 2.0, "task_check_trial" )
}
public client_disconnected( id )
{
    g_iTrialPeriod[ id ] = 0
    g_szPrefix[ id ][ 0 ] = EOS
    g_szUntilDate[ id ][ 0 ] = EOS
    g_bAllowedChange[ id ] = false
    g_iDays[ id ] = 0
    g_iItem[ id ] = -1

    remove_task( id + TASK_CANCEL )
}
public Load_Data( id )
{
    new szAuthId[ 35 ]
    get_user_authid( id, szAuthId, charsmax( szAuthId ) )

    if( !szAuthId[ 0 ] || ( !equal(szAuthId, "STEAM_", 6 ) && !equal( szAuthId, "VALVE_", 6 ) ) )
        return

    new szBuffer[ 56 ], data[ 4 ][ 32 ]
    g_iUID[ id ] = get_user_userid( id )
    if( fvault_get_data( PrefixVault, szAuthId, szBuffer, charsmax( szBuffer ) ) )
    {
        if( g_iUID[ id ] == get_user_userid( id ) )
        {
            parse( szBuffer, data[ 0 ], charsmax( data[] ), data[ 1 ], charsmax( data[] ), data[ 2 ], charsmax( data[] ) )
            g_iTrialPeriod[ id ] = str_to_num( data[ 0 ] )
            formatex( g_szPrefix[ id ], charsmax( g_szPrefix[] ), data[ 1 ] )
            formatex( g_szUntilDate[ id ], charsmax( g_szUntilDate[] ), data[ 2 ] )
        }
    }
}
public Save_Data( id )
{
    new szAuthId[ 35 ]
    get_user_authid( id, szAuthId, charsmax( szAuthId ) )

    if( g_iUID[ id ] != get_user_userid( id ) )
    {
        ColorChat( id, RED, "^1(^4LLG^1) Error happened with your ^4Prefix Data^1. ^1Please contact the ^4owner^1." )
        return
    }
    if( !equal( szAuthId, "STEAM_", 6 ) )
        return

    new szBuffer[ 56 ]
    formatex( szBuffer, charsmax( szBuffer ), "%d ^"%s^" %s", g_iTrialPeriod[ id ], g_szPrefix[ id ], g_szUntilDate[ id ] )
    fvault_pset_data( PrefixVault, szAuthId, szBuffer )
}
public buy_prefix( id )
{
    if( g_iDays[ id ] || g_szPrefix[ id ][ 0 ] )
    {
        ColorChat( id, BLUE, "^1(^4Until^1): %s^4 (%s)", until_time( g_iTrialPeriod[ id ] - get_systime() ), g_szUntilDate[ id ] )
        ColorChat( id, BLUE, "^1(^4LLG^1) You already have^4 TAG^1, contact ^4owner ^1for any changes." )
        return PLUGIN_HANDLED
    }
    new menu = menu_create( "\r(LLG)\y Buy Tag", "handle_prefix" )

    for( new i; i < 7; i++ )
    {
        menu_additem( menu, fmt( "\yTAG \r%d \wDays - \y%d (Gold Coins)", g_iSortCoins[ i ][ 0 ], g_iSortCoins[ i ][ 1 ] ) )
    }
    menu_display( id, menu )
    return PLUGIN_HANDLED
}
public handle_prefix( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    if( get_gold_coins( id ) < g_iSortCoins[ item ][ 1 ] )
    {
        ColorChat( id, RED, "^1(^4LLG^1) You don't have enough^4 Gold Coins^1 for it." )
        return PLUGIN_HANDLED
    }
    g_iDays[ id ] = g_iSortCoins[ item ][ 0 ]
    g_iItem[ id ] = item
    ColorChat( id, BLUE, "^1(^4LLG^1) You choose^3 %d days^1. Write your ^4prefix ^1now:", g_iSortCoins[ item ][ 0 ] )
    set_his_prefix( id, item )
    menu_destroy( menu )
    return PLUGIN_HANDLED
}
public set_his_prefix( id, days )
{
    g_bAllowedChange[ id ] = true
    client_cmd( id, "messagemode set_my_prefix" )
    set_task( 30.0, "cancel_prefix", id + TASK_CANCEL )
}
public cancel_prefix( task )
{
    new id = task - TASK_CANCEL
    if( g_bAllowedChange[ id ] )
    {
        client_cmd( id, "cancelselect" )
        g_bAllowedChange[ id ] = false
        ColorChat( id, RED, "^1(^4LLG^1) You did not write anything in^4 30 seconds^1, please try again." )
        g_iDays[ id ] = 0
    }
}
public check_my_prefix( id )
{
    if( g_bAllowedChange[ id ] )
    {
        new string[ 32 ], bool: can_change = true
        read_args( string, charsmax( string ) )
        for( new i; i < sizeof( g_szRestrictString ) ; i++ )
        {
            if( containi( string, g_szRestrictString[ i ] ) != -1 )
            {
                client_print( id, print_chat, "You are not allowed to use that Prefix. Please try again." )
                can_change = false
                break
            }
            if( strlen( string ) - 2 > MAX_PREFIX_CHARS )
            {
                client_print( id, print_chat, "Maximum Characters for Prefix is: %d, Try again.", MAX_PREFIX_CHARS )
                can_change = false
                break
            }
        }
        if( can_change )
        {
            g_iTrialPeriod[ id ] = get_systime() + ( 86400 * g_iDays[ id ] )
            format_time( g_szUntilDate[ id ], charsmax( g_szUntilDate[] ), "%m/%d/%Y-%I:%M:%S", g_iTrialPeriod[ id ] )
            remove_quotes( string )
            formatex( g_szPrefix[ id ], charsmax( g_szPrefix[] ), string )
            ColorChat( id, BLUE, "^1(^4LLG^1) Your prefix is now:^4 %s", g_szPrefix[ id ] )
            if( g_iDays[ id ] == 10000 )
            {
                formatex( g_szUntilDate[ id ], charsmax( g_szUntilDate[] ), "1 Year" )
            }
            Save_Data( id )

            set_gold_coins( id, get_gold_coins( id ) - g_iSortCoins[ g_iItem[ id ] ][ 1 ] )
        }
        g_bAllowedChange[ id ] = false
        g_iDays[ id ] = 0
        g_iItem[ id ] = -1
    }
    return PLUGIN_HANDLED
}
public until_time( const iTime )
{
    new seconds = iTime
    new days = seconds / 86400;
    seconds = seconds % 86400;
    new hours = seconds / 3600;
    seconds = seconds % 3600;
    new minutes = seconds / 60;
    seconds = seconds % 60;
    new text[ 200 ]
    formatex( text, charsmax( text ), "%d days, %d hours, %d minutes", days, hours, minutes )
    return text
}
[ LOGS ERROR ]
| Afiseaza codul
L 02/06/2022 - 10:20:08: Start of error session.
L 02/06/2022 - 10:20:08: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20220206.log")
L 02/06/2022 - 10:20:08: [CSTRIKE] Invalid player 2
L 02/06/2022 - 10:20:08: [AMXX] Displaying debug trace (plugin "llg_buy_tag.amxx", version "1.0")
L 02/06/2022 - 10:20:08: [AMXX] Run time error 10: native error (native "cs_get_user_team")
L 02/06/2022 - 10:20:08: [AMXX]    [0] llg_buy_tag.sma::say_prefix (line 107)
L 02/06/2022 - 10:49:59: Start of error session.
L 02/06/2022 - 10:49:59: Info (map "de_dust2x2") (file "addons/amxmodx/logs/error_20220206.log")
L 02/06/2022 - 10:49:59: [CSTRIKE] Invalid player 5
L 02/06/2022 - 10:49:59: [AMXX] Displaying debug trace (plugin "llg_buy_tag.amxx", version "1.0")
L 02/06/2022 - 10:49:59: [AMXX] Run time error 10: native error (native "cs_get_user_team")
L 02/06/2022 - 10:49:59: [AMXX]    [0] llg_buy_tag.sma::say_prefix (line 107)
L 02/06/2022 - 12:09:44: [CSTRIKE] Invalid player 6
L 02/06/2022 - 12:09:44: [AMXX] Displaying debug trace (plugin "llg_buy_tag.amxx", version "1.0")
L 02/06/2022 - 12:09:44: [AMXX] Run time error 10: native error (native "cs_get_user_team")
L 02/06/2022 - 12:09:44: [AMXX]    [0] llg_buy_tag.sma::say_prefix (line 107)
L 02/06/2022 - 13:15:36: [CSTRIKE] Invalid player 7
L 02/06/2022 - 13:15:36: [AMXX] Displaying debug trace (plugin "llg_buy_tag.amxx", version "1.0")
L 02/06/2022 - 13:15:36: [AMXX] Run time error 10: native error (native "cs_get_user_team")
L 02/06/2022 - 13:15:36: [AMXX]    [0] llg_buy_tag.sma::say_prefix (line 107)
L 02/06/2022 - 13:30:19: [CSTRIKE] Invalid player 10
L 02/06/2022 - 13:30:19: [AMXX] Displaying debug trace (plugin "llg_buy_tag.amxx", version "1.0")
L 02/06/2022 - 13:30:19: [AMXX] Run time error 10: native error (native "cs_get_user_team")
L 02/06/2022 - 13:30:19: [AMXX]    [0] llg_buy_tag.sma::say_prefix (line 107)
RoyalServer
User avatar
kidd0x
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 1054
Joined: 06 Oct 2018, 14:41
Detinator Steam: Da
SteamID: /id/kidd0x/
Reputatie: Utilizator neserios (tepar!)
Fond eXtream: 0
Location: Constangeles
Discord: kidd0x
Has thanked: 172 times
Been thanked: 81 times

06 Feb 2022, 16:36

Incearca asa

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <fvault>
#include <colorchat>
#include <cstrike>

#define TASK_CANCEL 235
#define MAX_PREFIX_CHARS 25

native get_gold_coins( id )
native set_gold_coins( id, num )

new const PrefixVault[] = "Buy_Prefix_Vault";

new g_iTrialPeriod[ 33 ]
new g_iUID[ 33 ]
new g_szPrefix[ 33 ][ 32 ]
new g_szUntilDate[ 33 ][ 32 ]

new bool: g_bAllowedChange[ 33 ]
new g_iDays[ 33 ], g_iItem[ 33 ]

#define IsPlayer(%1) (1 <= %1 <= 32)

new const g_szRestrictString[][] =
{
    "/",
    "*",
    "owner",
    "admin",
    "founder",
	"co-owner",
	"insane",
	"VIP",
	"GOLD",
	"SILVER",
	"administrator",
	"moderator",
	"helper",
	"slot",
	"****",
	"****",
	"sugi",
	"****",
	"retard",
    "manager"
}

new const g_iSortCoins[ 7 ][ 2 ] =
{
    { 3, 50 },
    { 5, 100 },
    { 7, 300 },
    { 10, 500 },
    { 15, 700 },
    { 30, 1200 },
    { 365, 3500 }
}

public plugin_init()
{
    register_plugin( "Buy Prefix Days", "1.0", "LLGRo" )

    register_clcmd( "say /buytag", "buy_prefix" )

    register_clcmd( "say", "say_prefix" )
    register_clcmd( "say_team", "say_team_prefix" )

    register_concmd( "set_my_prefix", "check_my_prefix" )

    set_task( 20.0, "task_check_trial", .flags = "b" )
}
public task_check_trial()
{
    for( new id = 1; id <= get_maxplayers(); id++ )
    {
        if( !is_user_connected( id ) )
            continue

        if( !g_szPrefix[ id ][ 0 ] )
            continue

        if( get_systime() > g_iTrialPeriod[ id ] )
        {
            ColorChat( id, GREY, "^1(^4LLG^1) Your ^4Prefix^1 period is^4 Over^1 !" )
            g_szPrefix[ id ][ 0 ] = EOS
            g_iTrialPeriod[ id ] = 0
            g_szUntilDate[ id ][ 0 ] = EOS
            g_iDays[ id ] = 0

            new sid[ 35 ]; get_user_authid( id, sid, charsmax( sid ) )
            fvault_remove_key( PrefixVault, sid )
        }
    }
}
public say_prefix( id )
{
    new text[ 100 ]
    read_args( text, charsmax( text ) )
    remove_quotes( text )

    if( !text[ 0 ] )
        return PLUGIN_HANDLED

    new prefix_be[ 40 ]
    if( g_szPrefix[ id ][ 0 ] )
        formatex( prefix_be, charsmax( prefix_be ), "^1(^4%s^1) ", g_szPrefix[ id ] )
    
    if(!IsPlayer(id)) 
        return PLUGIN_HANDLED

  ColorChat( 0, cs_get_user_team( id ) == CS_TEAM_T ? RED:BLUE, "%s%s^3%n:%s %s", is_user_alive( id ) ? "":"^1*DEAD* ", prefix_be, id, get_user_flags( id ) & ADMIN_RESERVATION ? "^4":"^1", text )

    return PLUGIN_HANDLED_MAIN
}
public say_team_prefix( id )
{
    new text[ 100 ]
    read_args( text, charsmax( text ) )
    remove_quotes( text )

    if( !text[ 0 ] )
        return PLUGIN_HANDLED

    new prefix_be[ 40 ]
    if( g_szPrefix[ id ][ 0 ] )
        formatex( prefix_be, charsmax( prefix_be ), "^1(^4%s^1) ", g_szPrefix[ id ] )

    for( new i = 1; i <= get_maxplayers(); i++ )
    {
        if( !is_user_connected( i ) )
            continue

        if( cs_get_user_team( id ) != cs_get_user_team( i ) )
            continue

        ColorChat( i, cs_get_user_team( id ) == CS_TEAM_T ? RED:BLUE, "^1(%sTerrorist) %s%s^3%n:%s %s", cs_get_user_team( id ) == CS_TEAM_CT ? "Counter-":"", is_user_alive( id ) ? "":"^1*DEAD* ", prefix_be, id, get_user_flags( id ) & ADMIN_RESERVATION ? "^4":"^1", text )
    }
    return PLUGIN_HANDLED_MAIN
}
public client_putinserver( id )
{
    g_bAllowedChange[ id ] = false
    g_szPrefix[ id ][ 0 ] = EOS
    g_szUntilDate[ id ][ 0 ] = EOS
    g_iTrialPeriod[ id ] = 0
    g_iDays[ id ] = 0
    g_iItem[ id ] = -1
    Load_Data( id )

    set_task( 2.0, "task_check_trial" )
}
public client_disconnected( id )
{
    g_iTrialPeriod[ id ] = 0
    g_szPrefix[ id ][ 0 ] = EOS
    g_szUntilDate[ id ][ 0 ] = EOS
    g_bAllowedChange[ id ] = false
    g_iDays[ id ] = 0
    g_iItem[ id ] = -1

    remove_task( id + TASK_CANCEL )
}
public Load_Data( id )
{
    new szAuthId[ 35 ]
    get_user_authid( id, szAuthId, charsmax( szAuthId ) )

    if( !szAuthId[ 0 ] || ( !equal(szAuthId, "STEAM_", 6 ) && !equal( szAuthId, "VALVE_", 6 ) ) )
        return

    new szBuffer[ 56 ], data[ 4 ][ 32 ]
    g_iUID[ id ] = get_user_userid( id )
    if( fvault_get_data( PrefixVault, szAuthId, szBuffer, charsmax( szBuffer ) ) )
    {
        if( g_iUID[ id ] == get_user_userid( id ) )
        {
            parse( szBuffer, data[ 0 ], charsmax( data[] ), data[ 1 ], charsmax( data[] ), data[ 2 ], charsmax( data[] ) )
            g_iTrialPeriod[ id ] = str_to_num( data[ 0 ] )
            formatex( g_szPrefix[ id ], charsmax( g_szPrefix[] ), data[ 1 ] )
            formatex( g_szUntilDate[ id ], charsmax( g_szUntilDate[] ), data[ 2 ] )
        }
    }
}
public Save_Data( id )
{
    new szAuthId[ 35 ]
    get_user_authid( id, szAuthId, charsmax( szAuthId ) )

    if( g_iUID[ id ] != get_user_userid( id ) )
    {
        ColorChat( id, RED, "^1(^4LLG^1) Error happened with your ^4Prefix Data^1. ^1Please contact the ^4owner^1." )
        return
    }
    if( !equal( szAuthId, "STEAM_", 6 ) )
        return

    new szBuffer[ 56 ]
    formatex( szBuffer, charsmax( szBuffer ), "%d ^"%s^" %s", g_iTrialPeriod[ id ], g_szPrefix[ id ], g_szUntilDate[ id ] )
    fvault_pset_data( PrefixVault, szAuthId, szBuffer )
}
public buy_prefix( id )
{
    if( g_iDays[ id ] || g_szPrefix[ id ][ 0 ] )
    {
        ColorChat( id, BLUE, "^1(^4Until^1): %s^4 (%s)", until_time( g_iTrialPeriod[ id ] - get_systime() ), g_szUntilDate[ id ] )
        ColorChat( id, BLUE, "^1(^4LLG^1) You already have^4 TAG^1, contact ^4owner ^1for any changes." )
        return PLUGIN_HANDLED
    }
    new menu = menu_create( "\r(LLG)\y Buy Tag", "handle_prefix" )

    for( new i; i < 7; i++ )
    {
        menu_additem( menu, fmt( "\yTAG \r%d \wDays - \y%d (Gold Coins)", g_iSortCoins[ i ][ 0 ], g_iSortCoins[ i ][ 1 ] ) )
    }
    menu_display( id, menu )
    return PLUGIN_HANDLED
}
public handle_prefix( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    if( get_gold_coins( id ) < g_iSortCoins[ item ][ 1 ] )
    {
        ColorChat( id, RED, "^1(^4LLG^1) You don't have enough^4 Gold Coins^1 for it." )
        return PLUGIN_HANDLED
    }
    g_iDays[ id ] = g_iSortCoins[ item ][ 0 ]
    g_iItem[ id ] = item
    ColorChat( id, BLUE, "^1(^4LLG^1) You choose^3 %d days^1. Write your ^4prefix ^1now:", g_iSortCoins[ item ][ 0 ] )
    set_his_prefix( id, item )
    menu_destroy( menu )
    return PLUGIN_HANDLED
}
public set_his_prefix( id, days )
{
    g_bAllowedChange[ id ] = true
    client_cmd( id, "messagemode set_my_prefix" )
    set_task( 30.0, "cancel_prefix", id + TASK_CANCEL )
}
public cancel_prefix( task )
{
    new id = task - TASK_CANCEL
    if( g_bAllowedChange[ id ] )
    {
        client_cmd( id, "cancelselect" )
        g_bAllowedChange[ id ] = false
        ColorChat( id, RED, "^1(^4LLG^1) You did not write anything in^4 30 seconds^1, please try again." )
        g_iDays[ id ] = 0
    }
}
public check_my_prefix( id )
{
    if( g_bAllowedChange[ id ] )
    {
        new string[ 32 ], bool: can_change = true
        read_args( string, charsmax( string ) )
        for( new i; i < sizeof( g_szRestrictString ) ; i++ )
        {
            if( containi( string, g_szRestrictString[ i ] ) != -1 )
            {
                client_print( id, print_chat, "You are not allowed to use that Prefix. Please try again." )
                can_change = false
                break
            }
            if( strlen( string ) - 2 > MAX_PREFIX_CHARS )
            {
                client_print( id, print_chat, "Maximum Characters for Prefix is: %d, Try again.", MAX_PREFIX_CHARS )
                can_change = false
                break
            }
        }
        if( can_change )
        {
            g_iTrialPeriod[ id ] = get_systime() + ( 86400 * g_iDays[ id ] )
            format_time( g_szUntilDate[ id ], charsmax( g_szUntilDate[] ), "%m/%d/%Y-%I:%M:%S", g_iTrialPeriod[ id ] )
            remove_quotes( string )
            formatex( g_szPrefix[ id ], charsmax( g_szPrefix[] ), string )
            ColorChat( id, BLUE, "^1(^4LLG^1) Your prefix is now:^4 %s", g_szPrefix[ id ] )
            if( g_iDays[ id ] == 10000 )
            {
                formatex( g_szUntilDate[ id ], charsmax( g_szUntilDate[] ), "1 Year" )
            }
            Save_Data( id )

            set_gold_coins( id, get_gold_coins( id ) - g_iSortCoins[ g_iItem[ id ] ][ 1 ] )
        }
        g_bAllowedChange[ id ] = false
        g_iDays[ id ] = 0
        g_iItem[ id ] = -1
    }
    return PLUGIN_HANDLED
}
public until_time( const iTime )
{
    new seconds = iTime
    new days = seconds / 86400;
    seconds = seconds % 86400;
    new hours = seconds / 3600;
    seconds = seconds % 3600;
    new minutes = seconds / 60;
    seconds = seconds % 60;
    new text[ 200 ]
    formatex( text, charsmax( text ), "%d days, %d hours, %d minutes", days, hours, minutes )
    return text
}
User avatar
Scooby-Doo
Membru, skill +1
Membru, skill +1
Posts: 271
Joined: 23 Oct 2014, 23:27
Detinator Steam: Da
CS Status: ~Online~
Detinator server CS: ZOMBIE.OLDGODS.RO
SteamID: darian433
Fond eXtream: 0
Location: Romania
Discord: Darian433#0850
Has thanked: 21 times
Been thanked: 16 times
Contact:

06 Feb 2022, 17:28

Specifica si ce engine si versiune de amx folosesti.
Discord: Darian433#0850

User avatar
Alexandru P.
Membru, skill 0
Membru, skill 0
Posts: 77
Joined: 10 Apr 2020, 11:27
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: CS.BHZD.RO
Fond eXtream: 0
Has thanked: 7 times
Contact:

07 Feb 2022, 18:03

Scooby-Doo wrote:
06 Feb 2022, 17:28
Specifica si ce engine si versiune de amx folosesti.
| Afiseaza codul
Currently loaded plugins:
      description   stat pend  file                      vers             src  load  unload
 [ 1] AMX Mod X     RUN   -    amxmodx_mm_i386.so        v1.8.3-dev+5201  ini  Start ANY  
 [ 2] Reunion       RUN   -    reunion_mm_i386.so        v0.1.0.137       ini  Start Never
 [ 3] Fun           RUN   -    fun_amxx_i386.so          v1.8.3-dev+5201  pl1  ANY   ANY  
 [ 4] Engine        RUN   -    engine_amxx_i386.so       v1.8.3-dev+5201  pl1  ANY   ANY  
 [ 5] FakeMeta      RUN   -    fakemeta_amxx_i386.so     v1.8.3-dev+5201  pl1  ANY   ANY  
 [ 6] GeoIP         RUN   -    geoip_amxx_i386.so        v1.8.3-dev+5201  pl1  ANY   ANY  
 [ 7] CStrike       RUN   -    cstrike_amxx_i386.so      v1.8.3-dev+5135  pl1  ANY   ANY  
 [ 8] CSX           RUN   -    csx_amxx_i386.so          v1.8.3-dev+5135  pl1  ANY   ANY  
 [ 9] Ham Sandwich  RUN   -    hamsandwich_amxx_i386.so  v1.8.3-dev+5201  pl1  ANY   ANY  
 [10] ReAPI         RUN   -    reapi_amxx_i386.so        v5.19.0.211-dev  pl1  ANY   Never
10 plugins, 10 running
User avatar
Alexandru P.
Membru, skill 0
Membru, skill 0
Posts: 77
Joined: 10 Apr 2020, 11:27
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: CS.BHZD.RO
Fond eXtream: 0
Has thanked: 7 times
Contact:

07 Feb 2022, 18:19

N3v3rM1nd wrote:
06 Feb 2022, 16:36
Incearca asa

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <fvault>
#include <colorchat>
#include <cstrike>

#define TASK_CANCEL 235
#define MAX_PREFIX_CHARS 25

native get_gold_coins( id )
native set_gold_coins( id, num )

new const PrefixVault[] = "Buy_Prefix_Vault";

new g_iTrialPeriod[ 33 ]
new g_iUID[ 33 ]
new g_szPrefix[ 33 ][ 32 ]
new g_szUntilDate[ 33 ][ 32 ]

new bool: g_bAllowedChange[ 33 ]
new g_iDays[ 33 ], g_iItem[ 33 ]

#define IsPlayer(%1) (1 <= %1 <= 32)

new const g_szRestrictString[][] =
{
    "/",
    "*",
    "owner",
    "admin",
    "founder",
	"co-owner",
	"insane",
	"VIP",
	"GOLD",
	"SILVER",
	"administrator",
	"moderator",
	"helper",
	"slot",
	"****",
	"****",
	"sugi",
	"****",
	"retard",
    "manager"
}

new const g_iSortCoins[ 7 ][ 2 ] =
{
    { 3, 50 },
    { 5, 100 },
    { 7, 300 },
    { 10, 500 },
    { 15, 700 },
    { 30, 1200 },
    { 365, 3500 }
}

public plugin_init()
{
    register_plugin( "Buy Prefix Days", "1.0", "LLGRo" )

    register_clcmd( "say /buytag", "buy_prefix" )

    register_clcmd( "say", "say_prefix" )
    register_clcmd( "say_team", "say_team_prefix" )

    register_concmd( "set_my_prefix", "check_my_prefix" )

    set_task( 20.0, "task_check_trial", .flags = "b" )
}
public task_check_trial()
{
    for( new id = 1; id <= get_maxplayers(); id++ )
    {
        if( !is_user_connected( id ) )
            continue

        if( !g_szPrefix[ id ][ 0 ] )
            continue

        if( get_systime() > g_iTrialPeriod[ id ] )
        {
            ColorChat( id, GREY, "^1(^4LLG^1) Your ^4Prefix^1 period is^4 Over^1 !" )
            g_szPrefix[ id ][ 0 ] = EOS
            g_iTrialPeriod[ id ] = 0
            g_szUntilDate[ id ][ 0 ] = EOS
            g_iDays[ id ] = 0

            new sid[ 35 ]; get_user_authid( id, sid, charsmax( sid ) )
            fvault_remove_key( PrefixVault, sid )
        }
    }
}
public say_prefix( id )
{
    new text[ 100 ]
    read_args( text, charsmax( text ) )
    remove_quotes( text )

    if( !text[ 0 ] )
        return PLUGIN_HANDLED

    new prefix_be[ 40 ]
    if( g_szPrefix[ id ][ 0 ] )
        formatex( prefix_be, charsmax( prefix_be ), "^1(^4%s^1) ", g_szPrefix[ id ] )
    
    if(!IsPlayer(id)) 
        return PLUGIN_HANDLED

  ColorChat( 0, cs_get_user_team( id ) == CS_TEAM_T ? RED:BLUE, "%s%s^3%n:%s %s", is_user_alive( id ) ? "":"^1*DEAD* ", prefix_be, id, get_user_flags( id ) & ADMIN_RESERVATION ? "^4":"^1", text )

    return PLUGIN_HANDLED_MAIN
}
public say_team_prefix( id )
{
    new text[ 100 ]
    read_args( text, charsmax( text ) )
    remove_quotes( text )

    if( !text[ 0 ] )
        return PLUGIN_HANDLED

    new prefix_be[ 40 ]
    if( g_szPrefix[ id ][ 0 ] )
        formatex( prefix_be, charsmax( prefix_be ), "^1(^4%s^1) ", g_szPrefix[ id ] )

    for( new i = 1; i <= get_maxplayers(); i++ )
    {
        if( !is_user_connected( i ) )
            continue

        if( cs_get_user_team( id ) != cs_get_user_team( i ) )
            continue

        ColorChat( i, cs_get_user_team( id ) == CS_TEAM_T ? RED:BLUE, "^1(%sTerrorist) %s%s^3%n:%s %s", cs_get_user_team( id ) == CS_TEAM_CT ? "Counter-":"", is_user_alive( id ) ? "":"^1*DEAD* ", prefix_be, id, get_user_flags( id ) & ADMIN_RESERVATION ? "^4":"^1", text )
    }
    return PLUGIN_HANDLED_MAIN
}
public client_putinserver( id )
{
    g_bAllowedChange[ id ] = false
    g_szPrefix[ id ][ 0 ] = EOS
    g_szUntilDate[ id ][ 0 ] = EOS
    g_iTrialPeriod[ id ] = 0
    g_iDays[ id ] = 0
    g_iItem[ id ] = -1
    Load_Data( id )

    set_task( 2.0, "task_check_trial" )
}
public client_disconnected( id )
{
    g_iTrialPeriod[ id ] = 0
    g_szPrefix[ id ][ 0 ] = EOS
    g_szUntilDate[ id ][ 0 ] = EOS
    g_bAllowedChange[ id ] = false
    g_iDays[ id ] = 0
    g_iItem[ id ] = -1

    remove_task( id + TASK_CANCEL )
}
public Load_Data( id )
{
    new szAuthId[ 35 ]
    get_user_authid( id, szAuthId, charsmax( szAuthId ) )

    if( !szAuthId[ 0 ] || ( !equal(szAuthId, "STEAM_", 6 ) && !equal( szAuthId, "VALVE_", 6 ) ) )
        return

    new szBuffer[ 56 ], data[ 4 ][ 32 ]
    g_iUID[ id ] = get_user_userid( id )
    if( fvault_get_data( PrefixVault, szAuthId, szBuffer, charsmax( szBuffer ) ) )
    {
        if( g_iUID[ id ] == get_user_userid( id ) )
        {
            parse( szBuffer, data[ 0 ], charsmax( data[] ), data[ 1 ], charsmax( data[] ), data[ 2 ], charsmax( data[] ) )
            g_iTrialPeriod[ id ] = str_to_num( data[ 0 ] )
            formatex( g_szPrefix[ id ], charsmax( g_szPrefix[] ), data[ 1 ] )
            formatex( g_szUntilDate[ id ], charsmax( g_szUntilDate[] ), data[ 2 ] )
        }
    }
}
public Save_Data( id )
{
    new szAuthId[ 35 ]
    get_user_authid( id, szAuthId, charsmax( szAuthId ) )

    if( g_iUID[ id ] != get_user_userid( id ) )
    {
        ColorChat( id, RED, "^1(^4LLG^1) Error happened with your ^4Prefix Data^1. ^1Please contact the ^4owner^1." )
        return
    }
    if( !equal( szAuthId, "STEAM_", 6 ) )
        return

    new szBuffer[ 56 ]
    formatex( szBuffer, charsmax( szBuffer ), "%d ^"%s^" %s", g_iTrialPeriod[ id ], g_szPrefix[ id ], g_szUntilDate[ id ] )
    fvault_pset_data( PrefixVault, szAuthId, szBuffer )
}
public buy_prefix( id )
{
    if( g_iDays[ id ] || g_szPrefix[ id ][ 0 ] )
    {
        ColorChat( id, BLUE, "^1(^4Until^1): %s^4 (%s)", until_time( g_iTrialPeriod[ id ] - get_systime() ), g_szUntilDate[ id ] )
        ColorChat( id, BLUE, "^1(^4LLG^1) You already have^4 TAG^1, contact ^4owner ^1for any changes." )
        return PLUGIN_HANDLED
    }
    new menu = menu_create( "\r(LLG)\y Buy Tag", "handle_prefix" )

    for( new i; i < 7; i++ )
    {
        menu_additem( menu, fmt( "\yTAG \r%d \wDays - \y%d (Gold Coins)", g_iSortCoins[ i ][ 0 ], g_iSortCoins[ i ][ 1 ] ) )
    }
    menu_display( id, menu )
    return PLUGIN_HANDLED
}
public handle_prefix( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    if( get_gold_coins( id ) < g_iSortCoins[ item ][ 1 ] )
    {
        ColorChat( id, RED, "^1(^4LLG^1) You don't have enough^4 Gold Coins^1 for it." )
        return PLUGIN_HANDLED
    }
    g_iDays[ id ] = g_iSortCoins[ item ][ 0 ]
    g_iItem[ id ] = item
    ColorChat( id, BLUE, "^1(^4LLG^1) You choose^3 %d days^1. Write your ^4prefix ^1now:", g_iSortCoins[ item ][ 0 ] )
    set_his_prefix( id, item )
    menu_destroy( menu )
    return PLUGIN_HANDLED
}
public set_his_prefix( id, days )
{
    g_bAllowedChange[ id ] = true
    client_cmd( id, "messagemode set_my_prefix" )
    set_task( 30.0, "cancel_prefix", id + TASK_CANCEL )
}
public cancel_prefix( task )
{
    new id = task - TASK_CANCEL
    if( g_bAllowedChange[ id ] )
    {
        client_cmd( id, "cancelselect" )
        g_bAllowedChange[ id ] = false
        ColorChat( id, RED, "^1(^4LLG^1) You did not write anything in^4 30 seconds^1, please try again." )
        g_iDays[ id ] = 0
    }
}
public check_my_prefix( id )
{
    if( g_bAllowedChange[ id ] )
    {
        new string[ 32 ], bool: can_change = true
        read_args( string, charsmax( string ) )
        for( new i; i < sizeof( g_szRestrictString ) ; i++ )
        {
            if( containi( string, g_szRestrictString[ i ] ) != -1 )
            {
                client_print( id, print_chat, "You are not allowed to use that Prefix. Please try again." )
                can_change = false
                break
            }
            if( strlen( string ) - 2 > MAX_PREFIX_CHARS )
            {
                client_print( id, print_chat, "Maximum Characters for Prefix is: %d, Try again.", MAX_PREFIX_CHARS )
                can_change = false
                break
            }
        }
        if( can_change )
        {
            g_iTrialPeriod[ id ] = get_systime() + ( 86400 * g_iDays[ id ] )
            format_time( g_szUntilDate[ id ], charsmax( g_szUntilDate[] ), "%m/%d/%Y-%I:%M:%S", g_iTrialPeriod[ id ] )
            remove_quotes( string )
            formatex( g_szPrefix[ id ], charsmax( g_szPrefix[] ), string )
            ColorChat( id, BLUE, "^1(^4LLG^1) Your prefix is now:^4 %s", g_szPrefix[ id ] )
            if( g_iDays[ id ] == 10000 )
            {
                formatex( g_szUntilDate[ id ], charsmax( g_szUntilDate[] ), "1 Year" )
            }
            Save_Data( id )

            set_gold_coins( id, get_gold_coins( id ) - g_iSortCoins[ g_iItem[ id ] ][ 1 ] )
        }
        g_bAllowedChange[ id ] = false
        g_iDays[ id ] = 0
        g_iItem[ id ] = -1
    }
    return PLUGIN_HANDLED
}
public until_time( const iTime )
{
    new seconds = iTime
    new days = seconds / 86400;
    seconds = seconds % 86400;
    new hours = seconds / 3600;
    seconds = seconds % 3600;
    new minutes = seconds / 60;
    seconds = seconds % 60;
    new text[ 200 ]
    formatex( text, charsmax( text ), "%d days, %d hours, %d minutes", days, hours, minutes )
    return text
}
Mersi! Am facut cateva teste si momentan nu am primit eroare. Astept sa vedem ce se mai intampla pe parcurs.

Ca sa nu mai fac alt topic, poti te rog sa te uiti si peste aces plugin? Am cateva erori si la el.

[ PLUGIN ]

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <colorchat>

native get_gold_coins( id )
native get_silver_coins( id )

native set_gold_coins( id, num )
native set_silver_coins( id, num )

new g_iGoldBet[ 33 ][ 2 ] //0 = CT bet, 1 = TR BET
new g_iSilverBet[ 33 ][ 2 ] //0 = CT bet, 1 = TR BET

new g_iWillBet[ 33 ] //-1 = wont bet, 0 = CT, 1 = TR

new g_bCanBet

public plugin_init()
{
    register_plugin( "Bet Coins", "1.0", "JocA" )

    register_clcmd( "say /bet", "bet_pre" )
    register_clcmd( "say_team /bet", "bet_pre" )

    register_event( "HLTV", "event_new_round", "a", "1=0", "2=0" )
    register_event( "SendAudio", "event_sendAudio", "a", "2=%!MRAD_terwin", "2=%!MRAD_ctwin", "2=%!MRAD_rounddraw" )
    register_event( "DeathMsg", "event_Death", "a" )
}
public event_Death()
{
    new killer = read_data( 1 )
    new victim = read_data( 2 )
    if( killer != victim )
    {
        ColorChat( victim, BLUE, "^1(^4LLG^1) You can bet on your favorite team with say^4 /bet^1." )
        set_hudmessage( 70, 255, 55, 0.02, 0.25, 0, 0.5, 5.0, 0.5, 0.5, -1 )
        show_hudmessage( victim, "Bet on your favorite team with say /bet" )
    }
}
public client_putinserver( id )
{
    ResetCoins( id )
}
public client_disconnected( id )
{
    ResetCoins( id )
}
public event_new_round()
{
    g_bCanBet = true
    for( new id = 1; id <= get_maxplayers(); id++ )
    {
        if( is_user_connected( id ) )
            ResetCoins( id )
    }
}
public ResetCoins( id )
{
    g_iGoldBet[ id ][ 0 ] = 0
    g_iGoldBet[ id ][ 1 ] = 0

    g_iSilverBet[ id ][ 0 ] = 0
    g_iSilverBet[ id ][ 1 ] = 0

    g_iWillBet[ id ] = -1
}
public event_sendAudio()
{
    new string[ 22 ]
    read_data( 2, string, charsmax( string ) )

    if( containi( string, "ctwin" ) != -1 )
    {
        for( new id = 1; id <= get_maxplayers(); id++ )
        {
            if( is_user_connected( id ) && !is_user_alive( id ) )
            {
                if( g_iGoldBet[ id ][ 1 ] )
                {
                    set_gold_coins( id, get_gold_coins( id ) - g_iGoldBet[ id ][ 1 ] )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Counter-Terrorists^1 team has ^4won^1. You lost^3 %d^4 gold coins^1.", g_iGoldBet[ id ][ 1 ] )
                }
                else if( g_iSilverBet[ id ][ 1 ] )
                {
                    set_silver_coins( id, get_silver_coins( id ) - g_iSilverBet[ id ][ 1 ] )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Counter-Terrorists^1 team has ^4won^1. You lost^3 %d^4 silver coins^1.", g_iSilverBet[ id ][ 1 ] )
                }

                if( g_iGoldBet[ id ][ 0 ] )
                {
                    new got_coins = g_iGoldBet[ id ][ 1 ] * 2
                    set_gold_coins( id, get_gold_coins( id ) + got_coins )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Counter-Terrorists^1 team has ^4won^1. You won^3 %d^4 gold coins^1.", got_coins )
                }
                else if( g_iSilverBet[ id ][ 0 ] )
                {
                    new got_coins = g_iSilverBet[ id ][ 0 ] * 2
                    set_silver_coins( id, get_silver_coins( id ) + got_coins )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Counter-Terrorists^1 team has^4 won^1. You won^3 %d^4 silver coins^1.", got_coins )
                }
            }
        }
    }
    else if( containi( string, "terwin") != -1 )
    {
        for( new id = 1; id <= get_maxplayers(); id++ )
        {
            if( is_user_connected( id ) && !is_user_alive( id ) )
            {
                if( g_iGoldBet[ id ][ 0 ] )
                {
                    set_gold_coins( id, get_gold_coins( id ) - g_iGoldBet[ id ][ 0 ] )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Terrorists^1 team has^4 won^1. You lost^3 %d^4 gold coins^1.", g_iGoldBet[ id ][ 0 ] )
                }
                else if( g_iSilverBet[ id ][ 0 ] )
                {
                    set_silver_coins( id, get_silver_coins( id ) - g_iSilverBet[ id ][ 0 ] )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Terrorists^1 team has^4 won^1. You lost^3 %d^4 silver coins^1.", g_iSilverBet[ id ][ 0 ] )
                }

                if( g_iGoldBet[ id ][ 1 ] )
                {
                    new got_coins = g_iGoldBet[ id ][ 1 ] * 2
                    set_gold_coins( id, get_gold_coins( id ) + got_coins )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Terrorists team^1 has^4 won^1. You won^3 %d^4 gold coins^1.", got_coins )
                }
                else if( g_iSilverBet[ id ][ 1 ] )
                {
                    new got_coins = g_iSilverBet[ id ][ 1 ] * 2
                    set_silver_coins( id, get_silver_coins( id ) + got_coins )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Terrorists^1 team has^4 won^1. You won^3 %d^4 silver coins^1.", got_coins )
                }
            }
        }

    }
    g_bCanBet = false
}
public bet_pre( id )
{
    if( is_user_alive( id ) )
    {
        ColorChat( id, RED, "^1(^4LLG^1) You can not ^4bet^1 when you are^3 alive^1." )
        return PLUGIN_HANDLED
    }
    if( !g_bCanBet )
    {
        ColorChat( id, RED, "^1(^4LLG^1) Betting is^4 closed^1. You must wait for new^3 round^1." )
        return PLUGIN_HANDLED
    }
    if( g_iWillBet[ id ] >= 0 )
    {
        ColorChat( id, RED, "^1(^4LLG^1) You^4 already bet^1. You must wait for the next^3 round^1." )
        return PLUGIN_HANDLED
    }
    new menu = menu_create( "\r(LLG)\y BET COINS:^n^n\yTeam:", "pre_handle" )

    menu_additem( menu, "Counter-Terrorist" )
    menu_additem( menu, "Terrorist" )

    menu_display( id, menu )

    return PLUGIN_HANDLED
}
public pre_handle( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        g_iWillBet[ id ] = -1
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    switch( item )
    {
        case 0: g_iWillBet[ id ] = 0 //for CT
        case 1: g_iWillBet[ id ] = 1 //for TR
    }
    {
    choose_coins( id )
    menu_destroy( id )
    return PLUGIN_HANDLED
    }
}
public choose_coins( id )
{
    new menu = menu_create( "Bet Coins", "coins_handle" )

    menu_additem( menu, "\yGold" )
    menu_additem( menu, "\dSilver" )

    menu_display( id, menu )
    return PLUGIN_HANDLED
}
public coins_handle( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        g_iWillBet[ id ] = -1
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    switch( item )
    {
        case 0:
        {
            ColorChat( id, RED, "^1(^4LLG^1) Gold Bet is currently^3 DISABLED^1 by the ^4server^1." )
            //Gold_Menu( id )
        }
        case 1: Silver_Menu( id )
    }
    menu_destroy( menu )
    return PLUGIN_HANDLED
}
public Gold_Menu( id )
{
    new menu = menu_create( fmt( "Amount of Gold Coins:^n\dYou have:\y %d", get_gold_coins( id ) ), "gold_handle" )

    menu_additem( menu, "1", "1" )
    menu_additem( menu, "3", "3" )
    menu_additem( menu, "5", "5" )
    menu_additem( menu, "7", "7" )
    menu_additem( menu, "9", "9" )
    menu_additem( menu, "11", "11" )
    menu_additem( menu, "15", "15" )
    menu_additem( menu, "20", "20" )	
    menu_additem( menu, "45", "45" )
    menu_additem( menu, "75", "75" )	
    menu_additem( menu, "100", "100" )
	
	
    menu_display( id, menu )
    return PLUGIN_HANDLED
}
public gold_handle( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        g_iWillBet[ id ] = -1
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    new szData[ 6 ], _access, item_callback
    menu_item_getinfo( menu, item, _access, szData, charsmax( szData ), _, _, item_callback )

    new iCoins = str_to_num( szData )

    if( get_gold_coins( id ) >= iCoins )
    {
        g_iGoldBet[ id ][ g_iWillBet[ id ] ] = iCoins
        ColorChat( id, BLUE, "^1(^4LLG^1) You bet^3 %d^1 Gold Coins for^4 %s^1 team to win!", g_iGoldBet[ id ][ g_iWillBet[ id ] ], g_iWillBet[ id ] == 0 ? "Counter-Terrorists":"Terrorists" )
        set_gold_coins( id, get_gold_coins( id ) - g_iGoldBet[ id ][ g_iWillBet[ id ] ] )
    }
    else
    {
        ColorChat( id, BLUE, "^1(^4LLG^1) You don't have enough^4 coins^1." )
    }
    menu_destroy( menu )
    return PLUGIN_HANDLED
}
public Silver_Menu( id )
{
    new menu = menu_create( fmt( "Amount of Silver Coins:^n\dYou have:\y %d", get_silver_coins( id ) ), "silver_handle" )

    menu_additem( menu, "1", "1" )
    menu_additem( menu, "3", "3" )
    menu_additem( menu, "5", "5" )
    menu_additem( menu, "7", "7" )
    menu_additem( menu, "9", "9" )
    menu_additem( menu, "11", "11" )
    menu_additem( menu, "15", "15" )
    menu_additem( menu, "20", "20" )	
    menu_additem( menu, "45", "45" )
    menu_additem( menu, "75", "75" )	
    menu_additem( menu, "100", "100" )

    menu_display( id, menu )
    return PLUGIN_HANDLED
}
public silver_handle( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        g_iWillBet[ id ] = -1
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    new szData[ 6 ], _access, item_callback
    menu_item_getinfo( menu, item, _access, szData, charsmax( szData ), _, _, item_callback )

    new iCoins = str_to_num( szData)

    if( get_silver_coins( id ) >= iCoins )
    {
        g_iSilverBet[ id ][ g_iWillBet[ id ] ] = iCoins
        ColorChat( id, BLUE, "^1(^4LLG^1) You bet^3 %d^1 Silver Coins for^4 %s^1 team to win!", g_iSilverBet[ id ][ g_iWillBet[ id ] ], g_iWillBet[ id ] == 0 ? "Counter-Terrorists":"Terrorists" )
        set_silver_coins( id, get_silver_coins( id ) - g_iSilverBet[ id ][ g_iWillBet[ id ] ] )
    }
    else
    {
        ColorChat( id, BLUE, "^1(^4LLG^1) You don't have enough^4 coins^1." )
    }
    menu_destroy( menu )
    return PLUGIN_HANDLED
}

[ LOGS ]

Code: Select all

L 02/03/2022 - 08:36:24: Start of error session.
L 02/03/2022 - 08:36:24: Info (map "de_dust2x2") (file "addons/amxmodx/logs/error_20220203.log")
L 02/03/2022 - 08:36:24: Invalid menu id 3(1)
L 02/03/2022 - 08:36:24: [AMXX] Displaying debug trace (plugin "llg_bet2.amxx", version "1.0")
L 02/03/2022 - 08:36:24: [AMXX] Run time error 10: native error (native "menu_destroy")
L 02/03/2022 - 08:36:24: [AMXX]    [0] llg_bet2.sma::pre_handle (line 153)
L 02/03/2022 - 08:38:07: Invalid menu id 3(3)
L 02/03/2022 - 08:38:07: [AMXX] Displaying debug trace (plugin "llg_bet2.amxx", version "1.0")
L 02/03/2022 - 08:38:07: [AMXX] Run time error 10: native error (native "menu_destroy")
L 02/03/2022 - 08:38:07: [AMXX]    [0] llg_bet2.sma::pre_handle (line 153)
L 02/03/2022 - 08:46:04: Invalid menu id 3(4)
L 02/03/2022 - 08:46:04: [AMXX] Displaying debug trace (plugin "llg_bet2.amxx", version "1.0")
L 02/03/2022 - 08:46:04: [AMXX] Run time error 10: native error (native "menu_destroy")
L 02/03/2022 - 08:46:04: [AMXX]    [0] llg_bet2.sma::pre_handle (line 153)
L 02/03/2022 - 13:20:24: Start of error session.
L 02/03/2022 - 13:20:24: Info (map "de_dust2x2") (file "addons/amxmodx/logs/error_20220203.log")
L 02/03/2022 - 13:20:24: Invalid menu id 3(2)
L 02/03/2022 - 13:20:24: [AMXX] Displaying debug trace (plugin "llg_bet.amxx", version "1.0")
L 02/03/2022 - 13:20:24: [AMXX] Run time error 10: native error (native "menu_destroy")
L 02/03/2022 - 13:20:24: [AMXX]    [0] llg_bet.sma::pre_handle (line 181)
L 02/03/2022 - 13:43:41: Start of error session.
L 02/03/2022 - 13:43:41: Info (map "de_dust2x2") (file "addons/amxmodx/logs/error_20220203.log")
L 02/03/2022 - 13:43:41: Invalid menu id 3(2)
L 02/03/2022 - 13:43:41: [AMXX] Displaying debug trace (plugin "llg_bet2.amxx", version "1.0")
L 02/03/2022 - 13:43:41: [AMXX] Run time error 10: native error (native "menu_destroy")
L 02/03/2022 - 13:43:41: [AMXX]    [0] llg_bet2.sma::pre_handle (line 153)
L 02/03/2022 - 13:47:59: Invalid menu id 3(2)
L 02/03/2022 - 13:47:59: [AMXX] Displaying debug trace (plugin "llg_bet2.amxx", version "1.0")
L 02/03/2022 - 13:47:59: [AMXX] Run time error 10: native error (native "menu_destroy")
L 02/03/2022 - 13:47:59: [AMXX]    [0] llg_bet2.sma::pre_handle (line 153)

L 02/02/2022 - 15:59:32: Start of error session.
L 02/02/2022 - 15:59:32: Info (map "fy_snow") (file "addons/amxmodx/logs/error_20220202.log")
L 02/02/2022 - 15:59:32: [AMXX] Displaying debug trace (plugin "llg_bet.amxx", version "1.0")
L 02/02/2022 - 15:59:32: [AMXX] Run time error 4: index out of bounds 
L 02/02/2022 - 15:59:32: [AMXX]    [0] llg_bet.sma::silver_handle (line 295)

User avatar
kidd0x
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 1054
Joined: 06 Oct 2018, 14:41
Detinator Steam: Da
SteamID: /id/kidd0x/
Reputatie: Utilizator neserios (tepar!)
Fond eXtream: 0
Location: Constangeles
Discord: kidd0x
Has thanked: 172 times
Been thanked: 81 times

07 Feb 2022, 21:17

Alexandru P. wrote:
07 Feb 2022, 18:19
N3v3rM1nd wrote:
06 Feb 2022, 16:36
Incearca asa

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <fvault>
#include <colorchat>
#include <cstrike>

#define TASK_CANCEL 235
#define MAX_PREFIX_CHARS 25

native get_gold_coins( id )
native set_gold_coins( id, num )

new const PrefixVault[] = "Buy_Prefix_Vault";

new g_iTrialPeriod[ 33 ]
new g_iUID[ 33 ]
new g_szPrefix[ 33 ][ 32 ]
new g_szUntilDate[ 33 ][ 32 ]

new bool: g_bAllowedChange[ 33 ]
new g_iDays[ 33 ], g_iItem[ 33 ]

#define IsPlayer(%1) (1 <= %1 <= 32)

new const g_szRestrictString[][] =
{
    "/",
    "*",
    "owner",
    "admin",
    "founder",
	"co-owner",
	"insane",
	"VIP",
	"GOLD",
	"SILVER",
	"administrator",
	"moderator",
	"helper",
	"slot",
	"****",
	"****",
	"sugi",
	"****",
	"retard",
    "manager"
}

new const g_iSortCoins[ 7 ][ 2 ] =
{
    { 3, 50 },
    { 5, 100 },
    { 7, 300 },
    { 10, 500 },
    { 15, 700 },
    { 30, 1200 },
    { 365, 3500 }
}

public plugin_init()
{
    register_plugin( "Buy Prefix Days", "1.0", "LLGRo" )

    register_clcmd( "say /buytag", "buy_prefix" )

    register_clcmd( "say", "say_prefix" )
    register_clcmd( "say_team", "say_team_prefix" )

    register_concmd( "set_my_prefix", "check_my_prefix" )

    set_task( 20.0, "task_check_trial", .flags = "b" )
}
public task_check_trial()
{
    for( new id = 1; id <= get_maxplayers(); id++ )
    {
        if( !is_user_connected( id ) )
            continue

        if( !g_szPrefix[ id ][ 0 ] )
            continue

        if( get_systime() > g_iTrialPeriod[ id ] )
        {
            ColorChat( id, GREY, "^1(^4LLG^1) Your ^4Prefix^1 period is^4 Over^1 !" )
            g_szPrefix[ id ][ 0 ] = EOS
            g_iTrialPeriod[ id ] = 0
            g_szUntilDate[ id ][ 0 ] = EOS
            g_iDays[ id ] = 0

            new sid[ 35 ]; get_user_authid( id, sid, charsmax( sid ) )
            fvault_remove_key( PrefixVault, sid )
        }
    }
}
public say_prefix( id )
{
    new text[ 100 ]
    read_args( text, charsmax( text ) )
    remove_quotes( text )

    if( !text[ 0 ] )
        return PLUGIN_HANDLED

    new prefix_be[ 40 ]
    if( g_szPrefix[ id ][ 0 ] )
        formatex( prefix_be, charsmax( prefix_be ), "^1(^4%s^1) ", g_szPrefix[ id ] )
    
    if(!IsPlayer(id)) 
        return PLUGIN_HANDLED

  ColorChat( 0, cs_get_user_team( id ) == CS_TEAM_T ? RED:BLUE, "%s%s^3%n:%s %s", is_user_alive( id ) ? "":"^1*DEAD* ", prefix_be, id, get_user_flags( id ) & ADMIN_RESERVATION ? "^4":"^1", text )

    return PLUGIN_HANDLED_MAIN
}
public say_team_prefix( id )
{
    new text[ 100 ]
    read_args( text, charsmax( text ) )
    remove_quotes( text )

    if( !text[ 0 ] )
        return PLUGIN_HANDLED

    new prefix_be[ 40 ]
    if( g_szPrefix[ id ][ 0 ] )
        formatex( prefix_be, charsmax( prefix_be ), "^1(^4%s^1) ", g_szPrefix[ id ] )

    for( new i = 1; i <= get_maxplayers(); i++ )
    {
        if( !is_user_connected( i ) )
            continue

        if( cs_get_user_team( id ) != cs_get_user_team( i ) )
            continue

        ColorChat( i, cs_get_user_team( id ) == CS_TEAM_T ? RED:BLUE, "^1(%sTerrorist) %s%s^3%n:%s %s", cs_get_user_team( id ) == CS_TEAM_CT ? "Counter-":"", is_user_alive( id ) ? "":"^1*DEAD* ", prefix_be, id, get_user_flags( id ) & ADMIN_RESERVATION ? "^4":"^1", text )
    }
    return PLUGIN_HANDLED_MAIN
}
public client_putinserver( id )
{
    g_bAllowedChange[ id ] = false
    g_szPrefix[ id ][ 0 ] = EOS
    g_szUntilDate[ id ][ 0 ] = EOS
    g_iTrialPeriod[ id ] = 0
    g_iDays[ id ] = 0
    g_iItem[ id ] = -1
    Load_Data( id )

    set_task( 2.0, "task_check_trial" )
}
public client_disconnected( id )
{
    g_iTrialPeriod[ id ] = 0
    g_szPrefix[ id ][ 0 ] = EOS
    g_szUntilDate[ id ][ 0 ] = EOS
    g_bAllowedChange[ id ] = false
    g_iDays[ id ] = 0
    g_iItem[ id ] = -1

    remove_task( id + TASK_CANCEL )
}
public Load_Data( id )
{
    new szAuthId[ 35 ]
    get_user_authid( id, szAuthId, charsmax( szAuthId ) )

    if( !szAuthId[ 0 ] || ( !equal(szAuthId, "STEAM_", 6 ) && !equal( szAuthId, "VALVE_", 6 ) ) )
        return

    new szBuffer[ 56 ], data[ 4 ][ 32 ]
    g_iUID[ id ] = get_user_userid( id )
    if( fvault_get_data( PrefixVault, szAuthId, szBuffer, charsmax( szBuffer ) ) )
    {
        if( g_iUID[ id ] == get_user_userid( id ) )
        {
            parse( szBuffer, data[ 0 ], charsmax( data[] ), data[ 1 ], charsmax( data[] ), data[ 2 ], charsmax( data[] ) )
            g_iTrialPeriod[ id ] = str_to_num( data[ 0 ] )
            formatex( g_szPrefix[ id ], charsmax( g_szPrefix[] ), data[ 1 ] )
            formatex( g_szUntilDate[ id ], charsmax( g_szUntilDate[] ), data[ 2 ] )
        }
    }
}
public Save_Data( id )
{
    new szAuthId[ 35 ]
    get_user_authid( id, szAuthId, charsmax( szAuthId ) )

    if( g_iUID[ id ] != get_user_userid( id ) )
    {
        ColorChat( id, RED, "^1(^4LLG^1) Error happened with your ^4Prefix Data^1. ^1Please contact the ^4owner^1." )
        return
    }
    if( !equal( szAuthId, "STEAM_", 6 ) )
        return

    new szBuffer[ 56 ]
    formatex( szBuffer, charsmax( szBuffer ), "%d ^"%s^" %s", g_iTrialPeriod[ id ], g_szPrefix[ id ], g_szUntilDate[ id ] )
    fvault_pset_data( PrefixVault, szAuthId, szBuffer )
}
public buy_prefix( id )
{
    if( g_iDays[ id ] || g_szPrefix[ id ][ 0 ] )
    {
        ColorChat( id, BLUE, "^1(^4Until^1): %s^4 (%s)", until_time( g_iTrialPeriod[ id ] - get_systime() ), g_szUntilDate[ id ] )
        ColorChat( id, BLUE, "^1(^4LLG^1) You already have^4 TAG^1, contact ^4owner ^1for any changes." )
        return PLUGIN_HANDLED
    }
    new menu = menu_create( "\r(LLG)\y Buy Tag", "handle_prefix" )

    for( new i; i < 7; i++ )
    {
        menu_additem( menu, fmt( "\yTAG \r%d \wDays - \y%d (Gold Coins)", g_iSortCoins[ i ][ 0 ], g_iSortCoins[ i ][ 1 ] ) )
    }
    menu_display( id, menu )
    return PLUGIN_HANDLED
}
public handle_prefix( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    if( get_gold_coins( id ) < g_iSortCoins[ item ][ 1 ] )
    {
        ColorChat( id, RED, "^1(^4LLG^1) You don't have enough^4 Gold Coins^1 for it." )
        return PLUGIN_HANDLED
    }
    g_iDays[ id ] = g_iSortCoins[ item ][ 0 ]
    g_iItem[ id ] = item
    ColorChat( id, BLUE, "^1(^4LLG^1) You choose^3 %d days^1. Write your ^4prefix ^1now:", g_iSortCoins[ item ][ 0 ] )
    set_his_prefix( id, item )
    menu_destroy( menu )
    return PLUGIN_HANDLED
}
public set_his_prefix( id, days )
{
    g_bAllowedChange[ id ] = true
    client_cmd( id, "messagemode set_my_prefix" )
    set_task( 30.0, "cancel_prefix", id + TASK_CANCEL )
}
public cancel_prefix( task )
{
    new id = task - TASK_CANCEL
    if( g_bAllowedChange[ id ] )
    {
        client_cmd( id, "cancelselect" )
        g_bAllowedChange[ id ] = false
        ColorChat( id, RED, "^1(^4LLG^1) You did not write anything in^4 30 seconds^1, please try again." )
        g_iDays[ id ] = 0
    }
}
public check_my_prefix( id )
{
    if( g_bAllowedChange[ id ] )
    {
        new string[ 32 ], bool: can_change = true
        read_args( string, charsmax( string ) )
        for( new i; i < sizeof( g_szRestrictString ) ; i++ )
        {
            if( containi( string, g_szRestrictString[ i ] ) != -1 )
            {
                client_print( id, print_chat, "You are not allowed to use that Prefix. Please try again." )
                can_change = false
                break
            }
            if( strlen( string ) - 2 > MAX_PREFIX_CHARS )
            {
                client_print( id, print_chat, "Maximum Characters for Prefix is: %d, Try again.", MAX_PREFIX_CHARS )
                can_change = false
                break
            }
        }
        if( can_change )
        {
            g_iTrialPeriod[ id ] = get_systime() + ( 86400 * g_iDays[ id ] )
            format_time( g_szUntilDate[ id ], charsmax( g_szUntilDate[] ), "%m/%d/%Y-%I:%M:%S", g_iTrialPeriod[ id ] )
            remove_quotes( string )
            formatex( g_szPrefix[ id ], charsmax( g_szPrefix[] ), string )
            ColorChat( id, BLUE, "^1(^4LLG^1) Your prefix is now:^4 %s", g_szPrefix[ id ] )
            if( g_iDays[ id ] == 10000 )
            {
                formatex( g_szUntilDate[ id ], charsmax( g_szUntilDate[] ), "1 Year" )
            }
            Save_Data( id )

            set_gold_coins( id, get_gold_coins( id ) - g_iSortCoins[ g_iItem[ id ] ][ 1 ] )
        }
        g_bAllowedChange[ id ] = false
        g_iDays[ id ] = 0
        g_iItem[ id ] = -1
    }
    return PLUGIN_HANDLED
}
public until_time( const iTime )
{
    new seconds = iTime
    new days = seconds / 86400;
    seconds = seconds % 86400;
    new hours = seconds / 3600;
    seconds = seconds % 3600;
    new minutes = seconds / 60;
    seconds = seconds % 60;
    new text[ 200 ]
    formatex( text, charsmax( text ), "%d days, %d hours, %d minutes", days, hours, minutes )
    return text
}
Mersi! Am facut cateva teste si momentan nu am primit eroare. Astept sa vedem ce se mai intampla pe parcurs.

Ca sa nu mai fac alt topic, poti te rog sa te uiti si peste aces plugin? Am cateva erori si la el.

[ PLUGIN ]

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <colorchat>

native get_gold_coins( id )
native get_silver_coins( id )

native set_gold_coins( id, num )
native set_silver_coins( id, num )

new g_iGoldBet[ 33 ][ 2 ] //0 = CT bet, 1 = TR BET
new g_iSilverBet[ 33 ][ 2 ] //0 = CT bet, 1 = TR BET

new g_iWillBet[ 33 ] //-1 = wont bet, 0 = CT, 1 = TR

new g_bCanBet

public plugin_init()
{
    register_plugin( "Bet Coins", "1.0", "JocA" )

    register_clcmd( "say /bet", "bet_pre" )
    register_clcmd( "say_team /bet", "bet_pre" )

    register_event( "HLTV", "event_new_round", "a", "1=0", "2=0" )
    register_event( "SendAudio", "event_sendAudio", "a", "2=%!MRAD_terwin", "2=%!MRAD_ctwin", "2=%!MRAD_rounddraw" )
    register_event( "DeathMsg", "event_Death", "a" )
}
public event_Death()
{
    new killer = read_data( 1 )
    new victim = read_data( 2 )
    if( killer != victim )
    {
        ColorChat( victim, BLUE, "^1(^4LLG^1) You can bet on your favorite team with say^4 /bet^1." )
        set_hudmessage( 70, 255, 55, 0.02, 0.25, 0, 0.5, 5.0, 0.5, 0.5, -1 )
        show_hudmessage( victim, "Bet on your favorite team with say /bet" )
    }
}
public client_putinserver( id )
{
    ResetCoins( id )
}
public client_disconnected( id )
{
    ResetCoins( id )
}
public event_new_round()
{
    g_bCanBet = true
    for( new id = 1; id <= get_maxplayers(); id++ )
    {
        if( is_user_connected( id ) )
            ResetCoins( id )
    }
}
public ResetCoins( id )
{
    g_iGoldBet[ id ][ 0 ] = 0
    g_iGoldBet[ id ][ 1 ] = 0

    g_iSilverBet[ id ][ 0 ] = 0
    g_iSilverBet[ id ][ 1 ] = 0

    g_iWillBet[ id ] = -1
}
public event_sendAudio()
{
    new string[ 22 ]
    read_data( 2, string, charsmax( string ) )

    if( containi( string, "ctwin" ) != -1 )
    {
        for( new id = 1; id <= get_maxplayers(); id++ )
        {
            if( is_user_connected( id ) && !is_user_alive( id ) )
            {
                if( g_iGoldBet[ id ][ 1 ] )
                {
                    set_gold_coins( id, get_gold_coins( id ) - g_iGoldBet[ id ][ 1 ] )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Counter-Terrorists^1 team has ^4won^1. You lost^3 %d^4 gold coins^1.", g_iGoldBet[ id ][ 1 ] )
                }
                else if( g_iSilverBet[ id ][ 1 ] )
                {
                    set_silver_coins( id, get_silver_coins( id ) - g_iSilverBet[ id ][ 1 ] )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Counter-Terrorists^1 team has ^4won^1. You lost^3 %d^4 silver coins^1.", g_iSilverBet[ id ][ 1 ] )
                }

                if( g_iGoldBet[ id ][ 0 ] )
                {
                    new got_coins = g_iGoldBet[ id ][ 1 ] * 2
                    set_gold_coins( id, get_gold_coins( id ) + got_coins )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Counter-Terrorists^1 team has ^4won^1. You won^3 %d^4 gold coins^1.", got_coins )
                }
                else if( g_iSilverBet[ id ][ 0 ] )
                {
                    new got_coins = g_iSilverBet[ id ][ 0 ] * 2
                    set_silver_coins( id, get_silver_coins( id ) + got_coins )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Counter-Terrorists^1 team has^4 won^1. You won^3 %d^4 silver coins^1.", got_coins )
                }
            }
        }
    }
    else if( containi( string, "terwin") != -1 )
    {
        for( new id = 1; id <= get_maxplayers(); id++ )
        {
            if( is_user_connected( id ) && !is_user_alive( id ) )
            {
                if( g_iGoldBet[ id ][ 0 ] )
                {
                    set_gold_coins( id, get_gold_coins( id ) - g_iGoldBet[ id ][ 0 ] )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Terrorists^1 team has^4 won^1. You lost^3 %d^4 gold coins^1.", g_iGoldBet[ id ][ 0 ] )
                }
                else if( g_iSilverBet[ id ][ 0 ] )
                {
                    set_silver_coins( id, get_silver_coins( id ) - g_iSilverBet[ id ][ 0 ] )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Terrorists^1 team has^4 won^1. You lost^3 %d^4 silver coins^1.", g_iSilverBet[ id ][ 0 ] )
                }

                if( g_iGoldBet[ id ][ 1 ] )
                {
                    new got_coins = g_iGoldBet[ id ][ 1 ] * 2
                    set_gold_coins( id, get_gold_coins( id ) + got_coins )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Terrorists team^1 has^4 won^1. You won^3 %d^4 gold coins^1.", got_coins )
                }
                else if( g_iSilverBet[ id ][ 1 ] )
                {
                    new got_coins = g_iSilverBet[ id ][ 1 ] * 2
                    set_silver_coins( id, get_silver_coins( id ) + got_coins )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Terrorists^1 team has^4 won^1. You won^3 %d^4 silver coins^1.", got_coins )
                }
            }
        }

    }
    g_bCanBet = false
}
public bet_pre( id )
{
    if( is_user_alive( id ) )
    {
        ColorChat( id, RED, "^1(^4LLG^1) You can not ^4bet^1 when you are^3 alive^1." )
        return PLUGIN_HANDLED
    }
    if( !g_bCanBet )
    {
        ColorChat( id, RED, "^1(^4LLG^1) Betting is^4 closed^1. You must wait for new^3 round^1." )
        return PLUGIN_HANDLED
    }
    if( g_iWillBet[ id ] >= 0 )
    {
        ColorChat( id, RED, "^1(^4LLG^1) You^4 already bet^1. You must wait for the next^3 round^1." )
        return PLUGIN_HANDLED
    }
    new menu = menu_create( "\r(LLG)\y BET COINS:^n^n\yTeam:", "pre_handle" )

    menu_additem( menu, "Counter-Terrorist" )
    menu_additem( menu, "Terrorist" )

    menu_display( id, menu )

    return PLUGIN_HANDLED
}
public pre_handle( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        g_iWillBet[ id ] = -1
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    switch( item )
    {
        case 0: g_iWillBet[ id ] = 0 //for CT
        case 1: g_iWillBet[ id ] = 1 //for TR
    }
    {
    choose_coins( id )
    menu_destroy( id )
    return PLUGIN_HANDLED
    }
}
public choose_coins( id )
{
    new menu = menu_create( "Bet Coins", "coins_handle" )

    menu_additem( menu, "\yGold" )
    menu_additem( menu, "\dSilver" )

    menu_display( id, menu )
    return PLUGIN_HANDLED
}
public coins_handle( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        g_iWillBet[ id ] = -1
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    switch( item )
    {
        case 0:
        {
            ColorChat( id, RED, "^1(^4LLG^1) Gold Bet is currently^3 DISABLED^1 by the ^4server^1." )
            //Gold_Menu( id )
        }
        case 1: Silver_Menu( id )
    }
    menu_destroy( menu )
    return PLUGIN_HANDLED
}
public Gold_Menu( id )
{
    new menu = menu_create( fmt( "Amount of Gold Coins:^n\dYou have:\y %d", get_gold_coins( id ) ), "gold_handle" )

    menu_additem( menu, "1", "1" )
    menu_additem( menu, "3", "3" )
    menu_additem( menu, "5", "5" )
    menu_additem( menu, "7", "7" )
    menu_additem( menu, "9", "9" )
    menu_additem( menu, "11", "11" )
    menu_additem( menu, "15", "15" )
    menu_additem( menu, "20", "20" )	
    menu_additem( menu, "45", "45" )
    menu_additem( menu, "75", "75" )	
    menu_additem( menu, "100", "100" )
	
	
    menu_display( id, menu )
    return PLUGIN_HANDLED
}
public gold_handle( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        g_iWillBet[ id ] = -1
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    new szData[ 6 ], _access, item_callback
    menu_item_getinfo( menu, item, _access, szData, charsmax( szData ), _, _, item_callback )

    new iCoins = str_to_num( szData )

    if( get_gold_coins( id ) >= iCoins )
    {
        g_iGoldBet[ id ][ g_iWillBet[ id ] ] = iCoins
        ColorChat( id, BLUE, "^1(^4LLG^1) You bet^3 %d^1 Gold Coins for^4 %s^1 team to win!", g_iGoldBet[ id ][ g_iWillBet[ id ] ], g_iWillBet[ id ] == 0 ? "Counter-Terrorists":"Terrorists" )
        set_gold_coins( id, get_gold_coins( id ) - g_iGoldBet[ id ][ g_iWillBet[ id ] ] )
    }
    else
    {
        ColorChat( id, BLUE, "^1(^4LLG^1) You don't have enough^4 coins^1." )
    }
    menu_destroy( menu )
    return PLUGIN_HANDLED
}
public Silver_Menu( id )
{
    new menu = menu_create( fmt( "Amount of Silver Coins:^n\dYou have:\y %d", get_silver_coins( id ) ), "silver_handle" )

    menu_additem( menu, "1", "1" )
    menu_additem( menu, "3", "3" )
    menu_additem( menu, "5", "5" )
    menu_additem( menu, "7", "7" )
    menu_additem( menu, "9", "9" )
    menu_additem( menu, "11", "11" )
    menu_additem( menu, "15", "15" )
    menu_additem( menu, "20", "20" )	
    menu_additem( menu, "45", "45" )
    menu_additem( menu, "75", "75" )	
    menu_additem( menu, "100", "100" )

    menu_display( id, menu )
    return PLUGIN_HANDLED
}
public silver_handle( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        g_iWillBet[ id ] = -1
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    new szData[ 6 ], _access, item_callback
    menu_item_getinfo( menu, item, _access, szData, charsmax( szData ), _, _, item_callback )

    new iCoins = str_to_num( szData)

    if( get_silver_coins( id ) >= iCoins )
    {
        g_iSilverBet[ id ][ g_iWillBet[ id ] ] = iCoins
        ColorChat( id, BLUE, "^1(^4LLG^1) You bet^3 %d^1 Silver Coins for^4 %s^1 team to win!", g_iSilverBet[ id ][ g_iWillBet[ id ] ], g_iWillBet[ id ] == 0 ? "Counter-Terrorists":"Terrorists" )
        set_silver_coins( id, get_silver_coins( id ) - g_iSilverBet[ id ][ g_iWillBet[ id ] ] )
    }
    else
    {
        ColorChat( id, BLUE, "^1(^4LLG^1) You don't have enough^4 coins^1." )
    }
    menu_destroy( menu )
    return PLUGIN_HANDLED
}

[ LOGS ]

Code: Select all

L 02/03/2022 - 08:36:24: Start of error session.
L 02/03/2022 - 08:36:24: Info (map "de_dust2x2") (file "addons/amxmodx/logs/error_20220203.log")
L 02/03/2022 - 08:36:24: Invalid menu id 3(1)
L 02/03/2022 - 08:36:24: [AMXX] Displaying debug trace (plugin "llg_bet2.amxx", version "1.0")
L 02/03/2022 - 08:36:24: [AMXX] Run time error 10: native error (native "menu_destroy")
L 02/03/2022 - 08:36:24: [AMXX]    [0] llg_bet2.sma::pre_handle (line 153)
L 02/03/2022 - 08:38:07: Invalid menu id 3(3)
L 02/03/2022 - 08:38:07: [AMXX] Displaying debug trace (plugin "llg_bet2.amxx", version "1.0")
L 02/03/2022 - 08:38:07: [AMXX] Run time error 10: native error (native "menu_destroy")
L 02/03/2022 - 08:38:07: [AMXX]    [0] llg_bet2.sma::pre_handle (line 153)
L 02/03/2022 - 08:46:04: Invalid menu id 3(4)
L 02/03/2022 - 08:46:04: [AMXX] Displaying debug trace (plugin "llg_bet2.amxx", version "1.0")
L 02/03/2022 - 08:46:04: [AMXX] Run time error 10: native error (native "menu_destroy")
L 02/03/2022 - 08:46:04: [AMXX]    [0] llg_bet2.sma::pre_handle (line 153)
L 02/03/2022 - 13:20:24: Start of error session.
L 02/03/2022 - 13:20:24: Info (map "de_dust2x2") (file "addons/amxmodx/logs/error_20220203.log")
L 02/03/2022 - 13:20:24: Invalid menu id 3(2)
L 02/03/2022 - 13:20:24: [AMXX] Displaying debug trace (plugin "llg_bet.amxx", version "1.0")
L 02/03/2022 - 13:20:24: [AMXX] Run time error 10: native error (native "menu_destroy")
L 02/03/2022 - 13:20:24: [AMXX]    [0] llg_bet.sma::pre_handle (line 181)
L 02/03/2022 - 13:43:41: Start of error session.
L 02/03/2022 - 13:43:41: Info (map "de_dust2x2") (file "addons/amxmodx/logs/error_20220203.log")
L 02/03/2022 - 13:43:41: Invalid menu id 3(2)
L 02/03/2022 - 13:43:41: [AMXX] Displaying debug trace (plugin "llg_bet2.amxx", version "1.0")
L 02/03/2022 - 13:43:41: [AMXX] Run time error 10: native error (native "menu_destroy")
L 02/03/2022 - 13:43:41: [AMXX]    [0] llg_bet2.sma::pre_handle (line 153)
L 02/03/2022 - 13:47:59: Invalid menu id 3(2)
L 02/03/2022 - 13:47:59: [AMXX] Displaying debug trace (plugin "llg_bet2.amxx", version "1.0")
L 02/03/2022 - 13:47:59: [AMXX] Run time error 10: native error (native "menu_destroy")
L 02/03/2022 - 13:47:59: [AMXX]    [0] llg_bet2.sma::pre_handle (line 153)

L 02/02/2022 - 15:59:32: Start of error session.
L 02/02/2022 - 15:59:32: Info (map "fy_snow") (file "addons/amxmodx/logs/error_20220202.log")
L 02/02/2022 - 15:59:32: [AMXX] Displaying debug trace (plugin "llg_bet.amxx", version "1.0")
L 02/02/2022 - 15:59:32: [AMXX] Run time error 4: index out of bounds 
L 02/02/2022 - 15:59:32: [AMXX]    [0] llg_bet.sma::silver_handle (line 295)

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <colorchat>

native get_gold_coins( id )
native get_silver_coins( id )

native set_gold_coins( id, num )
native set_silver_coins( id, num )

new g_iGoldBet[ 33 ][ 2 ] //0 = CT bet, 1 = TR BET
new g_iSilverBet[ 33 ][ 2 ] //0 = CT bet, 1 = TR BET

new g_iWillBet[ 33 ] //-1 = wont bet, 0 = CT, 1 = TR

new g_bCanBet

public plugin_init()
{
    register_plugin( "Bet Coins", "1.0", "JocA" )

    register_clcmd( "say /bet", "bet_pre" )
    register_clcmd( "say_team /bet", "bet_pre" )

    register_event( "HLTV", "event_new_round", "a", "1=0", "2=0" )
    register_event( "SendAudio", "event_sendAudio", "a", "2=%!MRAD_terwin", "2=%!MRAD_ctwin", "2=%!MRAD_rounddraw" )
    register_event( "DeathMsg", "event_Death", "a" )
}
public event_Death()
{
    new killer = read_data( 1 )
    new victim = read_data( 2 )
    if( killer != victim )
    {
        ColorChat( victim, BLUE, "^1(^4LLG^1) You can bet on your favorite team with say^4 /bet^1." )
        set_hudmessage( 70, 255, 55, 0.02, 0.25, 0, 0.5, 5.0, 0.5, 0.5, -1 )
        show_hudmessage( victim, "Bet on your favorite team with say /bet" )
    }
}
public client_putinserver( id )
{
    ResetCoins( id )
}
public client_disconnected( id )
{
    ResetCoins( id )
}
public event_new_round()
{
    g_bCanBet = true
    for( new id = 1; id <= get_maxplayers(); id++ )
    {
        if( is_user_connected( id ) )
            ResetCoins( id )
    }
}
public ResetCoins( id )
{
    g_iGoldBet[ id ][ 0 ] = 0
    g_iGoldBet[ id ][ 1 ] = 0

    g_iSilverBet[ id ][ 0 ] = 0
    g_iSilverBet[ id ][ 1 ] = 0

    g_iWillBet[ id ] = -1
}
public event_sendAudio()
{
    new string[ 22 ]
    read_data( 2, string, charsmax( string ) )

    if( containi( string, "ctwin" ) != -1 )
    {
        for( new id = 1; id <= get_maxplayers(); id++ )
        {
            if( is_user_connected( id ) && !is_user_alive( id ) )
            {
                if( g_iGoldBet[ id ][ 1 ] )
                {
                    set_gold_coins( id, get_gold_coins( id ) - g_iGoldBet[ id ][ 1 ] )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Counter-Terrorists^1 team has ^4won^1. You lost^3 %d^4 gold coins^1.", g_iGoldBet[ id ][ 1 ] )
                }
                else if( g_iSilverBet[ id ][ 1 ] )
                {
                    set_silver_coins( id, get_silver_coins( id ) - g_iSilverBet[ id ][ 1 ] )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Counter-Terrorists^1 team has ^4won^1. You lost^3 %d^4 silver coins^1.", g_iSilverBet[ id ][ 1 ] )
                }

                if( g_iGoldBet[ id ][ 0 ] )
                {
                    new got_coins = g_iGoldBet[ id ][ 1 ] * 2
                    set_gold_coins( id, get_gold_coins( id ) + got_coins )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Counter-Terrorists^1 team has ^4won^1. You won^3 %d^4 gold coins^1.", got_coins )
                }
                else if( g_iSilverBet[ id ][ 0 ] )
                {
                    new got_coins = g_iSilverBet[ id ][ 0 ] * 2
                    set_silver_coins( id, get_silver_coins( id ) + got_coins )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Counter-Terrorists^1 team has^4 won^1. You won^3 %d^4 silver coins^1.", got_coins )
                }
            }
        }
    }
    else if( containi( string, "terwin") != -1 )
    {
        for( new id = 1; id <= get_maxplayers(); id++ )
        {
            if( is_user_connected( id ) && !is_user_alive( id ) )
            {
                if( g_iGoldBet[ id ][ 0 ] )
                {
                    set_gold_coins( id, get_gold_coins( id ) - g_iGoldBet[ id ][ 0 ] )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Terrorists^1 team has^4 won^1. You lost^3 %d^4 gold coins^1.", g_iGoldBet[ id ][ 0 ] )
                }
                else if( g_iSilverBet[ id ][ 0 ] )
                {
                    set_silver_coins( id, get_silver_coins( id ) - g_iSilverBet[ id ][ 0 ] )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Terrorists^1 team has^4 won^1. You lost^3 %d^4 silver coins^1.", g_iSilverBet[ id ][ 0 ] )
                }

                if( g_iGoldBet[ id ][ 1 ] )
                {
                    new got_coins = g_iGoldBet[ id ][ 1 ] * 2
                    set_gold_coins( id, get_gold_coins( id ) + got_coins )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Terrorists team^1 has^4 won^1. You won^3 %d^4 gold coins^1.", got_coins )
                }
                else if( g_iSilverBet[ id ][ 1 ] )
                {
                    new got_coins = g_iSilverBet[ id ][ 1 ] * 2
                    set_silver_coins( id, get_silver_coins( id ) + got_coins )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Terrorists^1 team has^4 won^1. You won^3 %d^4 silver coins^1.", got_coins )
                }
            }
        }

    }
    g_bCanBet = false
}
public bet_pre( id )
{
    if( is_user_alive( id ) )
    {
        ColorChat( id, RED, "^1(^4LLG^1) You can not ^4bet^1 when you are^3 alive^1." )
        return PLUGIN_HANDLED
    }
    if( !g_bCanBet )
    {
        ColorChat( id, RED, "^1(^4LLG^1) Betting is^4 closed^1. You must wait for new^3 round^1." )
        return PLUGIN_HANDLED
    }
    if( g_iWillBet[ id ] >= 0 )
    {
        ColorChat( id, RED, "^1(^4LLG^1) You^4 already bet^1. You must wait for the next^3 round^1." )
        return PLUGIN_HANDLED
    }
    new menu = menu_create( "\r(LLG)\y BET COINS:^n^n\yTeam:", "pre_handle" )

    menu_additem( menu, "Counter-Terrorist" )
    menu_additem( menu, "Terrorist" )

    menu_display( id, menu )

    return PLUGIN_HANDLED
}
public pre_handle( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        g_iWillBet[ id ] = -1
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    switch( item )
    {
        case 0: g_iWillBet[ id ] = 0 //for CT
        case 1: g_iWillBet[ id ] = 1 //for TR
    }
    {
    choose_coins( id )
    menu_destroy( menu )
    return PLUGIN_HANDLED
    }
}
public choose_coins( id )
{
    new menu = menu_create( "Bet Coins", "coins_handle" )

    menu_additem( menu, "\yGold" )
    menu_additem( menu, "\dSilver" )

    menu_display( id, menu )
    return PLUGIN_HANDLED
}
public coins_handle( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        g_iWillBet[ id ] = -1
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    switch( item )
    {
        case 0:
        {
            ColorChat( id, RED, "^1(^4LLG^1) Gold Bet is currently^3 DISABLED^1 by the ^4server^1." )
            //Gold_Menu( id )
        }
        case 1: Silver_Menu( id )
    }
    menu_destroy( menu )
    return PLUGIN_HANDLED
}
public Gold_Menu( id )
{
    new menu = menu_create( fmt( "Amount of Gold Coins:^n\dYou have:\y %d", get_gold_coins( id ) ), "gold_handle" )

    menu_additem( menu, "1", "1" )
    menu_additem( menu, "3", "3" )
    menu_additem( menu, "5", "5" )
    menu_additem( menu, "7", "7" )
    menu_additem( menu, "9", "9" )
    menu_additem( menu, "11", "11" )
    menu_additem( menu, "15", "15" )
    menu_additem( menu, "20", "20" )	
    menu_additem( menu, "45", "45" )
    menu_additem( menu, "75", "75" )	
    menu_additem( menu, "100", "100" )
	
	
    menu_display( id, menu )
    return PLUGIN_HANDLED
}
public gold_handle( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        g_iWillBet[ id ] = -1
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    new szData[ 6 ], _access, item_callback
    menu_item_getinfo( menu, item, _access, szData, charsmax( szData ), _, _, item_callback )

    new iCoins = str_to_num( szData )

    if( get_gold_coins( id ) >= iCoins )
    {
        g_iGoldBet[ id ][ g_iWillBet[ id ] ] = iCoins
        ColorChat( id, BLUE, "^1(^4LLG^1) You bet^3 %d^1 Gold Coins for^4 %s^1 team to win!", g_iGoldBet[ id ][ g_iWillBet[ id ] ], g_iWillBet[ id ] == 0 ? "Counter-Terrorists":"Terrorists" )
        set_gold_coins( id, get_gold_coins( id ) - g_iGoldBet[ id ][ g_iWillBet[ id ] ] )
    }
    else
    {
        ColorChat( id, BLUE, "^1(^4LLG^1) You don't have enough^4 coins^1." )
    }
    menu_destroy( menu )
    return PLUGIN_HANDLED
}
public Silver_Menu( id )
{
    new menu = menu_create( fmt( "Amount of Silver Coins:^n\dYou have:\y %d", get_silver_coins( id ) ), "silver_handle" )

    menu_additem( menu, "1", "1" )
    menu_additem( menu, "3", "3" )
    menu_additem( menu, "5", "5" )
    menu_additem( menu, "7", "7" )
    menu_additem( menu, "9", "9" )
    menu_additem( menu, "11", "11" )
    menu_additem( menu, "15", "15" )
    menu_additem( menu, "20", "20" )	
    menu_additem( menu, "45", "45" )
    menu_additem( menu, "75", "75" )	
    menu_additem( menu, "100", "100" )

    menu_display( id, menu )
    return PLUGIN_HANDLED
}
public silver_handle( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        g_iWillBet[ id ] = -1
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    new szData[ 6 ], _access, item_callback
    menu_item_getinfo( menu, item, _access, szData, charsmax( szData ), _, _, item_callback )

    new iCoins = str_to_num( szData)

    if( get_silver_coins( id ) >= iCoins )
    {
        g_iSilverBet[ id ][ g_iWillBet[ id ] ] = iCoins
        ColorChat( id, BLUE, "^1(^4LLG^1) You bet^3 %d^1 Silver Coins for^4 %s^1 team to win!", g_iSilverBet[ id ][ g_iWillBet[ id ] ], g_iWillBet[ id ] == 0 ? "Counter-Terrorists":"Terrorists" )
        set_silver_coins( id, get_silver_coins( id ) - g_iSilverBet[ id ][ g_iWillBet[ id ] ] )
    }
    else
    {
        ColorChat( id, BLUE, "^1(^4LLG^1) You don't have enough^4 coins^1." )
    }
    menu_destroy( menu )
    return PLUGIN_HANDLED
}
User avatar
Alexandru P.
Membru, skill 0
Membru, skill 0
Posts: 77
Joined: 10 Apr 2020, 11:27
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: CS.BHZD.RO
Fond eXtream: 0
Has thanked: 7 times
Contact:

10 Feb 2022, 13:14

N3v3rM1nd wrote:
07 Feb 2022, 21:17
Alexandru P. wrote:
07 Feb 2022, 18:19
N3v3rM1nd wrote:
06 Feb 2022, 16:36
Incearca asa

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <fvault>
#include <colorchat>
#include <cstrike>

#define TASK_CANCEL 235
#define MAX_PREFIX_CHARS 25

native get_gold_coins( id )
native set_gold_coins( id, num )

new const PrefixVault[] = "Buy_Prefix_Vault";

new g_iTrialPeriod[ 33 ]
new g_iUID[ 33 ]
new g_szPrefix[ 33 ][ 32 ]
new g_szUntilDate[ 33 ][ 32 ]

new bool: g_bAllowedChange[ 33 ]
new g_iDays[ 33 ], g_iItem[ 33 ]

#define IsPlayer(%1) (1 <= %1 <= 32)

new const g_szRestrictString[][] =
{
    "/",
    "*",
    "owner",
    "admin",
    "founder",
	"co-owner",
	"insane",
	"VIP",
	"GOLD",
	"SILVER",
	"administrator",
	"moderator",
	"helper",
	"slot",
	"****",
	"****",
	"sugi",
	"****",
	"retard",
    "manager"
}

new const g_iSortCoins[ 7 ][ 2 ] =
{
    { 3, 50 },
    { 5, 100 },
    { 7, 300 },
    { 10, 500 },
    { 15, 700 },
    { 30, 1200 },
    { 365, 3500 }
}

public plugin_init()
{
    register_plugin( "Buy Prefix Days", "1.0", "LLGRo" )

    register_clcmd( "say /buytag", "buy_prefix" )

    register_clcmd( "say", "say_prefix" )
    register_clcmd( "say_team", "say_team_prefix" )

    register_concmd( "set_my_prefix", "check_my_prefix" )

    set_task( 20.0, "task_check_trial", .flags = "b" )
}
public task_check_trial()
{
    for( new id = 1; id <= get_maxplayers(); id++ )
    {
        if( !is_user_connected( id ) )
            continue

        if( !g_szPrefix[ id ][ 0 ] )
            continue

        if( get_systime() > g_iTrialPeriod[ id ] )
        {
            ColorChat( id, GREY, "^1(^4LLG^1) Your ^4Prefix^1 period is^4 Over^1 !" )
            g_szPrefix[ id ][ 0 ] = EOS
            g_iTrialPeriod[ id ] = 0
            g_szUntilDate[ id ][ 0 ] = EOS
            g_iDays[ id ] = 0

            new sid[ 35 ]; get_user_authid( id, sid, charsmax( sid ) )
            fvault_remove_key( PrefixVault, sid )
        }
    }
}
public say_prefix( id )
{
    new text[ 100 ]
    read_args( text, charsmax( text ) )
    remove_quotes( text )

    if( !text[ 0 ] )
        return PLUGIN_HANDLED

    new prefix_be[ 40 ]
    if( g_szPrefix[ id ][ 0 ] )
        formatex( prefix_be, charsmax( prefix_be ), "^1(^4%s^1) ", g_szPrefix[ id ] )
    
    if(!IsPlayer(id)) 
        return PLUGIN_HANDLED

  ColorChat( 0, cs_get_user_team( id ) == CS_TEAM_T ? RED:BLUE, "%s%s^3%n:%s %s", is_user_alive( id ) ? "":"^1*DEAD* ", prefix_be, id, get_user_flags( id ) & ADMIN_RESERVATION ? "^4":"^1", text )

    return PLUGIN_HANDLED_MAIN
}
public say_team_prefix( id )
{
    new text[ 100 ]
    read_args( text, charsmax( text ) )
    remove_quotes( text )

    if( !text[ 0 ] )
        return PLUGIN_HANDLED

    new prefix_be[ 40 ]
    if( g_szPrefix[ id ][ 0 ] )
        formatex( prefix_be, charsmax( prefix_be ), "^1(^4%s^1) ", g_szPrefix[ id ] )

    for( new i = 1; i <= get_maxplayers(); i++ )
    {
        if( !is_user_connected( i ) )
            continue

        if( cs_get_user_team( id ) != cs_get_user_team( i ) )
            continue

        ColorChat( i, cs_get_user_team( id ) == CS_TEAM_T ? RED:BLUE, "^1(%sTerrorist) %s%s^3%n:%s %s", cs_get_user_team( id ) == CS_TEAM_CT ? "Counter-":"", is_user_alive( id ) ? "":"^1*DEAD* ", prefix_be, id, get_user_flags( id ) & ADMIN_RESERVATION ? "^4":"^1", text )
    }
    return PLUGIN_HANDLED_MAIN
}
public client_putinserver( id )
{
    g_bAllowedChange[ id ] = false
    g_szPrefix[ id ][ 0 ] = EOS
    g_szUntilDate[ id ][ 0 ] = EOS
    g_iTrialPeriod[ id ] = 0
    g_iDays[ id ] = 0
    g_iItem[ id ] = -1
    Load_Data( id )

    set_task( 2.0, "task_check_trial" )
}
public client_disconnected( id )
{
    g_iTrialPeriod[ id ] = 0
    g_szPrefix[ id ][ 0 ] = EOS
    g_szUntilDate[ id ][ 0 ] = EOS
    g_bAllowedChange[ id ] = false
    g_iDays[ id ] = 0
    g_iItem[ id ] = -1

    remove_task( id + TASK_CANCEL )
}
public Load_Data( id )
{
    new szAuthId[ 35 ]
    get_user_authid( id, szAuthId, charsmax( szAuthId ) )

    if( !szAuthId[ 0 ] || ( !equal(szAuthId, "STEAM_", 6 ) && !equal( szAuthId, "VALVE_", 6 ) ) )
        return

    new szBuffer[ 56 ], data[ 4 ][ 32 ]
    g_iUID[ id ] = get_user_userid( id )
    if( fvault_get_data( PrefixVault, szAuthId, szBuffer, charsmax( szBuffer ) ) )
    {
        if( g_iUID[ id ] == get_user_userid( id ) )
        {
            parse( szBuffer, data[ 0 ], charsmax( data[] ), data[ 1 ], charsmax( data[] ), data[ 2 ], charsmax( data[] ) )
            g_iTrialPeriod[ id ] = str_to_num( data[ 0 ] )
            formatex( g_szPrefix[ id ], charsmax( g_szPrefix[] ), data[ 1 ] )
            formatex( g_szUntilDate[ id ], charsmax( g_szUntilDate[] ), data[ 2 ] )
        }
    }
}
public Save_Data( id )
{
    new szAuthId[ 35 ]
    get_user_authid( id, szAuthId, charsmax( szAuthId ) )

    if( g_iUID[ id ] != get_user_userid( id ) )
    {
        ColorChat( id, RED, "^1(^4LLG^1) Error happened with your ^4Prefix Data^1. ^1Please contact the ^4owner^1." )
        return
    }
    if( !equal( szAuthId, "STEAM_", 6 ) )
        return

    new szBuffer[ 56 ]
    formatex( szBuffer, charsmax( szBuffer ), "%d ^"%s^" %s", g_iTrialPeriod[ id ], g_szPrefix[ id ], g_szUntilDate[ id ] )
    fvault_pset_data( PrefixVault, szAuthId, szBuffer )
}
public buy_prefix( id )
{
    if( g_iDays[ id ] || g_szPrefix[ id ][ 0 ] )
    {
        ColorChat( id, BLUE, "^1(^4Until^1): %s^4 (%s)", until_time( g_iTrialPeriod[ id ] - get_systime() ), g_szUntilDate[ id ] )
        ColorChat( id, BLUE, "^1(^4LLG^1) You already have^4 TAG^1, contact ^4owner ^1for any changes." )
        return PLUGIN_HANDLED
    }
    new menu = menu_create( "\r(LLG)\y Buy Tag", "handle_prefix" )

    for( new i; i < 7; i++ )
    {
        menu_additem( menu, fmt( "\yTAG \r%d \wDays - \y%d (Gold Coins)", g_iSortCoins[ i ][ 0 ], g_iSortCoins[ i ][ 1 ] ) )
    }
    menu_display( id, menu )
    return PLUGIN_HANDLED
}
public handle_prefix( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    if( get_gold_coins( id ) < g_iSortCoins[ item ][ 1 ] )
    {
        ColorChat( id, RED, "^1(^4LLG^1) You don't have enough^4 Gold Coins^1 for it." )
        return PLUGIN_HANDLED
    }
    g_iDays[ id ] = g_iSortCoins[ item ][ 0 ]
    g_iItem[ id ] = item
    ColorChat( id, BLUE, "^1(^4LLG^1) You choose^3 %d days^1. Write your ^4prefix ^1now:", g_iSortCoins[ item ][ 0 ] )
    set_his_prefix( id, item )
    menu_destroy( menu )
    return PLUGIN_HANDLED
}
public set_his_prefix( id, days )
{
    g_bAllowedChange[ id ] = true
    client_cmd( id, "messagemode set_my_prefix" )
    set_task( 30.0, "cancel_prefix", id + TASK_CANCEL )
}
public cancel_prefix( task )
{
    new id = task - TASK_CANCEL
    if( g_bAllowedChange[ id ] )
    {
        client_cmd( id, "cancelselect" )
        g_bAllowedChange[ id ] = false
        ColorChat( id, RED, "^1(^4LLG^1) You did not write anything in^4 30 seconds^1, please try again." )
        g_iDays[ id ] = 0
    }
}
public check_my_prefix( id )
{
    if( g_bAllowedChange[ id ] )
    {
        new string[ 32 ], bool: can_change = true
        read_args( string, charsmax( string ) )
        for( new i; i < sizeof( g_szRestrictString ) ; i++ )
        {
            if( containi( string, g_szRestrictString[ i ] ) != -1 )
            {
                client_print( id, print_chat, "You are not allowed to use that Prefix. Please try again." )
                can_change = false
                break
            }
            if( strlen( string ) - 2 > MAX_PREFIX_CHARS )
            {
                client_print( id, print_chat, "Maximum Characters for Prefix is: %d, Try again.", MAX_PREFIX_CHARS )
                can_change = false
                break
            }
        }
        if( can_change )
        {
            g_iTrialPeriod[ id ] = get_systime() + ( 86400 * g_iDays[ id ] )
            format_time( g_szUntilDate[ id ], charsmax( g_szUntilDate[] ), "%m/%d/%Y-%I:%M:%S", g_iTrialPeriod[ id ] )
            remove_quotes( string )
            formatex( g_szPrefix[ id ], charsmax( g_szPrefix[] ), string )
            ColorChat( id, BLUE, "^1(^4LLG^1) Your prefix is now:^4 %s", g_szPrefix[ id ] )
            if( g_iDays[ id ] == 10000 )
            {
                formatex( g_szUntilDate[ id ], charsmax( g_szUntilDate[] ), "1 Year" )
            }
            Save_Data( id )

            set_gold_coins( id, get_gold_coins( id ) - g_iSortCoins[ g_iItem[ id ] ][ 1 ] )
        }
        g_bAllowedChange[ id ] = false
        g_iDays[ id ] = 0
        g_iItem[ id ] = -1
    }
    return PLUGIN_HANDLED
}
public until_time( const iTime )
{
    new seconds = iTime
    new days = seconds / 86400;
    seconds = seconds % 86400;
    new hours = seconds / 3600;
    seconds = seconds % 3600;
    new minutes = seconds / 60;
    seconds = seconds % 60;
    new text[ 200 ]
    formatex( text, charsmax( text ), "%d days, %d hours, %d minutes", days, hours, minutes )
    return text
}
Mersi! Am facut cateva teste si momentan nu am primit eroare. Astept sa vedem ce se mai intampla pe parcurs.

Ca sa nu mai fac alt topic, poti te rog sa te uiti si peste aces plugin? Am cateva erori si la el.

[ PLUGIN ]

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <colorchat>

native get_gold_coins( id )
native get_silver_coins( id )

native set_gold_coins( id, num )
native set_silver_coins( id, num )

new g_iGoldBet[ 33 ][ 2 ] //0 = CT bet, 1 = TR BET
new g_iSilverBet[ 33 ][ 2 ] //0 = CT bet, 1 = TR BET

new g_iWillBet[ 33 ] //-1 = wont bet, 0 = CT, 1 = TR

new g_bCanBet

public plugin_init()
{
    register_plugin( "Bet Coins", "1.0", "JocA" )

    register_clcmd( "say /bet", "bet_pre" )
    register_clcmd( "say_team /bet", "bet_pre" )

    register_event( "HLTV", "event_new_round", "a", "1=0", "2=0" )
    register_event( "SendAudio", "event_sendAudio", "a", "2=%!MRAD_terwin", "2=%!MRAD_ctwin", "2=%!MRAD_rounddraw" )
    register_event( "DeathMsg", "event_Death", "a" )
}
public event_Death()
{
    new killer = read_data( 1 )
    new victim = read_data( 2 )
    if( killer != victim )
    {
        ColorChat( victim, BLUE, "^1(^4LLG^1) You can bet on your favorite team with say^4 /bet^1." )
        set_hudmessage( 70, 255, 55, 0.02, 0.25, 0, 0.5, 5.0, 0.5, 0.5, -1 )
        show_hudmessage( victim, "Bet on your favorite team with say /bet" )
    }
}
public client_putinserver( id )
{
    ResetCoins( id )
}
public client_disconnected( id )
{
    ResetCoins( id )
}
public event_new_round()
{
    g_bCanBet = true
    for( new id = 1; id <= get_maxplayers(); id++ )
    {
        if( is_user_connected( id ) )
            ResetCoins( id )
    }
}
public ResetCoins( id )
{
    g_iGoldBet[ id ][ 0 ] = 0
    g_iGoldBet[ id ][ 1 ] = 0

    g_iSilverBet[ id ][ 0 ] = 0
    g_iSilverBet[ id ][ 1 ] = 0

    g_iWillBet[ id ] = -1
}
public event_sendAudio()
{
    new string[ 22 ]
    read_data( 2, string, charsmax( string ) )

    if( containi( string, "ctwin" ) != -1 )
    {
        for( new id = 1; id <= get_maxplayers(); id++ )
        {
            if( is_user_connected( id ) && !is_user_alive( id ) )
            {
                if( g_iGoldBet[ id ][ 1 ] )
                {
                    set_gold_coins( id, get_gold_coins( id ) - g_iGoldBet[ id ][ 1 ] )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Counter-Terrorists^1 team has ^4won^1. You lost^3 %d^4 gold coins^1.", g_iGoldBet[ id ][ 1 ] )
                }
                else if( g_iSilverBet[ id ][ 1 ] )
                {
                    set_silver_coins( id, get_silver_coins( id ) - g_iSilverBet[ id ][ 1 ] )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Counter-Terrorists^1 team has ^4won^1. You lost^3 %d^4 silver coins^1.", g_iSilverBet[ id ][ 1 ] )
                }

                if( g_iGoldBet[ id ][ 0 ] )
                {
                    new got_coins = g_iGoldBet[ id ][ 1 ] * 2
                    set_gold_coins( id, get_gold_coins( id ) + got_coins )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Counter-Terrorists^1 team has ^4won^1. You won^3 %d^4 gold coins^1.", got_coins )
                }
                else if( g_iSilverBet[ id ][ 0 ] )
                {
                    new got_coins = g_iSilverBet[ id ][ 0 ] * 2
                    set_silver_coins( id, get_silver_coins( id ) + got_coins )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Counter-Terrorists^1 team has^4 won^1. You won^3 %d^4 silver coins^1.", got_coins )
                }
            }
        }
    }
    else if( containi( string, "terwin") != -1 )
    {
        for( new id = 1; id <= get_maxplayers(); id++ )
        {
            if( is_user_connected( id ) && !is_user_alive( id ) )
            {
                if( g_iGoldBet[ id ][ 0 ] )
                {
                    set_gold_coins( id, get_gold_coins( id ) - g_iGoldBet[ id ][ 0 ] )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Terrorists^1 team has^4 won^1. You lost^3 %d^4 gold coins^1.", g_iGoldBet[ id ][ 0 ] )
                }
                else if( g_iSilverBet[ id ][ 0 ] )
                {
                    set_silver_coins( id, get_silver_coins( id ) - g_iSilverBet[ id ][ 0 ] )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Terrorists^1 team has^4 won^1. You lost^3 %d^4 silver coins^1.", g_iSilverBet[ id ][ 0 ] )
                }

                if( g_iGoldBet[ id ][ 1 ] )
                {
                    new got_coins = g_iGoldBet[ id ][ 1 ] * 2
                    set_gold_coins( id, get_gold_coins( id ) + got_coins )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Terrorists team^1 has^4 won^1. You won^3 %d^4 gold coins^1.", got_coins )
                }
                else if( g_iSilverBet[ id ][ 1 ] )
                {
                    new got_coins = g_iSilverBet[ id ][ 1 ] * 2
                    set_silver_coins( id, get_silver_coins( id ) + got_coins )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Terrorists^1 team has^4 won^1. You won^3 %d^4 silver coins^1.", got_coins )
                }
            }
        }

    }
    g_bCanBet = false
}
public bet_pre( id )
{
    if( is_user_alive( id ) )
    {
        ColorChat( id, RED, "^1(^4LLG^1) You can not ^4bet^1 when you are^3 alive^1." )
        return PLUGIN_HANDLED
    }
    if( !g_bCanBet )
    {
        ColorChat( id, RED, "^1(^4LLG^1) Betting is^4 closed^1. You must wait for new^3 round^1." )
        return PLUGIN_HANDLED
    }
    if( g_iWillBet[ id ] >= 0 )
    {
        ColorChat( id, RED, "^1(^4LLG^1) You^4 already bet^1. You must wait for the next^3 round^1." )
        return PLUGIN_HANDLED
    }
    new menu = menu_create( "\r(LLG)\y BET COINS:^n^n\yTeam:", "pre_handle" )

    menu_additem( menu, "Counter-Terrorist" )
    menu_additem( menu, "Terrorist" )

    menu_display( id, menu )

    return PLUGIN_HANDLED
}
public pre_handle( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        g_iWillBet[ id ] = -1
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    switch( item )
    {
        case 0: g_iWillBet[ id ] = 0 //for CT
        case 1: g_iWillBet[ id ] = 1 //for TR
    }
    {
    choose_coins( id )
    menu_destroy( id )
    return PLUGIN_HANDLED
    }
}
public choose_coins( id )
{
    new menu = menu_create( "Bet Coins", "coins_handle" )

    menu_additem( menu, "\yGold" )
    menu_additem( menu, "\dSilver" )

    menu_display( id, menu )
    return PLUGIN_HANDLED
}
public coins_handle( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        g_iWillBet[ id ] = -1
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    switch( item )
    {
        case 0:
        {
            ColorChat( id, RED, "^1(^4LLG^1) Gold Bet is currently^3 DISABLED^1 by the ^4server^1." )
            //Gold_Menu( id )
        }
        case 1: Silver_Menu( id )
    }
    menu_destroy( menu )
    return PLUGIN_HANDLED
}
public Gold_Menu( id )
{
    new menu = menu_create( fmt( "Amount of Gold Coins:^n\dYou have:\y %d", get_gold_coins( id ) ), "gold_handle" )

    menu_additem( menu, "1", "1" )
    menu_additem( menu, "3", "3" )
    menu_additem( menu, "5", "5" )
    menu_additem( menu, "7", "7" )
    menu_additem( menu, "9", "9" )
    menu_additem( menu, "11", "11" )
    menu_additem( menu, "15", "15" )
    menu_additem( menu, "20", "20" )	
    menu_additem( menu, "45", "45" )
    menu_additem( menu, "75", "75" )	
    menu_additem( menu, "100", "100" )
	
	
    menu_display( id, menu )
    return PLUGIN_HANDLED
}
public gold_handle( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        g_iWillBet[ id ] = -1
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    new szData[ 6 ], _access, item_callback
    menu_item_getinfo( menu, item, _access, szData, charsmax( szData ), _, _, item_callback )

    new iCoins = str_to_num( szData )

    if( get_gold_coins( id ) >= iCoins )
    {
        g_iGoldBet[ id ][ g_iWillBet[ id ] ] = iCoins
        ColorChat( id, BLUE, "^1(^4LLG^1) You bet^3 %d^1 Gold Coins for^4 %s^1 team to win!", g_iGoldBet[ id ][ g_iWillBet[ id ] ], g_iWillBet[ id ] == 0 ? "Counter-Terrorists":"Terrorists" )
        set_gold_coins( id, get_gold_coins( id ) - g_iGoldBet[ id ][ g_iWillBet[ id ] ] )
    }
    else
    {
        ColorChat( id, BLUE, "^1(^4LLG^1) You don't have enough^4 coins^1." )
    }
    menu_destroy( menu )
    return PLUGIN_HANDLED
}
public Silver_Menu( id )
{
    new menu = menu_create( fmt( "Amount of Silver Coins:^n\dYou have:\y %d", get_silver_coins( id ) ), "silver_handle" )

    menu_additem( menu, "1", "1" )
    menu_additem( menu, "3", "3" )
    menu_additem( menu, "5", "5" )
    menu_additem( menu, "7", "7" )
    menu_additem( menu, "9", "9" )
    menu_additem( menu, "11", "11" )
    menu_additem( menu, "15", "15" )
    menu_additem( menu, "20", "20" )	
    menu_additem( menu, "45", "45" )
    menu_additem( menu, "75", "75" )	
    menu_additem( menu, "100", "100" )

    menu_display( id, menu )
    return PLUGIN_HANDLED
}
public silver_handle( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        g_iWillBet[ id ] = -1
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    new szData[ 6 ], _access, item_callback
    menu_item_getinfo( menu, item, _access, szData, charsmax( szData ), _, _, item_callback )

    new iCoins = str_to_num( szData)

    if( get_silver_coins( id ) >= iCoins )
    {
        g_iSilverBet[ id ][ g_iWillBet[ id ] ] = iCoins
        ColorChat( id, BLUE, "^1(^4LLG^1) You bet^3 %d^1 Silver Coins for^4 %s^1 team to win!", g_iSilverBet[ id ][ g_iWillBet[ id ] ], g_iWillBet[ id ] == 0 ? "Counter-Terrorists":"Terrorists" )
        set_silver_coins( id, get_silver_coins( id ) - g_iSilverBet[ id ][ g_iWillBet[ id ] ] )
    }
    else
    {
        ColorChat( id, BLUE, "^1(^4LLG^1) You don't have enough^4 coins^1." )
    }
    menu_destroy( menu )
    return PLUGIN_HANDLED
}

[ LOGS ]

Code: Select all

L 02/03/2022 - 08:36:24: Start of error session.
L 02/03/2022 - 08:36:24: Info (map "de_dust2x2") (file "addons/amxmodx/logs/error_20220203.log")
L 02/03/2022 - 08:36:24: Invalid menu id 3(1)
L 02/03/2022 - 08:36:24: [AMXX] Displaying debug trace (plugin "llg_bet2.amxx", version "1.0")
L 02/03/2022 - 08:36:24: [AMXX] Run time error 10: native error (native "menu_destroy")
L 02/03/2022 - 08:36:24: [AMXX]    [0] llg_bet2.sma::pre_handle (line 153)
L 02/03/2022 - 08:38:07: Invalid menu id 3(3)
L 02/03/2022 - 08:38:07: [AMXX] Displaying debug trace (plugin "llg_bet2.amxx", version "1.0")
L 02/03/2022 - 08:38:07: [AMXX] Run time error 10: native error (native "menu_destroy")
L 02/03/2022 - 08:38:07: [AMXX]    [0] llg_bet2.sma::pre_handle (line 153)
L 02/03/2022 - 08:46:04: Invalid menu id 3(4)
L 02/03/2022 - 08:46:04: [AMXX] Displaying debug trace (plugin "llg_bet2.amxx", version "1.0")
L 02/03/2022 - 08:46:04: [AMXX] Run time error 10: native error (native "menu_destroy")
L 02/03/2022 - 08:46:04: [AMXX]    [0] llg_bet2.sma::pre_handle (line 153)
L 02/03/2022 - 13:20:24: Start of error session.
L 02/03/2022 - 13:20:24: Info (map "de_dust2x2") (file "addons/amxmodx/logs/error_20220203.log")
L 02/03/2022 - 13:20:24: Invalid menu id 3(2)
L 02/03/2022 - 13:20:24: [AMXX] Displaying debug trace (plugin "llg_bet.amxx", version "1.0")
L 02/03/2022 - 13:20:24: [AMXX] Run time error 10: native error (native "menu_destroy")
L 02/03/2022 - 13:20:24: [AMXX]    [0] llg_bet.sma::pre_handle (line 181)
L 02/03/2022 - 13:43:41: Start of error session.
L 02/03/2022 - 13:43:41: Info (map "de_dust2x2") (file "addons/amxmodx/logs/error_20220203.log")
L 02/03/2022 - 13:43:41: Invalid menu id 3(2)
L 02/03/2022 - 13:43:41: [AMXX] Displaying debug trace (plugin "llg_bet2.amxx", version "1.0")
L 02/03/2022 - 13:43:41: [AMXX] Run time error 10: native error (native "menu_destroy")
L 02/03/2022 - 13:43:41: [AMXX]    [0] llg_bet2.sma::pre_handle (line 153)
L 02/03/2022 - 13:47:59: Invalid menu id 3(2)
L 02/03/2022 - 13:47:59: [AMXX] Displaying debug trace (plugin "llg_bet2.amxx", version "1.0")
L 02/03/2022 - 13:47:59: [AMXX] Run time error 10: native error (native "menu_destroy")
L 02/03/2022 - 13:47:59: [AMXX]    [0] llg_bet2.sma::pre_handle (line 153)

L 02/02/2022 - 15:59:32: Start of error session.
L 02/02/2022 - 15:59:32: Info (map "fy_snow") (file "addons/amxmodx/logs/error_20220202.log")
L 02/02/2022 - 15:59:32: [AMXX] Displaying debug trace (plugin "llg_bet.amxx", version "1.0")
L 02/02/2022 - 15:59:32: [AMXX] Run time error 4: index out of bounds 
L 02/02/2022 - 15:59:32: [AMXX]    [0] llg_bet.sma::silver_handle (line 295)

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <colorchat>

native get_gold_coins( id )
native get_silver_coins( id )

native set_gold_coins( id, num )
native set_silver_coins( id, num )

new g_iGoldBet[ 33 ][ 2 ] //0 = CT bet, 1 = TR BET
new g_iSilverBet[ 33 ][ 2 ] //0 = CT bet, 1 = TR BET

new g_iWillBet[ 33 ] //-1 = wont bet, 0 = CT, 1 = TR

new g_bCanBet

public plugin_init()
{
    register_plugin( "Bet Coins", "1.0", "JocA" )

    register_clcmd( "say /bet", "bet_pre" )
    register_clcmd( "say_team /bet", "bet_pre" )

    register_event( "HLTV", "event_new_round", "a", "1=0", "2=0" )
    register_event( "SendAudio", "event_sendAudio", "a", "2=%!MRAD_terwin", "2=%!MRAD_ctwin", "2=%!MRAD_rounddraw" )
    register_event( "DeathMsg", "event_Death", "a" )
}
public event_Death()
{
    new killer = read_data( 1 )
    new victim = read_data( 2 )
    if( killer != victim )
    {
        ColorChat( victim, BLUE, "^1(^4LLG^1) You can bet on your favorite team with say^4 /bet^1." )
        set_hudmessage( 70, 255, 55, 0.02, 0.25, 0, 0.5, 5.0, 0.5, 0.5, -1 )
        show_hudmessage( victim, "Bet on your favorite team with say /bet" )
    }
}
public client_putinserver( id )
{
    ResetCoins( id )
}
public client_disconnected( id )
{
    ResetCoins( id )
}
public event_new_round()
{
    g_bCanBet = true
    for( new id = 1; id <= get_maxplayers(); id++ )
    {
        if( is_user_connected( id ) )
            ResetCoins( id )
    }
}
public ResetCoins( id )
{
    g_iGoldBet[ id ][ 0 ] = 0
    g_iGoldBet[ id ][ 1 ] = 0

    g_iSilverBet[ id ][ 0 ] = 0
    g_iSilverBet[ id ][ 1 ] = 0

    g_iWillBet[ id ] = -1
}
public event_sendAudio()
{
    new string[ 22 ]
    read_data( 2, string, charsmax( string ) )

    if( containi( string, "ctwin" ) != -1 )
    {
        for( new id = 1; id <= get_maxplayers(); id++ )
        {
            if( is_user_connected( id ) && !is_user_alive( id ) )
            {
                if( g_iGoldBet[ id ][ 1 ] )
                {
                    set_gold_coins( id, get_gold_coins( id ) - g_iGoldBet[ id ][ 1 ] )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Counter-Terrorists^1 team has ^4won^1. You lost^3 %d^4 gold coins^1.", g_iGoldBet[ id ][ 1 ] )
                }
                else if( g_iSilverBet[ id ][ 1 ] )
                {
                    set_silver_coins( id, get_silver_coins( id ) - g_iSilverBet[ id ][ 1 ] )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Counter-Terrorists^1 team has ^4won^1. You lost^3 %d^4 silver coins^1.", g_iSilverBet[ id ][ 1 ] )
                }

                if( g_iGoldBet[ id ][ 0 ] )
                {
                    new got_coins = g_iGoldBet[ id ][ 1 ] * 2
                    set_gold_coins( id, get_gold_coins( id ) + got_coins )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Counter-Terrorists^1 team has ^4won^1. You won^3 %d^4 gold coins^1.", got_coins )
                }
                else if( g_iSilverBet[ id ][ 0 ] )
                {
                    new got_coins = g_iSilverBet[ id ][ 0 ] * 2
                    set_silver_coins( id, get_silver_coins( id ) + got_coins )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Counter-Terrorists^1 team has^4 won^1. You won^3 %d^4 silver coins^1.", got_coins )
                }
            }
        }
    }
    else if( containi( string, "terwin") != -1 )
    {
        for( new id = 1; id <= get_maxplayers(); id++ )
        {
            if( is_user_connected( id ) && !is_user_alive( id ) )
            {
                if( g_iGoldBet[ id ][ 0 ] )
                {
                    set_gold_coins( id, get_gold_coins( id ) - g_iGoldBet[ id ][ 0 ] )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Terrorists^1 team has^4 won^1. You lost^3 %d^4 gold coins^1.", g_iGoldBet[ id ][ 0 ] )
                }
                else if( g_iSilverBet[ id ][ 0 ] )
                {
                    set_silver_coins( id, get_silver_coins( id ) - g_iSilverBet[ id ][ 0 ] )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Terrorists^1 team has^4 won^1. You lost^3 %d^4 silver coins^1.", g_iSilverBet[ id ][ 0 ] )
                }

                if( g_iGoldBet[ id ][ 1 ] )
                {
                    new got_coins = g_iGoldBet[ id ][ 1 ] * 2
                    set_gold_coins( id, get_gold_coins( id ) + got_coins )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Terrorists team^1 has^4 won^1. You won^3 %d^4 gold coins^1.", got_coins )
                }
                else if( g_iSilverBet[ id ][ 1 ] )
                {
                    new got_coins = g_iSilverBet[ id ][ 1 ] * 2
                    set_silver_coins( id, get_silver_coins( id ) + got_coins )
                    ColorChat( id, RED, "^1(^4LLG^1)^3 Terrorists^1 team has^4 won^1. You won^3 %d^4 silver coins^1.", got_coins )
                }
            }
        }

    }
    g_bCanBet = false
}
public bet_pre( id )
{
    if( is_user_alive( id ) )
    {
        ColorChat( id, RED, "^1(^4LLG^1) You can not ^4bet^1 when you are^3 alive^1." )
        return PLUGIN_HANDLED
    }
    if( !g_bCanBet )
    {
        ColorChat( id, RED, "^1(^4LLG^1) Betting is^4 closed^1. You must wait for new^3 round^1." )
        return PLUGIN_HANDLED
    }
    if( g_iWillBet[ id ] >= 0 )
    {
        ColorChat( id, RED, "^1(^4LLG^1) You^4 already bet^1. You must wait for the next^3 round^1." )
        return PLUGIN_HANDLED
    }
    new menu = menu_create( "\r(LLG)\y BET COINS:^n^n\yTeam:", "pre_handle" )

    menu_additem( menu, "Counter-Terrorist" )
    menu_additem( menu, "Terrorist" )

    menu_display( id, menu )

    return PLUGIN_HANDLED
}
public pre_handle( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        g_iWillBet[ id ] = -1
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    switch( item )
    {
        case 0: g_iWillBet[ id ] = 0 //for CT
        case 1: g_iWillBet[ id ] = 1 //for TR
    }
    {
    choose_coins( id )
    menu_destroy( menu )
    return PLUGIN_HANDLED
    }
}
public choose_coins( id )
{
    new menu = menu_create( "Bet Coins", "coins_handle" )

    menu_additem( menu, "\yGold" )
    menu_additem( menu, "\dSilver" )

    menu_display( id, menu )
    return PLUGIN_HANDLED
}
public coins_handle( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        g_iWillBet[ id ] = -1
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    switch( item )
    {
        case 0:
        {
            ColorChat( id, RED, "^1(^4LLG^1) Gold Bet is currently^3 DISABLED^1 by the ^4server^1." )
            //Gold_Menu( id )
        }
        case 1: Silver_Menu( id )
    }
    menu_destroy( menu )
    return PLUGIN_HANDLED
}
public Gold_Menu( id )
{
    new menu = menu_create( fmt( "Amount of Gold Coins:^n\dYou have:\y %d", get_gold_coins( id ) ), "gold_handle" )

    menu_additem( menu, "1", "1" )
    menu_additem( menu, "3", "3" )
    menu_additem( menu, "5", "5" )
    menu_additem( menu, "7", "7" )
    menu_additem( menu, "9", "9" )
    menu_additem( menu, "11", "11" )
    menu_additem( menu, "15", "15" )
    menu_additem( menu, "20", "20" )	
    menu_additem( menu, "45", "45" )
    menu_additem( menu, "75", "75" )	
    menu_additem( menu, "100", "100" )
	
	
    menu_display( id, menu )
    return PLUGIN_HANDLED
}
public gold_handle( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        g_iWillBet[ id ] = -1
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    new szData[ 6 ], _access, item_callback
    menu_item_getinfo( menu, item, _access, szData, charsmax( szData ), _, _, item_callback )

    new iCoins = str_to_num( szData )

    if( get_gold_coins( id ) >= iCoins )
    {
        g_iGoldBet[ id ][ g_iWillBet[ id ] ] = iCoins
        ColorChat( id, BLUE, "^1(^4LLG^1) You bet^3 %d^1 Gold Coins for^4 %s^1 team to win!", g_iGoldBet[ id ][ g_iWillBet[ id ] ], g_iWillBet[ id ] == 0 ? "Counter-Terrorists":"Terrorists" )
        set_gold_coins( id, get_gold_coins( id ) - g_iGoldBet[ id ][ g_iWillBet[ id ] ] )
    }
    else
    {
        ColorChat( id, BLUE, "^1(^4LLG^1) You don't have enough^4 coins^1." )
    }
    menu_destroy( menu )
    return PLUGIN_HANDLED
}
public Silver_Menu( id )
{
    new menu = menu_create( fmt( "Amount of Silver Coins:^n\dYou have:\y %d", get_silver_coins( id ) ), "silver_handle" )

    menu_additem( menu, "1", "1" )
    menu_additem( menu, "3", "3" )
    menu_additem( menu, "5", "5" )
    menu_additem( menu, "7", "7" )
    menu_additem( menu, "9", "9" )
    menu_additem( menu, "11", "11" )
    menu_additem( menu, "15", "15" )
    menu_additem( menu, "20", "20" )	
    menu_additem( menu, "45", "45" )
    menu_additem( menu, "75", "75" )	
    menu_additem( menu, "100", "100" )

    menu_display( id, menu )
    return PLUGIN_HANDLED
}
public silver_handle( id, menu, item )
{
    if( item == MENU_EXIT )
    {
        g_iWillBet[ id ] = -1
        menu_destroy( menu )
        return PLUGIN_HANDLED
    }
    new szData[ 6 ], _access, item_callback
    menu_item_getinfo( menu, item, _access, szData, charsmax( szData ), _, _, item_callback )

    new iCoins = str_to_num( szData)

    if( get_silver_coins( id ) >= iCoins )
    {
        g_iSilverBet[ id ][ g_iWillBet[ id ] ] = iCoins
        ColorChat( id, BLUE, "^1(^4LLG^1) You bet^3 %d^1 Silver Coins for^4 %s^1 team to win!", g_iSilverBet[ id ][ g_iWillBet[ id ] ], g_iWillBet[ id ] == 0 ? "Counter-Terrorists":"Terrorists" )
        set_silver_coins( id, get_silver_coins( id ) - g_iSilverBet[ id ][ g_iWillBet[ id ] ] )
    }
    else
    {
        ColorChat( id, BLUE, "^1(^4LLG^1) You don't have enough^4 coins^1." )
    }
    menu_destroy( menu )
    return PLUGIN_HANDLED
}
Mersi! Dupa cateva zile de test, totul este ok.

Se poate da T/C la acest topic = REZOLVAT!
Post Reply

Return to “Modificari pluginuri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 6 guests