public static Int32 ViewDraw_DrawChildren(String message) { try { Process process = Process.ThisProcess(); return(0); GUC.WorldObjects.Character.Player pl = GUC.WorldObjects.Character.Player.Hero; if (pl == null) { return(0); } if (pl.ItemList.Count == 0) { return(0); } if (pl.ItemList[0].Address == 0) { return(0); } if (oCGame.Game(process).World.Address == 0) { return(0); } if (rndrWorld == null) { rndrWorld = zCWorld.Create(process); rndrWorld.IsInventoryWorld = true; } oCItem item = new oCItem(process, pl.ItemList[0].Address); zCView zV = zCView.Create(Process.ThisProcess(), 0, 0, 0x2000, 0x2000); zV.FillZ = true; zV.Blit(); zCView.GetScreen(Process.ThisProcess()).InsertItem(zV, 0); item.RenderItem(rndrWorld, zV, 0.0f); zCView.GetScreen(Process.ThisProcess()).RemoveItem(zV); zV.Dispose(); } catch (Exception ex) { zERROR.GetZErr(Process.ThisProcess()).Report(4, 'G', ex.ToString(), 0, "ViewDraw_DrawChildren", 0); } return(0); }
static void OnDrawItems(WinApiNew.RegisterMemory rmem) { try { int viewAddr = rmem.ECX; if (rndrDict.TryGetValue(viewAddr, out VobRenderArgs args) && args != null && args.render) { var vob = args.zenTree ?? args.renderVob; zCView view = new zCView(viewAddr); camera.SetRenderTarget(view); vob.SetPositionWorld(args.Offset.X, args.Offset.Y, args.Offset.Z + 100.0f); lightVob.SetPositionWorld(args.Offset.X, args.Offset.Y, args.Offset.Z); // light in your face args.Rotation.SetMatrix(vob.TrafoObjToWorld); vob.LastTimeDrawn = -1; vob.GroundPoly = 0; rndrWorld.AddVob(vob); bool evMan = zCEventManager.DisableEventManagers; zCEventManager.DisableEventManagers = true; zCRenderer.SetAlphaBlendFunc(zCRenderer.AlphaBlendFuncs.None); rndrWorld.Render(camera); zCEventManager.DisableEventManagers = evMan; rndrWorld.RemoveVobSubTree(vob); view.Blit(); } } catch (Exception e) { Logger.LogError("Hook DrawItems: " + e.ToString()); } }