求一份LXL矩阵以及矩阵相乘算法
eyy的,不要c的,可有偿地址那些的我都有,绘制算法搞不出来
同求!谢谢大佬们! 用w2c函数啊,矩阵算出来不准的 本帖最后由 键盘侠 于 2023-2-7 19:51 编辑
如果我没想错的话你所谓的绘制算法是屏幕地址和游戏地址转换吧?也就是3D地址转换成屏幕的2D地址,俗称屏幕转换call?也就是你想要最新的屏幕转换call地址和调用的汇编吧?从你说的话感觉你就是个小白,还绘制算法。。。。D3D绘制直接调用模块就完事了,用你自己研究什么算法。。。劝你别研究了,好好学习下基础吧,否则你有偿收了也是被人骗,只要汇编一变你还是不会更新!十进制:9408144 十六进制:8F8E90
十进制:56168184 十六进制:3590EF8
十进制:30202780 十六进制:1CCDB9C
------------------------
上面三个是你要的:屏幕转换call,画圈call,矩阵基质(没有一一对应,自己分辨!),下面的是其他相关基质和偏移,游戏版本13.1版本
--------------------------------
oChatPtr 0x251B40C
fnPrintfChat 0xB813
DecCall 0x28
DecCallClient 0x505A4D
GetUnitByNetworkId 0x300905F
fnIsType 0x166410
FnGetFirstObject 0x298F10
FnGetNextObject 0x29A320
fnCastSpell 0x532710
fnIssueOrder 0x167420
fnGetHpBarPos 0x610870
Hd3dHook 0x30
Hd3dHookRet 0xB02610
fnUpdateChargeableSpell 0x5378F0
fnGetTimerExpiry 0xFFFFFFFFFFFFFFFD
fnFindCamp 0x157FC0
oCampManagerClient 0x505A4D
ohoveredTarget 0x3B4A0C8D
oIsTroy 0x1A00F0
oIsNexus 0x19FF30
oInhibitorList 0x316B174
GameInfo 0x505A4D
GameStartData 0x18CDB00
HudManager 0x18CDB04
objManager 0x505A4D
IsCastObjectWindingUp 0x52E310
CanUseSpell 0x51FCA0
GetAttackCastDelay 0x295B00
GetAttackDelay 0x295C00
GetBasicAttack 0x15A4D0
IsTargetableToTeam 0x409950CC
buyItem 0x14DD10
IsTargetableToTeam 0x409950CC
CanAttack 0x10A6B0
CanCast 0x10A6D0
IsCharmed0x117CF0
CanMove 0x10A6F0
isAlive 0x18F6E0
getOwner 0x16
IsClickproofToEnemies 0x117D20
IsFeared 0x117D70
IsFleeing 0x117D80
IsForceRenderParticles 0x117D90
IsNearSight 0x119320
IsSelectable 0x1193E0
IsStunned 0x119410
IsSuppressed 0x117D70
IsTaunted 0x119460
如果我没想错的话你所谓的绘制算法是屏幕地址和游戏地址转换吧?也就是3D地址转换成屏幕的2D地址,俗称屏幕转换call?也就是你想要最新的屏幕转换call地址和调用的汇编吧?从你说的话感觉你就是个小白,还绘制算法。。。。D3D绘制直接调用模块就完事了,用你自己研究什么算法。。。劝你别研究了,好好学习下基础吧,否则你有偿收了也是被人骗,只要汇编一变你还是不会更新!
下面三个是13.1版本的屏幕转换call,矩阵基质,和画圈call,自己分辨,汇编不给了,地址给你了,要是不会自己弄汇编那就早点放弃吧,没有人能永远给你更新每个版本的地址
十进制:56168184 十六进制:3590EF8
十进制:9408144 十六进制:8F8E90
十进制:30202780 十六进制:1CCDB9C
另附其他功能基质
oChatPtr 0x251B40C
fnPrintfChat 0xB813
DecCall 0x28
DecCallClient 0x505A4D
GetUnitByNetworkId 0x300905F
fnIsType 0x166410
FnGetFirstObject 0x298F10
FnGetNextObject 0x29A320
fnCastSpell 0x532710
fnIssueOrder 0x167420
fnGetHpBarPos 0x610870
Hd3dHook 0x30
Hd3dHookRet 0xB02610
fnUpdateChargeableSpell 0x5378F0
fnGetTimerExpiry 0x3E
fnFindCamp 0x157FC0
oCampManagerClient 0x505A4D
ohoveredTarget 0x3B4A0C8D
oIsTroy 0x1A00F0
oIsNexus 0x19FF30
oHeroList 0x901A4D00
oMinionList 0x901A4D00
oInhibitorList 0x316B174
GameInfo 0x505A4D
Player 901A4D00
GameStartData 0x18CDB00
HudManager 0x18CDB04
objManager 0x505A4D
IsCastObjectWindingUp 0x52E310
CanUseSpell 0x51FCA0
GetAttackCastDelay 0x295B00
GetAttackDelay 0x295C00
GetBasicAttack 0x15A4D0
IsTargetableToTeam 0x409950CC
buyItem 0x14DD10
Undo 0x1DC1E0
IsTargetableToTeam 0x409950CC
CanAttack 0x10A6B0
CanCast 0x10A6D0
IsCharmed0x117CF0
CanMove 0x10A6F0
isAlive 0x18F6E0
getOwner 0x16
IsClickproofToEnemies 0x117D20
IsFeared 0x117D70
IsFleeing 0x117D80
IsForceRenderParticles 0x117D90
IsNearSight 0x119320
IsSelectable 0x1193E0
IsStunned 0x119410
IsSuppressed 0x117D70
IsTaunted 0x119460
NavGridInstance 0x01A4D00
fnIsWallOfType 0x2F20001F
GetR3dRenderLayerInfo 0x505A4D .版本 2
.子程序 WorldToScreen算法, 坐标2D
.参数 对象坐标, D3DXVECTOR3
.局部变量 View矩阵, 小数型, , "4,4"
.局部变量 Projection矩阵, 小数型, , "4,4"
.局部变量 游戏矩阵, 小数型, , "4,4"
.局部变量 屏幕坐标, 坐标3D
.局部变量 计算坐标, 坐标3D
.局部变量 返回坐标, 坐标2D
.局部变量 TMP, 整数型
.局部变量 屏幕大小, 坐标2D
读矩阵 (Get_pView (), View矩阵)
读矩阵 (Get_pProjection (), Projection矩阵)
矩阵相乘 (View矩阵, Projection矩阵, 游戏矩阵)
TMP = 读整数型 (#矩阵基址)
屏幕大小.x = 读整数型 (TMP + 24)
屏幕大小.y = 读整数型 (TMP + 28)
屏幕坐标.x = 对象坐标.x × 游戏矩阵 + 对象坐标.y × 游戏矩阵 + 对象坐标.z × 游戏矩阵 + 游戏矩阵
屏幕坐标.y = 对象坐标.x × 游戏矩阵 + 对象坐标.y × 游戏矩阵 + 对象坐标.z × 游戏矩阵 + 游戏矩阵
屏幕坐标.z = 对象坐标.x × 游戏矩阵 + 对象坐标.y × 游戏矩阵 + 对象坐标.z × 游戏矩阵 + 游戏矩阵
屏幕坐标.w = 对象坐标.x × 游戏矩阵 + 对象坐标.y × 游戏矩阵 + 对象坐标.z × 游戏矩阵 + 游戏矩阵
.如果真 (屏幕坐标.z < 0.01)如果真 ()
返回 (返回坐标)
.如果真结束
计算坐标.x = 屏幕坐标.x ÷ 屏幕坐标.w
计算坐标.y = 屏幕坐标.y ÷ 屏幕坐标.w
计算坐标.z = 屏幕坐标.z ÷ 屏幕坐标.w
返回坐标.x = 屏幕大小.x ÷ 2 × 计算坐标.x + 计算坐标.x + 屏幕大小.x ÷ 2
返回坐标.y = -(屏幕大小.y ÷ 2 × 计算坐标.y) + 计算坐标.y + 屏幕大小.y ÷ 2
返回 (返回坐标)
键盘侠 发表于 2023-2-7 20:15
如果我没想错的话你所谓的绘制算法是屏幕地址和游戏地址转换吧?也就是3D地址转换成屏幕的2D地址,俗称屏幕 ...
为什么不能有绘制算法?这帖子太久了,我都已经写完了{:5_188:}
内部的话,当然不用这么麻烦,我写纯外部的,纯外部的绘制,画圆绘制啥的不用算法,谁能绘制出来 鱼头骨丶 发表于 2023-2-21 19:59
为什么不能有绘制算法?这帖子太久了,我都已经写完了
内部的话,当然不用这么麻烦,我写纯外部 ...
牛人,你画圆用算法?模块都现成的,圆就是曲线段而已,你所谓的算法不就是屏幕转换吗?一个call叫算法?一个2d和3d坐标转换call而已 键盘侠 发表于 2023-2-23 14:28
牛人,你画圆用算法?模块都现成的,圆就是曲线段而已,你所谓的算法不就是屏幕转换吗?一个call叫算法? ...
外部都是算法啊,你纯外部,不调用任何一个call试试,普通的外部封装模块都是2D平面圆,外部想要画圆,要把每个点的W2S遍历出来,最后才转到屏幕上。转换call是转换call,W2S是W2S 鱼头骨丶 发表于 2023-2-23 21:43
外部都是算法啊,你纯外部,不调用任何一个call试试,普通的外部封装模块都是2D平面圆,外部想要画圆,要 ...
有空自己试试吧,还遍历出来?绘制D3D圆,圆线段取20,直接人物屏幕坐标为圆心,d3d里加个转换WorldToScreen()就完事了,直接将平面圆转换成3坐标偏移圆就完事了,还w2s?w2s是你取线段自己分配的,取多少线段是你圆是否圆滑而已,还遍历出来?你遍历出来是说明你线段默认了而已,不信自己试试取不同线段,你得到的w2s全是不一样的,说明什么问题?w2s和你矩阵无关,之和你取的线段有关,另外矩阵是用在WorldToScreen()里的算法全世界通用!
页:
[1]
2