诛仙经验地址和怪物ID(7.3)

基址:&H12F82C或&H9045ec
名字和坐标偏移+4
人物基址:[[&H12F82C]+&H28]=base
人物角色名:[[base+3a4]+0]
人物ID:[base+&H240]
职业代码:[base+&H248]
等级:[base+&H24c]
经验:[base+&H260] double 8字节
生命:[base+&H254]
生命上限:[base+&H26c]
[base+&H258]=真气
[base+&h270]=真气上限
[base+&H2a4]=最小攻击
[base+&H2a8]=最大攻击
[base+&H2b0]=防御
[base+&H2ac]=命中
[base+&H2b4]=闪躲
[base+&H7b8]=目标ID(目标玩家或怪物ID)
[base+&H2d4]=金钱
[base+&H3d8]=X坐标 single 4字节
[base+&H3e0]=Y坐标

-------------------------------当前地图----------------------------
[[ [&H12F82C]+&H8]+&H88]地图编号

-------------------------------目标玩家-----------------------------
[[base+&H138]=DestBase
[DestBase+&H14]=周围玩家数量
[DestBase+&H24]=玩家数组最大值
[DestBase+&H18]=玩家数组首地址
玩家偏移=(目标ID mod 玩家数组最大值)*4
选中玩家地址:[数组首地址+玩家偏移]=destpoint
[destpoint+&H4]=destpoint
[destpoint+&H24C]=目标等级
[destpoint+&H254]=目标生命地址
[destpoint+&H26c]=目标生命上限地址
[[destpoint+&H3a4]+0]=目标名字地址
[destpoint+&H118]=目标状态地址(医生有用)

-----------------------------目标怪物--------------------------------
[[[&H12F82C]+&H8]+&H20]=怪物地址BugbearBase
[BugbearBase+&H14]=怪物数量
[BugbearBase+&H24]=怪物数组最大值
[BugbearBase+&H18]=怪物数组首地址
ID>0
怪物偏移=(目标ID mod 玩家数组最大值)*4
ID<0
(目标IDmod 怪物数组最大值)* 4 + ($7FFFFFFF Mod 怪物数组最大值) * 8 + 8;
选中怪物地址:[怪物数组首地址+怪物偏移]=destpoint
[destpoint+&h4]=destpoint
[destpoint+&H128]=目标等级
[destpoint+&H130]=目标生命地址
[destpoint+&H148]=目标生命上限地址
[[destpoint+&H208]+0]=目标名字地址
[destpoint+&H22c]=目标与玩家之间距离
[destpoint+&H3c]=目标坐标x
[destpoint+&H44]=目标坐标y

---------------------背包----------------------------------
[base+&H874]=背包地址
[背包地址+&H10]=背包格数
[背包地址+&Hc]=背包首址Pfirst
[pfirst+i*&H4]=第i格地址(i=0-背包格数-1)Pbase
[pbase+&H8]=本格物品ID
[pbase+&14]=本格物品数量

------------------------地面物品----------------------------------
[[[[&H12F82C]+&H8]+&H24] +&H14]=地面物品数量
[[[[[[&H12F82C]+&H8]+&H24] +&H18+i*&H4]+&H4]=GoodsBase
[goodsbase+&H110]=物品ID
[goodsbase+&H10C]=物品系统编号(拾取call有用)
[[goodsbase+&H164]+0]=物品名字
[goodsbase+&H3C]=物品坐标x
[goodsbase+&H44]=物品坐标y
附:诛仙红药ID:1861-1870,22,大红:3999-4001
蓝:1871-1880 大蓝没有物品,不知道ID,估计:4002-4004

---------------------已学技能(限主动)-----------------------------------
[base+&H910]=已学技能数
[base+&H90c]=已学技能首地址 SkillBase
[SkillBase+i*&H4]=Skillfirst(i=0到技能数-1)
[Skillfirst+&H8]=技能ID
[[[Skillfirst+&H4]+&H4]+&H63]+0]=技能名称


部分call
//===========================自动寻路======================
7.3更新
  asm
    pushad
    mov eax, x
    mov [$906a28], eax
    mov eax, z
    mov [$906a2c], eax
    mov eax, y
    mov [$906a30], eax
    mov eax, dword ptr [$9045ec]
    mov eax, dword ptr [eax+$28]
    lea eax, dword ptr [eax+$3c]
    push id//地图ID
    push $906a28
    push eax
    mov  ecx, $900a90
    mov  eax, $42aa20
    call eax
    popad
  end;

//==================根据怪物ID进行选择========================
  addr:=pointer($5785c0);  //7.3更新
  asm
    pushad
    mov esi,gwid//怪物ID
    push esi
    MOV ECX,DWORD PTR DS:[$900adc]
    MOV ECX,DWORD PTR DS:[ECX+$20]
    add ecx,$D4
    call addr
    popad
end;


//=====================技能call==================================
  addr:=pointer($4656f0);//7.3更新
  asm
    pushad
    push -1
    push 0
    push 0
    push JLID //技能ID
    mov ecx,DWORD PTR DS:[$900adc]
    mov edx,DWORD PTR DS:[ecx+$1c]
    mov ecx,DWORD PTR DS:[edx+$28]
    call addr
    popad
  end;


=====================普通攻击==========================
Address:=Pointer($5a1b50);  //函数入口地址 7.3更新
asm
  pushad
    CALL Address
  popad
end;

//===================Tab call=============================
  Addr:=pointer($45f220);// 7.3更新
  asm
      pushad
      mov eax,dword ptr ds:[$900adc]
      mov eax,dword ptr ds:[eax+$1c]
      mov eax,dword ptr ds:[eax+$28]
      mov ecx, eax;
  push 0
      call Addr
      popad
  end;

//=====================死亡复活==========================
Address:=Pointer($5a1f70);  //函数入口地址 7.3更新
asm
  pushad
    CALL Address
  popad
end;

//========================物品拾取call=============================
  Address:= Pointer($578550);  //7.3更新
  dw1:=物品ID号
  dw2:=物品系统编号
  asm
      pushad
      mov ecx, dword ptr [$900adc]
      mov edx, dw1
      push edx
      mov ecx, dword ptr [ecx+$20]
      mov eax, dw2
      push eax
      add  ecx, $D4
      call address
      popad
  end;


//========================Call物品使用=============================
  address:=Pointer($578380);//7.3更新
  dwid:=物品ID号
  dwwz:=物品在背中的位置(0开始)
  asm
    pushad
    mov edx, dwid
    mov eax, dwwz
    push 1
    push edx
    push eax
    push 0
    mov esi,dword ptr [$9045f0]
    lea ecx,dword ptr [esi+$D4]
    call address
    popad
  end;

//===================买物call============
mov    ecx, dword ptr [esp+2C]
push    ecx      //这是存物品信息的指针
push    eax              //物品组数
call    005a2660
add    esp, 8 

//===================卖物call============
mov    edx, dword ptr [esp+10]
push    edx
push    ebp                        //物品组数
call    005a26e0
add    esp, 8 

//======================仓库存取============ 6.19更新
PUSH EDI //包裹格子位置
PUSH EBX//仓库格子位置
CALL 005a0fd0//存取仓库Call
ADD ESP,8//这个不要忘了,不然堆栈不平衡

打开NPC对话框 (6.19更新)
mov    ecx, dword ptr [esi+20]
mov    edx, dword ptr [8fea5c]
push    ecx
mov    ecx, dword ptr [edx+20]
add    ecx, 0D4
call    00577c90

取消NPC对话框
push    008bcbe4 
mov    ecx, esi     
call    006b1830
诛仙飞天:$45D8A9
打坐:$5A21D0
停止打坐:$5A2190
买卖
5a34a0
5a3520
打开npc
578880
关闭npc
6b3100
明文发包
57d9c0
快捷call

 

 

 

 

 

35版的基址为0x90664c

 

35版:
复活回城:
005A238E    90              nop
005A238F    90              nop
005A2390    56              push    esi
005A2391    6A 02           push    2
005A2393    E8 C8F91300     call    elementc.006E1D60
005A2398    8BF0            mov     esi, eax
005A239A    83C4 04         add     esp, 4
005A239D    85F6            test    esi, esi
005A239F    74 1E           je      short elementc.005A23BF
005A23A1    66:C706 0400    mov     word ptr [esi], 4
005A23A6    A1 3C2B9000     mov     eax, [902B3C]
005A23AB    6A 02           push    2
005A23AD    56              push    esi
005A23AE    8B48 20         mov     ecx, [eax+20]
005A23B1    E8 3AC0FDFF     call    elementc.0057E3F0
005A23B6    56              push    esi
005A23B7    E8 B4F91300     call    elementc.006E1D70
005A23BC    83C4 04         add     esp, 4
005A23BF    5E              pop     esi
005A23C0    C3              retn
005A23C1    90              nop
005A23C2    90              nop

 

其中
005A23A1    66:C706 0400    mov     word ptr [esi], 4
如果赋值为其他数字,就代表不同的命令或状态。
整个游戏程序里很多类似函数,只是赋值的数字不同,分别对应了各种状态和命令。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
诛仙私服是一款非常受欢迎的游戏,而要搭建诛仙私服需要用到MySQL数据库。MySQL是目前最流行的开源数据库之一,其特点是稳定、可靠、免费,可以快速地处理数据,支持并发处理和高性能读写操作。下面是诛仙私服MySQL搭建的详细流程。 第一步:安装MySQL数据库 首先下载安装MySQL数据库,可以在MySQL官网上下载,安装时建议选择完整版安装,否则后续可能需要手动安装一些缺失的组件。按照安装向导进行安装即可,过程中会提示设置管理员账户和密码。 第二步:创建数据库 在MySQL中,通过SQL语句可以创建数据库。 例如: CREATE DATABASE zhu_xian; 这条语句就可以创建一个名为zhu_xian的数据库。 第三步:创建表格 在已创建的数据库中,需要创建游戏所需的各种表格。可以使用MySQL Workbench等工具进行表格设计、编写和执行,也可以通过SQL语句进行创建。表格的具体结构需要根据游戏的需求来设计。 例如: CREATE TABLE player( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(30) NOT NULL, level INT NOT NULL, exp INT NOT NULL ); 这条语句就可以创建一个名为player的表格,用于存储玩家的ID、昵称、等级和经验值等信息。 第四步:连接数据库 在游戏服务器中,需要通过代码连接MySQL数据库,以实现数据的读写。连接MySQL数据库需要指定数据库的地址、端口、管理员账号和密码等信息。 例如: String url = "jdbc:mysql://localhost:3306/zhu_xian"; String username = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url, username, password); 这段代码就可以连接到地址为localhost、端口为3306、用户名为root、密码为123456的zhu_xian数据库。 以上就是诛仙私服MySQL搭建的大致流程,需要根据实际情况进行合理的修改和调整。在整个过程中需要注意数据库的安全性,保证管理员账号和密码不会外泄,同时可以通过备份等方式保证数据的安全和可靠。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值