Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Sprawdzanie pistoletu
#1
Więc próbowałem zrobić automatyczny pistolet, sprawdzając, czy aktywna broń to pistolet.       Kod:   m_pLocal-> GetWeapon () -> IsPis (); // Zwraca true lub false CBaseWeapon * CPlayer :: GetWeapon () { DWORD weaponData = * (DWORD *) ((DWORD) to + NetVars.m_hActiveWeapon); return (CBaseWeapon *) Interfaces.EntList-> GetClientEntityFromHandle (weaponData); } bool CBaseWeapon :: IsPis () { Jeśli to) return false; int id = this-> GetWeaponID (); przełącznik (id) { sprawa WEAPON_DEAGLE: sprawa WEAPON_ELITE: sprawa WEAPON_FIVESEVEN: case WEAPON_GLOCK: sprawa WEAPON_TEC9: sprawa WEAPON_HKP2000: sprawa WEAPON_P250: return true; domyślna: return false; } } int CBaseWeapon :: GetWeaponID () { return * (int *) ((DWORD) to + NetVars.m_iWeaponID); }
Reply
#2
i jaki jest problem
Reply
#3
C_BaseCombatWeapon, vtable index 453 to typ broni, 1 = pistolet
Reply
#4
Zacytować: Napisał kikso i jaki jest problem To nie jest prawdą, gdy trzymasz pistolet. Zacytować: Napisał Lynxaa C_BaseCombatWeapon, vtable index 453 to typ broni, 1 = pistolet Coś w tym stylu? Kod: int CBaseWeapon :: GetType () { typedef int (__thiscall * GetTypefn) (void *); return GetMethod (this, 453) (this); } if (m_pLocal-> GetWeapon () -> GetType () == 1) { // Auto shit } Edycja: Próbowałem, dziękuję bardzo dziękuję. Chciałbym plus przedstawiciela, ale .... tak.
Reply
#5
Zacytować: Originally Posted by Lak3 ~ snip ~ Ale jak mogę cieszyć się z kompilatora, który robi dla mnie optymalizację.
Reply
#6
Zacytować: Originally Posted by exodia1232 ~ snip ~ uh ... Kod: enum CSWeaponType { WEAPONTYPE_KNIFE = 0, WEAPONTYPE_PISTOL, WEAPONTYPE_SUBMACHINEGUN, WEAPONTYPE_RIFLE, WEAPONTYPE_SHOTGUN, WEAPONTYPE_SNIPER_RIFLE, WEAPONTYPE_MACHINEGUN, WEAPONTYPE_C4, WEAPONTYPE_GRENADE, WEAPONTYPE_UNKNOWN }; struct CCSWeaponData {
Reply
#7
Zacytować: Napisał MarkHC ~ snip ~ Dlaczego miałbym robić te rzeczy na zewnątrz?
Reply
#8
Zacytować: Originally Posted by exodia1232 Dlaczego miałbym robić te rzeczy na zewnątrz? Możesz więc pozbyć się obrzydliwości, którą wcześniej napisałeś. Kod: bool CUtilities :: IsWeaponBallistic (int iWeaponId) { if (iWeaponId == eWeaponIds :: WEAPON_TASER || iWeaponId == eWeaponIds :: WEAPON_KNIFE || iWeaponId == eWeaponIds :: WEAPON_FLASHBANG || iWeaponId == eWeaponIds :: WEAPON_HEGRENADE || iWeaponId == eWeaponIds :: WEAPON_SMOKEGRENADE || iWeaponId == eWeaponIds :: WEAPON_MOLOTOV || iWeaponId == eWeaponIds :: WEAPON_DECOY || iWeaponId == eWeaponIds :: WEAPON_INCGRENADE || iWeaponId == eWeaponIds :: WEAPON_C4 || iWeaponId == eWeaponIds :: WEAPON_KNIFE_T || iWeaponId == eWeaponIds :: WEAPON_BAYONET || iWeaponId == eWeaponIds :: WEAPON_KNIFE_FLIP || iWeaponId == eWeaponIds :: WEAPON_KNIFE_GUT || iWeaponId == eWeaponIds :: WEAPON_KNIFE_KARAMBIT || iWeaponId == eWeaponIds :: WEAPON_KNIFE_M9_BAYONET || iWeaponId == eWeaponIds :: WEAPON_KNIFE_TACTICAL || iWeaponId == eWeaponIds :: WEAPON_KNIFE_FALCHION || iWeaponId == eWeaponIds :: WEAPON_KNIFE_SURVIVAL_BOWIE || iWeaponId == eWeaponIds :: WEAPON_KNIFE_BUTTERFLY || iWeaponId == eWeaponIds :: WEAPON_KNIFE_PUSH) return true; else zwraca false; } pls
Reply
#9
Zacytować: Napisał MarkHC ~ snip ~ Ale sposób, w jaki to robię, pozwala mi go dostosować, np. Powiedzmy, że chcę wypowiedzieć zdanie, które będzie prawdziwe tylko wtedy, gdy trzymam pistolet lub nóż lub AWP.
Reply
#10
Zacytować: Originally Posted by exodia1232 Ale sposób, w jaki to robię, pozwala mi go dostosować, np. Powiedzmy, że chcę wypowiedzieć zdanie, które będzie prawdziwe tylko wtedy, gdy trzymam pistolet lub nóż lub AWP. Kod: bool is_pistol_or_knife_or_awp (Broń * broń) { WeaponType type = weapon-> type (); typ zwrotu == TYPE_PISTOL
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)