Basic Knife Skills

В този раздел се качват всякакви съб-плъгини, тоест добавки за такива плъгини, които имат собствено API и позволяват изработката на съб-плъгини работещи с тях.
Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Basic Knife Skills

Мнение от OciXCrom » 12 Фев 2019, 23:43

Изображение

Basic Knife Skills
Описание
  • Този плъгин е добавка за Knife Models, която ви позволява да добавите специални умения за ножовете.
Информация
  • С какво е този плъгин по-добър от останалите подобни?
    • Уменията и стойностите им не са hardcode-нати в самия код и могат да бъдат променени по всяко време и настроени както искате.
    • Можете да добавяте колкото искате умения и колкото искате ножове с различни умения.
    • Може да се задават различни стойности за уменията за всеки един нож, вместо да се ползва една и съща за всички.
    • Може да се комбинират всички умения, да се ползва само едно или няколко.
    • Уменията в този плъгин не са единствените които можете да добавите - можете да добавите и други съб-плъгини които съдържат и други умения, даже можете и сами да си измислите такива.
Списък с умения
  • Уменията се добавят в конфигурационния файл на главния плъгин - configs/KnifeModels.ini, по същия начин по който се добавят обикновените настройки.
  • Имайте предвид, че по подразбиране уменията са активни само когато играчът държи ножа в ръцете. Ако искате да бъдат активни за всяко оръжие, променете кварът km_knife_only_skills на "1".
  • Следните умения са достъпни в този плъгин:
    • GRAVITY = <стойност> -- променя гравитацията на играча
      • Стойностите са същите които се ползват за настройката "sv_gravity", демек 800 е нормална гравитация и всичко под това число намаля гравитацията ви и ви позволява да скачате по-високо, като 0 напълно я изключва.
    • SPEED = <стойност> -- променя скоростта на играча
      • Нормалната скорост при ползване на нож е 250.
      • Имайте предвид, че максималната позволена скорост може да бъде ограничена със сървърната настройка "sv_maxspeed" и клиентските настройки "cl_forwardspeed", "cl_sidespeed" и "cl_backspeed".
    • DAMAGE = <стойност> -- променя щетата която прави играчът
      • Можете да ползвате +, -, да увеличите или умножите щетата с определен процент и прочие.
      • Примери:
        • DAMAGE = +25% ще увеличи щетата с 25%
        • DAMAGE = +25 ще добави 25 към щетата
        • DAMAGE = *2 ще увеличи щетата 2 пъти
        • DAMAGE = 10 ще направи удар да прави точно 10 щета
        • DAMAGE = -5% ще намали щетата за 5%
        • DAMAGE = /2 ще намали щетата наполовина
    • PROTECTION = <стойност> -- променя щетата която получава играчът
      • Работи по същия начин като "DAMAGE", демек стойност от "-50%" ще намали получената щета наполовина.
    • SILENT_STEPS = 1 -- играчът не издава звук когато тича (тихи стъпки)
    • HEALTH_ON_KILL = <кръв при убийство> [максимум кръв] -- дава кръв при убийство
      • Ако не посочите максимум кръв, тя по подразбиране ще бъде 100.
    • ARMOR_ON_KILL = <броня при убийство> [максимум броня] -- дава броня при убийство
      • Ако не посочите максимум броня, тя по подразбиране ще бъде 100.
    • MONEY_ON_KILL = <пари при убийство> [максимум пари] -- дава пари при убийство
      • Ако не посочите максимум пари, те по подразбиране ще бъдат 16000.
    • GLOW = <червено> <зелено> <синьо> [яркост] [fx mode] [render mode] -- задава glow на играча
      • Само първите 3 параметри са нужни (червено, зелено и синьо).
      • Ако не бъде посочена яркост, тя по подразбиране ще бъде 40.
      • FX mode по подразбиране е 19.
      • Render mode по подразбиране е 0.
      • Примери:
        • GLOW = 255 0 0 ще зададе напълно червен цвят
        • GLOW = 0 0 0 40 ще направи играчът почти невидим
Допълнителна информация и линк за теглене

Изображение
Изображение
Изображение

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Basic Knife Skills

Мнение от OciXCrom » 15 Фев 2019, 20:20

Изображение
  • Оправен е проблемът където скоростта може да се променя по време на freeze time.

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Basic Knife Skills

Мнение от OciXCrom » 02 Юни 2019, 15:04

Изображение
  • Добавено е ново умение "PROTECTION" което променя щетата която играчът получава - обратно от умението "DAMAGE".

Аватар
rian18
Извън линия
Foreigner
Foreigner
Мнения: 17
Регистриран на: 19 Юли 2020, 12:11
Се отблагодари: 10 пъти

Basic Knife Skills

Мнение от rian18 » 27 Ное 2020, 22:56

These skills are absolutely cool.
There is an issue when having speed on in a knife and using speed from crx shop. speed from custom shop doesnt work when other weapon than knife is eqiupped. faster speed only works in knife. is that a bug? good job anyway.
CSHOP: Default Items 4.2.2 OciXCrom
Basic Skills 1.1 OciXCrom
Последно промяна от rian18 на 27 Ное 2020, 23:26, променено общо 1 път.

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Basic Knife Skills

Мнение от OciXCrom » 27 Ное 2020, 23:10

Try setting the "Add to Current" option to "1" for the Speed item in Custom Shop.

Аватар
rian18
Извън линия
Foreigner
Foreigner
Мнения: 17
Регистриран на: 19 Юли 2020, 12:11
Се отблагодари: 10 пъти

Basic Knife Skills

Мнение от rian18 » 28 Ное 2020, 12:52

OciXCrom написа: 27 Ное 2020, 23:10 Try setting the "Add to Current" option to "1" for the Speed item in Custom Shop.
that's not working. as soon as u select a knife with speed skills all other weapons go slow then, even with "Add to Current" option "1".

Аватар
rian18
Извън линия
Foreigner
Foreigner
Мнения: 17
Регистриран на: 19 Юли 2020, 12:11
Се отблагодари: 10 пъти

Basic Knife Skills

Мнение от rian18 » 05 Дек 2020, 15:20

equal thing with transparency and insivibility from cshop and knife skills.
buying transparency with gun you get transparent. as soon as you switch to a knife with skills you are no longer transparent.
[Default Knife] .... SPEED = 285 HEALTH_ON_KILL = 25 250 MONEY_ON_KILL = 50 30000

[Dual Katana] ... DAMAGE = +25% HEALTH_ON_KILL = 50 250 MONEY_ON_KILL = 100 30000 SPEED = 310 PROTECTION = -20% SILENT_STEPS = 1

edit: this happens when glow is activated in skills.

Аватар
tom1k
Извън линия
Потребител
Потребител
Мнения: 202
Регистриран на: 29 Сеп 2020, 23:50
Местоположение: Добрич
Се отблагодари: 16 пъти
Получена благодарност: 8 пъти

Basic Knife Skills

Мнение от tom1k » 05 Май 2021, 19:49

Може ли да се добави double xp и double bm points? Става на въпрос за блокмейкър сървър
https://forums.alliedmods.net/showthread.php?p=997635

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

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

new const P[] = "HNS Shop Edited"
new const A[] = "xPaw & Grim"
new const V[] = "1.0"

new const prefix[] = "^3International-Gaming^4"

//Natives for Anti-Frost and XP
native add_user_immune( id );
native remove_user_immune( id );

native hnsxp_get_user_xp(client);
native hnsxp_set_user_xp(client, xp);

stock hnsxp_add_user_xp(client, xp) {
	return hnsxp_set_user_xp(client, hnsxp_get_user_xp(client) + xp);
}
//End Natives

new bm_points[33], AwpReward, HeadshotReward, NormalReward, KillMessage, g_vault

// Cost of items
new deaglecost, m3cost, awpcost, hecost;
new healthcost, healthammount, armorcost, armorammount;
new noflashcost, nofrostcost;
new xpcost, xpamount;
new respawncost;

//Used or not?
new userhealth[33], userarmor[33], userawp[33], usernoflash[33], usernofrost[33], userxp[33];
new userrespawn[33], userm3[33], userdeagle[33], userhe[33]


//Floats
new Float:g_gametime2;
new Float:g_gametime, g_owner;

//For Anti-Flash
new grenade[32];
new bool:g_track_enemy;
new bool:g_track[33];
new g_msgScreenFade, last;
new g_sync_check_data;

//Plugin init
public plugin_init( )
{
	register_plugin(P,V,A)
	register_clcmd( "say /shop", "bm_hns_shop" )
	register_clcmd( "say_team /shop", "bm_hns_shop" )
	register_clcmd( "say /hnsshop", "bm_hns_shop" )
	register_clcmd( "say_team /hnsshop", "bm_hns_shop" )
	register_clcmd( "say /bmshop", "bm_hns_shop" )
	register_clcmd( "say_team /bmshop", "bm_hns_shop")
	register_clcmd( "say /points", "MyPoints" )
	register_clcmd( "say_team /points", "MyPoints" )
	
	// admin command to give bm points
	register_concmd("amx_give_bm_points", "cmd_give_bmpoints", ADMIN_RCON, "<Name> <BM Points Amount>")
	register_concmd("amx_take_bm_points", "cmd_take_bmpoints", ADMIN_RCON, "<Name> <BM Points Amount>")
	register_concmd("amx_give_bm_points_all", "cmd_give_bmpoints_all", ADMIN_RCON, "<BM Points Amount>")
	
	// events 
	RegisterHam(Ham_Spawn, "player", "fwPlayerSpawn", 1)
	register_event("DeathMsg", "eDeath", "a");
	register_event("ScreenFade", "eventFlash", "be", "4=255", "5=255", "6=255", "7>199");
	register_event("TextMsg", "fire_in_the_hole", "b", "2&#Game_radio", "4&#Fire_in_the_hole");
	register_event("TextMsg", "fire_in_the_hole2", "b", "3&#Game_radio", "5&#Fire_in_the_hole");
	register_event("99", "grenade_throw", "b");
	
	// shop cvars
	hecost = register_cvar( "bm_shop_hecost", "25" )
	healthammount = register_cvar( "bm_shop_healthammount", "100" )
	healthcost = register_cvar( "bm_shop_healthcost", "15" )
	armorammount = register_cvar( "bm_shop_armorammount", "100" )
	armorcost = register_cvar( "bm_shop_armorcost", "10" )
	awpcost = register_cvar( "bm_shop_awpcost", "75" )
	respawncost = register_cvar( "bm_shop_respawncost", "100" )
	m3cost = register_cvar( "bm_shop_m3cost", "60" )
	deaglecost = register_cvar( "bm_shop_deaglecost", "60" )
	noflashcost = register_cvar( "bm_shop_noflashcost", "40" )
	nofrostcost = register_cvar( "bm_shop_nofrostcost", "40" )
	xpcost = register_cvar( "bm_shop_xpcost", "20" )
	xpamount = register_cvar( "bm_shop_xpamount", "1000" )
	
	AwpReward = register_cvar("bm_shop_awp_kill_reward", "5")
	HeadshotReward = register_cvar("bm_shop_headshot_kill_reward", "3")
	NormalReward = register_cvar("bm_shop_normal_kill_reward", "2")
	KillMessage = register_cvar("bm_shop_kill_message", "1")
	
	//tasks
	set_task( 2.0, "flash",_,_,_, "b" );
	g_msgScreenFade = get_user_msgid("ScreenFade");
	
	g_vault = nvault_open("BmPointsShop")
	
}

//hackera457 Code
///////////////////////////
public plugin_natives()
{
	register_library("bmshop_edit");
	register_native("bm_get_user_points", "_get_points");
	register_native("bm_set_user_points", "_set_points");
}

public _set_points(iPlugin,iParams)
{
	new iUser = get_param(1), iPoints = get_param(2);
	
	bm_points[iUser] = iPoints;
	SaveData(iUser);
}

public _get_points(iPluign,iParams)
{
	new iUser = get_param(1);
	return bm_points[iUser];
}
////////////////////////////////////

public fwPlayerSpawn(id) {
	if(is_user_alive(id)) {
		userhe[id] = 0;
		userhealth[id] = 0;
		userarmor[id] = 0;
		userawp[id] = 0;
		usernoflash[id] = 0;
		usernofrost[id]	 = 0;
		userxp[id] = 0;
		userm3[id] = 0;
		userdeagle[id] = 0;
		userrespawn[id] = 0;
		
		remove_user_immune(id);
	}
}
//When player connects
public client_connect( id ) {
	userhe[id] = 0;
	userhealth[id] = 0;
	userarmor[id] = 0;
	userawp[id] = 0;
	usernoflash[id] = 0;
	usernofrost[id]	 = 0;
	userxp[id] = 0;
	userm3[id] = 0;
	userdeagle[id] = 0;
	userrespawn[id] = 0;
	
	remove_user_immune(id);
	
	LoadData(id);
}

public client_disconnected( id ) {
	userhealth[id] = 0;
	userarmor[id] = 0;
	userhe[id] = 0;
	usernoflash[id] = 0;
	usernofrost[id]	 = 0;
	userawp[id] = 0;
	userm3[id] = 0;
	userdeagle[id] = 0;
	userxp[id] = 0;
	userrespawn[id] = 0;
	
	remove_user_immune(id);
	SaveData(id);
}
public client_putinserver(id) {
	LoadData(id);
}
public eDeath( id ) {
	new killer = read_data(1);
	new victim = read_data(2);
	
	if(!is_user_connected(killer) || !is_user_connected(victim) || killer == victim)
		return PLUGIN_HANDLED;
	
	new headshot = read_data(3)
	
	new weapon[32]
	read_data(4, weapon, charsmax(weapon))
	
	new award
	
	if(equali(weapon, "awp")) award = get_pcvar_num(AwpReward)
	else if(headshot) award = get_pcvar_num(HeadshotReward)
		else award = get_pcvar_num(NormalReward)
	bm_points[killer] += award
	
	if(get_pcvar_num(KillMessage) == 1) {
		new name_victim[32]
		get_user_name(victim, name_victim, 31)
		
		ColorChat(killer, NORMAL, "^4[%s] ^1You got^3 %i^1 points for killing^4 %s", prefix, award, name_victim)
	}
	
	return PLUGIN_CONTINUE;
}
public MyPoints(id) {
	ColorChat(id, GREY, "^4[%s]^3 BM Credits:^4 %d", prefix, bm_points[id])
}
public bm_hns_shop(id) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		hns_shop(id)
	} else { 
		ColorChat(id, BLUE, "^4[%s]^1 This menu is avaliable only for^3 CT's^1.", prefix)
	}
}
public hns_shop( id ) {
	new szShop[200], szHE[200], szHealth[200], szDeagle[200], szM3[200], szArmor[200], szAwp[200], szRespawn[200], szNoFrost[200], szXP[200], szNoFlash[200];
	
	formatex( szShop, charsmax( szShop ), "\w[\rInternational-Gaming\w] \wBlockmaker Shop^n\rYour BM Credits: \y%d\d", bm_points[id] );
	formatex( szHealth, charsmax( szHealth ), "\w%d Health Points  - \d(\r%d \wBM Credits)", get_pcvar_num( healthammount ), get_pcvar_num( healthcost ) );
	formatex( szArmor, charsmax( szArmor ), "\w%d Armor Points - \d(\r%d \wBM Credits)", get_pcvar_num( armorammount ), get_pcvar_num( armorcost ) );
	formatex( szHE, charsmax( szHE ), "\w1 HE Grenade - \d(\r%d \wBM Credits)", get_pcvar_num( hecost ) );
	formatex( szNoFrost, charsmax( szNoFrost ), "\wNo Frost (\r1 \wROUND) - \d(\r%d \wBM Credits)", get_pcvar_num( nofrostcost ) );
	formatex( szNoFlash, charsmax( szNoFlash ), "\wNo Flash (\r1 \wROUND) - \d(\r%d \wBM Credits)", get_pcvar_num(noflashcost));
	formatex( szAwp, charsmax( szAwp ), "\wAWP - \d(\r%d \wBM Credits)", get_pcvar_num( awpcost ) );
	formatex( szM3, charsmax( szM3 ), "\wM3 Shotgun - \d(\r%d \wBM Credits)", get_pcvar_num( m3cost ) );
	formatex( szDeagle, charsmax( szDeagle ), "\wDeagle - \d(\r%d \wBM Credits)", get_pcvar_num(deaglecost));
	formatex( szXP, charsmax( szXP ), "\w%d XP - \d(\r%d \wBM Credits)", get_pcvar_num(xpamount), get_pcvar_num( xpcost ) );
	formatex( szRespawn, charsmax( szRespawn ), "\wRespawn - \d(\r%d \wBM Credits)", get_pcvar_num( respawncost ) );
	
	
	new shop = menu_create( szShop, "shop_handler" );
	menu_additem( shop, szHealth, 	"1", 0 );
	menu_additem( shop, szArmor, 	"2", 0 );
	menu_additem( shop, szHE, 	"3", 0 );
	menu_additem( shop, szNoFrost, 	"4", 0 );
	menu_additem( shop, szNoFlash, 	"5", 0 );
	menu_additem( shop, szAwp, 	"6", 0 );
	menu_additem( shop, szM3, 	"7", 0 );
	menu_additem( shop, szDeagle, 	"8", 0 );
	menu_additem( shop, szXP, 	"9", 0 );
	menu_additem( shop, szRespawn, 	"10", 0 );
	
	menu_setprop( shop, MPROP_EXIT, MEXIT_ALL );
	menu_setprop( shop, MPROP_NUMBER_COLOR, "\r")
	menu_display( id, shop, 0 );
}

public shop_handler( id, shop, item ) {
	if( item == MENU_EXIT ) {
		menu_destroy( shop );
		return PLUGIN_HANDLED;
	}
	
	new data[6], iName[64];
	new access, callback;
	menu_item_getinfo( shop, item, access, data, 6, iName, 63, callback )
	
	new key = str_to_num( data );
	
	switch( key )
	{
		case 1: // Health
		{
			if( !is_user_alive( id ) ) {
				ColorChat( id, NORMAL,"^4[%s]^3 You cannot buy items when your dead!", prefix );
				return PLUGIN_HANDLED; 
			}
			if(userhealth[id] > 0) {
				ColorChat( id, NORMAL, "^4[%s]^3 You've already bought this before!", prefix );
				return PLUGIN_HANDLED;
			}
			if( bm_points[id]>= get_pcvar_num( healthcost ) ) {
				bm_points[id] -= get_pcvar_num( healthcost )
				new userhp = get_user_health( id )
				new health = get_pcvar_num( healthammount )
				set_user_health( id, userhp + health )
				userhealth[id]++;
				ColorChat( id, NORMAL, "^4[%s]^1 You've bought^3 %d Health!", prefix , get_pcvar_num( healthammount ) )
				} else {
				ColorChat( id, NORMAL, "^4[%s]^1 You need more BM Credits to buy^3 %d Health!", prefix , get_pcvar_num( healthammount ) )
			}
		}
		case 2: // Armor
		{
			if( !is_user_alive( id ) ) {
				ColorChat( id, NORMAL,"^4[%s]^3 You cannot buy items when your dead!", prefix );
				return PLUGIN_HANDLED; 
			}
			if(userarmor[id] > 0) {
				ColorChat( id, NORMAL, "^4[%s]^3 You've already bought this before!", prefix );
				return PLUGIN_HANDLED;
			}
			if( bm_points[id] >= get_pcvar_num( armorcost ) ) {
				bm_points[id] -= get_pcvar_num( armorcost )
				new playerarmor = get_user_armor( id )
				new armor = get_pcvar_num( armorammount )
				set_user_armor( id, playerarmor + armor )
				userarmor[id]++;
				ColorChat( id, NORMAL, "^4[%s]^1 You've bought^3 %d Armor!", prefix, get_pcvar_num( armorammount ) )
				} else {
				ColorChat( id, NORMAL, "^4[%s]^1 You need more BM Credits to buy^3 %d Armor!", prefix, get_pcvar_num( armorammount ) )
			}
		}
		case 3: // 1 HE
		{
			if( !is_user_alive( id ) ) {
				ColorChat( id, NORMAL,"^4[%s]^3 You cannot buy items when your dead.", prefix );
				return PLUGIN_HANDLED; 
			}
			if(userhe[id] > 0) {
				ColorChat( id, NORMAL, "^4[%s]^3 You've already bought this before.", prefix );
				return PLUGIN_HANDLED;
			}
			if( bm_points[id] >= get_pcvar_num( hecost ) ) {
				bm_points[id] -= get_pcvar_num( hecost )
				give_item( id, "weapon_hegrenade" )
				userhe[id]++;
				ColorChat( id, NORMAL, "^4[%s]^1 You've bought a^3 HE Grenade!", prefix )
				} else {
				ColorChat( id, NORMAL, "^4[%s]^1 You need more BM Credits to buy a^3 HE Grenade!", prefix )
			}
		}
		case 4: // No Frost
		{
			if( !is_user_alive( id ) ) {
				ColorChat( id, NORMAL,"^4[%s]^3 You cannot buy items when your dead.", prefix );
				return PLUGIN_HANDLED; 
			}
			if(usernofrost[id] > 0) {
				ColorChat( id, NORMAL, "^4[%s]^3 You've already bought this before.", prefix );
				return PLUGIN_HANDLED;
			}
			if( bm_points[id] >= get_pcvar_num( nofrostcost ) ) {
				bm_points[id] -= get_pcvar_num( nofrostcost )
				add_user_immune( id );
				usernofrost[id]++;
				ColorChat( id, NORMAL, "^4[%s]^1 You've bought^3 Anti-Frost!", prefix )
				} else {
				ColorChat( id, NORMAL, "^4[%s]^1 You need more BM Credits to buy^3 Anti-Frost!", prefix )
			}
		}
		case 5: // No Flash
		{
			if( !is_user_alive( id ) ) {
				ColorChat( id, NORMAL,"^4[%s]^3 You cannot buy items when your dead.", prefix );
				return PLUGIN_HANDLED; 
			}
			if(usernoflash[id] > 0) {
				ColorChat( id, NORMAL, "^4[%s]^3 You've already bought this before.", prefix );
				return PLUGIN_HANDLED;
			}
			if( bm_points[id] >= get_pcvar_num(noflashcost) ) {
				bm_points[id] -= get_pcvar_num(noflashcost)
				usernoflash[id]++;
				ColorChat( id, NORMAL, "^4[%s]^1 You've bought^3 Anti-Flash!", prefix )
				} else {
				ColorChat( id, NORMAL, "^4[%s]^1 You need more BM Credits to buy^3 Anti-Flash!", prefix )
			}
		}
		case 6: // AWP 1 Bullet
		{
			if( !is_user_alive( id ) ) {
				ColorChat( id, NORMAL,"^4[%s]^3 You cannot buy items when your dead.", prefix );
				return PLUGIN_HANDLED; 
			}
			if(userawp[id] > 0) {
				ColorChat( id, NORMAL, "^4[%s]^3 You've already bought this before.", prefix );
				return PLUGIN_HANDLED;
			}
			if( bm_points[id] >= get_pcvar_num(awpcost) ) {
				bm_points[id] -= get_pcvar_num(awpcost)
				fm_give_item( id, "weapon_awp" )
				cs_set_weapon_ammo( find_ent_by_owner( 1, "weapon_awp", id ), 1 )
				cs_set_user_bpammo(id, CSW_AWP, 0)
				new awpname[42]
				get_user_name(id, awpname, 32)
				set_hudmessage(255, 255, 255, -1.0, -1.0, 0, 6.0, 4.0)
				show_hudmessage(0, "%s bought an Awp! Watch out!", awpname)
				userawp[id]++;
				ColorChat( id, NORMAL, "^4[%s]^1 You've bought an^3 AWP!", prefix )
				} else {
				ColorChat( id, NORMAL, "^4[%s]^1 You need more BM Credits to buy an^3 AWP!", prefix )
			}
		}
		case 7: // M3 1 Bullet
		{
			if( !is_user_alive( id ) ) {
				ColorChat( id, NORMAL,"^4[%s]^3 You cannot buy items when your dead.", prefix );
				return PLUGIN_HANDLED; 
			}
			if(userm3[id] > 0) {
				ColorChat( id, NORMAL, "^4[%s]^3 You've already bought this before.", prefix );
				return PLUGIN_HANDLED;
			}
			if( bm_points[id] >=get_pcvar_num(m3cost) ) {
				bm_points[id] -= get_pcvar_num(m3cost)
				fm_give_item( id, "weapon_m3" )
				cs_set_weapon_ammo( find_ent_by_owner( 1, "weapon_m3", id ), 1 )
				cs_set_user_bpammo(id, CSW_M3, 0)
				new m3name[42]
				get_user_name(id, m3name, 32)
				set_hudmessage(255, 255, 255, -1.0, -1.0, 0, 6.0, 4.0)
				show_hudmessage(0, "%s bought an M3! Watch out!", m3name)
				userm3[id]++;
				ColorChat( id, NORMAL, "^4[%s]^1 You've bought an^3 M3!", prefix )
				} else {
				ColorChat( id, NORMAL, "^4[%s]^1 You need more BM Credits to buy an^3 M3!", prefix )
			}
		}
		case 8: // Deagle 1 Bullets
		{
			if( !is_user_alive( id ) ) {
				ColorChat( id, NORMAL,"^4[%s]^3 You cannot buy items when your dead.", prefix );
				return PLUGIN_HANDLED; 
			}
			if(userdeagle[id] > 0) {
				ColorChat( id, NORMAL, "^4[%s]^3 You've already bought this before.", prefix );
				return PLUGIN_HANDLED;
			}
			if( bm_points[id] >= get_pcvar_num(deaglecost) ) {
				bm_points[id] -= get_pcvar_num(deaglecost)
				fm_give_item( id, "weapon_deagle" )
				cs_set_weapon_ammo( find_ent_by_owner( 1, "weapon_deagle", id ), 1 )
				cs_set_user_bpammo(id, CSW_DEAGLE, 0)
				userdeagle[id]++;
				ColorChat( id, NORMAL, "^4[%s]^1 You've bought an^3 Deagle!", prefix )
				} else {
				ColorChat( id, NORMAL, "^4[%s]^1 You need more BM Credits to buy an^3 Deagle!", prefix )
			}
		}
		case 9: // XP
		{
			if( !is_user_alive( id ) ) {
				ColorChat( id, NORMAL,"^4[%s]^3 You cannot buy items when your dead.", prefix );
				return PLUGIN_HANDLED; 
			}
			if(userxp[id] > 0) {
				ColorChat( id, NORMAL, "^4[%s]^3 You've already bought this before.", prefix );
				return PLUGIN_HANDLED;
			}
			if( bm_points[id] >= get_pcvar_num(xpcost) ) {
				bm_points[id] -= get_pcvar_num(xpcost)
				new xp_amount = get_pcvar_num(xpamount)
				hnsxp_add_user_xp(id, xp_amount);
				userxp[id]++;
				ColorChat( id, NORMAL, "^4[%s]^1 You've bought^3 %d XP!", prefix, xp_amount )
				} else {
				ColorChat( id, NORMAL, "^4[%s]^1 You need more BM Credits to buy^3 %d XP!", prefix, get_pcvar_num(xpamount) )
			}
		}
		case 10: // Respawn
		{
			if(is_user_alive(id)) {
				ColorChat( id, NORMAL, "^4[%s]^1 You cannot buy a^3 Respawn^4 while you are alive.", prefix );
				return PLUGIN_HANDLED;
			}
			if( bm_points[id] >= get_pcvar_num(respawncost) ) {
				bm_points[id] -= get_pcvar_num(respawncost)
				ExecuteHamB(Ham_CS_RoundRespawn, id);
				new respawnname[42]
				get_user_name(id, respawnname, 32)
				set_hudmessage(255, 255, 255, -1.0, -1.0, 0, 6.0, 4.0)
				show_hudmessage(0, "%s bought a respawn! Kill him!", respawnname)
				userrespawn[id]++;
				ColorChat( id, NORMAL, "^4[%s]^1 You've bought a^3 Respawn!", prefix )
				} else {
				ColorChat( id, NORMAL, "^4[%s]^1 You need more BM Credits to buy a^3 Respawn!", prefix )
			}
		}
		
	}
	
	menu_destroy( shop );
	return PLUGIN_HANDLED;
}
// Anti-Flash - Start
public flash() {
	new Float:gametime = get_gametime();
	if(gametime - g_gametime2 > 2.5)
		for(new i = 0; i < 32; i++)
		grenade[i] = 0;
}

public eventFlash( id ) {
	new Float:gametime = get_gametime();
	if(gametime != g_gametime) { 
		g_owner = get_grenade_owner();
		g_gametime = gametime;
		for(new i = 0; i < 33; i++) 
			g_track[i] = false;
		g_track_enemy = false;
	}    
	if(is_user_connected(g_owner) && usernoflash[id] > 0) {
		g_track_enemy = true;
		
		message_begin(MSG_ONE, g_msgScreenFade, {0,0,0}, id);
		write_short(1);
		write_short(1);
		write_short(1);
		write_byte(0);
		write_byte(0);
		write_byte(0);
		write_byte(255);
		message_end();
	}
}
public flash_delay() {
	if(g_track_enemy == false) {
		for(new i = 0; i < 33; i++) {
			if(g_track[i] == true && is_user_connected(i)) {
				message_begin(MSG_ONE, g_msgScreenFade, {0,0,0}, i) ;
				write_short(1);
				write_short(1);
				write_short(1);
				write_byte(0);
				write_byte(0);
				write_byte(0);
				write_byte(255);
				message_end();
			}
		}
	}
}

public grenade_throw() {
	if(g_sync_check_data == 0)
		return PLUGIN_CONTINUE;
	g_sync_check_data--;
	if(read_datanum() < 2)
		return PLUGIN_HANDLED_MAIN;
	
	if(read_data(1) == 11 && (read_data(2) == 0 || read_data(2) == 1))
		add_grenade_owner(last);
	
	return PLUGIN_CONTINUE;
}
public fire_in_the_hole() {
	new name[32];
	read_data(3, name, 31);
	new temp_last = get_user_index(name);
	new junk;
	if((temp_last == 0) || (!is_user_connected(temp_last)))
		return PLUGIN_CONTINUE;
	if(get_user_weapon(temp_last,junk,junk) == CSW_FLASHBANG) {
		last = temp_last;
		g_sync_check_data = 2; 
	}
	return PLUGIN_CONTINUE;
}

public fire_in_the_hole2() {
	new name[32];
	read_data(4, name, 31);
	new temp_last = get_user_index(name);
	new junk;
	if((temp_last == 0) || (!is_user_connected(temp_last)))
		return PLUGIN_CONTINUE;
	if(get_user_weapon(temp_last,junk,junk) == CSW_FLASHBANG) {    
		last = temp_last;
		g_sync_check_data = 2;
	}
	return PLUGIN_CONTINUE;
}
add_grenade_owner(owner) {
	new Float:gametime = get_gametime();
	g_gametime2 = gametime;
	for(new i = 0; i < 32; i++) {
		if(grenade[i] == 0) {
			grenade[i] = owner;
			return;
		}
	}
}
get_grenade_owner() {
	new which = grenade[0];
	for(new i = 1; i < 32; i++)  
		grenade[i-1] = grenade[i];
	grenade[31] = 0;
	return which;
}

// from XxAvalanchexX "Flashbang Dynamic Light"
public fw_emitsound(entity,channel,const sample[],Float:volume,Float:attenuation,fFlags,pitch) {
	if(!equali(sample,"weapons/flashbang-1.wav") && !equali(sample,"weapons/flashbang-2.wav"))
		return FMRES_IGNORED;
	
	new Float:gametime = get_gametime();
	
	//in case no one got flashed, the sound happens after all the flashes, same game time
	if(gametime != g_gametime) {
		g_owner = get_grenade_owner();
		return FMRES_IGNORED;
	}
	return FMRES_IGNORED;
}
// NoFlash Blinding - End 

// Cmd Give/Take BM Points
public cmd_give_bmpoints(id, level,cid) {
	if(!cmd_access (id, level, cid, 3))
		return PLUGIN_HANDLED;
	
	new target[32], amount[32], reason[32]
	
	read_argv(1, target, charsmax(target))
	read_argv(2, amount, charsmax(amount))
	read_argv(3, reason, charsmax(reason))
	
	new player = cmd_target(id, target, 8)
	
	if( ! player ) 
		return PLUGIN_HANDLED;
	
	new admin_name[32], target_name[32]
	get_user_name(id, admin_name, charsmax(admin_name))
	get_user_name(player, target_name, charsmax(target_name))
	
	new points = str_to_num(amount)
	
	bm_points[player] += points
	ColorChat(player, GREY, "^4[%s]^1 ADMIN:^4 %s^1 gave you^3 %s ^4 %i BM Credits^1. Now you have:^4 %d BM Credits!",prefix, admin_name, target_name, points, bm_points[player])
	SaveData(id)
	
	return PLUGIN_CONTINUE;
}

public cmd_take_bmpoints(id, level,cid) {
	if(!cmd_access (id, level, cid, 3))
		return PLUGIN_HANDLED;
	
	new target[32], amount[32], reason[32]
	
	read_argv(1, target, charsmax(target))
	read_argv(2, amount, charsmax(amount))
	read_argv(3, reason, charsmax(reason))
	
	new player = cmd_target(id, target, 8)
	
	if(!player) 
		return PLUGIN_HANDLED;
	
	new admin_name[32], target_name[32]
	get_user_name(id, admin_name, charsmax(admin_name))
	get_user_name(player, target_name, charsmax(target_name))
	
	new points = str_to_num(amount)
	
	if(bm_points[player] < points) {
		console_print(id, "Player %s doesn't even have %d BM Points! He has: %d BM Points.", target_name, points, bm_points[player])
		return PLUGIN_HANDLED
	}
	bm_points[player] -= points
	ColorChat(player, TEAM_COLOR, "^4[%s]^1 ADMIN:^4 %s^1 took from you^3 %s ^4 %i BM Credits^1. Now you have:^4 %d BM Credits^1!", prefix, admin_name, target_name, points, bm_points[player])
	SaveData(id)
	
	return PLUGIN_CONTINUE;
}
public cmd_give_bmpoints_all(id, level, cid) {
	if(!cmd_access(id, level, cid, 2))
		return PLUGIN_HANDLED
	
	new amount[32]
	
	read_argv(1, amount, charsmax(amount))
	
	new admin_name[32]
	get_user_name(id, admin_name, charsmax(admin_name))
	
	new points = str_to_num(amount)
	
	new players[32], num
	get_players(players, num, "ch")
	
	for(new i; i < num; i++)
		bm_points[players[i]] += points
	
	ColorChat(0,NORMAL, "^4[%s]^1 ADMIN ^4%s: ^1gave ^4%i^1 BM Credits to ^4all ^1players", prefix, admin_name, points)
	SaveData(id)
	
	return PLUGIN_CONTINUE
}

// Nvault
public SaveData(id) {
	new name[32]
	get_user_name(id, name, charsmax(name))
	new vaultkey[64], vaultdata[256]
	
	format(vaultkey, charsmax(vaultkey), "%s", name)
	format(vaultdata, charsmax(vaultdata), "%i", bm_points[id])
	nvault_set(g_vault, vaultkey, vaultdata)
	
	return PLUGIN_CONTINUE
}

LoadData(id) {
	new name[32]
	get_user_name(id, name, charsmax(name))
	new vaultkey[64], vaultdata[256]
	
	format(vaultkey, charsmax(vaultkey), "%s", name)
	format(vaultdata, charsmax(vaultdata), "%i", bm_points[id])
	nvault_get(g_vault, vaultkey, vaultdata, charsmax(vaultdata))
	
	new points_user[10]
	parse(vaultdata, points_user, charsmax(points_user))
	
	new points_set = str_to_num(points_user)
	bm_points[id] = points_set
	
	return PLUGIN_CONTINUE
}
iG-Blockmaker # HNS 100aa
45.144.155.175:27018


Аватар
tom1k
Извън линия
Потребител
Потребител
Мнения: 202
Регистриран на: 29 Сеп 2020, 23:50
Местоположение: Добрич
Се отблагодари: 16 пъти
Получена благодарност: 8 пъти

Basic Knife Skills

Мнение от tom1k » 03 Дек 2021, 16:13

Възможно ли е да направиш Healing опцията да добавя +25? Понеже в момента сървъра ми се играе с над 100 hp и като някой убие някой и я има функцията ги реска на 100 кръв а не добавя според .ини файла колко съм добавил.
И как трябва да го комбинирам с Flags per level плъгина ти?
iG-Blockmaker # HNS 100aa
45.144.155.175:27018


Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Basic Knife Skills

Мнение от OciXCrom » 03 Дек 2021, 20:37

HEALTH_ON_KILL = <кръв при убийство> [максимум кръв] -- дава кръв при убийство
Ако не посочите максимум кръв, тя по подразбиране ще бъде 100.
Опцията си добавя +, просто трябва да зададеш максимума.

Не разбрах какво общо има flags per level?

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

Обратно към “Съб-плъгини”

Кой е на линия

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