AngryHelpAyyware Bullet tracers

Posts 1–3 of 3 · Page 1 of 1
Ayyware Bullet tracers
Can someone help me with this cuz it crashing

Code:
Bullettraces.h
////////

class CBulletListener
{
	class BulletListener : IGameEventListener2
	{
	public:
		void start()
		{
			if (!g_pGameEventManager->AddListener(this, "bullet_impact", false)) {
				throw std::exception("Failed to register the event");
			}
		}
		void stop()
		{
			Interfaces::EventManager->RemoveListener(this);
		}
		void FireGameEvent(IGameEvent* event) override
		{
			CBulletListener::singleton()->OnFireEvent(event);
		}
		int GetEventDebugID(void) override
		{
			return EVENT_DEBUG_ID_INIT /*0x2A*/;
		}
	};
public:
	static CBulletListener* singleton()
	{
		static CBulletListener* instance = new CBulletListener();
		return instance;
	}

	void initialize()
	{
		_listener.start();
	}

	void OnFireEvent(IGameEvent* event)
	{
		if (!strcmp(event->GetName(), "bullet_impact"))
		{
			auto index = Interfaces::Engine->GetPlayerForUserID(event->GetInt("userid"));

			if (index != Interfaces::Engine->GetLocalPlayer())
				return;

			auto local = (IClientEntity*)Interfaces::EntList->GetClientEntity(index);

			if (!local)
				return;

			Vector position(event->GetFloat("x"), event->GetFloat("y"), event->GetFloat("z"));

			Ray_t ray;
			ray.Init(local->GetEyePosition(), position);

			CTraceFilter filter;
			filter.pSkip = local;

			trace_t tr;
			Interfaces::Trace->TraceRay(ray, MASK_SHOT, &filter, &tr);

			logs.push_back(cbullet_tracer_info(local->GetEyePosition(), position, Interfaces::Globals->curtime, Color(140, 29, 29, 255)));
		}
	}

	void OnStudioRender()
	{
		if (!Menu::Window.VisualsTab.BulletTracers.GetState())
			return;

		auto local = (IClientEntity*)Interfaces::EntList->GetClientEntity(Interfaces::Engine->GetLocalPlayer());

		if (!local)
			return;

		for (size_t i = 0; i < logs.size(); i++)
		{
			auto current = logs.at(i);

			Interfaces::DebugOverlay->AddLineOverlay(current.src, current.dst, current.color.r(), current.color.g(), current.color.b(), true, -1.f);

			if (fabs(Interfaces::Globals->curtime - current.time) > 3.f)
				logs.erase(logs.begin() + i);
		}
	}

private:
	BulletListener _listener;

	class cbullet_tracer_info
	{
	public:
		cbullet_tracer_info(Vector src, Vector dst, float time, Color color)
		{
			this->src = src;
			this->dst = dst;
			this->time = time;
			this->color = color;
		}

		Vector src, dst;
		float time;
		Color color;
	};

	std::vector<cbullet_tracer_info> logs;
};
Code:
PaintTraverse

CBulletListener::singleton()->OnStudioRender();
Code:
DLLMain.cpp

CBulletListener::singleton()->initialize();
You need to debug it
put CBulletListener::singleton()->OnStudioRender();in FireEventClientSide,and works fine
Posts 1–3 of 3 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Need help?