Page 1 of 2

rangu plugino reto

Posted: 2012 Sep 17 16:24
by PSH
Sveiki taigi reikia rangu plugino, kazkada maciau toki dalyka pagal fragus padaryta pvz zaidejui sone raso jeigu neturi 5 fragu [LEITENANTAS] ir chate prie nicko raso [LEITENANTAS] o kai pasiekia jau 10 fragu pvz ~ raso jam sone desiniajam [Vyriausias Leitenantas] ta pati raso ir chate prie jo nicko ! davai hebryte padekit rast toki plugina, tikrai tikrai esu mates !
Beje dar servo problemele kodel serveris nustato automatiskai visada ex_interp 0.1 nors niekur nera irasytu ex_interp 0.1 padekit!!! :)

Re: rangu plugino reto

Posted: 2012 Sep 17 18:52
by psychical
http://www.agames.lt/forum/t413-killer-rangs.html tačiau čia, chat'e nerodys, na nebent aš ne taip supratau, ko tu prašai.

Re: rangu plugino reto

Posted: 2012 Sep 17 20:06
by PSH
Kas esat geri scripteriai davai padarykit kad ir chate prie nicko rasytu zaidejo ranga, ir kai pasikeicia rasytu jau su nauju rangu :) Rodo tik sone po radaru, zaidejui, o chate nerodo ;]

Re: rangu plugino reto

Posted: 2012 Sep 18 19:01
by InvIs
Na tokių pluginų tau niekas čia nedarys

Re: rangu plugino reto

Posted: 2012 Sep 18 23:36
by PSH
o kur manai padarytu?

Re: rangu plugino reto

Posted: 2012 Sep 19 00:09
by psychical
Padarys, bet ne už dyką...

Re: rangu plugino reto

Posted: 2012 Sep 19 22:41
by PSH
pasiulykit koki scripteri gera?

Re: rangu plugino reto

Posted: 2012 Sep 21 10:07
by Trickas
Čia tas kuris rašo chate prieš nick.

Code: Select all

#include <amxmodx>#include <amxmisc>#include <nvault>#include <cstrike>#include <csx> new const g_iLevelMinKills[ ] ={    0,    3,    6,    9} const LEVELS = sizeof( g_iLevelMinKills ); new const g_szLevelName[ LEVELS ][ ] ={    "Newbie",    "Semi-Pro",    "Pro",    "Veteran"} #define MAX_PLAYERS 32 new g_iKills[ MAX_PLAYERS + 1 ];new g_iLevel[ MAX_PLAYERS + 1 ]; new g_hVault; new g_iMsgID_SayText; new g_iAdminChatFlag = ADMIN_ALL;  public plugin_init(){    register_plugin( "Kills Counter", "0.0.1", "Exolent" );        register_clcmd( "say", "CmdSay" );    register_clcmd( "say_team", "CmdSayTeam" );        g_hVault = nvault_open( "KillsCounter" );        g_iMsgID_SayText = get_user_msgid( "SayText" );        new szCommand[ 32 ], iFlags;        for( new i = 0; get_concmd( i, szCommand, charsmax( szCommand ), iFlags, "", 0, 0, -1 ); i++ )    {        if( equal( szCommand, "amx_chat" ) )        {            g_iAdminChatFlag = iFlags;            break;        }    }} public plugin_end(){    nvault_close( g_hVault );} public client_putinserver( iPlayer ){    static SzName[ 32 ];    get_user_name( iPlayer, SzName, charsmax( SzName ) );        static iKills;        if( ( iKills = nvault_get( g_hVault, SzName ) ) )    {        g_iKills[ iPlayer ] = iKills;        g_iLevel[ iPlayer ] = GetLevel( iKills );    }} public client_disconnect( iPlayer ){    static SzName[ 32 ];    get_user_name( iPlayer, SzName, charsmax( SzName ) );        static szKills[ 16 ];    num_to_str( g_iKills[ iPlayer ], szKills, charsmax( szKills ) );        nvault_set( g_hVault, SzName, szKills );        g_iKills[ iPlayer ] = g_iLevel[ iPlayer ] = 0;} public client_death( iKiller, iVictim, iWeapon, iHitPlace, bTK ){    if( !bTK && iKiller != iVictim && iWeapon != CSW_C4 )    {        g_iLevel[ iKiller ] = GetLevel( ++g_iKills[ iKiller ] );    }} public CmdSay( iPlayer ){    if( !is_user_connected( iPlayer ) )    {        return PLUGIN_HANDLED_MAIN;    }        new szArgs[ 194 ];        if( !IsValidMessage( iPlayer, false, szArgs, charsmax( szArgs ) ) )    {        return PLUGIN_HANDLED_MAIN;    }        new iAlive = is_user_alive( iPlayer );    new CsTeams:iTeam = cs_get_user_team( iPlayer );        new iPlayers[ 32 ], iNum;    get_players( iPlayers, iNum );        new szName[ 32 ];    get_user_name( iPlayer, szName, charsmax( szName ) );        new const szPrefixes[ 2 ][ CsTeams ][ ] =    {        {            "^1*DEAD*",            "^1*DEAD*",            "^1*DEAD*",            "^1*SPEC*"        },        {            "",            "",            "",            ""        }    };        new szMessage[ 192 ];    formatex( szMessage, charsmax( szMessage ), "%s^4 [%s]^3 %s^1 :  %s", szPrefixes[ iAlive ][ iTeam ], g_szLevelName[ g_iLevel[ iPlayer ] ], szName, szArgs );        new iTarget;        for( new i = 0; i < iNum; i++ )    {        iTarget = iPlayers[ i ];                if( iTarget == iPlayer || ( iAlive || is_user_connected( iTarget ) ) && is_user_alive( iTarget ) == iAlive )        {            message_begin( MSG_ONE_UNRELIABLE, g_iMsgID_SayText, _, iTarget );            write_byte( iPlayer );            write_string( szMessage );            message_end( );        }    }    return PLUGIN_HANDLED_MAIN;} public CmdSayTeam( iPlayer ){    if( !is_user_connected( iPlayer ) )    {        return PLUGIN_HANDLED_MAIN;    }        new szArgs[ 194 ];        if( !IsValidMessage( iPlayer, true, szArgs, charsmax( szArgs ) ) )    {        return PLUGIN_HANDLED_MAIN;    }        new iAlive = is_user_alive( iPlayer );    new CsTeams:iTeam = cs_get_user_team( iPlayer );        new iPlayers[ 32 ], iNum;    get_players( iPlayers, iNum );        new szName[ 32 ];    get_user_name( iPlayer, szName, charsmax( szName ) );        new const szPrefixes[ 2 ][ CsTeams ][ ] =    {        {            "(Spectator)",            "*DEAD*(Terrorist)",            "*DEAD*(Counter-Terrorist)",            "(Spectator)"        },        {            "(Spectator)",            "(Terrorist)",            "(Counter-Terrorist)",            "(Spectator)"        }    };        new szMessage[ 192 ];    formatex( szMessage, charsmax( szMessage ), "^1%s^4 [%s]^3 %s^1 :  %s", szPrefixes[ iAlive ][ iTeam ], g_szLevelName[ g_iLevel[ iPlayer ] ], szName, szArgs );        for( new i = 0, iTeammate; i < iNum; i++ )    {        iTeammate = iPlayers[ i ];                if( iTeammate == iPlayer || ( iAlive || is_user_connected( iTeammate ) ) && is_user_alive( iTeammate ) == iAlive && cs_get_user_team( iTeammate ) == iTeam )        {            message_begin( MSG_ONE_UNRELIABLE, g_iMsgID_SayText, _, iTeammate );            write_byte( iPlayer );            write_string( szMessage );            message_end( );        }    }    return PLUGIN_HANDLED_MAIN;} bool:IsValidMessage( iPlayer, bool:bTeamSay, szMessage[ ], iLen ){    read_args( szMessage, iLen );    remove_quotes( szMessage );        new iPos, cChar, i;        while( ( cChar = szMessage[ iPos++ ] ) == '@' )    {        i++;    }        if( ( bTeamSay ? ( i == 1 ) : ( 1 <= i <= 3 ) ) && !access( iPlayer, g_iAdminChatFlag ) )    {        return false;    }        while( 0 <= ( cChar = szMessage[ iPos++ ] ) <= 255 )    {        if( cChar != ' ' && cChar != '%' )        {            return true;        }    }        return false;} GetLevel( iKills ){    for( new i = LEVELS - 1; i >= 0; i-- )    {        if( iKills >= g_iLevelMinKills[ i ] )        {            return i;        }    }        return 0;}

Re: rangu plugino reto

Posted: 2012 Sep 22 09:28
by PSH
viskas veikia trickai, bet bedele, galima kaipnors padaryt kokius 10 rangu kad rodytu? nes as kai padarau suvedu skaicius .sma faile kas kiek duoda, ir 10 rangu , bet errora meta kai compilina... padaryk jeigu gali kad 10 rangu butu be erroro..

Re: rangu plugino reto

Posted: 2012 Sep 22 20:11
by Trickas
Ten ne aš kūriau tą pluginą. Va pridėjau rankų daugiau, jeigu veiks +karma ;D

Code: Select all

#include <amxmodx>#include <amxmisc>#include <nvault>#include <cstrike>#include <csx> new const g_iLevelMinKills[ ] ={    0,    3,    6,    9,    12,    15,    18,    21,    24,    27} const LEVELS = sizeof( g_iLevelMinKills ); new const g_szLevelName[ LEVELS ][ ] ={    "Newbie",    "Semi-Pro",    "Pro",    "Veteran",    "Rankas5",    "Rankas6",    "Rankas7",    "Rankas8",    "Rankas9",    "Rankas10"} #define MAX_PLAYERS 32 new g_iKills[ MAX_PLAYERS + 1 ];new g_iLevel[ MAX_PLAYERS + 1 ]; new g_hVault; new g_iMsgID_SayText; new g_iAdminChatFlag = ADMIN_ALL;  public plugin_init(){    register_plugin( "Kills Counter", "0.0.1", "Exolent" );        register_clcmd( "say", "CmdSay" );    register_clcmd( "say_team", "CmdSayTeam" );        g_hVault = nvault_open( "KillsCounter" );        g_iMsgID_SayText = get_user_msgid( "SayText" );        new szCommand[ 32 ], iFlags;        for( new i = 0; get_concmd( i, szCommand, charsmax( szCommand ), iFlags, "", 0, 0, -1 ); i++ )    {        if( equal( szCommand, "amx_chat" ) )        {            g_iAdminChatFlag = iFlags;            break;        }    }} public plugin_end(){    nvault_close( g_hVault );} public client_putinserver( iPlayer ){    static SzName[ 32 ];    get_user_name( iPlayer, SzName, charsmax( SzName ) );        static iKills;        if( ( iKills = nvault_get( g_hVault, SzName ) ) )    {        g_iKills[ iPlayer ] = iKills;        g_iLevel[ iPlayer ] = GetLevel( iKills );    }} public client_disconnect( iPlayer ){    static SzName[ 32 ];    get_user_name( iPlayer, SzName, charsmax( SzName ) );        static szKills[ 16 ];    num_to_str( g_iKills[ iPlayer ], szKills, charsmax( szKills ) );        nvault_set( g_hVault, SzName, szKills );        g_iKills[ iPlayer ] = g_iLevel[ iPlayer ] = 0;} public client_death( iKiller, iVictim, iWeapon, iHitPlace, bTK ){    if( !bTK && iKiller != iVictim && iWeapon != CSW_C4 )    {        g_iLevel[ iKiller ] = GetLevel( ++g_iKills[ iKiller ] );    }} public CmdSay( iPlayer ){    if( !is_user_connected( iPlayer ) )    {        return PLUGIN_HANDLED_MAIN;    }        new szArgs[ 194 ];        if( !IsValidMessage( iPlayer, false, szArgs, charsmax( szArgs ) ) )    {        return PLUGIN_HANDLED_MAIN;    }        new iAlive = is_user_alive( iPlayer );    new CsTeams:iTeam = cs_get_user_team( iPlayer );        new iPlayers[ 32 ], iNum;    get_players( iPlayers, iNum );        new szName[ 32 ];    get_user_name( iPlayer, szName, charsmax( szName ) );        new const szPrefixes[ 2 ][ CsTeams ][ ] =    {        {            "^1*DEAD*",            "^1*DEAD*",            "^1*DEAD*",            "^1*SPEC*"        },        {            "",            "",            "",            ""        }    };        new szMessage[ 192 ];    formatex( szMessage, charsmax( szMessage ), "%s^4 [%s]^3 %s^1 :  %s", szPrefixes[ iAlive ][ iTeam ], g_szLevelName[ g_iLevel[ iPlayer ] ], szName, szArgs );        new iTarget;        for( new i = 0; i < iNum; i++ )    {        iTarget = iPlayers[ i ];                if( iTarget == iPlayer || ( iAlive || is_user_connected( iTarget ) ) && is_user_alive( iTarget ) == iAlive )        {            message_begin( MSG_ONE_UNRELIABLE, g_iMsgID_SayText, _, iTarget );            write_byte( iPlayer );            write_string( szMessage );            message_end( );        }    }    return PLUGIN_HANDLED_MAIN;} public CmdSayTeam( iPlayer ){    if( !is_user_connected( iPlayer ) )    {        return PLUGIN_HANDLED_MAIN;    }        new szArgs[ 194 ];        if( !IsValidMessage( iPlayer, true, szArgs, charsmax( szArgs ) ) )    {        return PLUGIN_HANDLED_MAIN;    }        new iAlive = is_user_alive( iPlayer );    new CsTeams:iTeam = cs_get_user_team( iPlayer );        new iPlayers[ 32 ], iNum;    get_players( iPlayers, iNum );        new szName[ 32 ];    get_user_name( iPlayer, szName, charsmax( szName ) );        new const szPrefixes[ 2 ][ CsTeams ][ ] =    {        {            "(Spectator)",            "*DEAD*(Terrorist)",            "*DEAD*(Counter-Terrorist)",            "(Spectator)"        },        {            "(Spectator)",            "(Terrorist)",            "(Counter-Terrorist)",            "(Spectator)"        }    };        new szMessage[ 192 ];    formatex( szMessage, charsmax( szMessage ), "^1%s^4 [%s]^3 %s^1 :  %s", szPrefixes[ iAlive ][ iTeam ], g_szLevelName[ g_iLevel[ iPlayer ] ], szName, szArgs );        for( new i = 0, iTeammate; i < iNum; i++ )    {        iTeammate = iPlayers[ i ];                if( iTeammate == iPlayer || ( iAlive || is_user_connected( iTeammate ) ) && is_user_alive( iTeammate ) == iAlive && cs_get_user_team( iTeammate ) == iTeam )        {            message_begin( MSG_ONE_UNRELIABLE, g_iMsgID_SayText, _, iTeammate );            write_byte( iPlayer );            write_string( szMessage );            message_end( );        }    }    return PLUGIN_HANDLED_MAIN;} bool:IsValidMessage( iPlayer, bool:bTeamSay, szMessage[ ], iLen ){    read_args( szMessage, iLen );    remove_quotes( szMessage );        new iPos, cChar, i;        while( ( cChar = szMessage[ iPos++ ] ) == '@' )    {        i++;    }        if( ( bTeamSay ? ( i == 1 ) : ( 1 <= i <= 3 ) ) && !access( iPlayer, g_iAdminChatFlag ) )    {        return false;    }        while( 0 <= ( cChar = szMessage[ iPos++ ] ) <= 255 )    {        if( cChar != ' ' && cChar != '%' )        {            return true;        }    }        return false;} GetLevel( iKills ){    for( new i = LEVELS - 1; i >= 0; i-- )    {        if( iKills >= g_iLevelMinKills[ i ] )        {            return i;        }    }        return 0;}

Fragus redaguokis, tik po paskutinio nedėk kablelio

Code: Select all

{    0,    3,    6,    9,    12,    15,    18,    21,    24,    27}
O kur rankus redaguotis manau suprasi ir taip.