Преработка на Vampire плъгин

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
MadNESs
Извън линия
Потребител
Потребител
Мнения: 207
Регистриран на: 21 Мар 2017, 21:43
Местоположение: Sofia
Се отблагодари: 16 пъти
Получена благодарност: 11 пъти
Обратна връзка:

Преработка на Vampire плъгин

Мнение от MadNESs » 10 Авг 2019, 22:17

Здравейте, имам следния проблем:
Когато от /shop си купя 200HP и направя кил и отново съм на 100HP
Ето Shop и Vampire пългините

Код за потвърждение: Избери целия код

#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < fun >
#include < fakemeta >
#include < engine >
#include < hamsandwich >
#include < nvault >
#include < colorchat >

new const PLUGIN[ ] = 	"BetterPlay Respawn Shop";
new const VERSION[ ] = 	"1.1";
new const AUTHOR[ ] = 	"Smiley";
new const PREFIX[ ] = 	"[Codeine]";

const ITEMS_LEFT = 	2;
new const PlayerModels[ ][ ] = 
{
	"arctic", "leet", "guerilla", "terror", "gign", "urban", "sas", "gsg9"
}

enum gg_data
{
	item_name[ 33 ],
	item_cost
}

new bool:g_szUsedItem[ 8 ][ 33 ], bool:g_szHeImm[ 33 ];
new const gg_shop[ ][ gg_data ] =
{
	//{ "imeto na item-a", cenata }, 
	
	0,
	{ "200 HP + 200 AP", 20 },
	{ "HE Immunity [from 5 grenades]", 30 },
	{ "Double HE Damage", 30 },
	{ "300 Speed", 15 },
	{ "Invisible", 25 },
	{ "Chameleon", 15 },
	{ "Knife Double Damage", 25 }
}

new iHeImmunes[ 33 ];
new g_szPoints[ 33 ], g_szSync, g_szVault, g_szMaxPlayers, bool:g_szAdmin[ 33 ], itemsleft[ 33 ];

public plugin_init( )
{
	register_plugin( PLUGIN, VERSION, AUTHOR );
	
	register_concmd( "ggshop_give_points", "GivePoints", ADMIN_RCON, "<name/@all> <points>" );
	register_concmd( "ggshop_remove_points", "RemovePoints", ADMIN_RCON, "<name> <points>" );
	
	register_event( "DeathMsg", "EventDeath", "a" );
	register_event( "CurWeapon", "eventCurWeapon", "be", "1=1" ); 
	
	RegisterHam( Ham_Spawn, "player", "fwdPlayerSpawn", 1 );
	RegisterHam( Ham_TakeDamage, "player", "fwdPlayerTakeDamage" );
	
	register_clcmd( "say /shop", "clcmdShop" );
	register_clcmd( "say_team /shop", "clcmdShop" );
	
	g_szSync = CreateHudSyncObj( );
	g_szVault = nvault_open( "RespawnShop_Data" );
	g_szMaxPlayers = get_maxplayers( );
	
	//set_task( 60.0, "TaskAdvertising", _, _, _, "b" );
}
public GivePoints( id, level, cid )
{
	if( !cmd_access( id, level, cid, 3) ) return PLUGIN_HANDLED;
	
	new arg1[ 64 ], arg2[ 33 ], points;
	read_argv( 1, arg1, charsmax( arg1 ) );
	read_argv( 2, arg2, charsmax( arg2 ) );
	
	points = str_to_num( arg2 );
	if( points <= 0 ) return PLUGIN_HANDLED;
	
	new AdminName[ 64 ];
	get_user_name( id, AdminName, charsmax( AdminName ) );
	
	if( equal( arg1, "@all" ) )
	{
		new iPlayers[ 32 ], iNum, all_index;
		get_players( iPlayers, iNum, "ch" );
		
		for( new i = 0; i < iNum; i++ )
		{
			all_index = iPlayers[ i ];
			g_szPoints[ all_index ] += points;
			SavePoints( all_index );
		}
		
		ColorChat( 0, TEAM_COLOR, "%s^1 ADMIN:^3 %s^1 gave^4 %d^1 Token%s to^3 All Players", PREFIX, AdminName, points, points == 1 ? "" : "s" );
	}
	else
	{
		new target = cmd_target( id, arg1, CMDTARGET_NO_BOTS );
		if( !target ) return PLUGIN_HANDLED;
		
		g_szPoints[ target ] += points;
		SavePoints( target );
		
		new TargetName[ 64 ];
		get_user_name( target, TargetName, charsmax( TargetName ) );
		
		ColorChat( 0, TEAM_COLOR, "%s^1 ADMIN:^3 %s^1 gave^4 %d^1 Token%s to^3 %s.", PREFIX, AdminName, points, points == 1 ? "" : "s", TargetName );
	}

	return PLUGIN_HANDLED;
}

public RemovePoints( id, level, cid )
{
	if( !cmd_access( id, level, cid, 3) ) return PLUGIN_HANDLED;
	
	new arg1[ 64 ], arg2[ 33 ], points;
	read_argv( 1, arg1, charsmax( arg1 ) );
	read_argv( 2, arg2, charsmax( arg2 ) );
	
	new target = cmd_target( id, arg1, CMDTARGET_NO_BOTS );
	if( !target ) return PLUGIN_HANDLED;
		
	points = str_to_num( arg2 );
	if( points <= 0 ) return PLUGIN_HANDLED;
	
	new AdminName[ 64 ];
	get_user_name( id, AdminName, charsmax( AdminName ) );

	g_szPoints[ target ] -= points;
	SavePoints( target );
		
	new TargetName[ 64 ];
	get_user_name( target, TargetName, charsmax( TargetName ) );
		
	ColorChat( 0, TEAM_COLOR, "%s^1 ADMIN:^3 %s^1 removed^4 %d^1 Token%s from^3 %s.", PREFIX, AdminName, points, points == 1 ? "" : "s", TargetName );
	
	return PLUGIN_HANDLED;
}

public client_authorized( id )
{
	LoadPoints( id );
	
	g_szAdmin[ id ] = bool:( get_user_flags( id ) & ADMIN_BAN );
}

public client_disconnected( id )
{
	SavePoints( id );
	
	g_szAdmin[ id ] = false;
}

public EventDeath( )
{
	new killer = read_data( 1 ), victim = read_data( 2 );
	
	if( is_user_connected( killer ) && is_user_alive( killer ) && killer != victim )
	{
		if( cs_get_user_team( killer ) == cs_get_user_team( victim ) )
		{
			new lost_points = 20;
			
			g_szPoints[ killer ] -= lost_points;
			SavePoints( killer );
			
			ColorChat( killer, TEAM_COLOR, "%s^1 You lost^3 %d^4 token%s^1 for killing^3 teammate^1.", PREFIX, lost_points, lost_points == 1 ? "" : "s" );
			lost_points = 0;
		}
		else
		{
			new win_points;
			if( read_data( 3 ) ) win_points = g_szAdmin[ killer ] ? 4 : 2;
			else win_points = g_szAdmin[ killer ] ? 2 : 1;
			
			if( win_points )
			{
				g_szPoints[ killer ] += win_points;
				win_points = 0;
				SavePoints( killer );
			}
		}
	}
}

public clcmdShop( id )
{
	if( cs_get_user_team( id ) == CS_TEAM_SPECTATOR ) 
	{
		return PLUGIN_CONTINUE;
	}
	
	if( !itemsleft[ id ] )
	{
		ColorChat( id, TEAM_COLOR, "%s^1 Please^3 wait^4 next^1 spawn^3 to^4 use^1 the^3 shop^4 again^1.", PREFIX );
		return PLUGIN_CONTINUE;
	}
	
	if( !is_user_alive( id ) )
	{
		ColorChat( id, TEAM_COLOR, "%s^1 Need to be^3 alive to^4 use the^1 shop!", PREFIX );
		return PLUGIN_CONTINUE;
	}
	
	ShowGGShop( id );
	return PLUGIN_CONTINUE;
}

public ShowGGShop( id )
{
	new iTitle[ 256 ];
	formatex( iTitle, charsmax( iTitle ), "\d[ \rBS \d]^nToken%s: %d | Item%s Left: %d", g_szPoints[ id ] == 1 ? "" : "s", g_szPoints[ id ], itemsleft[ id ] == 1 ? "" : "s", itemsleft[ id ] );

	new menu = menu_create( iTitle, "GGShopHandler" );
	
	for( new i = 1; i < sizeof( gg_shop ); i++ )
	{
		new tempid[ 10 ], g_szItem[ 64 ];
		num_to_str( i, tempid, charsmax( tempid ) );
		
		if( g_szPoints[ id ] < gg_shop[ i ][ item_cost ] || g_szUsedItem[ i ][ id ] )
		{
			formatex( g_szItem, charsmax( g_szItem ), "%s [%d token%s]", gg_shop[ i ][ item_name ], gg_shop[ i ][ item_cost ], gg_shop[ i ][ item_cost ] == 1 ? "" : "s" );
		}
		else
		{
			formatex( g_szItem, charsmax( g_szItem ), "\y%s \w[\r%d \ytoken%s\w]", gg_shop[ i ][ item_name ], gg_shop[ i ][ item_cost ], gg_shop[ i ][ item_cost ] == 1 ? "" : "s" );
		}
		
		menu_additem( menu, g_szItem, tempid, _, menu_makecallback( "GGShopCallback" ) );
	}
	
	menu_display( id, menu, 0 );
}

public GGShopCallback( id, menu, item )
{
	new g_szAccess, g_szInfo[ 3 ], g_szCallback;
	menu_item_getinfo( menu, item, g_szAccess, g_szInfo, charsmax( g_szInfo ), _, _, g_szCallback );
	
	if( g_szPoints[ id ] < gg_shop[ str_to_num( g_szInfo ) ][ item_cost ] || g_szUsedItem[ str_to_num( g_szInfo ) ][ id ] )
	{
		return ITEM_DISABLED;
	}

	return ITEM_ENABLED;
}

public GGShopHandler( id, menu, item )
{
	if( item == MENU_EXIT )
	{
		menu_destroy( menu );
		return PLUGIN_HANDLED;
	}
	
	new iData[ 6 ], iName[ 63 ], iAccess, iCallback;
	menu_item_getinfo( menu, item, iAccess, iData, charsmax( iData ), iName, charsmax( iName ), iCallback );
	
	if( !is_user_alive( id ) ) return PLUGIN_HANDLED;
	new g_szData = str_to_num( iData );
	
	switch( g_szData )
	{
		case 1:
		{
			set_user_health( id, 200 );
			cs_set_user_armor( id, 200, CS_ARMOR_VESTHELM );
			
			GGShopData( id, g_szData );
		}
		case 2:
		{
			g_szHeImm[ id ] = true;
			GGShopData( id, g_szData );
		}
		case 3: GGShopData( id, g_szData );
		case 4:
		{
			set_user_maxspeed( id, 300.0 );
			client_cmd( id, "cl_forwardspeed 300" );
			GGShopData( id, g_szData );
		}
		case 5:
		{
			set_user_rendering( id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 60 );
			GGShopData( id, g_szData );
		}
		case 6:
		{
			cs_set_user_model( id, PlayerModels[ cs_get_user_team( id ) == CS_TEAM_CT ? random_num( 0, 3 ) : random_num( 4,7 ) ] ); 				
			GGShopData( id, g_szData );
		}
		case 7: GGShopData( id, g_szData );
	}
		
	menu_destroy( menu );
	return PLUGIN_HANDLED;
}

stock GGShopData( index, g_Item )
{
	itemsleft[ index ]--;
	g_szUsedItem[ g_Item ][ index ] = true;
	
	g_szPoints[ index ] -= gg_shop[ g_Item ][ item_cost ];
	ColorChat( index, TEAM_COLOR, "%s^3 You^1 bought^4 %s^3.", PREFIX, gg_shop[ g_Item ][ item_name ] );
}

public fwdPlayerSpawn( id )
{
	if( is_user_alive( id ) )
	{
		Reset( id );
	}
}

public fwdPlayerTakeDamage( victim, inflictor, attacker, Float:damage, damagebits )
{
	if( damagebits & ( 1 << 24 ) )
	{
		new Float:gOrigin[ 3 ], Float:tOrigin[ 3 ]; 
		pev( inflictor, pev_origin, gOrigin );
		pev( victim, pev_origin, tOrigin );
	
		if( vector_distance( gOrigin, tOrigin ) > 260.0 ) return HAM_IGNORED;
		
		if( g_szHeImm[ victim ] && iHeImmunes[ victim ] < 5 )
		{		
			iHeImmunes[ victim ]++;
			client_print( victim, print_center, "Immunity from HEGrenades: %d of 5", iHeImmunes[ victim ] );
				
			SetHamParamFloat( 4, 0.0 );
		}
		else
		{
			g_szHeImm[ victim ] = false;
		}
		
		if( g_szUsedItem[ 3 ][ attacker ] && ( 1 <= attacker <= g_szMaxPlayers ) && victim != attacker )
		{
			SetHamParamFloat( 4, ( damage * 2 ) );
		}
		
		else if( !g_szHeImm[ victim ] && !g_szUsedItem[ 3 ][ attacker ] )
		{
			new Float:dmg = random_float( 35.0, 75.0 );
			SetHamParamFloat( 4, dmg );
		}
	}
	else
	{
		if( g_szUsedItem[ 7 ][ attacker ] && ( 1 <= attacker <= g_szMaxPlayers ) && victim != attacker && get_user_weapon( attacker ) == CSW_KNIFE )
		{
			SetHamParamFloat( 4, ( damage * 2 ) );
		}
	}
	
	return HAM_IGNORED;
}

public eventCurWeapon( id )
{
	if( g_szUsedItem[ 4 ][ id ] ) 
	{
		set_user_maxspeed( id, 300.0 );
	}
}

stock Reset( index )
{
	for( new i = 1; i < sizeof( gg_shop ); i++ )
	{
		g_szUsedItem[ i ][ index ] = false;
	}
	
	itemsleft[ index ] = ITEMS_LEFT;
	iHeImmunes[ index ] = 0;
	
	g_szHeImm[ index ] = false;
	
	remove_task( index );
	
	set_user_maxspeed( index, 250.0 );
	client_cmd( index, "cl_forwardspeed 300" );
	
	set_user_rendering( index, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255 );
	cs_reset_user_model( index );
}

public LoadPoints( id )
{
	if( !is_user_bot( id ) && !is_user_hltv( id ) )
	{
		new vaultdata[ 256 ], points[ 33 ], UserName[ 33 ];
		get_user_name( id, UserName, charsmax( UserName ) );

		format( vaultdata, charsmax( vaultdata ), "%i#", g_szPoints[ id ] );
		nvault_get( g_szVault, UserName, vaultdata, 255 );
		
		replace_all( vaultdata, 255, "#", " " );
		parse( vaultdata, points, 32 );
		
		g_szPoints[ id ] = str_to_num( points );
	}
}

public SavePoints( id )
{
	if( !is_user_bot( id ) && !is_user_hltv( id ) )
	{
		new vaultdata[ 256 ], UserName[ 33 ];
		get_user_name( id, UserName, charsmax( UserName ) );

		format( vaultdata, charsmax( vaultdata ), "%i#", g_szPoints[ id ] );
		nvault_set( g_szVault, UserName, vaultdata );
	}
}

public TaskAdvertising( )
{
	for( new i = 1; i <= 32; i++ )
	{
		if( !is_user_connected( i ) ) continue;
		
		ColorChat( i, TEAM_COLOR, "%s^1 Type^4 /shop^1 to buy^3 items^1.", PREFIX );
	}
}

Код за потвърждение: Избери целия код

/*
*   http://games.qwerty.ru
*
*	AmxModX
*   Vampire plugin
*    by Shalfey
*
*   CVars
*   amx_vampire_hp - hp add for kill
*   amx_vampire_hp_hs - hp add for kill in head
*   amx_vampire_max_hp - max player hp
*
*   Players gets HP for kills.
*/
#include <amxmodx>
#include <fun>

#define PLUGIN_VERSION "1.0c"

new health_add
new health_hs_add
new health_max

new nKiller
new nKiller_hp
new nHp_add
new nHp_max

public plugin_init()
{
   register_plugin("Vampire", PLUGIN_VERSION, "Shalfey")

   health_add = register_cvar("amx_vampire_hp", "15")
   health_hs_add = register_cvar("amx_vampire_hp_hs", "40")
   health_max = register_cvar("amx_vampire_max_hp", "200")

   register_event("DeathMsg", "hook_death", "a", "1>0") 	
}

public hook_death()
{
   // Killer id
   nKiller = read_data(1)

   if ( (read_data(3) == 1) && (read_data(5) == 0) )
   {
      nHp_add = get_pcvar_num (health_hs_add)
   }
   else
      nHp_add = get_pcvar_num (health_add)

   nHp_max = get_pcvar_num (health_max)

   // Updating Killer HP
   nKiller_hp = get_user_health(nKiller)
   nKiller_hp += nHp_add

   // Maximum HP check
   if (nKiller_hp > nHp_max) nKiller_hp = nHp_max

   set_user_health(nKiller, nKiller_hp)

   // Hud message "Healed +15/+40 hp"
   set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
   show_hudmessage(nKiller, "Healed +%d hp", nHp_add)

   // Screen fading
   message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, nKiller)
   write_short(1<<10)
   write_short(1<<10)
   write_short(0x0000)
   write_byte(0)
   write_byte(0)
   write_byte(200)
   write_byte(75)
   message_end()
   
} 

Аватар
Shapeshifter
Извън линия
Потребител
Потребител
Мнения: 49
Регистриран на: 10 Май 2018, 13:16
Се отблагодари: 1 път
Получена благодарност: 5 пъти

Преработка на Vampire плъгин

Мнение от Shapeshifter » 10 Авг 2019, 22:29

Тест

Код за потвърждение: Избери целия код

/*
*   http://games.qwerty.ru
*
*	AmxModX
*   Vampire plugin
*    by Shalfey
*
*   CVars
*   amx_vampire_hp - hp add for kill
*   amx_vampire_hp_hs - hp add for kill in head
*   amx_vampire_max_hp - max player hp
*
*   Players gets HP for kills.
*/
#include <amxmodx>
#include <fun>

#define PLUGIN_VERSION "1.0c"

new health_add
new health_hs_add

new nKiller
new nKiller_hp
new nHp_add

public plugin_init()
{
   register_plugin("Vampire", PLUGIN_VERSION, "Shalfey")
   health_add = register_cvar("amx_vampire_hp", "15")
   health_hs_add = register_cvar("amx_vampire_hp_hs", "40")
   register_event("DeathMsg", "hook_death", "a", "1>0") 	
}

public hook_death()
{
   // Killer id
   nKiller = read_data(1)

   if ( (read_data(3) == 1) && (read_data(5) == 0) )
   {
      nHp_add = get_pcvar_num (health_hs_add)
   }
   else
      nHp_add = get_pcvar_num (health_add)

   // Updating Killer HP
   nKiller_hp = get_user_health(nKiller)
   nKiller_hp += nHp_add

   // Maximum HP check
   if (nKiller_hp > 200) nKiller_hp = 200

   set_user_health(nKiller, nKiller_hp)

   // Hud message "Healed +15/+40 hp"
   set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
   show_hudmessage(nKiller, "Healed +%d hp", nHp_add)

   // Screen fading
   message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, nKiller)
   write_short(1<<10)
   write_short(1<<10)
   write_short(0x0000)
   write_byte(0)
   write_byte(0)
   write_byte(200)
   write_byte(75)
   message_end()
   
} 
QuadGS.COM # ZombieApocalypse[Nanosuit|FreeVIP|SaveAP] # ZombieApocalypse[Nanosuit|SaveAP] - IP: 93.123.18.44:27015

Аватар
MadNESs
Извън линия
Потребител
Потребител
Мнения: 207
Регистриран на: 21 Мар 2017, 21:43
Местоположение: Sofia
Се отблагодари: 16 пъти
Получена благодарност: 11 пъти
Обратна връзка:

Преработка на Vampire плъгин

Мнение от MadNESs » 10 Авг 2019, 22:37

Shapeshifter написа: 10 Авг 2019, 22:29 Тест

Код за потвърждение: Избери целия код

/*
*   http://games.qwerty.ru
*
*	AmxModX
*   Vampire plugin
*    by Shalfey
*
*   CVars
*   amx_vampire_hp - hp add for kill
*   amx_vampire_hp_hs - hp add for kill in head
*   amx_vampire_max_hp - max player hp
*
*   Players gets HP for kills.
*/
#include <amxmodx>
#include <fun>

#define PLUGIN_VERSION "1.0c"

new health_add
new health_hs_add

new nKiller
new nKiller_hp
new nHp_add

public plugin_init()
{
   register_plugin("Vampire", PLUGIN_VERSION, "Shalfey")
   health_add = register_cvar("amx_vampire_hp", "15")
   health_hs_add = register_cvar("amx_vampire_hp_hs", "40")
   register_event("DeathMsg", "hook_death", "a", "1>0") 	
}

public hook_death()
{
   // Killer id
   nKiller = read_data(1)

   if ( (read_data(3) == 1) && (read_data(5) == 0) )
   {
      nHp_add = get_pcvar_num (health_hs_add)
   }
   else
      nHp_add = get_pcvar_num (health_add)

   // Updating Killer HP
   nKiller_hp = get_user_health(nKiller)
   nKiller_hp += nHp_add

   // Maximum HP check
   if (nKiller_hp > 200) nKiller_hp = 200

   set_user_health(nKiller, nKiller_hp)

   // Hud message "Healed +15/+40 hp"
   set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
   show_hudmessage(nKiller, "Healed +%d hp", nHp_add)

   // Screen fading
   message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, nKiller)
   write_short(1<<10)
   write_short(1<<10)
   write_short(0x0000)
   write_byte(0)
   write_byte(0)
   write_byte(200)
   write_byte(75)
   message_end()
   
} 
Работи, обаче искам само тези които са си купили 200HP от Shop да имат max 200 инаме другите max 120HP

Аватар
Shapeshifter
Извън линия
Потребител
Потребител
Мнения: 49
Регистриран на: 10 Май 2018, 13:16
Се отблагодари: 1 път
Получена благодарност: 5 пъти

Преработка на Vampire плъгин

Мнение от Shapeshifter » 10 Авг 2019, 22:42

MadNESs написа: 10 Авг 2019, 22:37 Работи, обаче искам само тези които са си купили 200HP от Shop да имат max 200 инаме другите max 120HP
Не мисля, че докато използваш тези двата плъгина това има как да се направи или на мен мозъчния капацитет не ми го побира, защото хората закупили кръв от шопа я получават на момента и в следващия в който направят кил, от вампайър плъгина проверява дали кръвта на играча е над Х лимит и ако е го слага обратно на 200 в случая.
QuadGS.COM # ZombieApocalypse[Nanosuit|FreeVIP|SaveAP] # ZombieApocalypse[Nanosuit|SaveAP] - IP: 93.123.18.44:27015

Аватар
mi0
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 534
Регистриран на: 09 Дек 2016, 22:02
Се отблагодари: 97 пъти
Получена благодарност: 120 пъти
Обратна връзка:

Преработка на Vampire плъгин

Мнение от mi0 » 11 Авг 2019, 00:42

Код за потвърждение: Избери целия код

health_max = register_cvar("amx_vampire_max_hp", "200")
-->

Код за потвърждение: Избери целия код

health_max = register_cvar("amx_vampire_max_hp", "201")
aka kurdokoleno
Catch Mod - 87.121.112.232:27021

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: Bing [Bot], Google [Bot] и 16 госта