←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Czy ma włączoną tarcze

  • +
  • -
sebacs2 - zdjęcie sebacs2 03.07.2014

Jak sprawdzić czy gracz jest zasłonięty tarczą (ma włączoną tarcze) ?


Użytkownik sebacs2 edytował ten post 03.07.2014 15:50
Odpowiedz

  • +
  • -
BlackPerfum - zdjęcie BlackPerfum 03.07.2014

Moduły:
Cstrike --> cs_get_user_shield
Fakemeta:  

GetPlayerShield(id)
{
	const OFFSET_SHIELD = 510
	const HAS_SHIELD = (1<<24)
	return get_pdata_int(id,OFFSET_SHIELD,5) & HAS_SHIELD ? 1:0
}
Odpowiedz

  • +
  • -
sebacs2 - zdjęcie sebacs2 03.07.2014

ale to tylko pokazuje czy ma tarcze, a nie czy jest nią zasłonięty

Odpowiedz

  • +
  • -
BlackPerfum - zdjęcie BlackPerfum 03.07.2014

Wybacz źle cię zrozumiałem (moja wina). Trochę pokombinowałem i proszę:

bool:BehindShield(id)
{
	const m_pActiveItem = 373
	const OFFSET_SHIELD = 510
	const HAS_SHIELD = (1<<24)
	const m_fWeaponState = 74
	const WEAPONSTATE_SHIELD_DRAWN = (1<<5)
	if(is_user_alive(id) && get_pdata_int(id,OFFSET_SHIELD,5) & HAS_SHIELD)
	{
		new wid = get_pdata_cbase(id,m_pActiveItem,5)
		if(pev_valid(wid) == 2 && get_pdata_int(wid,m_fWeaponState,4) & WEAPONSTATE_SHIELD_DRAWN)	return true
	}
	return false
}
Odpowiedz

  • +
  • -
Puchate - zdjęcie Puchate 03.07.2014

Znacznie szybciej będzie tak:

#define SHIELD 98

bool:BehindShield(id) {
	if(!is_user_alive(id) || pev(id, pev_sequence) != SHIELD)
		return false	
	return true	
}
Odpowiedz

  • +
  • -
BlackPerfum - zdjęcie BlackPerfum 04.07.2014

Znacznie szybciej będzie tak:

pev_sequence spada o 1~5(w zależności od czegoś) zawsze jak gracz trzyma Ctrl (jak puszcza to wzrasta) tzn. jeśli gracz zasłoni się tarczą to twój kod zadziała ale jeś dodatkowo kucnie to już nie

Co do szybkości dzaiłania to masz rację można szybciej ;D
Np. tak:
bool:BehindShield(id)
{
	const OFFSET_SHIELD = 510
	const m_bUsesShield = (1<<16)
	if(is_user_alive(id) && get_pdata_int(id,OFFSET_SHIELD,5) & m_bUsesShield)	return true
	
	return false
}

Użytkownik BlackPerfum edytował ten post 04.07.2014 06:16
Odpowiedz

  • +
  • -
Puchate - zdjęcie Puchate 04.07.2014

 

 

pev_sequence spada o 1~5(w zależności od czegoś) zawsze jak gracz trzyma Ctrl (jak puszcza to wzrasta) tzn. jeśli gracz zasłoni się tarczą to twój kod zadziała ale jeś dodatkowo kucnie to już nie

ID animacji przy ducku to 97 więc nie problem to sprawdzić ;)

Odpowiedz