[1.0.6] Hooking Member Changes - ntoxin66/Dynamic GitHub Wiki

	// Sometimes you may want to listen to member changes within a callback
	PrintToServer("CALLBACK TESTING MESSAGES");
	someobj.HookChanges(OnDynamicMemberChanged);
	someobj.SetInt("someint", 256);
	someobj.SetFloat("somefloat", -12.04);
	someobj.SetBool("somebool", false);
	someobj.SetString("somestring", "ye sure moite");
	someobj.SetVector("somevec", view_as<float>({2.0, 3.0, 4.0}));


public void OnDynamicMemberChanged(Dynamic obj, int offset, const char[] member, Dynamic_MemberType type)
{
	switch (type)
	{
		case DynamicType_Int:
		{
			PrintToServer("[%d] <int>obj.%s = %d", offset, member, obj.GetIntByOffset(offset));
		}
		case DynamicType_Float:
		{
			PrintToServer("[%d] <float>obj.%s = %f", offset, member, obj.GetFloatByOffset(offset));
		}
		case DynamicType_Bool:
		{
			PrintToServer("[%d] <bool>obj.%s = %d", offset, member, obj.GetBoolByOffset(offset));
		}
		case DynamicType_String:
		{
			char somestring[64];
			obj.GetStringByOffset(offset, somestring, sizeof(somestring));
			PrintToServer("[%d] <string>obj.%s = '%s'", offset, member, somestring);
		}
		case DynamicType_Vector:
		{
			char somestring[64];
			obj.GetStringByOffset(offset, somestring, sizeof(somestring));
			PrintToServer("[%d] <Vector>obj.%s = %s", offset, member, somestring);
		}
	}
}
⚠️ **GitHub.com Fallback** ⚠️