Rejack

JailbRreak Special Knives (For TheBomb)

Sep 6th, 2016 (edited)
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.32 KB | None | 0 0
  1. // Includes
  2. #include < amxmodx >
  3.  
  4. // Defines
  5. #define MAX_KNIVES  21
  6.  
  7. // Enums
  8. enum _: g_mKnivesData
  9. {
  10.     KNIFE_PRICE,
  11.     Float: KNIFE_CHANCE,
  12.     Float: KNIFE_DAMAGE,
  13.     Float: KNIFE_HEALTH,
  14.     Float: KNIFE_ARMOR,
  15.     Float: KNIFE_CRATE,
  16.     Float: KNIFE_CDMG,
  17.     Float: KNIFE_HEGREN,
  18.     Float: KNIFE_FLASH,
  19.     KNIFE_NAME[ 32 ],
  20.     KNIFE_V_MODEL[ 64 ]
  21. };
  22.  
  23. enum _: g_mClientData
  24. {
  25.     g_mKnife,
  26.     g_mLevel,
  27.     g_mModel,
  28. };
  29.  
  30. enum _: g_fClientData
  31. {
  32.     Float: g_mDamage,
  33.     Float: g_mHealth,
  34.     Float: g_mArmor,
  35.     Float: g_mCritRate,
  36.     Float: g_mCritDamage,
  37.     Float: g_mHegren,
  38.     Float: g_mFlashbang
  39. };
  40.  
  41. new const szPrefix[ ]   = "AMXX";
  42. new szItem[ 128 ];
  43.  
  44. new const szKnives[ MAX_KNIVES ][ g_mKnivesData ] =
  45. {
  46.     //  Base    Success Bonus   Bonus   Bonus   Critical    Critical    Bonus       Bonus       Knife            Knife Model   
  47.     //  Price   Chance  Damage  Health  Armor    Rate        Damage      Hegrenade      Flash       Name            Path (v)
  48.     {   15000,  100.0,  1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Longname Sword 1234",  "model/knifemodel.mdl" },
  49.     {   16000,  98.0,   1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Knife 1",      "model/knifemodel.mdl" },
  50.     {   17000,  97.0,   1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Knife 2",      "model/knifemodel.mdl" },
  51.     {   18000,  96.0,   1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Knife 3",      "model/knifemodel.mdl" },
  52.     {   19000,  95.0,   1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Knife 4",      "model/knifemodel.mdl" },
  53.     {   20000,  94.0,   1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Knife 5",      "model/knifemodel.mdl" },
  54.     {   21000,  93.0,   1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Knife 6",      "model/knifemodel.mdl" },
  55.     {   22000,  91.0,   1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Knife 7",      "model/knifemodel.mdl" },
  56.     {   23000,  90.0,   1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Knife 8",      "model/knifemodel.mdl" },
  57.     {   24000,  89.0,   1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Knife 9",      "model/knifemodel.mdl" },
  58.     {   25000,  88.0,   1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Knife 10",     "model/knifemodel.mdl" },
  59.     {   26000,  87.0,   1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Knife 11",     "model/knifemodel.mdl" },
  60.     {   27000,  86.0,   1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Knife 12",     "model/knifemodel.mdl" },
  61.     {   28000,  85.0,   1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Knife 13",     "model/knifemodel.mdl" },
  62.     {   29000,  84.0,   1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Knife 14",     "model/knifemodel.mdl" },
  63.     {   30000,  83.0,   1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Knife 15",     "model/knifemodel.mdl" },
  64.     {   31000,  82.0,   1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Knife 16",     "model/knifemodel.mdl" },
  65.     {   32000,  81.0,   1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Knife 17",     "model/knifemodel.mdl" },
  66.     {   33000,  80.0,   1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Knife 18",     "model/knifemodel.mdl" },
  67.     {   34000,  79.0,   1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Knife 19",     "model/knifemodel.mdl" },
  68.     {   35000,  78.0,   1.0,    1.0,    1.0,    0.0,        0.0,        0.0,        0.0,    "Knife 20",     "model/knifemodel.mdl" }
  69. };
  70.  
  71. new g_mData[ 33 ][ g_mClientData ];
  72. new g_fData[ 33 ][ g_fClientData ];
  73.  
  74. public plugin_init()
  75. {
  76.     register_plugin( "JailBreak: Special Knives", "1.0", "Rejack" );
  77.    
  78.     register_clcmd( "say /knives", "cmdMainMenu" );
  79. }
  80. /*
  81. public plugin_precache()
  82. {
  83.     static i;
  84.    
  85.     for ( i = 0; i < sizeof szKnives; i++ )
  86.         precache_model( szKnives[ i ][ KNIFE_MODEL ] );
  87. }
  88. */
  89.  
  90. stock Float: getData_f( const index, WhatFloatData = g_mDamage )
  91. {
  92.     return g_fData[ index ][ WhatFloatData ];
  93. }
  94.    
  95. /* Main Menu */
  96.  
  97. public cmdMainMenu( const client )
  98. {
  99.     static Menu, szBuffer[ 512 ], iKnife, iLevel;
  100.    
  101.     iKnife  = g_mData[ client ][ g_mKnife ];
  102.     iLevel  = g_mData[ client ][ g_mLevel ];
  103.    
  104.     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",
  105.     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 ) ) );
  106.     /*
  107.     formatex( szItem, charsmax( szItem ),
  108.     "\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",
  109.     szPrefix );
  110.     */
  111.     Menu    = menu_create( szBuffer, "handlerMainMenu" );
  112.    
  113.     menu_additem( Menu, "My Knives\y [2]" );
  114.    
  115.     menu_display( client, Menu );
  116.    
  117.     return 1;
  118. }
  119.  
  120. public handlerMainMenu( client, Menu, Item )
  121. {
  122.     if ( Item == MENU_EXIT )
  123.     {
  124.         menu_destroy( Menu );
  125.        
  126.         return 1;
  127.     }
  128.    
  129.     return cmdMainMenu( client );
  130. }
  131.  
  132. /* Stocks */
  133.  
  134. stock ColorPrint( const index, const string[], any:... )
  135. {
  136.     new szMsg[ 512 ], Players[ 32 ], PNum = 1;
  137.    
  138.     static iLen; iLen = formatex( szMsg, charsmax( szMsg ), "^4[%s]^1 ", szPrefix );
  139.    
  140.     vformat( szMsg[ iLen ], charsmax( szMsg ) - iLen, string, 3 );
  141.    
  142.     if ( index )
  143.         Players[ 0 ] = index;
  144.    
  145.     else
  146.         get_players( Players, PNum, "ch" );
  147.    
  148.     for ( new i; i < PNum; i++ )
  149.     {
  150.         if( is_user_connected( Players[ i ] ) )
  151.         {
  152.             message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, Players[ i ] );
  153.            
  154.             write_byte( Players[ i ] );
  155.            
  156.             write_string( szMsg );
  157.            
  158.             message_end( );
  159.         }
  160.     }
  161.    
  162.     return 1;
  163. }
  164.  
  165. stock szName( const index )
  166. {
  167.     static g_szName[ 32 ];
  168.    
  169.     get_user_name( index, g_szName, charsmax( g_szName ) );
  170.    
  171.     return g_szName;
  172. }
  173.  
  174. stock szAddress( const index, without_port = 1 )
  175. {
  176.     static g_szAddress[ 22 ];
  177.    
  178.     get_user_ip( index, g_szAddress, charsmax( g_szAddress ), without_port );
  179.    
  180.     return g_szAddress;
  181. }
  182.  
  183. stock szAuth( const index )
  184. {
  185.     static g_szAuth[ 35 ];
  186.    
  187.     get_user_authid( index, g_szAuth, charsmax( g_szAuth ) );
  188.    
  189.     return g_szAuth;
  190. }
  191.  
  192. stock print_all_knives_data( const index )
  193. {
  194.     static i;
  195.    
  196.     for ( i = 0; i < sizeof szKnives; i++ )
  197.     {
  198.         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",
  199.         ( i + 1 ), szKnives[ i ][ KNIFE_NAME ], szKnives[ i ][ KNIFE_PRICE ], szKnives[ i ][ KNIFE_CHANCE ], szKnives[ i ][ KNIFE_DAMAGE ], szKnives[ i ][ KNIFE_HEALTH ],
  200.         szKnives[ i ][ KNIFE_ARMOR ], szKnives[ i ][ KNIFE_CRATE ], szKnives[ i ][ KNIFE_CDMG ], szKnives[ i ][ KNIFE_HEGREN ], szKnives[ i ][ KNIFE_FLASH ] );
  201.     }
  202.    
  203.     return 1;
  204. }
  205.  
  206. stock getFirstCritical()
  207. {
  208.     static i;
  209.    
  210.     for ( i = 0; i < sizeof szKnives; i++ )
  211.     {
  212.         if ( szKnives[ i ][ KNIFE_CRATE ] != 0.0 )
  213.             break;
  214.     }
  215.    
  216.     return i;
  217. }
  218.  
  219. stock getKnifeMaxUpgrades( const Knife )
  220. {
  221.     return ( Knife + 1 );
  222. }
Advertisement
Add Comment
Please, Sign In to add comment