Jak sprawdzić czy gracz jest zasłonięty tarczą (ma włączoną tarcze) ?
Użytkownik sebacs2 edytował ten post 03.07.2014 15:50
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Napisano 03.07.2014 15:47
Jak sprawdzić czy gracz jest zasłonięty tarczą (ma włączoną tarcze) ?
Użytkownik sebacs2 edytował ten post 03.07.2014 15:50
Zapraszam na sieć serwerów Cs-KoRea.pl
Serwer [FFA+BF2] 31.186.83.100:27041 Serwer [Cod] 31.186.83.100:27046
Napisano 03.07.2014 18:49
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 }
Napisano 03.07.2014 21:47
ale to tylko pokazuje czy ma tarcze, a nie czy jest nią zasłonięty
Zapraszam na sieć serwerów Cs-KoRea.pl
Serwer [FFA+BF2] 31.186.83.100:27041 Serwer [Cod] 31.186.83.100:27046
Napisano 03.07.2014 22:21
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 }
Napisano 03.07.2014 23:00
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 }
Napisano 04.07.2014 06:05
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ż nieZnacznie szybciej będzie 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
Napisano 04.07.2014 08:28
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ć
0 użytkowników, 0 gości, 0 anonimowych