Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Includes
- #include < amxmodx >
- // Defines
- #define MAX_KNIVES 21
- // Enums
- enum _: g_mKnivesData
- {
- KNIFE_PRICE,
- Float: KNIFE_CHANCE,
- Float: KNIFE_DAMAGE,
- Float: KNIFE_HEALTH,
- Float: KNIFE_ARMOR,
- Float: KNIFE_CRATE,
- Float: KNIFE_CDMG,
- Float: KNIFE_HEGREN,
- Float: KNIFE_FLASH,
- KNIFE_NAME[ 32 ],
- KNIFE_V_MODEL[ 64 ]
- };
- enum _: g_mClientData
- {
- g_mKnife,
- g_mLevel,
- g_mModel,
- };
- enum _: g_fClientData
- {
- Float: g_mDamage,
- Float: g_mHealth,
- Float: g_mArmor,
- Float: g_mCritRate,
- Float: g_mCritDamage,
- Float: g_mHegren,
- Float: g_mFlashbang
- };
- new const szPrefix[ ] = "AMXX";
- new szItem[ 128 ];
- new const szKnives[ MAX_KNIVES ][ g_mKnivesData ] =
- {
- // Base Success Bonus Bonus Bonus Critical Critical Bonus Bonus Knife Knife Model
- // Price Chance Damage Health Armor Rate Damage Hegrenade Flash Name Path (v)
- { 15000, 100.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Longname Sword 1234", "model/knifemodel.mdl" },
- { 16000, 98.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Knife 1", "model/knifemodel.mdl" },
- { 17000, 97.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Knife 2", "model/knifemodel.mdl" },
- { 18000, 96.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Knife 3", "model/knifemodel.mdl" },
- { 19000, 95.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Knife 4", "model/knifemodel.mdl" },
- { 20000, 94.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Knife 5", "model/knifemodel.mdl" },
- { 21000, 93.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Knife 6", "model/knifemodel.mdl" },
- { 22000, 91.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Knife 7", "model/knifemodel.mdl" },
- { 23000, 90.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Knife 8", "model/knifemodel.mdl" },
- { 24000, 89.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Knife 9", "model/knifemodel.mdl" },
- { 25000, 88.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Knife 10", "model/knifemodel.mdl" },
- { 26000, 87.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Knife 11", "model/knifemodel.mdl" },
- { 27000, 86.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Knife 12", "model/knifemodel.mdl" },
- { 28000, 85.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Knife 13", "model/knifemodel.mdl" },
- { 29000, 84.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Knife 14", "model/knifemodel.mdl" },
- { 30000, 83.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Knife 15", "model/knifemodel.mdl" },
- { 31000, 82.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Knife 16", "model/knifemodel.mdl" },
- { 32000, 81.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Knife 17", "model/knifemodel.mdl" },
- { 33000, 80.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Knife 18", "model/knifemodel.mdl" },
- { 34000, 79.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Knife 19", "model/knifemodel.mdl" },
- { 35000, 78.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, "Knife 20", "model/knifemodel.mdl" }
- };
- new g_mData[ 33 ][ g_mClientData ];
- new g_fData[ 33 ][ g_fClientData ];
- public plugin_init()
- {
- register_plugin( "JailBreak: Special Knives", "1.0", "Rejack" );
- register_clcmd( "say /knives", "cmdMainMenu" );
- }
- /*
- public plugin_precache()
- {
- static i;
- for ( i = 0; i < sizeof szKnives; i++ )
- precache_model( szKnives[ i ][ KNIFE_MODEL ] );
- }
- */
- stock Float: getData_f( const index, WhatFloatData = g_mDamage )
- {
- return g_fData[ index ][ WhatFloatData ];
- }
- /* Main Menu */
- public cmdMainMenu( const client )
- {
- static Menu, szBuffer[ 512 ], iKnife, iLevel;
- iKnife = g_mData[ client ][ g_mKnife ];
- iLevel = g_mData[ client ][ g_mLevel ];
- formatex( szBuffer, charsmax( szBuffer ), "\r[%s]\w Knives Shop^n^n\r%s\w [+%i\d/%i\w]\r | %i HP | %i AP | +%i Damage^n",
- szPrefix, szKnives[ iKnife ][ KNIFE_NAME ], iLevel, getKnifeMaxUpgrades( iKnife ), floatround( getData_f( client, g_mHealth ) ), floatround( getData_f( client, g_mArmor ) ), floatround( getData_f( client, g_mDamage ) ) );
- /*
- formatex( szItem, charsmax( szItem ),
- "\r[%s]\y Knifes Shop^n^n\r%s\w [+%i\d/%i\w]\r | %i HP | %i AP | +%i Damage^n\yCritical:\w %.1f%%\r |\w +%i Damage^n\yOn Start:\w %.1f%% HE Grenade, %.1f%% Flashbang",
- szPrefix );
- */
- Menu = menu_create( szBuffer, "handlerMainMenu" );
- menu_additem( Menu, "My Knives\y [2]" );
- menu_display( client, Menu );
- return 1;
- }
- public handlerMainMenu( client, Menu, Item )
- {
- if ( Item == MENU_EXIT )
- {
- menu_destroy( Menu );
- return 1;
- }
- return cmdMainMenu( client );
- }
- /* Stocks */
- stock ColorPrint( const index, const string[], any:... )
- {
- new szMsg[ 512 ], Players[ 32 ], PNum = 1;
- static iLen; iLen = formatex( szMsg, charsmax( szMsg ), "^4[%s]^1 ", szPrefix );
- vformat( szMsg[ iLen ], charsmax( szMsg ) - iLen, string, 3 );
- if ( index )
- Players[ 0 ] = index;
- else
- get_players( Players, PNum, "ch" );
- for ( new i; i < PNum; i++ )
- {
- if( is_user_connected( Players[ i ] ) )
- {
- message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, Players[ i ] );
- write_byte( Players[ i ] );
- write_string( szMsg );
- message_end( );
- }
- }
- return 1;
- }
- stock szName( const index )
- {
- static g_szName[ 32 ];
- get_user_name( index, g_szName, charsmax( g_szName ) );
- return g_szName;
- }
- stock szAddress( const index, without_port = 1 )
- {
- static g_szAddress[ 22 ];
- get_user_ip( index, g_szAddress, charsmax( g_szAddress ), without_port );
- return g_szAddress;
- }
- stock szAuth( const index )
- {
- static g_szAuth[ 35 ];
- get_user_authid( index, g_szAuth, charsmax( g_szAuth ) );
- return g_szAuth;
- }
- stock print_all_knives_data( const index )
- {
- static i;
- for ( i = 0; i < sizeof szKnives; i++ )
- {
- console_print( index, "[#%i] %s Data - [Price: %i|Chances: %.1f|DMG: %.1f|HP: %.1f|AP: %.1f|C.Rate: %.1f|C.DMG: %.1f|HE: %.1f|Flash: %.1f]^n",
- ( i + 1 ), szKnives[ i ][ KNIFE_NAME ], szKnives[ i ][ KNIFE_PRICE ], szKnives[ i ][ KNIFE_CHANCE ], szKnives[ i ][ KNIFE_DAMAGE ], szKnives[ i ][ KNIFE_HEALTH ],
- szKnives[ i ][ KNIFE_ARMOR ], szKnives[ i ][ KNIFE_CRATE ], szKnives[ i ][ KNIFE_CDMG ], szKnives[ i ][ KNIFE_HEGREN ], szKnives[ i ][ KNIFE_FLASH ] );
- }
- return 1;
- }
- stock getFirstCritical()
- {
- static i;
- for ( i = 0; i < sizeof szKnives; i++ )
- {
- if ( szKnives[ i ][ KNIFE_CRATE ] != 0.0 )
- break;
- }
- return i;
- }
- stock getKnifeMaxUpgrades( const Knife )
- {
- return ( Knife + 1 );
- }
Advertisement
Add Comment
Please, Sign In to add comment