Advertisement
Guest User

Entity.cpp

a guest
Aug 27th, 2017
525
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.84 KB | None | 0 0
  1. #include "SDK.h"
  2.  
  3. int CBaseEntity::GetHealth()
  4. {
  5. return *(int*)((DWORD)this + offsets.m_iHealth);
  6. }
  7.  
  8. bool CBaseEntity::IsValid()
  9. {
  10. if (!this)
  11. return false;
  12.  
  13. if (this->GetHealth() < 1)
  14. return false;
  15.  
  16. if (this->IsDormant())
  17. return false;
  18.  
  19. return true;
  20. }
  21.  
  22. int CBaseEntity::GetTeam()
  23. {
  24. return *(int*)((DWORD)this + offsets.m_iTeamNum);
  25. }
  26.  
  27. int CBaseEntity::GetFlags()
  28. {
  29. return *(int*)((DWORD)this + offsets.m_fFlags);
  30. }
  31.  
  32. int CBaseEntity::GetTickBase()
  33. {
  34. return *(int*)((DWORD)this + offsets.m_nTickBase);
  35. }
  36.  
  37. int CBaseEntity::GetDistance()
  38. {
  39. return M::VectorDistance(G::LocalPlayer->GetOrigin(), this->GetOrigin());
  40. }
  41.  
  42. model_t* CBaseCombatWeapon::GetModel()
  43. {
  44. return *(model_t**)((DWORD)this + 0x6C);
  45. }
  46.  
  47. int CBaseEntity::GetShotsFired()
  48. {
  49. return *(int*)((DWORD)this + offsets.m_iShotsFired);
  50. }
  51.  
  52. int CBaseEntity::GetMoney()
  53. {
  54. return *(int*)((DWORD)this + offsets.m_iAccount);
  55. }
  56.  
  57. int CBaseEntity::GetMoveType()
  58. {
  59. return *(int*)((DWORD)this + offsets.m_nMoveType);
  60. }
  61.  
  62. int CBaseEntity::GetModelIndex()
  63. {
  64. return *(int*)((DWORD)this + offsets.m_nModelIndex);
  65. }
  66.  
  67. int CBaseEntity::GetHitboxSet()
  68. {
  69. return *(int*)((DWORD)this + offsets.m_nHitboxSet);
  70. }
  71.  
  72. int CBaseEntity::GetUserID()
  73. {
  74. return this->GetPlayerInfo().userid;
  75. }
  76.  
  77. int CBaseEntity::GetArmor()
  78. {
  79. return *(int*)((DWORD)this + offsets.m_ArmorValue);
  80. }
  81.  
  82. int CBaseEntity::PhysicsSolidMaskForEntity()
  83. {
  84. typedef unsigned int(__thiscall* OriginalFn)(PVOID);
  85. return U::GetVFunc<OriginalFn>(this, 154)(this);
  86. }
  87.  
  88. bool CBaseEntity::HasDefuser()
  89. {
  90. return *(bool*)((DWORD)this + offsets.m_bHasDefuser);
  91. }
  92.  
  93. int CBaseEntity::GetOwner()
  94. {
  95. return *(int*)((DWORD)this + offsets.m_hOwnerEntity);
  96. }
  97.  
  98. float& CBaseEntity::GetSimulationTime()
  99. {
  100. return *(float*)((DWORD)this + offsets.m_flSimulationTime);
  101. }
  102.  
  103. float& CBaseEntity::GetOldSimulationTime()
  104. {
  105. return *(float*)((DWORD)this + offsets.m_flSimulationTime + 0x4);
  106. }
  107.  
  108. float& CBaseEntity::GetCycle()
  109. {
  110. return *(float*)((DWORD)this + offsets.m_flCycle);
  111. }
  112. int& CBaseEntity::GetSequence()
  113. {
  114. return *(int*)((DWORD)this + offsets.m_nSequence);
  115. }
  116.  
  117. CBaseEntity* CBaseEntity::GetObserverTarget()
  118. {
  119. return I::ClientEntList->GetClientEntityFromHandle(ReadPtr<DWORD>(this, offsets.m_hObserverTarget));
  120. }
  121.  
  122. ObserverMode_t* CBaseEntity::GetObserverMode()
  123. {
  124. return (ObserverMode_t*)((DWORD)this + offsets.m_iObserverMode);
  125. }
  126.  
  127. int CBaseEntity::GetGlowIndex()
  128. {
  129. return *(int*)((DWORD)this + offsets.m_iGlowIndex);
  130. }
  131.  
  132. int CBaseEntity::GetAmmo(CBaseCombatWeapon* wep)
  133. {
  134. return *(int*)((DWORD)wep + offsets.m_iClip1);
  135. }
  136.  
  137. bool CBaseEntity::IsDefusing()
  138. {
  139. return *(bool*)((DWORD)this + offsets.m_bIsDefusing);
  140. }
  141.  
  142. bool CBaseEntity::IsBombPlanted()
  143. {
  144. return *(bool*)((DWORD)this + offsets.m_bBombTicking);
  145. }
  146.  
  147. float CBaseEntity::GetBombTimer()
  148. {
  149. float bombTime = *(float*)((DWORD)this + offsets.m_flC4Blow);
  150. float returnValue = bombTime - I::Globals->curtime;
  151. return (returnValue < 0) ? 0.f : returnValue;
  152. }
  153.  
  154. bool CBaseEntity::IsBombDefused()
  155. {
  156. return *(bool*)((DWORD)this + offsets.m_bBombDefused);
  157. }
  158.  
  159. int CBaseEntity::GetBombDefuser()
  160. {
  161. return *(int*)((DWORD)this + offsets.m_hBombDefuser);
  162. }
  163.  
  164. float CBaseEntity::GetFlashDuration()
  165. {
  166. return *(float*)((DWORD)this + offsets.m_flFlashDuration);
  167. }
  168.  
  169. float* CBaseEntity::GetFlashMaxAlpha()
  170. {
  171. return (float*)((DWORD)this + offsets.m_flFlashMaxAlpha);
  172. }
  173.  
  174. bool CBaseEntity::IsFlashed()
  175. {
  176. return GetFlashDuration() > 0 ? true : false;
  177. }
  178.  
  179. bool CBaseEntity::IsAlive()
  180. {
  181. return (bool)(*(int*)((DWORD)this + offsets.m_lifeState) == 0);
  182. }
  183.  
  184. bool CBaseEntity::IsDormant()
  185. {
  186. return *(bool*)((DWORD)this + offsets.m_bDormant);
  187. }
  188.  
  189. int CBaseEntity::GetIndex()
  190. {
  191. return *(int*)((DWORD)this + 0x64);
  192. }
  193.  
  194. bool CBaseEntity::HasImmunity()
  195. {
  196. return *(bool*)((DWORD)this + offsets.m_bGunGameImmunity);
  197. }
  198.  
  199. bool CBaseEntity::HasHelmet()
  200. {
  201. return *(bool*)((DWORD)this + offsets.m_bHasHelmet);
  202. }
  203.  
  204. bool CBaseEntity::IsScoped()
  205. {
  206. return *(bool*)((DWORD)this + offsets.m_bIsScoped);
  207. }
  208.  
  209. bool* CBaseEntity::IsSpotted()
  210. {
  211. return (bool*)((DWORD)this + offsets.m_bIsSpotted);
  212. }
  213.  
  214. bool CBaseEntity::IsTargetingLocal()
  215. {
  216. Vector src, dst, forward;
  217. trace_t tr;
  218.  
  219. if (!this)
  220. return false;
  221.  
  222. QAngle viewangle = this->GetEyeAngles();
  223.  
  224. M::AngleVectors(viewangle, &forward);
  225. forward *= 8142.f;
  226. src = this->GetEyePosition();
  227. dst = src + forward;
  228.  
  229. U::TraceLine(src, dst, MASK_SHOT, this, &tr);
  230.  
  231. if (tr.m_pEnt == G::LocalPlayer)
  232. return true;
  233.  
  234. return false;
  235. }
  236.  
  237. model_t* CBaseEntity::GetModel()
  238. {
  239. return *(model_t**)((DWORD)this + 0x6C);
  240. }
  241.  
  242. bool CBaseEntity::IsEnemy()
  243. {
  244. return (this->GetTeam() == G::LocalPlayer->GetTeam() || this->GetTeam() == 0) ? false : true;
  245. }
  246.  
  247. bool CBaseEntity::IsVisible(int bone)
  248. {
  249. Ray_t ray;
  250. trace_t tr;
  251. m_visible = false;
  252. ray.Init(G::LocalPlayer->GetEyePosition(), this->GetBonePosition(bone));
  253.  
  254. CTraceFilter filter;
  255. filter.pSkip = G::LocalPlayer;
  256.  
  257. I::EngineTrace->TraceRay(ray, MASK_NPCWORLDSTATIC | MASK_SHOT, &filter, &tr);
  258.  
  259. if (tr.m_pEnt == this || tr.fraction > 0.99f)
  260. {
  261. m_visible = true;
  262. return true;
  263. }
  264.  
  265. return false;
  266. }
  267.  
  268. bool CBaseEntity::IsBroken()
  269. {
  270. return *(bool*)((DWORD)this + offsets.m_bIsBroken);
  271. }
  272.  
  273. QAngle CBaseEntity::GetViewPunch()
  274. {
  275. return *(QAngle*)((DWORD)this + offsets.m_viewPunchAngle);
  276. }
  277.  
  278. Vector CBaseEntity::GetAimPunchAngle()
  279. {
  280. return *(Vector*)((DWORD)this + offsets.m_aimPunchAngle);
  281. }
  282.  
  283. QAngle CBaseEntity::GetPunch()
  284. {
  285. return *(QAngle*)((DWORD)this + offsets.m_aimPunchAngle);
  286. }
  287.  
  288. QAngle* CBaseEntity::GetEyeAnglesPointer()
  289. {
  290. return reinterpret_cast<QAngle*>((DWORD)this + (DWORD)0xAA08);
  291. }
  292.  
  293. QAngle CBaseEntity::GetEyeAngles()
  294. {
  295. return *(QAngle*)((DWORD)this + offsets.m_angEyeAngles);
  296. }
  297.  
  298. Vector CBaseEntity::GetOrigin()
  299. {
  300. return *(Vector*)((DWORD)this + offsets.m_vecOrigin);
  301. }
  302.  
  303. Vector CBaseEntity::GetOrigin2()
  304. {
  305. return *(Vector*)((DWORD)this + 0x00000134);
  306. }
  307.  
  308. Vector CBaseEntity::GetAbsOrigin()
  309. {
  310. typedef Vector(__thiscall* oGetAbsOriginal)(void*);
  311. return U::GetVFunc<oGetAbsOriginal>(this, 10)(this);
  312. }
  313.  
  314. Vector CBaseEntity::GetAbsOrigin2()
  315. {
  316. __asm
  317. {
  318. MOV ECX, this
  319. MOV EAX, DWORD PTR DS : [ECX]
  320. CALL DWORD PTR DS : [EAX + 0x28]
  321. }
  322. }
  323.  
  324. Vector CBaseEntity::GetAbsAngles()
  325. {
  326. typedef Vector(__thiscall* oGetAbsAngles)(void*);
  327. return U::GetVFunc<oGetAbsAngles>(this, 11)(this);
  328. }
  329.  
  330. Vector CBaseEntity::GetAbsAngles2()
  331. {
  332. __asm
  333. {
  334. MOV ECX, this;
  335. MOV EAX, DWORD PTR DS : [ECX];
  336. CALL DWORD PTR DS : [EAX + 0x2C]
  337. }
  338. }
  339.  
  340. Vector CBaseEntity::GetEyePosition()
  341. {
  342. Vector origin = this->GetOrigin();
  343. Vector offset = *(Vector*)((DWORD)this + offsets.m_vecViewOffset);
  344.  
  345. return(origin + offset);
  346. }
  347.  
  348. Vector CBaseEntity::GetVecViewOffset()
  349. {
  350. return *(Vector*)((DWORD)this + offsets.m_vecViewOffset);
  351. }
  352.  
  353. Vector CBaseEntity::GetBonePosition(int iBone)
  354. {
  355. matrix3x4_t BoneMatrix[MAXSTUDIOBONES];
  356.  
  357. if (this->SetupBones(BoneMatrix, MAXSTUDIOBONES, BONE_USED_BY_HITBOX, 0))
  358. return Vector(BoneMatrix[iBone][0][3], BoneMatrix[iBone][1][3], BoneMatrix[iBone][2][3]);
  359. else
  360. return Vector(0, 0, 0);
  361. }
  362.  
  363. QAngle* CBaseEntity::GetVAngles()
  364. {
  365. return (QAngle*)((DWORD)this + offsets.deadflag + 0x4);
  366. }
  367.  
  368. bool CBaseEntity::SetupBones(matrix3x4_t* pBoneToWorldOut, int nMaxBones, int boneMask, float currentTime)
  369. {
  370. __asm
  371. {
  372. mov edi, this
  373. lea ecx, DWORD ptr ds : [edi + 0x4]
  374. mov edx, DWORD ptr ds : [ecx]
  375. push currentTime
  376. push boneMask
  377. push nMaxBones
  378. push pBoneToWorldOut
  379. call DWORD ptr ds : [edx + 0x34]
  380. }
  381. }
  382.  
  383. Vector CBaseEntity::GetVelocity()
  384. {
  385. return *(Vector*)((DWORD)this + offsets.m_vecVelocity);
  386. }
  387.  
  388. Vector CBaseEntity::GetPredicted(Vector p0)
  389. {
  390. return M::ExtrapolateTick(p0, this->GetVelocity());
  391. }
  392.  
  393. float& CBaseEntity::GetPoseParameter(int i)
  394. {
  395. return *(float*)((DWORD)this + offsets.m_flPoseParameter + sizeof(float) * i);
  396. }
  397.  
  398. ICollideable* CBaseEntity::GetCollideable()
  399. {
  400. return (ICollideable*)((DWORD)this + offsets.m_Collision);
  401. }
  402.  
  403. void CBaseEntity::UpdateClientSideAnimation()
  404. {
  405. typedef void(__thiscall* oUpdateClientSideAnimation)(void*);
  406. return U::GetVFunc<oUpdateClientSideAnimation>(this, 218)(this); // ? return
  407. }
  408.  
  409. player_info_t CBaseEntity::GetPlayerInfo()
  410. {
  411. player_info_t pinfo;
  412. I::Engine->GetPlayerInfo(this->index, &pinfo);
  413. return pinfo;
  414. }
  415.  
  416. std::string CBaseEntity::GetName()
  417. {
  418. return this->GetPlayerInfo().name;
  419. }
  420.  
  421. std::string CBaseEntity::GetSteamID() //outdated needs update
  422. {
  423. return this->GetPlayerInfo().name;
  424. }
  425.  
  426. std::string CBaseEntity::GetLastPlace()
  427. {
  428. return std::string((const char*)this + offsets.m_szLastPlaceName);
  429. }
  430.  
  431. CBaseCombatWeapon* CBaseEntity::GetWeapon()
  432. {
  433. DWORD weaponData = *(DWORD*)((DWORD)this + offsets.m_hActiveWeapon);
  434. return (CBaseCombatWeapon*)I::ClientEntList->GetClientEntityFromHandle(weaponData);
  435. }
  436.  
  437. ClientClass* CBaseEntity::GetClientClass()
  438. {
  439. PVOID pNetworkable = (PVOID)((DWORD)(this) + 0x8);
  440. typedef ClientClass*(__thiscall* OriginalFn)(PVOID);
  441. return U::GetVFunc<OriginalFn>(pNetworkable, 2)(pNetworkable);
  442. }
  443.  
  444. int CBaseEntity::GetCollisionGroup()
  445. {
  446. return *(int*)((DWORD)this + offsets.m_CollisionGroup);
  447. }
  448.  
  449. int& CBaseCombatWeapon::GetWeaponID()
  450. {
  451. return *(int*)((DWORD)this + offsets.m_iWeaponID);
  452. }
  453.  
  454. float& CBaseCombatWeapon::GetNextPrimaryAttack()
  455. {
  456. return *(float*)((DWORD)this + offsets.m_flNextPrimaryAttack);
  457. }
  458.  
  459. float& CBaseCombatWeapon::GetAccuracyPenalty()
  460. {
  461. return *(float*)((DWORD)this + offsets.m_fAccuracyPenalty);
  462. }
  463.  
  464. float& CBaseCombatWeapon::GetPostponeFireReadyTime()
  465. {
  466. return *(float*)((DWORD)this + offsets.m_flPostponeFireReadyTime);
  467. }
  468.  
  469. int& CBaseCombatWeapon::GetXUIDLow()
  470. {
  471. return *(int*)((DWORD)this + offsets.m_OriginalOwnerXuidLow);
  472. }
  473.  
  474. int& CBaseCombatWeapon::GetXUIDHigh()
  475. {
  476. return *(int*)((DWORD)this + offsets.m_OriginalOwnerXuidHigh);
  477. }
  478.  
  479. int& CBaseCombatWeapon::GetEntityQuality()
  480. {
  481. return *(int*)((DWORD)this + offsets.m_iEntityQuality);
  482. }
  483.  
  484. int& CBaseCombatWeapon::GetAccountID()
  485. {
  486. return *(int*)((DWORD)this + offsets.m_iAccountID);
  487. }
  488.  
  489. int& CBaseCombatWeapon::GetItemIDHigh()
  490. {
  491. return *(int*)((DWORD)this + offsets.m_iItemIDHigh);
  492. }
  493.  
  494. int& CBaseCombatWeapon::GetItemDefinitionIndex()
  495. {
  496. return *(int*)((DWORD)this + offsets.m_iItemDefinitionIndex);
  497. }
  498.  
  499. int& CBaseCombatWeapon::ViewModelIndex()
  500. {
  501. return *(int*)((DWORD)this + offsets.m_iViewModelIndex);
  502. }
  503.  
  504. int& CBaseCombatWeapon::WorldModelIndex()
  505. {
  506. return *(int*)((DWORD)this + offsets.m_iWorldModelIndex);
  507. }
  508.  
  509. int& CBaseCombatWeapon::GetFallbackPaintKit()
  510. {
  511. return *(int*)((DWORD)this + offsets.m_nFallbackPaintKit);
  512. }
  513.  
  514. int& CBaseCombatWeapon::GetFallbackStatTrak()
  515. {
  516. return *(int*)((DWORD)this + offsets.m_nFallbackStatTrak);
  517. }
  518.  
  519. float& CBaseCombatWeapon::GetFallbackWear()
  520. {
  521. return *(float*)((DWORD)this + offsets.m_flFallbackWear);
  522. }
  523.  
  524. WeaponInfo_t* CBaseCombatWeapon::GetCSWpnData()
  525. {
  526. if (!this) return nullptr;
  527.  
  528. typedef WeaponInfo_t*(__thiscall* OriginalFn)(PVOID);
  529. return U::GetVFunc<OriginalFn>(this, 446)(this); // FIXed
  530. }
  531.  
  532. bool CBaseCombatWeapon::IsEmpty()
  533. {
  534. int clip = *(int*)((DWORD)this + offsets.m_iClip1);
  535. return clip == 0;
  536. }
  537.  
  538. bool CBaseCombatWeapon::IsReloading()
  539. {
  540. return *(bool*)((DWORD)this + 0x3235);
  541. }
  542.  
  543. float CBaseCombatWeapon::GetInaccuracy()
  544. {
  545. typedef float(__thiscall* oInaccuracy)(PVOID);
  546. return U::GetVFunc<oInaccuracy>(this, 469)(this);
  547. }
  548.  
  549. float CBaseCombatWeapon::GetInaccuracy2()
  550. {
  551. if (!this) return 0;
  552. typedef float(__thiscall* oInaccuracy)(PVOID);
  553. return U::GetVFunc<oInaccuracy>(this, 469)(this);
  554. }
  555.  
  556. float CBaseCombatWeapon::GetSpread()
  557. {
  558. typedef float(__thiscall* oWeaponSpread)(PVOID);
  559. return U::GetVFunc<oWeaponSpread>(this, 439)(this); //
  560. }
  561.  
  562. void CBaseCombatWeapon::UpdateAccuracyPenalty()
  563. {
  564. typedef void(__thiscall *FunctionFn)(void*);
  565. reinterpret_cast< FunctionFn >(*reinterpret_cast< PDWORD >(*reinterpret_cast< PDWORD >(this) + 0x748))((void*)this);
  566. }
  567.  
  568. float CBaseCombatWeapon::GetWeaponCone()
  569. {
  570. if (!this)
  571. return 0.f;
  572.  
  573. typedef float(__thiscall* oWeaponCone)(PVOID);
  574. return U::GetVFunc<oWeaponCone>(this, 478)(this); //What do we miss here?
  575. }
  576.  
  577. float CBaseCombatWeapon::GetWeaponSpread()
  578. {
  579. if (!this) return 0.f;
  580.  
  581. typedef float(__thiscall* OriginalFn)(void*);
  582. return U::GetVFunc<OriginalFn>(this, 439)(this);
  583. //return U::GetVFunc<OriginalFn>( this, 479 )( this ); //Wrong since update 18.08.17
  584. }
  585.  
  586. float CBaseCombatWeapon::GetHitchance()
  587. {
  588. float inaccuracy = GetInaccuracy();
  589. if (inaccuracy == 0)
  590. inaccuracy = 0.0000001;
  591. inaccuracy = 1 / inaccuracy;
  592. return inaccuracy;
  593. }
  594.  
  595. float CBaseEntity::GetLowerBodyYaw()
  596. {
  597. return *(float*)((DWORD)this + offsets.m_flLowerBodyYawTarget);
  598. }
  599.  
  600. bool CBaseCombatWeapon::IsGun()
  601. {
  602. if (!this)
  603. return false;
  604.  
  605. int id = this->GetWeaponID();
  606.  
  607. switch (id)
  608. {
  609. case WEAPON_DEAGLE:
  610. case WEAPON_ELITE:
  611. case WEAPON_FIVESEVEN:
  612. case WEAPON_GLOCK:
  613. case WEAPON_AK47:
  614. case WEAPON_AUG:
  615. case WEAPON_AWP:
  616. case WEAPON_FAMAS:
  617. case WEAPON_G3SG1:
  618. case WEAPON_GALILAR:
  619. case WEAPON_M249:
  620. case WEAPON_M4A1:
  621. case WEAPON_MAC10:
  622. case WEAPON_P90:
  623. case WEAPON_UMP45:
  624. case WEAPON_XM1014:
  625. case WEAPON_BIZON:
  626. case WEAPON_MAG7:
  627. case WEAPON_NEGEV:
  628. case WEAPON_SAWEDOFF:
  629. case WEAPON_TEC9:
  630. case WEAPON_HKP2000:
  631. case WEAPON_MP7:
  632. case WEAPON_MP9:
  633. case WEAPON_NOVA:
  634. case WEAPON_P250:
  635. case WEAPON_SCAR20:
  636. case WEAPON_SG556:
  637. case WEAPON_SSG08:
  638. return true;
  639. case WEAPON_KNIFE:
  640. case WEAPON_FLASHBANG:
  641. case WEAPON_HEGRENADE:
  642. case WEAPON_SMOKEGRENADE:
  643. case WEAPON_MOLOTOV:
  644. case WEAPON_DECOY:
  645. case WEAPON_INCGRENADE:
  646. case WEAPON_C4:
  647. case WEAPON_KNIFE_T:
  648. case WEAPON_TASER:
  649. return false;
  650. case WEAPON_M4A1_SILENCER:
  651. case WEAPON_USP_SILENCER:
  652. case WEAPON_CZ75A:
  653. case WEAPON_REVOLVER:
  654. return true;
  655. default:
  656. return false;
  657. }
  658. }
  659.  
  660. bool CBaseCombatWeapon::IsGunSniper()
  661. {
  662. if (!this)
  663. return false;
  664.  
  665. int id = this->GetWeaponID();
  666.  
  667. switch (id)
  668. {
  669. case WEAPON_DEAGLE:
  670. case WEAPON_ELITE:
  671. case WEAPON_FIVESEVEN:
  672. case WEAPON_GLOCK:
  673. case WEAPON_AK47:
  674. case WEAPON_AUG:
  675. case WEAPON_FAMAS:
  676. case WEAPON_GALILAR:
  677. case WEAPON_M249:
  678. case WEAPON_M4A1:
  679. case WEAPON_MAC10:
  680. case WEAPON_P90:
  681. case WEAPON_UMP45:
  682. case WEAPON_XM1014:
  683. case WEAPON_BIZON:
  684. case WEAPON_MAG7:
  685. case WEAPON_NEGEV:
  686. case WEAPON_SAWEDOFF:
  687. case WEAPON_TEC9:
  688. case WEAPON_TASER:
  689. case WEAPON_HKP2000:
  690. case WEAPON_MP7:
  691. case WEAPON_MP9:
  692. case WEAPON_NOVA:
  693. case WEAPON_P250:
  694. case WEAPON_SG556:
  695. case WEAPON_KNIFE:
  696. case WEAPON_FLASHBANG:
  697. case WEAPON_HEGRENADE:
  698. case WEAPON_SMOKEGRENADE:
  699. case WEAPON_MOLOTOV:
  700. case WEAPON_DECOY:
  701. case WEAPON_INCGRENADE:
  702. case WEAPON_C4:
  703. case WEAPON_KNIFE_T:
  704. case WEAPON_M4A1_SILENCER:
  705. case WEAPON_USP_SILENCER:
  706. case WEAPON_CZ75A:
  707. case WEAPON_REVOLVER:
  708. return false;
  709. case WEAPON_G3SG1:
  710. case WEAPON_SCAR20:
  711. case WEAPON_SSG08:
  712. case WEAPON_AWP:
  713. return true;
  714. default:
  715. return false;
  716. }
  717. }
  718.  
  719. bool CBaseCombatWeapon::IsGunCanScope()
  720. {
  721. if (!this)
  722. return false;
  723.  
  724. int id = this->GetWeaponID();
  725.  
  726. switch (id)
  727. {
  728. case WEAPON_DEAGLE:
  729. case WEAPON_ELITE:
  730. case WEAPON_FIVESEVEN:
  731. case WEAPON_GLOCK:
  732. case WEAPON_AK47:
  733. case WEAPON_FAMAS:
  734. case WEAPON_GALILAR:
  735. case WEAPON_M249:
  736. case WEAPON_M4A1:
  737. case WEAPON_MAC10:
  738. case WEAPON_P90:
  739. case WEAPON_UMP45:
  740. case WEAPON_XM1014:
  741. case WEAPON_BIZON:
  742. case WEAPON_MAG7:
  743. case WEAPON_NEGEV:
  744. case WEAPON_SAWEDOFF:
  745. case WEAPON_TEC9:
  746. case WEAPON_TASER:
  747. case WEAPON_HKP2000:
  748. case WEAPON_MP7:
  749. case WEAPON_MP9:
  750. case WEAPON_NOVA:
  751. case WEAPON_P250:
  752. case WEAPON_KNIFE:
  753. case WEAPON_FLASHBANG:
  754. case WEAPON_HEGRENADE:
  755. case WEAPON_SMOKEGRENADE:
  756. case WEAPON_MOLOTOV:
  757. case WEAPON_DECOY:
  758. case WEAPON_INCGRENADE:
  759. case WEAPON_C4:
  760. case WEAPON_KNIFE_T:
  761. case WEAPON_M4A1_SILENCER:
  762. case WEAPON_USP_SILENCER:
  763. case WEAPON_CZ75A:
  764. case WEAPON_REVOLVER:
  765. return false;
  766. case WEAPON_G3SG1:
  767. case WEAPON_SCAR20:
  768. case WEAPON_SSG08:
  769. case WEAPON_AWP:
  770. case WEAPON_SG556:
  771. case WEAPON_AUG:
  772. return true;
  773. default:
  774. return false;
  775. }
  776. }
  777.  
  778. bool CBaseCombatWeapon::IsGunGrenade()
  779. {
  780. if (!this)
  781. return false;
  782.  
  783. int id = this->GetWeaponID();
  784.  
  785. switch (id)
  786. {
  787. case WEAPON_DEAGLE:
  788. case WEAPON_ELITE:
  789. case WEAPON_FIVESEVEN:
  790. case WEAPON_GLOCK:
  791. case WEAPON_AK47:
  792. case WEAPON_AUG:
  793. case WEAPON_FAMAS:
  794. case WEAPON_GALILAR:
  795. case WEAPON_M249:
  796. case WEAPON_M4A1:
  797. case WEAPON_MAC10:
  798. case WEAPON_P90:
  799. case WEAPON_UMP45:
  800. case WEAPON_XM1014:
  801. case WEAPON_BIZON:
  802. case WEAPON_MAG7:
  803. case WEAPON_NEGEV:
  804. case WEAPON_SAWEDOFF:
  805. case WEAPON_TEC9:
  806. case WEAPON_HKP2000:
  807. case WEAPON_MP7:
  808. case WEAPON_MP9:
  809. case WEAPON_NOVA:
  810. case WEAPON_P250:
  811. case WEAPON_SG556:
  812. case WEAPON_KNIFE:
  813. case WEAPON_KNIFE_T:
  814. case WEAPON_C4:
  815. case WEAPON_TASER:
  816. case WEAPON_M4A1_SILENCER:
  817. case WEAPON_USP_SILENCER:
  818. case WEAPON_CZ75A:
  819. case WEAPON_REVOLVER:
  820. case WEAPON_G3SG1:
  821. case WEAPON_SCAR20:
  822. case WEAPON_SSG08:
  823. case WEAPON_AWP:
  824. return false;
  825. case WEAPON_INCGRENADE:
  826. case WEAPON_SMOKEGRENADE:
  827. case WEAPON_HEGRENADE:
  828. case WEAPON_FLASHBANG:
  829. case WEAPON_DECOY:
  830. case WEAPON_MOLOTOV:
  831. return true;
  832. default:
  833. return false;
  834. }
  835. }
  836.  
  837. std::string CBaseCombatWeapon::GetWeaponName()
  838. {
  839. if (!this)
  840. return "";
  841.  
  842. int id = this->GetWeaponID();
  843.  
  844. switch (id)
  845. {
  846. case WEAPON_DEAGLE:
  847. return XorStr("Desert Eagle");
  848. case WEAPON_ELITE:
  849. return XorStr("Dual Berettas");
  850. case WEAPON_FIVESEVEN:
  851. return XorStr("Five-SeveN");
  852. case WEAPON_GLOCK:
  853. return XorStr("Glock-18");
  854. case WEAPON_AK47:
  855. return XorStr("AK-47");
  856. case WEAPON_AUG:
  857. return XorStr("AUG");
  858. case WEAPON_AWP:
  859. return XorStr("AWP");
  860. case WEAPON_FAMAS:
  861. return XorStr("FAMAS");
  862. case WEAPON_G3SG1:
  863. return XorStr("G3SG1");
  864. case WEAPON_GALILAR:
  865. return XorStr("Galil-AR");
  866. case WEAPON_M249:
  867. return XorStr("M249");
  868. case WEAPON_M4A1:
  869. return XorStr("M4A1");
  870. case WEAPON_MAC10:
  871. return XorStr("MAC-10");
  872. case WEAPON_P90:
  873. return XorStr("P90");
  874. case WEAPON_UMP45:
  875. return XorStr("UMP-45");
  876. case WEAPON_XM1014:
  877. return XorStr("XM1014");
  878. case WEAPON_BIZON:
  879. return XorStr("PP-Bizon");
  880. case WEAPON_MAG7:
  881. return XorStr("MAG-7");
  882. case WEAPON_NEGEV:
  883. return XorStr("Negev");
  884. case WEAPON_SAWEDOFF:
  885. return XorStr("Sawed-Off");
  886. case WEAPON_TEC9:
  887. return XorStr("Tec-9");
  888. case WEAPON_TASER:
  889. return XorStr("Taser");
  890. case WEAPON_HKP2000:
  891. return XorStr("P2000");
  892. case WEAPON_MP7:
  893. return XorStr("MP7");
  894. case WEAPON_MP9:
  895. return XorStr("MP9");
  896. case WEAPON_NOVA:
  897. return XorStr("Nova");
  898. case WEAPON_P250:
  899. return XorStr("P250");
  900. case WEAPON_SCAR20:
  901. return XorStr("SCAR-20");
  902. case WEAPON_SG556:
  903. return XorStr("SG 553");
  904. case WEAPON_SSG08:
  905. return XorStr("SSG 08");
  906. case WEAPON_KNIFE:
  907. return XorStr("Knife");
  908. case WEAPON_FLASHBANG:
  909. return XorStr("Flashbang");
  910. case WEAPON_HEGRENADE:
  911. return XorStr("HE Grenade");
  912. case WEAPON_SMOKEGRENADE:
  913. return XorStr("Smoke Grenade");
  914. case WEAPON_MOLOTOV:
  915. return XorStr("Molotov");
  916. case WEAPON_DECOY:
  917. return XorStr("Decoy");
  918. case WEAPON_INCGRENADE:
  919. return XorStr("Incendiary Grenade");
  920. case WEAPON_C4:
  921. return XorStr("C4");
  922. case WEAPON_KNIFE_T:
  923. return XorStr("Knife");
  924. case WEAPON_M4A1_SILENCER:
  925. return XorStr("M4A1-S");
  926. case WEAPON_USP_SILENCER:
  927. return XorStr("USP-S");
  928. case WEAPON_CZ75A:
  929. return XorStr("CZ75-Auto");
  930. case WEAPON_REVOLVER:
  931. return XorStr("R8 Revolver");
  932. default:
  933. return XorStr("Knife");
  934. }
  935.  
  936. return "";
  937. }
  938.  
  939. int CBaseCombatWeapon::GetWeaponType()
  940. {
  941. if (!this)
  942. return WEAPONTYPE_UNKNOWN;
  943.  
  944. auto id = this->GetWeaponID();
  945. switch (id)
  946. {
  947. case WEAPON_DEAGLE:
  948. case WEAPON_ELITE:
  949. case WEAPON_FIVESEVEN:
  950. case WEAPON_HKP2000:
  951. case WEAPON_USP_SILENCER:
  952. case WEAPON_CZ75A:
  953. case WEAPON_TEC9:
  954. case WEAPON_REVOLVER:
  955. case WEAPON_GLOCK:
  956. case WEAPON_P250:
  957. return WEAPONTYPE_PISTOL;
  958. break;
  959. case WEAPON_AK47:
  960. case WEAPON_M4A1:
  961. case WEAPON_M4A1_SILENCER:
  962. case WEAPON_GALILAR:
  963. case WEAPON_AUG:
  964. case WEAPON_FAMAS:
  965. case WEAPON_SG556:
  966. return WEAPONTYPE_RIFLE;
  967. break;
  968. case WEAPON_P90:
  969. case WEAPON_BIZON:
  970. case WEAPON_MP7:
  971. case WEAPON_MP9:
  972. case WEAPON_MAC10:
  973. case WEAPON_UMP45:
  974. return WEAPONTYPE_SUBMACHINEGUN;
  975. break;
  976. case WEAPON_AWP:
  977. case WEAPON_G3SG1:
  978. case WEAPON_SCAR20:
  979. case WEAPON_SSG08:
  980. return WEAPONTYPE_SNIPER;
  981. break;
  982. case WEAPON_NEGEV:
  983. case WEAPON_M249:
  984. return WEAPONTYPE_MACHINEGUN;
  985. break;
  986. case WEAPON_MAG7:
  987. case WEAPON_SAWEDOFF:
  988. case WEAPON_NOVA:
  989. case WEAPON_XM1014:
  990. return WEAPONTYPE_SHOTGUN;
  991. break;
  992. case WEAPON_KNIFE:
  993. case WEAPON_KNIFE_BAYONET:
  994. case WEAPON_KNIFE_BUTTERFLY:
  995. case WEAPON_KNIFE_FALCHION:
  996. case WEAPON_KNIFE_FLIP:
  997. case WEAPON_KNIFE_GUT:
  998. case WEAPON_KNIFE_KARAMBIT:
  999. case WEAPON_KNIFE_TACTICAL:
  1000. case WEAPON_KNIFE_M9_BAYONET:
  1001. case WEAPON_KNIFE_PUSH:
  1002. case WEAPON_KNIFE_SURVIVAL_BOWIE:
  1003. case WEAPON_KNIFE_T:
  1004. return WEAPONTYPE_KNIFE;
  1005. break;
  1006.  
  1007. default:
  1008. return WEAPONTYPE_UNKNOWN;
  1009. }
  1010. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement