AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [Help] Rank Level (https://forums.alliedmods.net/showthread.php?t=273094)

romi 10-12-2015 09:19

[Help] Rank Level
 
Hello,, i have found this rank level in this forum and i want to make some changes ,,
i want that instead of Timeleft it be RoundsLeft and it shows how many rounds are left ,, any help ?? you can fuse them together tnx
Rank Level Code:
PHP Code:

/*
    Blizzards Plugins Comply With GNU General Public License

    Rank Mod is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
    
    Under no circumstances are you allowed to redistribute and/or modify
    it claming that you are the original author of such plugin/modification.
    
    Rank Mod is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
    
*/

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

#pragma semicolon 1

#define PLUGIN "Rank Mod"
#define VERSION "1.0"
#define AUTHOR "Blizzard"

#define cm(%0)        ( sizeof(%0) - 1 )

#define MAXLEVEL 13
#define MAXAUTH 4

enum _:mData {
    
m_szRankName32 ],
    
m_iRankXP
};

enum {
    
STANDARD 0,
    
MOD,
    
ADMIN,
    
LEADER
};

new const 
g_mPlayerData[ ][ mData ] = {
    { 
"Private"},
    { 
"Specialist"50 },
    { 
"Corporal"200 },
    { 
"Sargeant"350 },
    { 
"Staff Sargeant"600 },
    { 
"Warrant Officer"1000 },
    { 
"Chief Warrant Officer"1500 },
    { 
"Second Lieutenant"2500 },
    { 
"First Lieutenant"5000 },
    { 
"Captain"8250 },
    { 
"Major"13500 },
    { 
"Colonel"20000 },
    { 
"General"30000 },
    { 
"General of The Army"45000 }
};

new const 
g_mPlayerAuth[  ][  ] = {
    
"Standard""Moderator""Admin""Leader"
};

new const 
g_sLevelUp[ ] = { "RankMod/Rank-Mod-LvlUp.mp3" };

// Integers    
new g_iPlayerXP33 ] = 0;
new 
g_iPlayerLevel33 ] = 0;
new 
g_iPlayerStatus33 ] = 3;

// Booleans
new g_bToggleHud33 ] = true;    
new 
g_bAdvertSeen33 ] = false;

// Strings
new g_szHostName64 ];    

// Cvars
new g_Vault;

public 
plugin_init() {
    
register_pluginPLUGINVERSIONAUTHOR );
    
    
// Register Events
    
register_event"DeathMsg""Event_DeathMsg""a" );
    
    
// Register Messages
    
register_messageget_user_msgid"StatusValue" ), "msgStatusValue" );
    
    
// Register Ham
    
RegisterHamHam_Spawn"player""CBase_PlayerPost_Spawn");
    
    
// Register Client Commands
    
register_clcmd"say /hud""cmdToggleHud" );
    
register_clcmd"say /manage""cmdManagePlayers" );
}

public 
plugin_precache( ) {
    
precache_soundg_sLevelUp );
}

public 
plugin_cfg( ) {
    
get_cvar_string"hostname"g_szHostNamecmg_szHostName ) );
    
g_Vault nvault_open"Rank-Mod" );
}

public 
client_authorizedid ) {
    if( 
has_flagid"a" ) )
        
g_iPlayerStatusid ] = LEADER;
    else if( 
has_flagid"b" ) )
        
g_iPlayerStatusid ] = ADMIN;
    else if( 
has_flagid"c" ) )
        
g_iPlayerStatusid ] = MOD;
    else if( 
has_flagid"z" ) )
        
g_iPlayerStatusid ] = STANDARD;
}

public 
client_putinserverid ) {
    
g_bToggleHudid ] = true;
    
g_bAdvertSeenid ] = false;
    
set_task0.9"ShowHud"id__"b" );
    
LoadDataid );
}


public 
client_disconnectid ) {
    
SaveDataid );
}

public 
Event_DeathMsg( ) {
    new 
iKiller read_data);
    new 
iVictim read_data);
    new 
HeadShot read_data);
    
    new 
clipammoweapon get_user_weaponiKillerclipammo );
    
    if( 
iVictim != iKiller ) {
        if( 
HeadShot && weapon == CSW_KNIFE )
            
g_iPlayerXPiKiller ] += 30;
        
        else if( 
HeadShot 
            
g_iPlayerXPiKiller ] += 10;
        
        else if( 
weapon == CSW_KNIFE && !HeadShot )
            
g_iPlayerXPiKiller ] += 30;
        
        else if( 
weapon != CSW_KNIFE && !HeadShot )
            
g_iPlayerXPiKiller ] += 5;
        else  
            
g_iPlayerXPiKiller ] += 5;
        
        if( 
g_iPlayerLeveliKiller ] < MAXLEVEL ) {
            if( 
g_iPlayerXPiKiller ] >= g_mPlayerDatag_iPlayerLeveliKiller ] + ][ m_iRankXP ] ) {
                
g_iPlayerLeveliKiller ]++;
                
set_dhudmessage02550, -1.00.6013.03.01.51.5 );
                
show_dhudmessageiKiller"You Have Been Promoted To^n^n-= %s =-"g_mPlayerDatag_iPlayerLeveliKiller ] ][ m_szRankName ] );
                
client_cmdiKiller"mp3 play sound/%s"g_sLevelUp );
            }
        }
    }
}
        
// Toggle Showing Hud Message On / Off
public cmdToggleHudid ) {
    
g_bToggleHudid ] = !g_bToggleHudid ];
    return 
PLUGIN_HANDLED;
}

// Shows The Rank Information Message
public ShowHudid ) {
    if( 
g_bToggleHudid ] ) {
        
set_hudmessage(025500.010.1806.01.00.00.0, -);
        if( 
g_iPlayerLevelid ] < MAXLEVEL ) {
            
show_hudmessage(id"[ %s ]^n^n[ Rank: -= %s =- ]^n[ XP: %i / %i ]^n^n[ TimeLeft: %d:%02d ]^n^n[ Status: %s ]",
            
g_szHostName,
            
g_mPlayerDatag_iPlayerLevelid ] ][ m_szRankName ],
            
g_iPlayerXPid ],
            
g_mPlayerDatag_iPlayerLevelid ] + ][ m_iRankXP ],
            
get_timeleft( ) / 60,
            
get_timeleft( ) % 60,
            
g_mPlayerAuthg_iPlayerStatusid ] ] );
        } else {
            
show_hudmessage(id"[ %s ]^n^n[ Rank: -= %s =- ]^n[ XP: %i ]^n^n[ TimeLeft: %d:%02d ]^n^n[ Status: %s ]",
            
g_szHostName,
            
g_mPlayerDatag_iPlayerLevelid ] ][ m_szRankName ],
            
g_iPlayerXPid ],
            
get_timeleft( ) / 60,
            
get_timeleft( ) % 60,
            
g_mPlayerAuthg_iPlayerStatusid ] ] );
        }
    }
}

////////////////////
// StatusValueMsg //
////////////////////
public msgStatusValuemsgiddestid ) {
    new 
flagvalue;
    
flag get_msg_arg_int);
    
value get_msg_arg_int);
    
    if( !
value ) {
        return 
PLUGIN_CONTINUE;
    }
    
    if( 
flag == ) {
        new 
text128 ];
        
        if( 
get_user_teamvalue ) == get_user_teamid ) )
            
formatextextcharsmaxtext ), "1 %%p2 HP: %d ( %s )"get_user_healthvalue ), g_mPlayerDatag_iPlayerLevelvalue ] ][ m_szRankName ]  );
        else 
            
formatextextcharsmaxtext ), "1 %%p2 ( %s )"g_mPlayerDatag_iPlayerLevelvalue ] ][ m_szRankName ]  );
        
        
message_beginMSG_ONE_UNRELIABLEget_user_msgid"StatusText" ), _id );
        
write_byte);
        
write_stringtext );
        
message_end( );
    }
    return 
PLUGIN_CONTINUE;
}

//////////////////////////////////
/*    MANAGE PLAYERS RANKS     */
//////////////////////////////////
public cmdManagePlayersid ) {
    if( !
has_flagid"a" ) )
        return 
PLUGIN_HANDLED;
    
    new 
menu menu_create"Manage Player Ranks:""Players_Handler" );
    
    new 
iPlayers32 ], iNumiPlayers;
    new 
szUserID32 ], szName64 ];
    
get_playersiPlayersiNum );
    for( 
0iNumi++ ) {
        
Players iPlayers];
        
        
formatexszNamecmszName ), "%s ( \r%s\w )"get_nickPlayers ), g_mPlayerDatag_iPlayerLevelPlayers ] ][ m_szRankName ] );
        
formatexszUserIDcmszUserID ), "%d"get_user_useridPlayers ) );
        
menu_additemmenuszNameszUserID );
    }
    
    
menu_displayidmenu );
    return 
PLUGIN_HANDLED;
}

public 
Players_Handleridmenuitem ) {
    if( 
item == MENU_EXIT ) {
        
menu_destroymenu );
        return 
PLUGIN_HANDLED;
    }
    
    new 
item_accesscallback;
    new 
info64 ], name32 ];
    
    
menu_item_getinfomenuitemitem_accessinfocminfo ), namecmname ), callback );
    
    new 
userid str_to_numinfo );
    
    new 
player find_player"k"userid );

    
ChoosePlayerRankidplayer );
    
    return 
PLUGIN_HANDLED;
}

public 
ChoosePlayerRankindexChoosen ) {
    new 
szTitle101 ], szChoosen];
    
formatexszTitlecmszTitle ), "Change \r%s\y Rank To:"get_nickChoosen ) );
    new 
menu menu_createszTitle"PlayerRank_Handler" );
    
    
num_to_strChoosenszChoosencmszChoosen ) );    
    
    for( new 
0sizeofg_mPlayerData ); i++ )
        
menu_additemmenug_mPlayerData][ m_szRankName ], szChoosen );

    
menu_displayindexmenu );
    return 
PLUGIN_HANDLED;
}

public 
PlayerRank_Handleridmenuitem ) {
    if( 
item == MENU_EXIT ) {
        
menu_destroymenu );
        return 
PLUGIN_HANDLED;
    }
    
    new 
item_accesscallback;
    new 
info64 ], name32 ];
    
    
menu_item_getinfomenuitemitem_accessinfocminfo ), namecmname ), callback );
    
    new 
player str_to_numinfo );
    
    
g_iPlayerXPplayer ] = g_mPlayerDataitem ][ m_iRankXP ];
    
g_iPlayerLevelplayer ] = item;
    
    
set_dhudmessage0random256 ), 0, -1.00.6013.03.01.51.5 );
    
show_dhudmessageplayer"ADMIN: %s Has Changed Your Rank To^n^n-= %s =-",
    
get_nickid ),
    
g_mPlayerDatag_iPlayerLevelplayer ] ][ m_szRankName ] );
    
client_cmdplayer"mp3 play sound/%s"g_sLevelUp );
    
    
menu_destroymenu );
    return 
PLUGIN_HANDLED;
}    
    
public 
plugin_end( ) {
    
nvault_closeg_Vault );
}

///////////////////////////////////
/*     STOCKS             */
///////////////////////////////////
stock ColoridString[ ], any:... ) {
    static 
szMsg192 ];
    
vformatszMsgcharsmaxszMsg ), String);
    
    
replace_allszMsgcharsmaxszMsg ), "!n""^1" );
    
replace_allszMsgcharsmaxszMsg ), "!t""^3" );
    
replace_allszMsgcharsmaxszMsg ), "!g""^4" );
    
    static 
msgSayText 0;
    if( !
msgSayText msgSayText get_user_msgid"SayText" );
    
    new 
Players32 ], iNum 1i
    
    if( 
id Players] = id;    
    else 
get_playersPlayersiNum"ch" );
    
    for( --
iNumiNum >= 0iNum-- ) {
        
PlayersiNum ];
        
        
message_beginMSG_ONE_UNRELIABLEmsgSayText_);
        
write_byte);
        
write_stringszMsg );
        
message_end( );
    }


stock get_nickindex ) {
    new 
szName32 ]; get_user_nameindexszNamecmszName ) );
    return 
szName;
}

//////////////////////////////////////////
/*     DHUD MESSAGE STOCKS        */
//////////////////////////////////////////
stock __dhud_color;
stock __dhud_x;
stock __dhud_y;
stock __dhud_effect;
stock __dhud_fxtime;
stock __dhud_holdtime;
stock __dhud_fadeintime;
stock __dhud_fadeouttime;
stock __dhud_reliable;

stock set_dhudmessagered 0green 160blue 0Float:= -1.0Float:0.65effects 2Float:fxtime 6.0Float:holdtime 3.0Float:fadeintime 0.1Float:fadeouttime 1.5bool:reliable false )
{
    
#define clamp_byte(%1)       ( clamp( %1, 0, 255 ) )
    #define pack_color(%1,%2,%3) ( %3 + ( %2 << 8 ) + ( %1 << 16 ) )

    
__dhud_color       pack_colorclamp_bytered ), clamp_bytegreen ), clamp_byteblue ) );
    
__dhud_x           _:x;
    
__dhud_y           _:y;
    
__dhud_effect      effects;
    
__dhud_fxtime      _:fxtime;
    
__dhud_holdtime    _:holdtime;
    
__dhud_fadeintime  _:fadeintime;
    
__dhud_fadeouttime _:fadeouttime;
    
__dhud_reliable    _:reliable;

    return 
1;
}

stock show_dhudmessageindex, const message[], any:... )
{
    new 
buffer128 ];
    new 
numArguments numargs();

    if( 
numArguments == )
    {
        
send_dhudMessageindexmessage );
    }
    else if( 
index || numArguments == )
    {
        
vformatbuffercharsmaxbuffer ), message);
        
send_dhudMessageindexbuffer );
    }
    else
    {
        new 
playersList32 ], numPlayers;
        
get_playersplayersListnumPlayers"ch" );

        if( !
numPlayers )
        {
            return 
0;
        }

        new Array:
handleArrayML ArrayCreate();

        for( new 
2jnumArgumentsi++ )
        {
            if( 
getarg) == LANG_PLAYER )
            {
                while( ( 
buffer] = getarg1j++ ) ) ) {}
                
0;

                if( 
GetLangTransKeybuffer ) != TransKey_Bad )
                {
                    
ArrayPushCellhandleArrayMLi++ );
                }
            }
        }

        new 
size ArraySizehandleArrayML );

        if( !
size )
        {
            
vformatbuffercharsmaxbuffer ), message);
            
send_dhudMessageindexbuffer );
        }
        else
        {
            for( new 
0jnumPlayersi++ )
            {
                
index playersList];

                for( 
0sizej++ )
                {
                    
setargArrayGetCellhandleArrayML), 0index );
                }

                
vformatbuffercharsmaxbuffer ), message);
                
send_dhudMessageindexbuffer );
            }
        }

        
ArrayDestroyhandleArrayML );
    }

    return 
1;
}

stock send_dhudMessage( const index, const message[] )
{
    
message_begin__dhud_reliable ? ( index MSG_ONE MSG_ALL ) : ( index MSG_ONE_UNRELIABLE MSG_BROADCAST ), SVC_DIRECTOR_index );
    {
        
write_bytestrlenmessage ) + 31 );
        
write_byteDRC_CMD_MESSAGE );
        
write_byte__dhud_effect );
        
write_long__dhud_color );
        
write_long__dhud_x );
        
write_long__dhud_y );
        
write_long__dhud_fadeintime );
        
write_long__dhud_fadeouttime );
        
write_long__dhud_holdtime );
        
write_long__dhud_fxtime );
        
write_stringmessage );
    }
    
message_end();
}


//////////////////////////////////
/*     SAVE/LOAD STOCKS    */
//////////////////////////////////
stock SaveDataindex ) {
    new 
szAuthID35 ], szData64 ];
    
get_user_authidindexszAuthIDcmszAuthID ) );
    
formatexszDatacmszData ), "%i %i"g_iPlayerXPindex ], g_iPlayerLevelindex ] );
    
    
nvault_setg_VaultszAuthIDszData );
}

stock LoadDataindex ) {
    new 
szAuthID35 ], szData64 ];
    
get_user_authidindexszAuthIDcmszAuthID ) );
    new 
XP32 ], LVL15 ];
    
    if( 
nvault_getg_VaultszAuthIDszDatacmszData ) ) &&
    
parseszDataXP31LVL14 ) ) {
        
g_iPlayerXPindex ] = str_to_numXP );
        
g_iPlayerLevelindex ] = str_to_numLVL );
    } else {
        
g_iPlayerXPindex ] = 0;
        
g_iPlayerLevelindex ] = 0;
    }


Rounds Left Code :
PHP Code:

new const PLUGINNAME[] = "Roundsleft"
new const VERSION[] = "2.4"
new const AUTHOR[] = "MisterJ"
/*

THANKS
========
Johnny got his gun : He created the concept and made the first version.


ROUNDSLEFT
==========
Allows the users to "say roundsleft" and remaining rounds will be displayed.
This is useful if you are using default hlds cvar mp_maxrounds set to some value.
There is also a command "amx_roundsleft" to view remaining rounds in console.


HOW TO INSTALL
==============
1. Name this file roundsleft.sma.
2. Compile it into roundsleft.amxx.
3. Put roundsleft.amxx into amxmodx/plugins directory.
4. Open up amxmodx/configs/plugins.ini and add a line to the end saying: roundsleft.amx
5. Done. Type reload in your server.


HOW TO USE
==========
say roundsleft, say rounds, say roundleft, say round
- all these will respond with remaining rounds if mp_maxrounds is set to anything higher than 0.

amx_roundsleft
- displays remaining rounds in console. Works also from server console.


VERSION
========
2.4

*/

#include <amxmodx>
#include <amxmisc>
#include <engine>

// Globals below
new g_teamScore[2]
// Globals above

public sayRoundsLeft(id) {
    new 
maxRounds get_cvar_num("mp_maxrounds")
    if (
id) {
        if (
maxRounds == 0) {
            
client_print(0print_chat"No rounds limit.")
        }
        else {
            new 
roundsleft maxRounds - (g_teamScore[0] + g_teamScore[1])
            
client_print(0print_chat"Remaining rounds: %d"roundsleft)
            
speakroundsleft(idroundsleft)
        }
    }

    return 
PLUGIN_CONTINUE
}

speakroundsleft(idroundsleft) {
    new 
numbers[256]
    
getnumbers(roundsleftnumbers255)
    
client_cmd(id"spk ^"%s round remaining^""numbers)
    
//client_print(0, print_chat, "%s round%s remain", numbers, roundsleft > 1 ? "s" : "")
}

public 
conRoundsLeft(id) {
    new 
maxRounds get_cvar_num("mp_maxrounds")
    if (
id)    console_print(id,"Remaining rounds: %d",maxRounds - (g_teamScore[0] + g_teamScore[1]))
    else 
server_print("Remaining rounds: %d",maxRounds - (g_teamScore[0] + g_teamScore[1]))

    return 
PLUGIN_HANDLED
}

public 
teamScore(id) {
    new 
team[2]
    
read_data(1,team,1)
    
g_teamScore[(team[0]=='C')? 1] = read_data(2)

    return 
PLUGIN_CONTINUE
}

/*
public newround_event(id) {
    if (is_user_bot(id))
        return PLUGIN_CONTINUE

    new maxRounds = get_cvar_num("mp_maxrounds")
    if (maxRounds) {
        set_hudmessage(0, 100, 0, -1.0, 0.65, 2, 0.02, 10.0, 0.01, 0.1, 2)
        show_hudmessage(id, "%d rounds remaining", maxRounds - (g_teamScore[0] + g_teamScore[1]))
        client_print(id, print_chat, "%d rounds remaining", maxRounds - (g_teamScore[0] + g_teamScore[1]))
    }

    return PLUGIN_CONTINUE
}
*/

public endround_event() {
    
server_print("endround_event, %d entities in game"entity_count())
    
set_task(2.0"endofroundspk")

    return 
PLUGIN_CONTINUE
}

public 
endofroundspk() {
    
//server_print("endofroundspk")
    
new maxRounds get_cvar_num("mp_maxrounds")
    new 
roundsleft maxRounds - (g_teamScore[0] + g_teamScore[1])
    new 
nextmap[64]
    
get_cvar_string("amx_nextmap"nextmap63)
    if (
maxRounds) {
        
set_hudmessage(255255255, -1.00.8500.03.00.00.5, -1)

        if (
roundsleft == 100)
        
show_hudmessage(0"100 rounds remaining"roundsleft)

        if (
roundsleft == 80)
        
show_hudmessage(0"80 rounds remaining"roundsleft)

        if (
roundsleft == 60)
        
show_hudmessage(0"60 rounds remaining"roundsleft)        

        if (
roundsleft == 50)
        
show_hudmessage(0"50 rounds remaining"roundsleft)

        if (
roundsleft == 40)
        
show_hudmessage(0"40 rounds remaining"roundsleft)    

        if (
roundsleft == 30)
        
show_hudmessage(0"30 rounds remaining"roundsleft)        

        if (
roundsleft == 20)
        
show_hudmessage(0"20 rounds remaining"roundsleft)

        if (
roundsleft == 10)
        
show_hudmessage(0"10 rounds remaining"roundsleft)

        if (
roundsleft == 5)
        
show_hudmessage(0"5 rounds remaining"roundsleft)
        
        if (
roundsleft == 1)
        
show_hudmessage(0"The last round"roundsleft)

        if (
roundsleft == 0)
        
show_hudmessage(0"Nextmap is %s..."nextmap)
            
        }


    if (
roundsleft 0) {

        if (
roundsleft == 90)
        
client_cmd(0"spk ^"ninety round remaining^"")

        if (
roundsleft == 80)
        
client_cmd(0"spk ^"eighty round remaining^"")

        if (
roundsleft == 70)
        
client_cmd(0"spk ^"seventy round remaining^"")

        if (
roundsleft == 60)
        
client_cmd(0"spk ^"sixty round remaining^"")        

        if (
roundsleft == 50)
        
client_cmd(0"spk ^"fifty round remaining^"")
    
        if (
roundsleft == 40)
        
client_cmd(0"spk ^"fourty round remaining^"")

        if (
roundsleft == 30)
        
client_cmd(0"spk ^"thirty round remaining^"")

        if (
roundsleft == 20)
        
client_cmd(0"spk ^"twenty round remaining^"")

        if (
roundsleft == 10)
        
client_cmd(0"spk ^"ten round remaining^"")

        if (
roundsleft == 5)
        
client_cmd(0"spk ^"five round remaining^"")

        if (
roundsleft == 1)
        
client_cmd(0"spk ^"the last round^"")

        }
    

    }



stock getnumbers(numberwordnumbers[], length) {
    if (
number 0) {
        
format(wordnumberslength"error")
        return
    }

    new 
numberstr[20]
    
num_to_str(numbernumberstr19)
    new 
stlen strlen(numberstr), bool:getzero falsebool:jumpnext false
    
if (stlen == 1)
        
getzero true

    
do {
        if (
jumpnext)
            
jumpnext false
        
else if (numberstr[0] != '0') {
            switch (
stlen) {
                case 
9: {
                    if (
getsingledigit(numberstr[0], wordnumberslength))
                        
format(wordnumberslength"%s hundred%s"wordnumbersnumberstr[1] == '0' && numberstr[2] == '0' " million" "")
                }
                case 
8: {
                    
jumpnext gettens(wordnumberslengthnumberstr)
                    if (
jumpnext)
                        
format(wordnumberslength"%s million"wordnumbers)
                }
                case 
7: {
                    
getsingledigit(numberstr[0], wordnumberslength)
                    
format(wordnumberslength"%s million"wordnumbers)
                }
                case 
6: {
                    if (
getsingledigit(numberstr[0], wordnumberslength))
                        
format(wordnumberslength"%s hundred%s"wordnumbersnumberstr[1] == '0' && numberstr[2] == '0' " thousand" "")
                }
                case 
5: {
                    
jumpnext gettens(wordnumberslengthnumberstr)
                    if (
numberstr[0] == '1' || numberstr[1] == '0')
                        
format(wordnumberslength"%s thousand"wordnumbers)
                }
                case 
4: {
                    
getsingledigit(numberstr[0], wordnumberslength)
                    
format(wordnumberslength"%s thousand"wordnumbers)
                }
                case 
3: {
                    
getsingledigit(numberstr[0], wordnumberslength)
                    
format(wordnumberslength"%s hundred"wordnumbers)
                }
                case 
2jumpnext gettens(wordnumberslengthnumberstr)
                case 
1: {
                    
getsingledigit(numberstr[0], wordnumberslengthgetzero)
                    break 
// could've trimmed, but of no use here
                
}
                default: {
                    
format(wordnumberslength"%s TOO LONG"wordnumbers)
                    break
                }
            }
        }

        
jghg_trim(numberstrlength1)
        
stlen strlen(numberstr)
    }
    while (
stlen 0)

    
// Trim a char from left if first char is a space (very likely)
    
if (wordnumbers[0] == ' ')
        
jghg_trim(wordnumberslength1)
}

// Returns true if next char should be jumped
stock bool:gettens(wordnumbers[], lengthnumberstr[]) {
    new 
digitstr[11], bool:dont falsebool:jumpnext false
    
switch (numberstr[0]) {
        case 
'1': {
            
jumpnext true
            
switch (numberstr[1]) {
                case 
'0'digitstr "ten"
                
case '1'digitstr "eleven"
                
case '2'digitstr "twelve"
                
case '3'digitstr "thirteen"
                
case '4'digitstr "fourteen"
                
case '5'digitstr "fifteen"
                
case '6'digitstr "sixteen"
                
case '7'digitstr "seventeen"
                
case '8'digitstr "eighteen"
                
case '9'digitstr "nineteen"
                
default: digitstr "TEENSERROR"
            
}
        }
        case 
'2'digitstr "twenty"
        
case '3'digitstr "thirty"
        
case '4'digitstr "fourty"
        
case '5'digitstr "fifty"
        
case '6'digitstr "sixty"
        
case '7'digitstr "seventy"
        
case '8'digitstr "eighty"
        
case '9'digitstr "ninety"
        
case '0'dont true // do nothing
        
default : digitstr "TENSERROR"
    
}
    if (!
dont)
        
format(wordnumberslength"%s %s"wordnumbersdigitstr)

    return 
jumpnext
}

// Returns true when sets, else false
stock getsingledigit(digit[], numbers[], lengthbool:getzero false) {
    new 
digitstr[11]
    switch (
digit[0]) {
        case 
'1'digitstr "one"
        
case '2'digitstr "two"
        
case '3'digitstr "three"
        
case '4'digitstr "four"
        
case '5'digitstr "five"
        
case '6'digitstr "six"
        
case '7'digitstr "seven"
        
case '8'digitstr "eight"
        
case '9'digitstr "nine"
        
case '0': {
            if (
getzero)
                
digitstr "zero"
            
else
                return 
false
        
}
        default : 
digitstr "digiterror"
    
}
    
format(numberslength"%s %s"numbersdigitstr)

    return 
true
}

stock jghg_trim(stringtotrim[], lencharstotrimbool:fromleft true) {
    if (
charstotrim <= 0)
        return

    if (
fromleft) {
        new 
maxlen strlen(stringtotrim)
        if (
charstotrim maxlen)
            
charstotrim maxlen

        format
(stringtotrimlen"%s"stringtotrim[charstotrim])
    }
    else {
        new 
maxlen strlen(stringtotrim) - charstotrim
        
if (maxlen 0)
            
maxlen 0

        format
(stringtotrimmaxlen"%s"stringtotrim)
    }
}

public 
addrounds(idlevelcid) {
    if (!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED

    
new arg[32]
    
read_argv(1arg31)
    new 
arglength strlen(arg)
    for (new 
0arglengthi++) {
        if (!
isdigit(arg[i])) {
            if (
!= || arg[0] != '-') {
                
console_print(id"Error: Enter only numbers, ie ^"amx_addrounds 10^"")
                return 
PLUGIN_HANDLED
            
}
        }
    }

    new 
roundstoadd str_to_num(arg)

    if (
roundstoadd == 0) {
        
console_print(id"Error: Well duuuh. Enter a positive or negative value, ie ^"amx_addrounds 10^"")
        return 
PLUGIN_HANDLED
    
}

    new 
originalmaxrounds get_cvar_num("mp_maxrounds")

    new 
newmaxrounds originalmaxrounds roundstoadd

    
if (newmaxrounds 1)
        
newmaxrounds 1

    
new roundschanged newmaxrounds originalmaxrounds

    
new Float:displayrounds float(roundschanged)
    
displayrounds *= displayrounds
    displayrounds 
floatsqroot(displayrounds)

    
console_print(id"%sing %d rounds..."roundschanged "Add" "Remov"floatround(displayrounds))

    
set_cvar_num("mp_maxrounds"newmaxrounds)

    
conRoundsLeft(id)

    return 
PLUGIN_HANDLED
}

public 
plugin_init() {
    
register_plugin(PLUGINNAMEVERSIONAUTHOR)
    
register_clcmd("say round""sayRoundsLeft")
    
register_clcmd("say rounds""sayRoundsLeft")
     
register_clcmd("say roundleft""sayRoundsLeft")
     
register_clcmd("say roundsleft""sayRoundsLeft"0"- displays remaining rounds")
     
register_concmd("amx_roundsleft""conRoundsLeft"0"- displays remaining rounds")
     
register_concmd("amx_addrounds""addrounds"ADMIN_CFG"<rounds> - add/remove remaining rounds")
    
register_event("TeamScore""teamScore""ab")
    
//register_event("ResetHUD", "newround_event", "b")
    /*
    register_event("SendAudio","endround_event","a","2&%!MRAD_terwin","2&%!MRAD_ctwin","2&%!MRAD_rounddraw")
    register_event("TextMsg","endround_event","a","2&#Game_C","2&#Game_w")
    register_event("TextMsg","endround_event","a","2&#Game_will_restart_in")
    */
    /*
    register_logevent("death_event",5,"1=killed","3=with")
    // L 03/08/2004 - 13:32:34: "xian<2><BOT><CT>" killed "SuperKaka<1><BOT><TERRORIST>" with "usp"
    // L 03/08/2004 - 13:32:34: World triggered "Round_End"
    */
    // L 03/08/2004 - 13:32:34: World triggered "Round_End"
    /*register_logevent("endround_event", 3, "2=Round_End")
    register_logevent("endround_event", 3, "1=Round_End")
    register_logevent("endround_event", 3, "0=Round_End")
    register_logevent("endround_event", 3, "3=Round_End")*/
    
register_logevent("endround_event"2"0=World triggered""1=Round_End")




All times are GMT -4. The time now is 22:03.

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