Нуждая се от помощ за vzbb_goldenak

Въпроси и проблеми свързани с AMXModX.
Аватар
iwanow
Извън линия
Потребител
Потребител
Мнения: 27
Регистриран на: 01 Авг 2018, 09:16
Се отблагодари: 1 път

Нуждая се от помощ за vzbb_goldenak

Мнение от iwanow » 31 Авг 2018, 21:10

Здравейте, та проблема ми е че самото оръжие бие по много демидж, а не мг да намеря реда, който трябва да редактирам, ако това въобще е възможно?
Използвам този плъгин.
Кода от .SMA файла:

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

#include <amxmodx>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <amxmisc>
#include <vzbb_mod>
#include <colorchat>


#define is_valid_player(%1) (1 <= %1 <= 32)

new AK_V_MODEL[64] = "models/v_golden_ak47.mdl"
new AK_P_MODEL[64] = "models/p_golden_ak47.mdl"

/* Pcvars */
new cvar_dmgmultiplier, cvar_goldbullets,  cvar_custommodel, cvar_uclip

new bool:g_HasAk[33]

new g_hasZoom[ 33 ]
new bullets[ 33 ]

// Sprite
new m_spriteTexture

const Wep_ak47 = ((1<<CSW_AK47))

new item_id

public plugin_init()
{
	
	/* CVARS */
	cvar_dmgmultiplier = register_cvar("goldenak_dmg_multiplier", "1")
	cvar_custommodel = register_cvar("goldenak_custom_model", "1")
	cvar_goldbullets = register_cvar("goldenak_gold_bullets", "1")
	cvar_uclip = register_cvar("goldenak_unlimited_clip", "1")
	
	item_id = register_shop_item("Golden Ak47",75,USE_BATTLE,TEAM_HUMANS,ADMIN_ALL,NO_MAX_BUYS)
	
	// Register The Buy Cmd
	register_concmd("amx_goldenak", "CmdGiveAk", ADMIN_BAN, "<name>")
	
	// Register The Plugin
	register_plugin("VZBB Item: Golden Ak 47", "1.0", "AlejandroSk")
	// Death Msg
	register_event("DeathMsg", "Death", "a")
	// Weapon Pick Up
	register_event("WeapPickup","checkModel","b","1=19")
	// Current Weapon Event
	register_event("CurWeapon","checkWeapon","be","1=1")
	// Ham TakeDamage
	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
	register_forward( FM_CmdStart, "fw_CmdStart" )
	RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
	
}

public client_connect(id)
{
	g_HasAk[id] = false
}

public client_disconnect(id)
{
	g_HasAk[id] = false
}

public Death()
{
	g_HasAk[read_data(2)] = false
}

public fwHamPlayerSpawnPost(id)
{
	g_HasAk[id] = false
}

public plugin_precache()
{
	precache_model(AK_V_MODEL)
	precache_model(AK_P_MODEL)
	m_spriteTexture = precache_model("sprites/dot.spr")
	precache_sound("weapons/zoom.wav")
}

public checkModel(id)
{
	if ( !g_HasAk[id] || !is_user_human(id) )
		return PLUGIN_HANDLED
	
	new szWeapID = read_data(2)
	
	if ( szWeapID == CSW_AK47 && g_HasAk[id] == true && get_pcvar_num(cvar_custommodel) )
	{
		set_pev(id, pev_viewmodel2, AK_V_MODEL)
		set_pev(id, pev_weaponmodel2, AK_P_MODEL)
	}
	return PLUGIN_HANDLED
}

public checkWeapon(id)
{
	if(!is_user_alive(id) || !is_user_human(id) || !g_HasAk[id]) return PLUGIN_HANDLED
	
	new plrClip, plrAmmo, plrWeap[32]
	new plrWeapId
	
	plrWeapId = get_user_weapon(id, plrClip , plrAmmo)
	
	if (plrWeapId == CSW_AK47 && g_HasAk[id])
	{
		checkModel(id)
	}
	else 
	{
		return PLUGIN_CONTINUE
	}
	
	if (plrClip == 0 && get_pcvar_num(cvar_uclip))
	{
		// If the user is out of ammo..
		get_weaponname(plrWeapId, plrWeap, 31)
		// Get the name of their weapon
		give_item(id, plrWeap)
		engclient_cmd(id, plrWeap) 
		engclient_cmd(id, plrWeap)
		engclient_cmd(id, plrWeap)
	}
	
	if(read_data(3))
	{
		if (get_pcvar_num(cvar_goldbullets))
		{
			new clip,ammo
			new wpnid = get_user_weapon(id,clip,ammo)
			new pteam[16]
			
			get_user_team(id, pteam, 15)
			
			if ((bullets[id] > clip) && (wpnid == CSW_AK47) && g_HasAk[id]) 
			{
				new vec1[3], vec2[3]
				get_user_origin(id, vec1, 1) // origin; your camera point.
				get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)
				
				
				//BEAMENTPOINTS
				message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
				write_byte (0)     //TE_BEAMENTPOINTS 0
				write_coord(vec1[0])
				write_coord(vec1[1])
				write_coord(vec1[2])
				write_coord(vec2[0])
				write_coord(vec2[1])
				write_coord(vec2[2])
				write_short( m_spriteTexture )
				write_byte(1) // framestart
				write_byte(5) // framerate
				write_byte(2) // life
				write_byte(10) // width
				write_byte(0) // noise
				write_byte( 255 )     // r, g, b
				write_byte( 215 )       // r, g, b
				write_byte( 0 )       // r, g, b
				write_byte(200) // brightness
				write_byte(150) // speed
				message_end()
			}
			
			bullets[id] = clip
		}
	}
	
	return PLUGIN_HANDLED
}



public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
{
	if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_AK47 && g_HasAk[attacker] )
	{
		SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
	}
}

public fw_CmdStart( id, uc_handle, seed )
{
	if( !is_user_alive( id ) ) 
		return PLUGIN_HANDLED
	
	if( ( get_uc( uc_handle, UC_Buttons ) & IN_ATTACK2 ) && !( pev( id, pev_oldbuttons ) & IN_ATTACK2 ) )
	{
		new szClip, szAmmo
		new szWeapID = get_user_weapon( id, szClip, szAmmo )
		
		if( szWeapID == CSW_AK47 && g_HasAk[id] == true && !g_hasZoom[id] == true)
		{
			g_hasZoom[id] = true
			cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
			emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
		}
		
		else if ( szWeapID == CSW_AK47 && g_HasAk[id] == true && g_hasZoom[id])
		{
			g_hasZoom[ id ] = false
			cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
			
		}
		
	}
	return PLUGIN_HANDLED
}

public shop_item_selected(id,itemid)
{
	if(itemid != item_id) return PLUGIN_HANDLED
	
	give_item(id, "weapon_ak47")
	g_HasAk[id] = true
	
	ColorChat(id,GREEN, "[VZBB]^x01 You have bought a^x04 Golden Ak47^x01!")
	
	return PLUGIN_HANDLED
}

public CmdGiveAk(id,level,cid)
{
	if (!cmd_access(id,level,cid,2))
		return PLUGIN_HANDLED;
	new arg[32];
	read_argv(1,arg,31);
	
	new player = cmd_target(id,arg,7);
	if (!player || !is_user_human(player) ) 
		return PLUGIN_HANDLED;
	
	new name[32];
	get_user_name(player,name,31);
	
	give_item(player, "weapon_ak47")
	g_HasAk[player] = true
	
	return PLUGIN_HANDLED
}

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

Аватар
1fRaNkkK
Извън линия
Потребител
Потребител
Мнения: 776
Регистриран на: 09 Окт 2016, 15:21
Се отблагодари: 8 пъти
Получена благодарност: 55 пъти

Нуждая се от помощ за vzbb_goldenak

Мнение от 1fRaNkkK » 31 Авг 2018, 21:20

Като гледам има си cvar за damage: goldenak_dmg_multiplier, което е 1 по default.
Примерно ако направиш 30 damage ще го умножи по зададената стойност в cvar, ето го и кода, който изпълнява това:

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

SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )

Аватар
iwanow
Извън линия
Потребител
Потребител
Мнения: 27
Регистриран на: 01 Авг 2018, 09:16
Се отблагодари: 1 път

Нуждая се от помощ за vzbb_goldenak

Мнение от iwanow » 31 Авг 2018, 21:37

1fRaNkkK написа: 31 Авг 2018, 21:20 Като гледам има си cvar за damage: goldenak_dmg_multiplier, което е 1 по default.
Примерно ако направиш 30 damage ще го умножи по зададената стойност в cvar, ето го и кода, който изпълнява това:

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

SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
580 грубо казано бие на каска?? Някаква идея как да го намаля? Дали ще стане да го направя на дробно число? Например 0.25?

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

Нуждая се от помощ за vzbb_goldenak

Мнение от OciXCrom » 31 Авг 2018, 22:08

1.0 е нормалната щета от играта. Ако го направиш на 0.25, то направо ще я намалиш и ще прави по-малко от нормалната. Проста математика. Можеш да сложиш примерно 1.25.

30 * 0.25 = 7.5 30 * 1.25 = 45

Аватар
iwanow
Извън линия
Потребител
Потребител
Мнения: 27
Регистриран на: 01 Авг 2018, 09:16
Се отблагодари: 1 път

Нуждая се от помощ за vzbb_goldenak

Мнение от iwanow » 31 Авг 2018, 22:13

OciXCrom™ написа: 31 Авг 2018, 22:08 1.0 е нормалната щета от играта. Ако го направиш на 0.25, то направо ще я намалиш и ще прави по-малко от нормалната. Проста математика. Можеш да сложиш примерно 1.25.

30 * 0.25 = 7.5 30 * 1.25 = 45
Аз това го разбрах че се умножава... но опитах и нещо пак не се получава.. Можеш ли да ми дадеш готов код да го заместя с 2.5 по-голям демидж?

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

Нуждая се от помощ за vzbb_goldenak

Мнение от OciXCrom » 31 Авг 2018, 22:13

Какъв код да ти дам като просто трябва да си промениш квара? Предполагам знаеш как се променя квар. Какво точно си опитал, че не се получава?

Аватар
iwanow
Извън линия
Потребител
Потребител
Мнения: 27
Регистриран на: 01 Авг 2018, 09:16
Се отблагодари: 1 път

Нуждая се от помощ за vzbb_goldenak

Мнение от iwanow » 31 Авг 2018, 22:45

OciXCrom™ написа: 31 Авг 2018, 22:13 Какъв код да ти дам като просто трябва да си промениш квара? Предполагам знаеш как се променя квар. Какво точно си опитал, че не се получава?

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

SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) ) 
И къде по-точно трябва да сложа умножението, защото го сложих на вс възможни места,като започнах от очевидното, но няма никаква промяна в демиджа?

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

Нуждая се от помощ за vzbb_goldenak

Мнение от OciXCrom » 01 Сеп 2018, 02:23

Дали знаеш как се променя квар?!

Аватар
User12
Извън линия
Потребител
Потребител
Мнения: 321
Регистриран на: 25 Яну 2018, 22:39
Местоположение: Сливен
Се отблагодари: 40 пъти
Получена благодарност: 17 пъти
Обратна връзка:

Нуждая се от помощ за vzbb_goldenak

Мнение от User12 » 01 Сеп 2018, 03:54

iwanow написа: 31 Авг 2018, 22:45

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

SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) ) 
И къде по-точно трябва да сложа умножението, защото го сложих на вс възможни места,като започнах от очевидното, но няма никаква промяна в демиджа?

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

/* CVARS */
cvar_dmgmultiplier = register_cvar("goldenak_dmg_multiplier", "1")

"goldenak_dmg_multiplier", "1"
Тва си го пишеш в amxx.cfg и променяш 1-то на колкото искаш :gamer1:
OciXCrom™ написа: 01 Сеп 2018, 02:23 Дали знаеш как се променя квар?!
Ами като не знае ще се научи :rolle: все пак тук сме за да си помагаме нали така :mad:
Каналът ми в YouTube : Георги Пламенов

Изображение

Аватар
iwanow
Извън линия
Потребител
Потребител
Мнения: 27
Регистриран на: 01 Авг 2018, 09:16
Се отблагодари: 1 път

Нуждая се от помощ за vzbb_goldenak

Мнение от iwanow » 01 Сеп 2018, 11:42

User12 написа: 01 Сеп 2018, 03:54
iwanow написа: 31 Авг 2018, 22:45

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

SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) ) 
И къде по-точно трябва да сложа умножението, защото го сложих на вс възможни места,като започнах от очевидното, но няма никаква промяна в демиджа?

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

/* CVARS */
cvar_dmgmultiplier = register_cvar("goldenak_dmg_multiplier", "1")

"goldenak_dmg_multiplier", "1"
Тва си го пишеш в amxx.cfg и променяш 1-то на колкото искаш :gamer1:
OciXCrom™ написа: 01 Сеп 2018, 02:23 Дали знаеш как се променя квар?!
Ами като не знае ще се научи :rolle: все пак тук сме за да си помагаме нали така :mad:
Благодаря и на двама ви. Но имам и още 1 въпрос. Става ли да се промени цената на голда и ако да, кое трябва да се промени?

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

Обратно към “Поддръжка / Помощ”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 8 госта