Advertisement
Guest User

Scout Hnr Menu (XP, LEVEL)

a guest
Jul 9th, 2014
296
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 17.20 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <engine>  
  4. #include <vault>
  5. #include <hamsandwich>
  6. #include <fvault>
  7.  
  8. #pragma tabsize 0
  9.  
  10. #define is_valid_player(%1) (1 <= %1 <= 32)
  11.  
  12. new Scout_model[33];
  13.  
  14. new const g_VAULTNAME[] = "Scout-Skins";
  15. new const VERSION[] = "2.2"
  16. new const AUTHOR[] = "SerMajor"
  17.  
  18.  
  19. new iLevel[33];
  20. new iXp[33];
  21.  
  22. new scout_on;
  23.  
  24. new MaxLevel;
  25. new StartedLevel;
  26.  
  27. new cvar_KillXp;
  28. new cvar_HsXp;
  29. new cvar_ScoutXp;
  30.  
  31. new Forward_spawn;
  32. new Forward_levelup;
  33. new ForwardReturn;
  34.  
  35. new const g_scoutNames[][32] =
  36. {
  37. "yellow Scout",
  38. "Violet scout",
  39. "steyr scout",
  40. "sig sauer sg3000 scout",
  41. "safari scout",
  42. "pharaoh scout",
  43. "komando steyrscout scout",
  44. "default scout reskin gtwalq",
  45. "crossbow scout",
  46. "blue scout",
  47. "badass m24 scout",
  48. "ak scout",
  49. };
  50.  
  51. new const g_scoutvModels[][256] =
  52. {
  53. "models/v_scout.mdl",
  54. "models/lolscouthnr/v_scout_yellow.mdl",
  55. "models/lolscouthnr/v_scout_steyr.mdl",
  56. "models/lolscouthnr/v_scout_sg3000.mdl",
  57. "models/lolscouthnr/v_scout_safari.mdl",
  58. "models/lolscouthnr/v_scout_pharaoh.mdl",
  59. "models/lolscouthnr/v_scout_komando.mdl",
  60. "models/lolscouthnr/v_scout_default.mdl",
  61. "models/lolscouthnr/v_scout_crossbow.mdl",
  62. "models/lolscouthnr/v_scout_blue.mdl",
  63. "models/lolscouthnr/v_scout_badass.mdl",
  64. "models/lolscouthnr/v_scout_ak.mdl"
  65. }
  66.  
  67. native register_maxlevels( maxlevel = 99, started_xp_level = 100 );
  68. native get_user_level( index );
  69. native get_user_xp( index );
  70.  
  71. public plugin_init() {  
  72.    
  73.     register_plugin(g_VAULTNAME, VERSION, AUTHOR);
  74.     register_cvar("scout_skins", VERSION, FCVAR_SERVER); // Find Servers on Game-Monitor
  75.     set_cvar_string("scout_skins", VERSION); // Find Servers on Game-Monitor
  76.    
  77.     // register max levels 13 is the top level, 100 is the started level xp.
  78.     register_maxlevels( 13, 100 );
  79.    
  80.     //Admin commands
  81.    
  82.     register_concmd("scout_givexp" ,"givexp",ADMIN_RCON,"Add xp to a player")
  83.     register_concmd("scout_takexp", "takexp",ADMIN_RCON,"Remove xp from a player")
  84.    
  85.     //Clcmd's
  86.    
  87.     scout_on = register_cvar( "Scout_skins", "1" )
  88.    
  89.     register_clcmd("say","HandleSay");
  90.     register_clcmd("say_team","HandleSay")
  91.     register_clcmd("say /scout", "ScoutSkinsMenu");
  92.     register_clcmd("say /Slevel", "PlayerLevelsMenu");
  93.    
  94.     //Event's
  95.    
  96.     register_event("CurWeapon","CurWeapon","be","1=1");
  97.     register_event( "DeathMsg", "EventDeathMsg", "a" );
  98.    
  99.     //Cvar's
  100.    
  101.     cvar_KillXp = register_cvar( "kill_xp", "5" );
  102.     cvar_HsXp = register_cvar( "hs_xp", "2" );
  103.     cvar_ScoutXp = register_cvar( "Scout_xp", "3" );
  104.    
  105.     //Ham's
  106.    
  107.     RegisterHam( Ham_Spawn, "player", "FwdPlayerSpawn", 1 );
  108.     RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
  109.    
  110.     //Forward's
  111.    
  112.     Forward_levelup = CreateMultiForward( "forward_client_levelup", ET_IGNORE, FP_CELL, FP_CELL, FP_CELL );
  113.     Forward_spawn = CreateMultiForward( "forward_client_spawn", ET_IGNORE, FP_CELL , FP_CELL, FP_CELL );
  114.    
  115.     set_task(15.0, "scoutmessage", 0, _, _, "b")
  116.     set_task(35.0, "Levelmessage", 0, _, _, "b")
  117. }
  118.  
  119. public plugin_precache() {  
  120.    
  121.     precache_model("models/lolscouthnr/v_scout_yellow.mdl")  
  122.     precache_model("models/lolscouthnr/v_scout_steyr.mdl")  
  123.     precache_model("models/lolscouthnr/v_scout_sg3000.mdl")
  124.     precache_model("models/lolscouthnr/v_scout_safari.mdl")
  125.     precache_model("models/lolscouthnr/v_scout_pharaoh.mdl")
  126.     precache_model("models/lolscouthnr/v_scout_komando.mdl")
  127.     precache_model("models/lolscouthnr/v_scout_default.mdl")
  128.     precache_model("models/lolscouthnr/v_scout_crossbow.mdl")
  129.     precache_model("models/lolscouthnr/v_scout_blue.mdl")
  130.     precache_model("models/lolscouthnr/v_scout_badass.mdl")
  131.     precache_model("models/lolscouthnr/v_scout_ak.mdl")
  132.    
  133. }
  134.  
  135. public plugin_natives( )
  136. {
  137.     //Native's
  138.    
  139.     register_library( "scout-Skins" );
  140.    
  141.     register_native( "register_maxlevels", "_register_maxlevels" );
  142.     register_native( "get_user_level", "_get_user_level" );
  143.     register_native( "set_user_level", "_set_user_level" );
  144.     register_native( "get_user_xp", "_get_user_xp" );
  145.     register_native( "set_user_xp", "_set_user_xp" );
  146. }
  147.  
  148. public _register_maxlevels( plugin, params )
  149. {
  150.     if( MaxLevel != 0 && StartedLevel != 0 )
  151.     {
  152.         return;
  153.     }
  154.     else
  155.     {
  156.         MaxLevel = get_param( 1 );
  157.         StartedLevel = get_param( 2 );
  158.     }
  159. }
  160.  
  161. public _get_user_level( plugin, params )
  162. {
  163.     return iLevel[ get_param( 1 ) ];
  164. }
  165.  
  166. public _set_user_level( plugin, params )
  167. {
  168.     iLevel[ get_param( 1 ) ] = max( get_param( 2 ), MaxLevel );
  169.    
  170.     FlsahLevelUp( get_param( 1 ) );
  171.    
  172.     SaveData( get_param( 1 ) );
  173.    
  174.     LoadData( get_param( 1 ) );
  175. }
  176.  
  177. public _get_user_xp( plugin, params )
  178. {
  179.     return iXp[ get_param( 1 ) ];
  180. }
  181.  
  182. public _set_user_xp( plugin, params )
  183. {
  184.     iXp[ get_param( 1 ) ] = get_param( 2 );
  185.    
  186.     CheckLevel( get_param( 1 ) );
  187.    
  188.     SaveData( get_param( 1 ) );
  189.    
  190.     LoadData( get_param( 1 ) );
  191. }
  192.  
  193. public CheckLevel( id )
  194. {
  195.     if( iLevel[id] == MaxLevel )
  196.     {
  197.         return;
  198.     }
  199.     else
  200.     {
  201.         new level = iLevel[id] > 0 ? iLevel[id] : 1;
  202.        
  203.         new xp = level * StartedLevel;
  204.        
  205.         if( iLevel[id] > 0 )
  206.         {
  207.             xp +=  ( xp * 4 / 2 );
  208.         }
  209.        
  210.         while( iXp[id] >= xp )
  211.         {
  212.             iLevel[id]++;
  213.            
  214.             ColorChat(id,"^4Congratulations!^1 You'r have level up! You'r new^4 LEVEL^1 is: ^3%i^1.", iLevel[id]);
  215.             ColorChat(0,"^3%s^1 has level up to^4 LEVEL^3 %i^1!",get_player_name(id), iLevel[id]);
  216.            
  217.             FlsahLevelUp(id);
  218.            
  219.             ExecuteForward( Forward_levelup, ForwardReturn, id, iLevel[id], iXp[id] );
  220.            
  221.             SaveData( id );
  222.            
  223.             CheckLevel( id );
  224.            
  225.             break;
  226.         }
  227.     }
  228. }
  229.  
  230. public FlsahLevelUp( id )
  231. {
  232.     message_begin( MSG_ONE, get_user_msgid( "ScreenFade" ), { 0, 0, 0}, id );
  233.     write_short( 1 << 10 );
  234.     write_short( 1 << 10 );
  235.     write_short( 0 );
  236.     write_byte( 0 );
  237.     write_byte( 255 );
  238.     write_byte( 215 );
  239.     write_byte( 100 );
  240.     message_end( );
  241. }
  242.  
  243.  
  244. public HandleSay(id){
  245.    
  246.     if (get_pcvar_num(scout_on) == 0)
  247.     {
  248.         ColorChat(id, "The mod has been disabale.");
  249.         return PLUGIN_HANDLED;
  250.     }
  251.    
  252.     new iMsg[200], iArgs[4][60];
  253.     new level = iLevel[id] > 0 ? iLevel[id] : 1;
  254.    
  255.     new xp = level * StartedLevel;
  256.    
  257.     if( iLevel[id] > 0 )
  258.     {
  259.         xp +=  ( xp * 4 / 2 );
  260.     }
  261.    
  262.     read_argv(1,iMsg ,sizeof iMsg - 1);
  263.     parse(iMsg,iArgs[0],charsmax(iArgs[]),iArgs[1],charsmax(iArgs[]),iArgs[2],charsmax(iArgs[]),iArgs[3],charsmax(iArgs[]));
  264.    
  265.     if (equali(iArgs[0],"/level") || equali(iArgs[0],"/lvl") || equali(iArgs[0],"/xp"))
  266.     {    
  267.         new player = cmd_target(id,iArgs[1],CMDTARGET_NO_BOTS);
  268.        
  269.         if (!player)
  270.         {
  271.             ColorChat( id, "Your^4 LEVEL^1 is:^3 %i^4 |^1 Your^4 XP^1 is:^3 %i^1/^3%i^1.", iLevel[id], iXp[id], xp );
  272.         }
  273.     }
  274.    
  275.     return 0;
  276. }
  277.  
  278. public EventDeathMsg(id)
  279. {
  280.     if (get_pcvar_num(scout_on) == 0)
  281.         return PLUGIN_HANDLED;
  282.    
  283.     new killer = read_data( 1 );
  284.     new victim = read_data( 2 );
  285.    
  286.     if( killer == victim || ! is_user_connected( killer ) || ! is_user_connected( victim ) )
  287.     {
  288.         return PLUGIN_HANDLED;
  289.         //return;
  290.     }
  291.    
  292.     new XpAmount = get_pcvar_num( cvar_KillXp );
  293.    
  294.     if( read_data( 3 ) )
  295.     {
  296.         XpAmount += get_pcvar_num( cvar_HsXp );
  297.     }
  298.    
  299.     static sWeapon[ 26 ];
  300.    
  301.     read_data( 4, sWeapon, sizeof( sWeapon ) - 1 );
  302.    
  303.    
  304.     if( equal( sWeapon, "scout" ) )  
  305.     {
  306.         XpAmount += get_pcvar_num( cvar_scoutXp );
  307.     }
  308.    
  309.     iXp[ killer ] += XpAmount;
  310.    
  311.     CheckLevel( killer );
  312.    
  313.     SaveData( killer );
  314.    
  315.     ColorChat( killer, "You have gained^3 %i^1 XP.", XpAmount );
  316.    
  317.     return PLUGIN_HANDLED;
  318. }
  319.  
  320. public FwdPlayerSpawn( id )
  321. {
  322.     ExecuteForward( Forward_spawn, ForwardReturn, id, iLevel[id], iXp[id] );
  323. }
  324.  
  325. public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
  326. {
  327.     if( get_pcvar_num( scout_on ) == 0 )
  328.         return HAM_IGNORED;
  329.    
  330.     if( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_SCOUT )
  331.     {
  332.         SetHamParamFloat(4, damage + scout_model[attacker]);
  333.        
  334.         return HAM_HANDLED;
  335.     }
  336.    
  337.     return HAM_IGNORED;
  338. }
  339.  
  340. public scoutSkinsMenu(id) {
  341.    
  342.     if (get_pcvar_num(scout_on) == 0)
  343.     {
  344.         ColorChat(id, "The mod has been disabale.");
  345.         return PLUGIN_HANDLED;
  346.     }
  347.    
  348.     new szItem[256], szYellow[50], szSteyr[50], szSg3000[50], szSafari[50], szPharaoh[50], szKomando[50], szDefault[50], szCrossbow[50], szBlue[50], szBadass[50],
  349.     szAk[50];
  350.    
  351.     new level = iLevel[id] > 0 ? iLevel[id] : 1;
  352.    
  353.     new xp = level * StartedLevel;
  354.    
  355.     if( iLevel[id] > 0 )
  356.     {
  357.         xp +=  ( xp * 4 / 2 );
  358.     }
  359.    
  360.     formatex(szItem, charsmax(szItem), "\w[ \r%s \w] \yScout Skins Menu \rv%s^n\yYour Level: \r%d \w- \yYour XP: \r%d\w/\r%d\w.^n\yPage:\r", g_VAULTNAME, VERSION,iLevel[id],iXp[id], xp);
  361.     formatex(szYellow, charsmax(szYellow),"%s", iLevel[id] >= 1 ? "\wYellow Scout [\yUNLOCKED\w]" : "\d???? ????? [\rLEVEL 1 REQUIRE\d]");
  362.     formatex(szSteyr, charsmax(szSteyr),"%s", iLevel[id] >= 2 ? "\wSteyr Scout [\yUNLOCKED\w]" : "\d?????? ?????? [\rLEVEL 2 REQUIRE\d]");
  363.     formatex(szSg3000, charsmax(szSg3000),"%s", iLevel[id] >= 3 ? "\wSg3000 Scout [\yUNLOCKED\w]" : "\d???? ?????? [\rLEVEL 3 REQUIRE\d]");
  364.     formatex(szSafari, charsmax(szSafari),"%s", iLevel[id] >= 4 ? "\wSafari Scout [\yUNLOCKED\w]" : "\d??????????? ????? [\rLEVEL 4 REQUIRE\d]");
  365.     formatex(szPharaoh, charsmax(szPharaoh),"%s", iLevel[id] >= 5 ? "\wPharaoh Scout [\yUNLOCKED\w]" : "\d??????? ?????? [\rLEVEL 5 REQUIRE\d]");
  366.     formatex(szKomando, charsmax(szKomando),"%s", iLevel[id] >= 6 ? "\wKomando Scout [\yUNLOCKED\w]" : "\d???? ????? [\rLEVEL 6 REQUIRE\d]");
  367.     formatex(szDefault, charsmax(szDefault),"%s", iLevel[id] >= 7 ? "\wDefault Scout [\yUNLOCKED\w]" : "\d?????? ????? [\rLEVEL 7 REQUIRE\d]");
  368.     formatex(szCrossbow, charsmax(szCrossbow),"%s", iLevel[id] >= 8 ? "\wCrossbow Scout [\yUNLOCKED\w]" : "\d??????????? ??? [\rLEVEL 8 REQUIRE\d]");
  369.     formatex(szBlue, charsmax(szBlue),"%s", iLevel[id] >= 9 ? "\wBlue Scout [\yUNLOCKED\w]" : "\d?????? ?????? [\rLEVEL 9 REQUIRE\d]");
  370.     formatex(szBadass, charsmax(szBadass),"%s", iLevel[id] >= 10 ? "\wBadass Scout [\yUNLOCKED\w]" : "\d???????? ????? [\rLEVEL 10 REQUIRE\d]");
  371.     formatex(szAk, charsmax(szAk),"%s", iLevel[id] >= 11 ? "\wAk Scout [\yUNLOCKED\w]" : "\d?????????? [\rLEVEL 11 REQUIRE\d]");
  372.    
  373.     new menu = menu_create( szItem, "scoutSkinsMenu_Handler" );
  374.     menu_additem(menu, "\wNormal scout [\yUNLOCKED\w]", "", 0 );
  375.     menu_additem(menu, szYellow, "", iLevel[id] >= 1 ? 0 : 1);
  376.     menu_additem(menu, szSteyr, "", iLevel[id] >= 2 ? 0 : 1);
  377.     menu_additem(menu, szSg3000, "", iLevel[id] >= 3 ? 0 : 1);
  378.     menu_additem(menu, szSafari, "", iLevel[id] >= 4 ? 0 : 1);
  379.     menu_additem(menu, szPharaoh, "", iLevel[id] >= 5 ? 0 : 1);
  380.     menu_additem(menu, szKomando, "", iLevel[id] >= 6 ? 0 : 1);
  381.     menu_additem(menu, szDefault, "", iLevel[id] >= 7 ? 0 : 1);
  382.     menu_additem(menu, szCrossbow, "", iLevel[id] >= 8 ? 0 : 1);
  383.     menu_additem(menu, szBlue, "", iLevel[id] >= 9 ? 0 : 1);
  384.     menu_additem(menu, szBadass, "", iLevel[id] >= 10 ? 0 : 1);
  385.     menu_additem(menu, szAk, "", iLevel[id] >= 11 ? 0 : 1);
  386.    
  387.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL );
  388.     menu_display(id, menu, 0 );
  389.    
  390.     return PLUGIN_HANDLED;
  391. }
  392.  
  393. public ScoutSkinsMenu_Handler(id, menu, item)
  394. {
  395.     if(item == MENU_EXIT)
  396.     {
  397.         menu_destroy(menu)
  398.         return PLUGIN_HANDLED
  399.     }
  400.    
  401.     SetScout(id, item);
  402.     ColorChat(id, "The Scout you chose is: ^4%s^1.", g_ScoutNames[item]);
  403.    
  404.     SaveData(id);
  405.     return PLUGIN_HANDLED;
  406. }
  407.  
  408. public SetScout(id, item) {
  409.    
  410.     Scout_model[id] = item
  411.    
  412.     new Clip, Ammo, Weapon = get_user_weapon(id, Clip, Ammo)  
  413.     if ( Weapon != CSW_SCOUT )
  414.         return PLUGIN_HANDLED
  415.    
  416.     new vModel[56],pModel[56]
  417.    
  418.     if (get_pcvar_num(Scout_on) == 0)
  419.     {
  420.         format(vModel,55,"models/v_scout.mdl")
  421.         return PLUGIN_HANDLED;
  422.     }
  423.    
  424.     format(vModel,55, g_ScoutvModels[item])
  425.     format(pModel,55,"models/p_Scout.mdl")
  426.     entity_set_string(id, EV_SZ_viewmodel, vModel)
  427.     entity_set_string(id, EV_SZ_weaponmodel, pModel)
  428.    
  429.     return PLUGIN_HANDLED;  
  430. }
  431.  
  432. public PlayerLevelsMenu(id)
  433. {  
  434.     if (get_pcvar_num(Scout_on) == 0)
  435.     {
  436.         ColorChat(id, "The mod has been disabale.");
  437.         return PLUGIN_HANDLED;
  438.     }
  439.    
  440.     new some[256], menu;
  441.    
  442.     static players[32],szTemp[10],pnum;
  443.     get_players(players,pnum,"ch");
  444.    
  445.     formatex(some,255,"\w[ \r%s \w] \yPlayer's Level:\r", g_VAULTNAME);
  446.    
  447.     menu = menu_create(some,"PlayerLevelsMenu_Handler");
  448.    
  449.     for (new i; i < pnum; i++)
  450.     {
  451.         new level = iLevel[players[i]] > 0 ? iLevel[players[i]] : 1;
  452.        
  453.         new xp = level * StartedLevel;
  454.        
  455.         if( iLevel[players[i]] > 0 )
  456.         {
  457.             xp +=  ( xp * 4 / 2 );
  458.         }
  459.        
  460.         formatex(some,256,"%s \y(Level: \r%i\y) \w- \y(XP: \r%i\w/\r%i\y)",get_player_name(players[i]), iLevel[players[i]], iXp[players[i]], xp);
  461.         num_to_str(players[i],szTemp,charsmax(szTemp));
  462.         menu_additem(menu, some, szTemp);
  463.     }
  464.    
  465.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL );
  466.     menu_display(id, menu);
  467.    
  468.     return PLUGIN_HANDLED;
  469. }
  470.  
  471. public PlayerLevelsMenu_Handler(id,menu, item){
  472.     if (item == MENU_EXIT)
  473.     {
  474.         menu_destroy(menu);
  475.         return;
  476.     }
  477.    
  478.     new data[6] ,szName[64],access,callback;
  479.    
  480.     menu_item_getinfo(menu, item, access, data, charsmax(data), szName, charsmax(szName), callback);
  481.    
  482.     new player = str_to_num(data);
  483.    
  484.     new level = iLevel[player] > 0 ? iLevel[player] : 1;
  485.    
  486.     new xp = level * StartedLevel;
  487.    
  488.     if( iLevel[player] > 0 )
  489.     {
  490.         xp +=  ( xp * 4 / 2 );
  491.     }
  492.    
  493.     ColorChat(id,"^3%s's ^4LEVEL ^1is: ^3%i ^1with ^3%i^1/^3%i ^4XP^1.",get_player_name(player), iLevel[player], iXp[player], xp);
  494.     PlayerLevelsMenu(id);
  495. }
  496.  
  497. public CurWeapon(id)
  498. {
  499.     // Set Knife Model
  500.     SetScout(id, Scout_model[id])
  501. }
  502.  
  503. public givexp(id) {
  504.     if (get_pcvar_num(Scout_on) == 0)
  505.     {
  506.         ColorChat(id, "The mod has been disabale.");
  507.         return PLUGIN_HANDLED;
  508.     }
  509.    
  510.     if( get_user_flags( id ) & ADMIN_RCON ) {
  511.        
  512.         new PlayerToGive[32], XP[32]
  513.         read_argv(1,PlayerToGive,31)
  514.         read_argv(2,XP, 31)
  515.         new Player = cmd_target(id,PlayerToGive,9)
  516.        
  517.         if(!Player) {
  518.            
  519.             return PLUGIN_HANDLED
  520.            
  521.         }
  522.        
  523.         new XPtoGive = str_to_num(XP)
  524.         new name[32],owner[32]
  525.         get_user_name(id,owner,31)
  526.         get_user_name(Player,name,31)
  527.         ColorChat(0,"^4ADMIN^3 %s^1 give to^4 %s^3 %s^1 XP.", owner,name,XP );
  528.         iXp[Player]+= XPtoGive
  529.         CheckLevel(Player);
  530.         SaveData(id)
  531.        
  532.     }
  533.    
  534.     else {
  535.        
  536.         client_print(id,print_console,"You have no acces to that command")
  537.        
  538.         return PLUGIN_HANDLED
  539.     }
  540.    
  541.     return PLUGIN_HANDLED;
  542. }
  543.  
  544. public takexp(id) {
  545.     if (get_pcvar_num(Scout_on) == 0)
  546.     {
  547.         ColorChat(id, "The mod has been disabale.");
  548.         return PLUGIN_HANDLED;
  549.     }
  550.    
  551.     if(get_user_flags(id) & ADMIN_RCON ) {
  552.        
  553.        
  554.         new PlayerToTake[32], XP[32]
  555.         read_argv(1,PlayerToTake,31 )
  556.         read_argv(2,XP,31 )
  557.         new Player = cmd_target(id,PlayerToTake,9)
  558.        
  559.         if(!Player) {
  560.            
  561.             return PLUGIN_HANDLED
  562.            
  563.         }
  564.        
  565.         new XPtoTake = str_to_num(XP)
  566.         new name[32],owner[32]
  567.         get_user_name(id,owner,31)
  568.         get_user_name(Player,name,31)
  569.         ColorChat(0,"^4ADMIN^3 %s^1 take to^4 %s^3 %s^1 XP.", owner,name,XP );
  570.         iXp[ Player ]-=XPtoTake
  571.         CheckLevel(Player);
  572.         SaveData(id)
  573.        
  574.     }
  575.    
  576.     else {
  577.        
  578.         client_print(id,print_console,"You have no acces to that command.")
  579.        
  580.         return PLUGIN_HANDLED
  581.        
  582.     }
  583.    
  584.     return PLUGIN_HANDLED;
  585. }
  586.  
  587. public client_disconnect(id) {  
  588.    
  589.     if(task_exists(id)){
  590.         remove_task(id)
  591.     }
  592.     SaveData(id);
  593. }  
  594.  
  595.  
  596. public Scoutmessage(id) {
  597.    
  598.     if (get_pcvar_num(Scout_on) == 0)
  599.         return PLUGIN_HANDLED;
  600.    
  601.     ColorChat(0, "Type ^3/Scout ^1in chat to open the ^4Scout Skins Menu^1.");
  602.     ColorChat(0, "This server is running ^4%s ^3v%s^1 by ^4%s^1.",g_VAULTNAME, VERSION, AUTHOR)
  603.     return PLUGIN_HANDLED;
  604. }  
  605.  
  606. public Levelmessage(id) {
  607.    
  608.     if (get_pcvar_num(Scout_on) == 0)
  609.         return PLUGIN_HANDLED;
  610.    
  611.     ColorChat(0,"To see other ^4Players Level ^1type ^3/level ^1in chat.");
  612.     return PLUGIN_HANDLED;
  613. }
  614.  
  615. public client_putinserver(id) LoadData(id);
  616.  
  617. public SaveData(id){
  618.    
  619.     new authid[32]
  620.     get_user_authid(id, authid, 31)
  621.    
  622.     new vaultkey[64]
  623.     new vaultdata[64]
  624.    
  625.     format(vaultkey, 63, "SCOUTMOD_%s", authid)
  626.     format(vaultdata, 63, "%d", Scout_model[id])
  627.     set_vaultdata(vaultkey, vaultdata)
  628.    
  629.     new data[ 16 ];
  630.    
  631.     get_user_authid( id, authid, sizeof( authid ) - 1 );
  632.    
  633.     formatex( data, sizeof( data ) - 1, "%d %d", iLevel[id], iXp[id] );
  634.    
  635.     fvault_set_data(g_VAULTNAME, authid, data );
  636.    
  637.     return;
  638.    
  639.    
  640. }
  641.  
  642. public LoadData(id){
  643.    
  644.     new authid[32]  
  645.     get_user_authid(id,authid,31)
  646.    
  647.     new vaultkey[64], vaultdata[64]
  648.    
  649.     format(vaultkey, 63, "SCOUTMOD_%s", authid)
  650.     get_vaultdata(vaultkey, vaultdata, 63)
  651.     Scout_model[id] = str_to_num(vaultdata)
  652.    
  653.     new data[ 16 ], szLevel[ 8 ], szXp[ 8 ];
  654.    
  655.     get_user_authid( id, authid, sizeof( authid ) - 1 );
  656.    
  657.     if( fvault_get_data(g_VAULTNAME, authid, data, sizeof( data ) - 1 ) )
  658.     {
  659.         strbreak( data, szLevel, sizeof( szLevel ) - 1, szXp, sizeof( szXp ) - 1 );
  660.        
  661.         iLevel[id] = str_to_num( szLevel );
  662.         iXp[id] = str_to_num( szXp );
  663.        
  664.         return;
  665.     }
  666.     else
  667.     {
  668.         iLevel[id] = 0;
  669.         iXp[id] = 0;
  670.        
  671.         return;
  672.     }
  673. }
  674.  
  675. stock get_player_name(id){
  676.     static szName[32];
  677.     get_user_name(id,szName,31);
  678.     return szName;
  679. }
  680.  
  681. stock ColorChat( const id, const string[ ], { Float, Sql, Resul, _ } : ... )
  682. {
  683. new msg[ 191 ], players[ 32 ], count = 1;
  684.  
  685. static len;
  686. len = formatex( msg, charsmax( msg ), "^x04[^x01 Scout-Skins^x04 ]^x01 " );
  687. vformat( msg[ len ], charsmax( msg ) - len, string, 3 );
  688.  
  689. if( id )
  690.     players[ 0 ] = id;
  691.     else
  692.         get_players( players,count,"ch" );
  693.    
  694.     for( new i = 0; i < count; i++ )
  695.     {
  696.         if( is_user_connected( players[i] ) )
  697.         {
  698.             message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _ , players[ i ] );
  699.             write_byte( players[ i ] );
  700.             write_string( msg );
  701.             message_end( );
  702.         }
  703.     }
  704. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement