Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.

Deathrun_Shop 2.5.2 Smowin Edition

Перейти вниз

Любите ли вы играть на deathrun серверах?

Deathrun_Shop 2.5.2 Smowin Edition  Vote_lcap50%Deathrun_Shop 2.5.2 Smowin Edition  Vote_rcap 50% 
[ 1 ]
Deathrun_Shop 2.5.2 Smowin Edition  Vote_lcap0%Deathrun_Shop 2.5.2 Smowin Edition  Vote_rcap 0% 
[ 0 ]
Deathrun_Shop 2.5.2 Smowin Edition  Vote_lcap0%Deathrun_Shop 2.5.2 Smowin Edition  Vote_rcap 0% 
[ 0 ]
Deathrun_Shop 2.5.2 Smowin Edition  Vote_lcap50%Deathrun_Shop 2.5.2 Smowin Edition  Vote_rcap 50% 
[ 1 ]
 
Всего проголосовало : 2
 
 

Deathrun_Shop 2.5.2 Smowin Edition  Empty Deathrun_Shop 2.5.2 Smowin Edition

Сообщение  SkiTeL Пт Окт 07, 2011 5:13 am

Вот исходник

Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <hamsandwich>
#include <fun>
#include <fakemeta>
#include <deathrun>

#define PICKUP_SND         "items/gunpickup2.wav"
#define HEALTH_SOUND      "items/smallmedkit1.wav"
#define CLOACK_SOUND      "hornet/ag_buzz1.wav"
#define ADMIN_ACCESS_CMD   ADMIN_KICK   
#define OFFSET_MONEY      115
#define   FL_WATERJUMP      (1<<11)
#define   FL_ONGROUND         (1<<9)
#define PRIMARY_WEAPONS_BITSUM ((1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90))

/* --| Plugin informations */
new const PLUGIN[]       = "DeathRun Shop";
new const VERSION[]    = "Smowin Edition v2.5.2";
new const AUTHOR[]       = "tuty & smowin";

new const ClanTag[]    = "[DrShop]";
new const EffectColor[] = { 255, 25, 25 };
 
/* --| Zomg lot of globals */
new gDrShopOn;

new LifeShopOn;
new GravityOn;
new SpeedOn;
new BhopOn;
new HealthArmorOn;
new HeOn;
new BothGrenadesOn;
new ShieldOn;
new DeagleOn;
new AwpOn;
new InvisOn;
new SilentOn;

new gLifeCost;
new gLifeSold;
new gGravityCost;
new gSpeedCost;
new gBhopCost;
new gHealthArmorCost;
new gHeCost;
new gBothGrenadesCost;
new gShieldCost;
new gDeagleCost;
new gAwpCost;
new gInvisCost;
new gSilentCost;

new gGravityCvar;
new gSpeedCvar;
new gHealthPointCvar;
new gArmorPointCvar;
new gInvisPercent;

new gAdvertiseCvar;
new gAdvertiseTimeCvar;

new gMsgMoney;
new g_ADSpr;
new gEffectType;
new iconstatus;

/* --| Item variables */
new HasGravity[ 33 ];
new HasSpeed[ 33 ];
new HasBhop[ 33 ];
new HasHealthArmor[ 33 ];
new HasHe[ 33 ];
new HasBothGren[ 33 ];
new HasShield[ 33 ];
new HasDeagle[ 33 ];
new HasAwp[ 33 ];
new HasInvis[ 33 ];
new HasSilent[ 33 ];

new gName[ 32 char ];
new g_b_Invisible[ 33 ];

/* Colorchat */
enum Color
{
   NORMAL = 1,
   GREEN,
   TEAM_COLOR,
   GREY,
   RED,
   BLUE,
};

new TeamName[ ][ ] =
{
   "",
   "TERRORIST",
   "CT",
   "SPECTATOR"
};

/* --| So, let's get started */
public plugin_init()
{
   /* --| Registering the plugin to show when you type amx_plugins */
   register_plugin( PLUGIN, VERSION, AUTHOR );
   
   /* --| Registering a little cvar to see wich servers using this plugin */
   register_cvar( "drshop_version", VERSION, FCVAR_SERVER | FCVAR_SPONLY );

   /* --| Register some usefull events */
   register_logevent( "logevent_round_start", 2, "1=Round_Start" );
   register_event( "DeathMsg", "Hook_Deathmessage", "a" );
   register_event( "CurWeapon", "HookCurWeapon", "be", "1=1" );
   
   /* --| Command for setting money to player/@all */
   register_concmd( "deathrun_set_money",   "cmdSetMoney", ADMIN_ACCESS_CMD, "<name/@all> <money> - set money to a player" );
   
   /* --| Command for reseting money to palyer/@all */
   register_concmd( "deathrun_reset_money", "cmdResetMoney", ADMIN_ACCESS_CMD, "<name/@all> - reset player money" );
   
   /* --| Command for opening the menu */
   register_clcmd( "say /drshop", "DeathrunShop", 0, "- opening a deathrun shop" );
   register_clcmd( "say_team /drshop", "DeathrunShop", 0, "- opening a deathrun shop" );
   register_clcmd( "/drshop", "DeathrunShop", 0, "- opening a deathrun shop" );
   register_clcmd( "buyequip", "DeathrunShop" );
   
   /* --| Command to see our points  */
   register_clcmd( "say /money", "ShowPoints", 0, "- show your money" );
   register_clcmd( "say_team /money", "ShowPoints", 0, "- show your money" );
   register_clcmd( "/money", "ShowPoints", 0, "- show your money" );
   
   /* --| Command for opening the life menu  */
   register_clcmd( "say /lifemenu", "Life_Menu", 0, "- opening a life menu");
   
   /* --| Let's register the cvars, a lot of cvars but huh.. stf */
   gDrShopOn          = register_cvar( "deathrun_shop", "1" );
   
   LifeShopOn         = register_cvar( "deathrun_lifeshop_enable", "1" );
   GravityOn          = register_cvar( "deathrun_gravity_enable", "1" );
   SpeedOn          = register_cvar( "deathrun_speed_enable", "1" );
   BhopOn             = register_cvar( "deathrun_bhop_enable", "1" );
   HealthArmorOn       = register_cvar( "deathrun_health_armor_enable", "1" );
   HeOn             = register_cvar( "deathrun_he_enable", "1" );
   BothGrenadesOn       = register_cvar( "deathrun_bothgrenades_enable", "1" );
   ShieldOn          = register_cvar( "deathrun_shield_enable", "1" );
   DeagleOn          = register_cvar( "deathrun_deagle_enable", "1" );
   AwpOn             = register_cvar( "deathrun_awp_enable", "1" );
   InvisOn          = register_cvar( "deathrun_invisibility_enable", "1" );
   SilentOn         = register_cvar( "deathrun_silent_enable", "1" );
   
   gLifeCost          = register_cvar( "deathrun_life_cost", "8000" );
   gLifeSold          = register_cvar( "deathrun_life_sold", "5000" );
   gGravityCost       = register_cvar( "deathrun_gravity_cost", "8000" );
   gSpeedCost          = register_cvar( "deathrun_speed_cost", "8000" );
   gBhopCost          = register_cvar( "deathrun_bhop_cost", "8000" );
   gHealthArmorCost    = register_cvar( "deathrun_health_armor_cost", "5000" );
   gHeCost          = register_cvar( "deathrun_he_cost", "3000" );
   gBothGrenadesCost    = register_cvar( "deathrun_bothgrenades_cost", "4000" );
   gShieldCost       = register_cvar( "deathrun_shield_cost", "800" );
   gDeagleCost       = register_cvar( "deathrun_deagle_cost", "16000" );
   gAwpCost          = register_cvar( "deathrun_awp_cost", "16000" );
   gInvisCost          = register_cvar( "deathrun_invisibility_cost", "16000" );
   gSilentCost         = register_cvar( "deathrun_silent_cost", "3000" );
   
   gGravityCvar       = register_cvar( "deathrun_gravity_power", "0.5" );
   gSpeedCvar          = register_cvar( "deathrun_speed_power", "400.0" );
   gHealthPointCvar    = register_cvar( "deathrun_health_points", "150" );
   gArmorPointCvar    = register_cvar( "deathrun_armor_points", "200" );
   gInvisPercent       = register_cvar( "deathrun_invisibility_percentage", "0" );
   
   gAdvertiseCvar       = register_cvar( "deathrun_advertise_message", "1" );
   gAdvertiseTimeCvar    = register_cvar( "deathrun_advertise_time", "7.0" );
   gEffectType       = register_cvar( "deathrun_effect_type", "3" );

   /* --| Let's find/do some stuff here */
   gMsgMoney = get_user_msgid( "Money" );
   iconstatus = get_user_msgid( "StatusIcon" );
   
   /* --| Register the multilingual file */
   register_dictionary( "DeathrunShopLang.txt" );
}

/* --| Precache stuff */
public plugin_precache()
{
   precache_sound( PICKUP_SND );
   precache_sound( HEALTH_SOUND );
   precache_sound( CLOACK_SOUND );
   g_ADSpr = precache_model( "sprites/shockwave.spr" );
}

/* --| Plugin cfg, here we do some ugly shit ever -.- */
public plugin_cfg()
{
   new iCfgDir[ 32 ], iFile[ 192 ];
   
   /* --| We need to find the configs directory, and to add the configuration file */
   get_configsdir( iCfgDir, charsmax( iCfgDir ) );
   formatex( iFile, charsmax( iFile ), "%s/DeathrunShop_Cfg.cfg", iCfgDir );
      
   /* --| If file not exists, let's create one but empty */
   if( !file_exists( iFile ) )
   {
      server_print( "%s %L", ClanTag, LANG_SERVER, "DRSHOP_SVPRINT", iFile );
      write_file( iFile, " ", -1 );
   }
   
   /* --| Else, let's load the cvars from cfg */
   else
   {      
      server_print( "%s %L", ClanTag, LANG_SERVER, "DRSHOP_SVPRINT_DONE", iFile );
      server_cmd( "exec %s", iFile );
   }
   
   /* --| Set the server maxspeed to a high value, need it for speed item */
   server_cmd( "sv_maxspeed 99999999.0" );
}

/* --| When client is connecting, let's reset stuff */
public client_connect( id )
{
   HasGravity[ id ] = false;
   HasSpeed[ id ] = false;
   HasBhop[ id ] = false;
   HasHealthArmor[ id ] = false;
   HasHe[ id ] = false;
   HasBothGren[ id ] = false;
   HasShield[ id ] = false;
   HasDeagle[ id ] = false;
   HasAwp[ id ] = false;
   HasInvis[ id ] = false;
   HasSilent[ id ] = false;
   
   g_b_Invisible[ id ] = false;
}

/* --| When client has disconnected let's reset stuff */
public client_disconnect( id )
{
   HasGravity[ id ] = false;
   HasSpeed[ id ] = false;
   HasBhop[ id ] = false;
   HasHealthArmor[ id ] = false;
   HasHe[ id ] = false;
   HasBothGren[ id ] = false;
   HasShield[ id ] = false;
   HasDeagle[ id ] = false;
   HasAwp[ id ] = false;
   HasInvis[ id ] = false;
   HasSilent[ id ] = false;
   
   g_b_Invisible[ id ] = false;
}

/* --| When client has entered on sv, need to show him a hudmessage */
public client_putinserver( id )
{
   if( get_pcvar_num( gAdvertiseCvar ) != 0 )
   {
      /* --| Need to set task, 7 default because need to wait for player choosing a team or something */
      set_task( get_pcvar_float( gAdvertiseTimeCvar ), "ShowPlayerInfo", id );
   }
}

/* --| Deathrun shop menu with items ^^ */
public DeathrunShop( id )
{
   /* --| If cvar is set to 0, player can't open the shop */
   if( get_pcvar_num( gDrShopOn ) != 1 )
   {
      ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_DISABLED" );
      return PLUGIN_HANDLED;
   }
   
   if( get_pdata_int( id, 114 ) == 3 )
   {
      ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_ONLY_CT_T" );
      return PLUGIN_HANDLED;
   }
   
   /* --| Menu stuff */
   new szText[ 555 char ];
   formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_MENU_TITLE", VERSION, fm_get_user_money(id) );
   
   new menu = menu_create( szText, "shop_handler" );
   
   new money = fm_get_user_money( id );

   
   /* --| Menu item 1 */
   if(get_pcvar_num(LifeShopOn) == 1) {
      formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_1" );
      menu_additem( menu, szText, "1", 0 );
   }
   
   /* --| Menu item 2 */
   if(get_pcvar_num(GravityOn) == 1) {
      if( money >= get_pcvar_num( gGravityCost ) && !HasGravity[ id ] )
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_2_1", get_pcvar_num( gGravityCost ) );
      }
      else
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_2_2", get_pcvar_num( gGravityCost ) );
      }
      menu_additem( menu, szText, "2", 0 );
   }
   
   /* --| Menu item 3 */
   if(get_pcvar_num(SpeedOn) == 1) {
      if( money >= get_pcvar_num( gSpeedCost ) && !HasSpeed[ id ] )
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_3_1", get_pcvar_num( gSpeedCost ) );
      }
      else
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_3_2", get_pcvar_num( gSpeedCost ) );
      }
      menu_additem( menu, szText, "3", 0 );
   }
   
   /* --| Menu item 4 */
   if(get_pcvar_num(BhopOn) == 1) {
      if( money >= get_pcvar_num( gBhopCost ) && !HasBhop[ id ] )
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_4_1", get_pcvar_num( gBhopCost ) );
      }
      else
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_4_2", get_pcvar_num( gBhopCost ) );
      }
      menu_additem( menu, szText, "4", 0 );
   }
   
   /* --| Menu item 5 */
   if(get_pcvar_num(HealthArmorOn) == 1) {
      if( money >= get_pcvar_num( gHealthArmorCost ) && !HasHealthArmor[ id ] )
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_5_1",
            get_pcvar_num( gHealthPointCvar ),get_pcvar_num( gArmorPointCvar ), get_pcvar_num( gHealthArmorCost ) );
      }
      else
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_5_2",
            get_pcvar_num( gHealthPointCvar ),get_pcvar_num( gArmorPointCvar ), get_pcvar_num( gHealthArmorCost ) );
      }
      menu_additem( menu, szText, "5", 0 );
   }
   
   /* --| Menu item 6 */
   if(get_pcvar_num(HeOn) == 1) {
      if( money >= get_pcvar_num( gHeCost ) && !HasHe[ id ] ) 
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_6_1", get_pcvar_num( gHeCost ) );
      }
      else
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_6_2", get_pcvar_num( gHeCost ) );
      }
      menu_additem( menu, szText, "6", 0 );
   }
   
   /* --| Menu item 7 */
   if(get_pcvar_num(BothGrenadesOn) == 1) {
      if( money >= get_pcvar_num( gBothGrenadesCost ) && !HasBothGren[ id ] )
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_7_1", get_pcvar_num( gBothGrenadesCost ) );
      }
      else
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_7_2", get_pcvar_num( gBothGrenadesCost ) );
      }
      menu_additem( menu, szText, "7", 0 );
   }
   
   /* --| Menu item 8 */
   if(get_pcvar_num(ShieldOn) == 1) {
      if( money >= get_pcvar_num( gShieldCost ) && !HasShield[ id ] )
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_8_1", get_pcvar_num( gShieldCost ) );
      }
      else
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_8_2", get_pcvar_num( gShieldCost ) );
      }
      menu_additem( menu, szText, "8", 0 );
   }
   
   /* --| Menu item 9 */
   if(get_pcvar_num(DeagleOn) == 1) {
      if( money >= get_pcvar_num( gDeagleCost ) && !HasDeagle[ id ] )
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_9_1", get_pcvar_num( gDeagleCost ) );
      }
      else
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_9_2", get_pcvar_num( gDeagleCost ) );
      }
      menu_additem( menu, szText, "9", 0 );
   }
   
   /* --| Menu item 10 */
   if(get_pcvar_num(AwpOn) == 1) {
      if( money >= get_pcvar_num( gAwpCost ) && !HasAwp[ id ] )
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_10_1", get_pcvar_num( gAwpCost ) );
      }
      else
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_10_2", get_pcvar_num( gAwpCost ) );
      }
      menu_additem( menu, szText, "10", 0 );
   }
   
   /* --| Menu item 11 */
   if(get_pcvar_num(InvisOn) == 1) {
      if( get_pdata_int( id, 114 ) == 1 && money >= get_pcvar_num( gInvisCost ) && !HasInvis[ id ] )
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_11_T",
            get_pcvar_num( gInvisPercent ), get_pcvar_num( gInvisCost ) );
      }
      else
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_11_CT",
            get_pcvar_num( gInvisPercent ), get_pcvar_num( gInvisCost ) );
      }
      menu_additem( menu, szText, "11", 0 );
   }
   
   /* --| Menu item 12 */
   if(get_pcvar_num(SilentOn) == 1) {
      if( money >= get_pcvar_num( gSilentCost ) && !HasSilent[ id ] )
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_12_1", get_pcvar_num( gSilentCost ) );
      }
      else
      {
         formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_12_2", get_pcvar_num( gSilentCost ) );
      }
      menu_additem( menu, szText, "12", 0 );
   }
   
   
   formatex( szText, charsmax(szText), "%L", id, "DRSHOP_ITEM_BACK" );
   menu_setprop( menu, MPROP_BACKNAME, szText );
   
   formatex( szText, charsmax(szText), "%L", id, "DRSHOP_ITEM_NEXT" );
   menu_setprop( menu, MPROP_NEXTNAME, szText );
   
   formatex( szText, charsmax(szText), "%L", id, "DRSHOP_ITEM_EXIT" );
   menu_setprop( menu, MPROP_EXITNAME, szText );
   
   menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
   menu_display( id, menu, 0 );
   return PLUGIN_HANDLED;
}

/* --| Menu commands */
public shop_handler( id, menu, item )
{
   /* --| If key is 0, let's close the menu */
   if( item == MENU_EXIT )
   {
      menu_destroy( menu );
      return PLUGIN_HANDLED;
   }
   
   /* --| Getting the menu information */
   new data[ 6 ], iName[ 64 ], access, callback;
   menu_item_getinfo( menu, item, access, data, charsmax( data ), iName, charsmax( iName ), callback );

   /* --| Get menu keys */
   new key = str_to_num( data );
   
   /* --| Here we find the player points */
   new money = fm_get_user_money( id );
   
   static Float:originF[ 3 ];
   pev( id, pev_origin, originF );
   
   switch( key )
   {
      /* --| Menu item 1 */
      case 1:
      {
         Life_Menu( id );
      }
      
      /* --| Menu item 2 */
      case 2:
      {
         /*--| If player is dead, cant buy items */
         if( !is_user_alive( id ) )
         {
            only_alive( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         /* --| If already has item, show a damn print and return */
         if( HasGravity[ id ] )
         {
            already_have( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         /* --| If player does not have enough points, show a print and return */
         if( money < get_pcvar_num( gGravityCost ) )
         {
            dont_have( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         effect_type( id );
         
         /* --| Let's give the item, and do some stuff */
         set_user_gravity( id, get_pcvar_float( gGravityCvar ) );
         
         ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_GRAVITY_ITEM" );
         HasGravity[ id ] = true;
         
         fm_set_user_money( id, money - get_pcvar_num( gGravityCost ) );
         emit_sound( id, CHAN_ITEM, PICKUP_SND, VOL_NORM , ATTN_NORM , 0 , PITCH_NORM );
      }
      
      /* --| Menu item 3 */
      case 3:
      {
         /*--| If player is dead, cant buy items */
         if( !is_user_alive( id ) )
         {
            only_alive( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         /* --| If already has item, show a damn print and return */
         if( HasSpeed[ id ] )
         {
            already_have( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         /* --| If player does not have enough points, show a print and return */
         if( money < get_pcvar_num( gSpeedCost ) )
         {
            dont_have( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         effect_type( id );
         
         /* --| Let's give the item, and do some stuff */
         set_user_maxspeed( id, get_pcvar_float( gSpeedCvar ) );
         
         ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_SPEED_ITEM" );
         HasSpeed[ id ] = true;
         
         fm_set_user_money( id, money - get_pcvar_num( gSpeedCost ) );
         emit_sound( id, CHAN_ITEM, PICKUP_SND, VOL_NORM , ATTN_NORM , 0 , PITCH_NORM );
      }
      
      /* --| Menu item 4 */
      case 4:
      {
         /*--| If player is dead, cant buy items */
         if( !is_user_alive( id ) )
         {
            only_alive( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         /* --| If already has item, show a damn print and return */
         if( HasBhop[ id ] )
         {
            already_have( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         /* --| If player does not have enough points, show a print and return */
         if( money < get_pcvar_num( gBhopCost ) )
         {
            dont_have( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         effect_type( id );
         
         /* --| Let's give the item, and do some stuff */
         client_PreThink( id );
         
         ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_BHOP_ITEM" );
         HasBhop[ id ] = true;
         
         fm_set_user_money( id, money - get_pcvar_num( gBhopCost ) );
         emit_sound( id, CHAN_ITEM, PICKUP_SND, VOL_NORM , ATTN_NORM , 0 , PITCH_NORM );
      }
      
      /* --| Menu item 5 */
      case 5:
      {
         /*--| If player is dead, cant buy items :) */
         if( !is_user_alive( id ) )
         {
            only_alive( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         /* --| If already has item, show a damn print and return */
         if( HasHealthArmor[ id ] )
         {
            already_have( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         /* --| If player does not have enough points, show a print and return */
         if( money < get_pcvar_num( gHealthArmorCost ) )
         {
            dont_have( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         iconstatus_show( id );
         set_task( 4.0, "iconstatus_hide", id );
         
         if( get_pcvar_num( gEffectType ) == 1 )
         {
            if( !g_b_Invisible[ id ] )
            {
               set_user_rendering( id, kRenderFxGlowShell, EffectColor[0], EffectColor[1], EffectColor[2], kRenderTransAlpha, 16 );
               set_task( 2.0, "Remove_Rendering", id );
            }
            
            screen_fade( id, 1, 1, 255, 0, 0, 10 );
         }
         
         if( get_pcvar_num( gEffectType ) == 2 )
         {
            Effects( originF, EffectColor[0], EffectColor[1], EffectColor[2] );
            screen_fade( id, 1, 1, 255, 0, 0, 10 );
         }
         
         if( get_pcvar_num( gEffectType ) == 3 )
         {
            if( !g_b_Invisible[ id ] )
            {
               set_user_rendering( id, kRenderFxGlowShell, EffectColor[0], EffectColor[1], EffectColor[2], kRenderTransAlpha, 16 );
               set_task( 2.0, "Remove_Rendering", id );
            }
            
            screen_fade( id, 1, 1, 255, 0, 0, 10 );
            Effects( originF, EffectColor[0], EffectColor[1], EffectColor[2] );
         }
         
         /* --| Let's give the item, and do some stuff */
         set_user_health( id, get_user_health( id ) + get_pcvar_num( gHealthPointCvar ) );
         set_user_armor( id, get_user_armor( id ) + get_pcvar_num( gArmorPointCvar ) );
         
         ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_HEALTH_ARMOR_ITEM", get_pcvar_num( gHealthPointCvar ), get_pcvar_num( gArmorPointCvar ) );
         HasHealthArmor[ id ] = true;
         
         fm_set_user_money( id, money - get_pcvar_num( gHealthArmorCost ) );
         emit_sound( id, CHAN_ITEM, HEALTH_SOUND, VOL_NORM , ATTN_NORM , 0 , PITCH_NORM );
      }
      
      /* --| Menu item 6 */
      case 6:
      {
         /*--| If player is dead, cant buy items */
         if( !is_user_alive( id ) )
         {
            only_alive( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         /* --| If already has item, show a damn print and return */
         if( HasHe[ id ] )
         {
            already_have( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         /* --| If player does not have enough points, show a print and return */
         if( money < get_pcvar_num( gHeCost ) )
         {
            dont_have( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         effect_type( id );
         
         /* --| Let's give the item, and do some stuff */
         give_item( id, "weapon_hegrenade" );
         
         ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_GRENADE_ITEM" );
         HasHe[ id ] = true;
         
         fm_set_user_money( id, money - get_pcvar_num( gHeCost ) );
         emit_sound( id, CHAN_ITEM, PICKUP_SND, VOL_NORM , ATTN_NORM , 0 , PITCH_NORM );
      }
      
      /* --| Menu item 7 */
      case 7:
      {
         /*--| If player is dead, cant buy items */
         if( !is_user_alive( id ) )
         {
            only_alive( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         /* --| If already has item, show a damn print and return */
         if( HasBothGren[ id ] )
         {
            already_have( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         /* --| If player does not have enough points, show a print and return */
         if( money < get_pcvar_num( gBothGrenadesCost ) )
         {
            dont_have( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         effect_type( id );
         
         /* --| Let's give the item, and do some stuff */
         give_item( id, "weapon_flashbang" );
         give_item( id, "weapon_smokegrenade" );
         
         ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_BOTHGREN_ITEM" );
         HasBothGren[ id ] = true;
         
         fm_set_user_money( id, money - get_pcvar_num( gBothGrenadesCost ) );
         emit_sound( id, CHAN_ITEM, PICKUP_SND, VOL_NORM , ATTN_NORM , 0 , PITCH_NORM );
      }
      
      /* --| Menu item 8 */
      case 8:
      {
         /*--| If player is dead, cant buy items */
         if( !is_user_alive( id ) )
         {
            only_alive( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         /* --| If already has item, show a damn print and return */
         if( HasShield[ id ] )
         {
            already_have( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         /* --| If player does not have enough points, show a print and return */
         if( money < get_pcvar_num( gShieldCost ) )
         {
            dont_have( id );
            menu_display(id, menu, 0);
            return PLUGIN_HANDLED;
         }
         
         effect_type( id );
         
         /* --| Let's give the item, and do some stuff */
         drop_primary( id );
         give_item( id, "weapon_shield" );
         
         ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_SHIELD_ITEM" );
         HasShield[ id ] = true;
         
         fm_set_user_money( id, money - get_pcvar_num( gShieldCost ) );
         emit_sound( id, CHAN_ITEM, PICKUP_SND, VOL_NORM , ATTN_NORM , 0 , PITCH_NORM );
      }
      
      /* --| Menu item 9 */
      case 9:
      {
         /*--| If player is dead, cant buy items */
         if( !is_user_alive( id ) )
         {
            only_alive( id );
            menu_display(id, menu, 1);
            return PLUGIN_HANDLED;
         }
         
         /* --| If already has item, show a damn print and return */
         if( HasDeagle[ id ] || user_has_weapon( id, CSW_DEAGLE ) )
         {
            already_have( id );
            menu_display(id, menu, 1);
            return PLUGIN_HANDLED;
         }
      
         /* --| If player does not have enough points, show a print and return */
         if( money < get_pcvar_num( gDeagleCost ) )
         {
            dont_have( id );
            menu_display(id, menu, 1);
            return PLUGIN_HANDLED;
         }
         
         effect_type( id );
         
         /* --| Let's give the item, and do some stuff */
         new iDgl = give_item( id, "weapon_deagle" );
         if( iDgl > 0 )
         {
            cs_set_weapon_ammo( iDgl, 4 );
            cs_set_user_bpammo( id, CSW_DEAGLE, 3 );
         }
         
         ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_DEAGLE_ITEM" );
         HasDeagle[ id ] = true;
         
         fm_set_user_money( id, money - get_pcvar_num( gDeagleCost ) );
         emit_sound( id, CHAN_ITEM, PICKUP_SND, VOL_NORM , ATTN_NORM , 0 , PITCH_NORM );
      }
      
      /* --| Menu item 10 */
      case 10:
      {
         /*--| If player is dead, cant buy items */
         if( !is_user_alive( id ) )
         {
            only_alive( id );
            menu_display(id, menu, 1);
            return PLUGIN_HANDLED;
         }
         
         /* --| If already has item, show a damn print and return */
         if( HasAwp[ id ] || user_has_weapon( id, CSW_AWP ) )
         {
            already_have( id );
            menu_display(id, menu, 1);
            return PLUGIN_HANDLED;
         }
         
         /* --| If player does not have enough points, show a print and return */
         if( money < get_pcvar_num( gAwpCost ) )
         {
            dont_have( id );
            menu_display(id, menu, 1);
            return PLUGIN_HANDLED;
         }
         
         effect_type( id );
         
         /* --| Let's give the item, and do some stuff */
         new iAwp = give_item( id, "weapon_awp" );
         if( iAwp > 0 )
         {
            cs_set_weapon_ammo( iAwp, 1 );
            cs_set_user_bpammo( id, CSW_AWP, 1 );
         }
         
         ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_AWP_ITEM" );
         HasAwp[ id ] = true;
         
         fm_set_user_money( id, money - get_pcvar_num( gAwpCost ) );
         emit_sound( id, CHAN_ITEM, PICKUP_SND, VOL_NORM , ATTN_NORM , 0 , PITCH_NORM );
      }
      
      /* --| Menu item 11 */
      case 11:
      {
         /*--| If player is dead, cant buy items */
         if( !is_user_alive( id ) )
         {
            only_alive( id );
            menu_display(id, menu, 1);
            return PLUGIN_HANDLED;
         }
         
         /* --| If already has item, show a damn print and return */
         if( HasInvis[ id ] )
         {
            already_have( id );
            menu_display(id, menu, 1);
            return PLUGIN_HANDLED;
         }
         
         if( get_user_team( id ) == 2 )
         {
            ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_ONLY_T" );
            menu_display(id, menu, 1);
            return PLUGIN_HANDLED;
         }
      
         /* --| If player does not have enough points, show a print and return */
         if( money < get_pcvar_num( gInvisCost ) )
         {
            dont_have( id );
            menu_display(id, menu, 1);
            return PLUGIN_HANDLED;
         }
         
         /* --| Let's give the item, and do some stuff */
         if( get_pcvar_num( gEffectType ) == 1 )
         {
            if( !g_b_Invisible[ id ] )
            {
               set_user_rendering( id, kRenderFxGlowShell, EffectColor[0], EffectColor[1], EffectColor[2], kRenderTransAlpha, 16 );
               set_task( 2.0, "Remove_Rendering_Invisible", id );
            }
            
            screen_fade( id, 1, 1, EffectColor[0], EffectColor[1], EffectColor[2], 10 );
         }
         
         if( get_pcvar_num( gEffectType ) == 2 )
         {
            if( !g_b_Invisible[ id ] )
            {
               set_task( 2.0, "Remove_Rendering_Invisible", id );
            }
            
            screen_fade( id, 1, 1, EffectColor[0], EffectColor[1], EffectColor[2], 10 );
            Effects( originF, EffectColor[0], EffectColor[1], EffectColor[2] );
         }
         
         if( get_pcvar_num( gEffectType ) == 3 )
         {
            if( !g_b_Invisible[ id ] )
            {
               set_user_rendering( id, kRenderFxGlowShell, EffectColor[0], EffectColor[1], EffectColor[2], kRenderTransAlpha, 16 );
               set_task( 2.0, "Remove_Rendering_Invisible", id );
            }
            
            screen_fade( id, 1, 1, EffectColor[0], EffectColor[1], EffectColor[2], 10 );
            Effects( originF, EffectColor[0], EffectColor[1], EffectColor[2] );
         }
         
         ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_INVISIBILITY_ITEM" );
         HasInvis[ id ] = true;
         g_b_Invisible[ id ] = true;
         
         fm_set_user_money( id, money - get_pcvar_num( gInvisCost ) );
         emit_sound( id, CHAN_ITEM, CLOACK_SOUND, VOL_NORM , ATTN_NORM , 0 , PITCH_NORM );
      }
      
      /* --| Menu item 12 */
      case 12:
      {
         /*--| If player is dead, cant buy items */
         if( !is_user_alive( id ) )
         {
            only_alive( id );
            menu_display(id, menu, 1);
            return PLUGIN_HANDLED;
         }
         
         /* --| If already has item, show a damn print and return */
         if( HasSilent[ id ] )
         {
            already_have( id );
            menu_display(id, menu, 1);
            return PLUGIN_HANDLED;
         }
         
         /* --| If player does not have enough points, show a print and return */
         if( money < get_pcvar_num( gSilentCost ) )
         {
            dont_have( id );
            menu_display(id, menu, 1);
            return PLUGIN_HANDLED;
         }
         
         effect_type( id );
         
         /* --| Let's give the item, and do some stuff */
         set_user_footsteps( id, 1 );
         
         ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_SILENTWALK_ITEM" );
         HasSilent[ id ] = true;
         
         fm_set_user_money( id, money - get_pcvar_num( gSilentCost ) );
         emit_sound( id, CHAN_ITEM, PICKUP_SND, VOL_NORM , ATTN_NORM , 0 , PITCH_NORM );
      }
   }
   
   return PLUGIN_HANDLED;
}

public Life_Menu( id )
{
   /* --| Menu stuff */
   new szText[ 555 char ];
   formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_MENU_TITLE_LIFE", VERSION, show_life( id ), fm_get_user_money( id ) );
   
   new menu2 = menu_create( szText, "shop_life" );
   
   new money = fm_get_user_money( id );
   
   /* --| Menu item 1 */
   if( money >= get_pcvar_num( gLifeCost ) )
   {
      formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_LIFE_1_1", get_pcvar_num( gLifeCost ) );
   }
   else
   {
      formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_LIFE_1_2", get_pcvar_num( gLifeCost ) );
   }
   menu_additem( menu2, szText, "1" );
   
   /* --| Menu item 2 */
   if( show_life( id ) > 0 )
   {
      formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_LIFE_2_1", get_pcvar_num( gLifeSold ) );
   }
   else
   {
      formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_LIFE_2_2", get_pcvar_num( gLifeSold ) );
   }
   menu_additem( menu2, szText, "2" );
   
   /* --| Menu item 3 */
   if( show_life( id ) > 0 && !is_user_alive( id ) )
   {
      formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_LIFE_3_1" );
   }
   else
   {
      formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_LIFE_3_2" );
   }
   menu_additem( menu2, szText, "3" );
   
   formatex( szText, charsmax( szText ), "%L", id, "DRSHOP_ITEM_BACK" );
   menu_additem( menu2, szText, "8" );
   
   formatex( szText, charsmax(szText), "%L", id, "DRSHOP_ITEM_EXIT" );
   menu_setprop( menu2, MPROP_EXITNAME, szText );
   
   menu_setprop( menu2, MPROP_EXIT, MEXIT_ALL );
   menu_display( id, menu2, 0 );
   return PLUGIN_HANDLED;
}

/* --| Menu commands */
public shop_life( id, menu2, item )
{
   /* --| If key is 0, let's close the menu */
   if( item == MENU_EXIT )
   {
      menu_destroy( menu2 );
      return PLUGIN_HANDLED;
   }
   
   /* --| Getting the menu information */
   new data[ 6 ], iName[ 64 ], access, callback;
   menu_item_getinfo( menu2, item, access, data, charsmax( data ), iName, charsmax( iName ), callback );

   /* --| Get menu keys */
   new key = str_to_num( data );
   
   /* --| Here we find the player points */
   new money = fm_get_user_money( id );
   
   switch( key )
   {
      case 1:
      {
         if( money < get_pcvar_num( gLifeCost ) )
         {
            ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_DONTHAVE_MONEY_LIFE" );
            menu_display(id, menu2, 0);
            return PLUGIN_HANDLED;
         }
         
         set_life( id, 1 );
         
         ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_BUY_LIFE" );
         
         fm_set_user_money( id, money - get_pcvar_num( gLifeCost ) );
         emit_sound( id, CHAN_ITEM, PICKUP_SND, VOL_NORM , ATTN_NORM , 0 , PITCH_NORM );
         Life_Menu( id );
      }
      
      case 2:
      {
         if( show_life( id ) <= 0 )
         {
            ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_DONTHAVE_LIFE" );
            menu_display(id, menu2, 0);
            return PLUGIN_HANDLED;
         }
         
         set_life( id, -1 );
         
         ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_SOLD_LIFE" );
         ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_LIFE_INFO", show_life( id ) );
         
         fm_set_user_money( id, money + get_pcvar_num( gLifeSold ) );
         emit_sound( id, CHAN_ITEM, PICKUP_SND, VOL_NORM , ATTN_NORM , 0 , PITCH_NORM );
         Life_Menu( id );
      }
      
      case 3:
      {
         if( show_life( id ) <= 0 )
         {
            ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_DONTHAVE_LIFE" );
            menu_display(id, menu2, 0);
            return PLUGIN_HANDLED;
         }
         
         if( is_user_alive( id ) )
         {
            only_dead( id );
            return PLUGIN_HANDLED;
         }
         
         client_cmd( id, "/uselife" );
      }
      
      case 8:
      {
         client_cmd( id, "/drshop" );
      }
   }
   
   return PLUGIN_HANDLED;
}

public Remove_Rendering( id )
{
   set_user_rendering( id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 16 );
}

public Remove_Rendering_Invisible( id )
{
   set_user_rendering( id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, get_pcvar_num( gInvisPercent ) );
}

public iconstatus_show( id )
{
   if(!(pev(id,pev_button) & FL_ONGROUND))
   {   
      message_begin( MSG_ONE,iconstatus,{0,0,0},id );
      write_byte( 1 ); // status (0=hide, 1=show, 2=flash)
      write_string( "item_healthkit" ); // sprite name
      write_byte( 0 ); // red
      write_byte( 255 ); // green
      write_byte( 0 ); // blue
      message_end();
  }
}

public iconstatus_hide( id )
{
   if(!(pev(id,pev_button) & FL_ONGROUND))
   {   
      message_begin( MSG_ONE,iconstatus,{0,0,0},id );
      write_byte( 0 ); // status (0=hide, 1=show, 2=flash)
      write_string( "item_healthkit" ); // sprite name
      write_byte( 0 ); // red
      write_byte( 255 ); // green
      write_byte( 0 ); // blue
      message_end();
  }
}

public client_PreThink( id )
{
   if( HasBhop[ id ] )
   {
      entity_set_float(id, EV_FL_fuser2, 0.0);
      
      if (entity_get_int(id, EV_INT_button) & 2)
      {
         new flags = entity_get_int(id, EV_INT_flags);
         
         if (flags & FL_WATERJUMP)
            return PLUGIN_CONTINUE;
         if ( entity_get_int(id, EV_INT_waterlevel) >= 2 )
            return PLUGIN_CONTINUE;
         if ( !(flags & FL_ONGROUND) )
            return PLUGIN_CONTINUE;
            
         new Float:velocity[3];
         entity_get_vector(id, EV_VEC_velocity, velocity);
         velocity[2] += 250.0;
         entity_set_vector(id, EV_VEC_velocity, velocity);
            
         entity_set_int(id, EV_INT_gaitsequence, 6);
      }
      return PLUGIN_CONTINUE;
   }
   return PLUGIN_HANDLED;
}

/* --| Command for setting money | admin only */
public cmdSetMoney( id, level, cid )
{
   /* --| If user doesn't have acces to command, return */
   if( !cmd_access( id, level, cid, 2 ) || !get_pcvar_num( gDrShopOn ) )
   {
      return PLUGIN_HANDLED;
   }
   
   /* --| Need to read the first argument */
   new argument[ 32 ];
     read_argv( 1, argument, charsmax( argument ) );

   /* --| Need to read second argument */
   new give_points[ 6 ];
   read_argv( 2, give_points, charsmax( give_points ) );

   /* --| We are getting the gift from second argument */
   new gift = str_to_num( give_points );
   
   new iPlayer[ 32 ], iNum, all;
   get_players( iPlayer, iNum, "c" );

   /* --| Lets see if argument 1 is @all */
   if( equal( argument, "@all" ) )
   {
      for( new i; i < iNum; i++ )
      {
         /* --| Find the index :) */
         all = iPlayer[ i ];
         
         /* --| Set points to all */
         new i_Money;
         i_Money = fm_get_user_money(all);
         fm_set_user_money( all, i_Money + gift );
         
         /* --| Show a print in chat */
         get_user_name( id, gName, charsmax( gName ) );
         ColorChat( 0, RED, "%s^1 %L", ClanTag, LANG_PLAYER, "DRSHOP_SHOW_ALLCMD", gName, gift );
      }
   }
         
   else
   {
      /* --| Now, we find the target */
      new player = cmd_target( id, argument, 10 );

      /* --| If is not a valid target, return */
      if( !player )
      {
            return PLUGIN_HANDLED;
      }

      /* --| Get admin, and target name */
      new TargetName[ 32 char ];
      get_user_name( player, TargetName, charsmax( TargetName ) );
      get_user_name( id, gName, charsmax( gName ) );   
   
      /* --| Setting target points */
      new i_Money;
      i_Money = fm_get_user_money( player );
      fm_set_user_money( player, i_Money + gift );
      ColorChat( 0, RED, "%s^1 %L", ClanTag, LANG_PLAYER, "DRSHOP_SHOW_CMD", gName, gift, TargetName );
   }

   return PLUGIN_HANDLED;
}

/* --| Command for reseting money | admin only */
public cmdResetMoney( id, level, cid )
{
   /* --| If user doesn't have acces to command, return */
   if( !cmd_access( id, level, cid, 2 ) || !get_pcvar_num( gDrShopOn ) )
   {
      return PLUGIN_HANDLED;
   }
   
   /* --| Need to read the first argument */
   new argument[ 32 ];
     read_argv( 1, argument, charsmax( argument ) );
   
   new iPlayer[ 32 ], iNum, all;
   get_players( iPlayer, iNum, "c" );

   /* --| Lets see if argument 1 is @all */
   if( equal( argument, "@all" ) )
   {
      for( new i; i < iNum; i++ )
      {
         /* --| Find the index :) */
         all = iPlayer[ i ];
         
         /* --| Set points to all */
         fm_set_user_money( all, 0, 1 );
         
         /* --| Show a print in chat */
         get_user_name( id, gName, charsmax( gName ) );
         ColorChat( 0, RED, "%s^1 %L", ClanTag, LANG_PLAYER, "DRSHOP_SHOWRESET_ALLCMD", gName );
      }
   }
         
   else
   {
      /* --| Now, we find the target */
      new player = cmd_target( id, argument, 10 );

      /* --| If is not a valid target, return */
      if( !player )
      {
            return PLUGIN_HANDLED;
      }

      /* --| Get admin, and target name */
      new TargetName[ 32 char ];
      get_user_name( player, TargetName, charsmax( TargetName ) );
      get_user_name( id, gName, charsmax( gName ) );   

      /* --| Setting target points */
      fm_set_user_money( player, 0, 1 );
      ColorChat( 0, RED, "%s^1 %L", ClanTag, LANG_PLAYER, "DRSHOP_SHOWRESET_CMD", gName, TargetName );
   }

   return PLUGIN_HANDLED;
}
/* --| We need to check is player has changed his weapon */
public HookCurWeapon( id )
{
   /* --| If plugin is on, and user has speed item, let's set the speed again */
   if( get_pcvar_num( gDrShopOn ) != 0 && HasSpeed[ id ] )
   {
      set_user_maxspeed( id, get_pcvar_float( gSpeedCvar ) );
   }
}
/* --| Command for show points */   
public ShowPoints( id )
{
   set_hudmessage( 255, 42, 212, 0.03, 0.86, 2, 6.0, 5.0 );
   show_hudmessage( id, "%s %L", ClanTag, id, "DRSHOP_MONEY_INFO_HUD", fm_get_user_money(id) );
   
   ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_MONEY_INFO", fm_get_user_money(id) );
   
   return PLUGIN_CONTINUE;
}
/* --| Here we show player hud information about this god damn shop */
public ShowPlayerInfo( id )
{
   /* --| Set a hud message */
   set_hudmessage( 0, 189, 255, -1.0, 0.82, 0, 6.0, 12.0 );
   
   /* --| Now we show the info message in hud channel */
   show_hudmessage( id, "%L", id, "DRSHOP_HUD_INFO" );
}
/* --| Event for round start */      
public logevent_round_start()
{
   /* --| If plugin is on... */
   if( get_pcvar_num( gDrShopOn ) == 1 )
   {
      new iPlayers[ 32 ], iNum, i, id;
      get_players( iPlayers, iNum, "c" );
      
      for( i = 0; i < iNum; i++ )
      {
         /* --| Find the index */
         id = iPlayers[ i ];
         
         /* --| Reseting items */
         HasGravity[ id ] = false;
         HasSpeed[ id ] = false;
         HasBhop[ id ] = false;
         HasHealthArmor[ id ] = false;
         HasHe[ id ] = false;
         HasBothGren[ id ] = false;
         HasShield[ id ] = false;
         HasDeagle[ id ] = false;
         HasAwp[ id ] = false;
         HasInvis[ id ] = false;
         HasSilent[ id ] = false;
         
         set_user_gravity( id, 1.0 );   
         set_user_maxspeed( id, 0.0 );
         set_user_footsteps( id, 0 );
         set_user_rendering( id );
         remove_task( id );
      }
   }
}
/* --| Event when player died */
public Hook_Deathmessage()
{
   /* --| If plugin is on... */
   if( get_pcvar_num( gDrShopOn ) == 1 )
   {
      new victim = read_data( 2 );

      if( !( 1 <= victim <= 32 ) || read_data( 1 ) == victim )
      {
         return PLUGIN_HANDLED;
      }
      
      /* --| Reseting items */
      HasGravity[ victim ] = false;
      HasSpeed[ victim ] = false;
      HasBhop[ victim ] = false;
      HasHealthArmor[ victim ] = false;
      HasHe[ victim ] = false;
      HasBothGren[ victim ] = false;
      HasShield[ victim ] = false;
      HasDeagle[ victim ] = false;
      HasAwp[ victim ] = false;
      HasInvis[ victim ] = false;
      HasSilent[ victim ] = false;
      
      set_user_gravity( victim, 1.0 );   
      set_user_maxspeed( victim, 0.0 );
      set_user_footsteps( victim, 0 );
      set_user_rendering( victim );
      remove_task( victim );
   }
   
   return PLUGIN_CONTINUE;
}

/* --| Usefull stocks on this plugin */
stock effect_type( id )
{
   static Float:originF[ 3 ];
   pev( id, pev_origin, originF );
   
   if( get_pcvar_num( gEffectType ) == 1 )
   {
      if( !g_b_Invisible[ id ] )
      {
         set_user_rendering( id, kRenderFxGlowShell, EffectColor[0], EffectColor[1], EffectColor[2], kRenderTransAlpha, 16 );
         set_task( 2.0, "Remove_Rendering", id );
      }
      
      screen_fade( id, 1, 2, EffectColor[0], EffectColor[1], EffectColor[2], 10 );
   }
         
   if( get_pcvar_num( gEffectType ) == 2 )
   {
      Effects( originF, EffectColor[0], EffectColor[1], EffectColor[2] );
      screen_fade( id, 1, 2, EffectColor[0], EffectColor[1], EffectColor[2], 10 );
   }
         
   if( get_pcvar_num( gEffectType ) == 3 )
   {
      if( !g_b_Invisible[ id ] )
      {
         set_user_rendering( id, kRenderFxGlowShell, EffectColor[0], EffectColor[1], EffectColor[2], kRenderTransAlpha, 16 );
         set_task( 2.0, "Remove_Rendering", id );
      }
      
      Effects( originF, EffectColor[0], EffectColor[1], EffectColor[2] );
      screen_fade( id, 1, 2, EffectColor[0], EffectColor[1], EffectColor[2], 10 );
   }
}

stock only_alive( id )
{
   ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_ONLY_ALIVE" );
}

stock only_dead( id )
{
   ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_ONLY_DEAD" );
}

stock already_have( id )
{
   ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_ALREADY_HAVE" );
}   

stock dont_have( id )
{
   ColorChat( id, RED, "%s^1 %L", ClanTag, id, "DRSHOP_DONTHAVE_MONEY" );
}   

stock fm_get_user_money( index )
{
    new money = get_pdata_int( index, OFFSET_MONEY );
    return money;
}

stock fm_set_user_money( index, money, flash = 1 )
{
    set_pdata_int( index, OFFSET_MONEY, money );
    fm_set_money( index, money, flash );
    return 1;
}

stock fm_set_money( index, money, flash )
{
    message_begin( MSG_ONE_UNRELIABLE, gMsgMoney, {0, 0, 0}, index );
    write_long( money );
    write_byte( flash ? 1 : 0 );
    message_end();
}

stock screen_fade( index, iDuration, iHoldTime, r, g, b, alpha )
{
    message_begin( MSG_ONE, get_user_msgid( "ScreenFade" ), {0,0,0}, index );
    write_short( fade_units_to_seconds( iDuration ) );
    write_short( fade_units_to_seconds( iHoldTime ) );
    write_short( 0x0000 );
    write_byte( r );
    write_byte( g );
    write_byte( b );
    write_byte( alpha );
    message_end();
}

stock fade_units_to_seconds( num )
{
    return ( ( 1<<12 ) * ( num ) );
}

stock drop_primary( id )
{
    new weapons[ 32 ], num;
    get_user_weapons( id, weapons, num );
    for( new i = 0; i < num; i++ )
    {
        if( PRIMARY_WEAPONS_BITSUM & (1<<weapons[ i ]) )
        {
            static wname[ 32 ];
            get_weaponname( weapons[ i ], wname, sizeof wname - 1 );
            engclient_cmd( id, "drop", wname );
        }
    }
}

Effects(const Float:originF3[3], R, G, B)
{
    // Largest ring
    engfunc( EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF3, 0 );
    write_byte( TE_BEAMCYLINDER ); // TE id
    engfunc( EngFunc_WriteCoord, originF3[0] ); // x
    engfunc( EngFunc_WriteCoord, originF3[1] ); // y
    engfunc( EngFunc_WriteCoord, originF3[2] ); // z
    engfunc( EngFunc_WriteCoord, originF3[0] ); // x axis
    engfunc( EngFunc_WriteCoord, originF3[1] ); // y axis
    engfunc( EngFunc_WriteCoord, originF3[2]+100.0 ); // z axis
    write_short( g_ADSpr ); // sprite
    write_byte( 0 ); // startframe
    write_byte( 0 ); // framerate
    write_byte( 4 ); // life
    write_byte( 60 ); // width
    write_byte( 0 ); // noise
    write_byte( R ); // red
    write_byte( G ); // green
    write_byte( B ); // blue
    write_byte( 200 ); // brightness
    write_byte( 0 ); // speed
    message_end();
}

/* COLORCHAT */
ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
{
   new message[ 256 ];
   
   switch( type ) {
      case NORMAL: message[0] = 0x01;
      case GREEN: message[0] = 0x04;
      default: message[0] = 0x03;
   }
   
   vformat( message[1], 251, msg, 4 );
   
   message[ 192 ] = '^0';
   
   replace_all( message, 191, "\YEL", "^1" );
   replace_all( message, 191, "\GRN", "^4" );
   replace_all( message, 191, "\TEM", "^3" );
   
   new team, ColorChange, index, MSG_Type;
   
   if(id)
   {
      MSG_Type = MSG_ONE;
      index = id;
   } else {
      index = FindPlayer();
      MSG_Type = MSG_ALL;
   }
   
   team = get_user_team( index );
   ColorChange = ColorSelection(index, MSG_Type, type);

   ShowColorMessage(index, MSG_Type, message);
   
   if(ColorChange)
   {
      Team_Info(index, MSG_Type, TeamName[team]);
   }
}

ShowColorMessage(id, type, message[])
{
   static bool:saytext_used;
   static get_user_msgid_saytext;
   if(!saytext_used)
   {
      get_user_msgid_saytext = get_user_msgid("SayText");
      saytext_used = true;
   }
   message_begin(type, get_user_msgid_saytext, _, id);
   write_byte(id);   
   write_string(message);
   message_end();   
}

Team_Info(id, type, team[])
{
   static bool:teaminfo_used;
   static get_user_msgid_teaminfo;
   if(!teaminfo_used)
   {
      get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
      teaminfo_used = true;
   }
   message_begin(type, get_user_msgid_teaminfo, _, id);
   write_byte(id);
   write_string(team);
   message_end();

   return 1;
}

ColorSelection(index, type, Color:Type)
{
   switch(Type)
   {
      case RED:
      {
         return Team_Info(index, type, TeamName[1]);
      }
      case BLUE:
      {
         return Team_Info(index, type, TeamName[2]);
      }
      case GREY:
      {
         return Team_Info(index, type, TeamName[0]);
      }
   }

   return 0;
}

FindPlayer()
{
   new i = -1;

   while(i <= get_maxplayers())
   {
      if(is_user_connected(++i))
         return i;
   }

   return -1;
}
/* --| Enf of plugin... */
SkiTeL
SkiTeL
Гуру
Гуру

Сообщения : 255
Очки : 310
Спасибо раз сказали : 10
Дата регистрации : 2011-10-06
Возраст : 30
Откуда : Тверь

https://death-run.profiforum.ru

Вернуться к началу Перейти вниз

Deathrun_Shop 2.5.2 Smowin Edition  Empty Re: Deathrun_Shop 2.5.2 Smowin Edition

Сообщение  SkiTeL Пт Окт 07, 2011 7:18 pm

ЭТО НОРМ МАГАЗ СОВЕТУЮ Evil or Very Mad
SkiTeL
SkiTeL
Гуру
Гуру

Сообщения : 255
Очки : 310
Спасибо раз сказали : 10
Дата регистрации : 2011-10-06
Возраст : 30
Откуда : Тверь

https://death-run.profiforum.ru

Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения