网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
可签
7
级以上的吧
50
个
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
04月28日
漏签
0
天
大航海时代ol吧
关注:
116,792
贴子:
4,559,681
看贴
图片
吧主推荐
视频
玩乐
7
回复贴,共
1
页
<返回大航海时代ol吧
>0< 加载中...
遍历周围人物算法分析 v12005
只看楼主
收藏
回复
流
蘇
远征茶船
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
庆祝回归,发个技术文章~
思路不说了,估计没人看。直接发成品吧,这玩意写脚本还是必须的。用来查找附近NPC ID。
一楼上效果图(战列舰里斯本人就是多!)
送TA礼物
IP属地:宁夏
1楼
2021-08-02 01:34
回复
流
蘇
远征茶船
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
python的
import pymem
PID = 1234 # 你需要自己获取指定航海的PID
pm = pymem.Pymem()
pm.open_process_from_id(PID)
def readaddr(pymem_instance, address: int, data_type: str = None, offset_list: list = None):
# 如果有偏移地址,则循环读取偏移,得出最终要读的内存地址。没有偏移地址,最终地址=基址+地址
if offset_list is not None:
try:
len(offset_list)
except TypeError:
return None
else:
if len(offset_list) > 0 and type(offset_list) == list:
offset_num = 1
for offset in offset_list:
address = pymem_instance.read_int(address) + offset
offset_num += 1
else:
return None
if data_type == "unicode":
result = ""
_temp_address = address
while True:
_temp = pymem_instance.read_bytes(_temp_address, 2)
if _temp == b'\x00\x00':
break
else:
try:
_temp = _temp.decode('utf-16')
except UnicodeDecodeError:
_temp = ascii(_temp)
finally:
result += _temp
_temp_address += 2
elif data_type == "float":
result = pymem_instance.read_float(address)
elif data_type == "hex":
result = hex(pymem_instance.read_int(address)).upper()
else:
result = pymem_instance.read_int(address)
return result
def enum_liveobj() -> tuple:
"""
枚举附近的活动对象
:return: tuple
枚举出来的附近所有活动对象,包括没名字的、非人类、人类等;
活动对象数量;
人类对象数量;
"""
liveobj_list = []
found_num = 0
human_num = 0
baseaddr = 0x0119E630
for i in range(readaddr(pm, baseaddr + 4)): # +4是算法内置的循环次数
nodeaddr = readaddr(pm, readaddr(pm, baseaddr) + i * 4)
if nodeaddr == 0: # [baseaddr]为0,下一个循环
continue
temp_list = []
while True:
ID = readaddr(pm, nodeaddr)
data = readaddr(pm, nodeaddr + 4)
name = readaddr(pm, nodeaddr + 4, data_type='unicode', offset_list=[0x2c, 0])
cur_pos_x = readaddr(pm, nodeaddr + 4, data_type='float', offset_list=[0x13c])
cur_pos_y = readaddr(pm, nodeaddr + 4, data_type='float', offset_list=[0x144])
cur_altitude = readaddr(pm, nodeaddr + 4, data_type='float', offset_list=[0x140])
dst_pos_x = readaddr(pm, nodeaddr + 4, data_type='float', offset_list=[0x15c])
dst_pos_y = readaddr(pm, nodeaddr + 4, data_type='float', offset_list=[0x164])
dst_altitude = readaddr(pm, nodeaddr + 4, data_type='float', offset_list=[0x160])
next = readaddr(pm, nodeaddr + 8)
if len(name) > 0:
temp_list.append(
{'ID': ID,
'name': name,
'当前坐标X': cur_pos_x,
'当前坐标Y': cur_pos_y,
'目的坐标X': dst_pos_x,
'目的坐标Y': dst_pos_y,
'当前海拔': cur_altitude,
'目的海拔': dst_altitude,
}
)
human_num += 1
found_num += 1
if next == 0:
liveobj_list.append({i: temp_list})
break
else:
nodeaddr = readaddr(pm, nodeaddr + 8)
return liveobj_list, found_num, human_num
liveobj_list, found_num, human_num = enum_liveobj()
print(liveobj_list)
print(f'一共 {found_num} 个活动对象,{human_num} 个人类')
IP属地:宁夏
2楼
2021-08-02 01:35
回复
收起回复
安阳珂图网络科技
大航海时代
4电脑版是一款经典海上航行冒险生存游戏,玩家可以走遍于世界的各个角落,感受冒险探索的的快乐。
2025-04-28 08:24
广告
立即查看
无上菩提
龟甲船
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
问个弱弱的问题,这个是做什么用的?
IP属地:山东
来自
Android客户端
3楼
2021-08-02 08:44
回复(1)
收起回复
hilldudu
巨型排船
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
读内存
IP属地:广东
来自
iPhone客户端
4楼
2021-08-05 23:10
回复
收起回复
ppopcn
法皇归来
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
请教如何用按键加大漠 后台找npc并且买东西
IP属地:河北
来自
iPhone客户端
5楼
2021-08-11 23:49
回复(1)
收起回复
幽灵_垂天
小吧主
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
可怜只学过c和vba的我,已经跟不上时代了。
IP属地:上海
6楼
2021-08-16 13:29
回复
收起回复
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧热议榜
1
RNG战队将被石油佬收购
1850220
2
阿乐战绩超鬼成队伍突破口
1558257
3
印巴双方屯兵克什米尔边境
1178772
4
韩国给残疾人吃劣质便当
1070010
5
《胆大党》第二季首曝预告
1015534
6
IG拿出离谱BP不敌WBG
923300
7
大乐子!明日方舟联动mujica
691824
8
电竞选手比赛之前别洗澡了
679811
9
如何评价T1被BRO一脚踢死
475140
10
大伟哥直言翁法罗斯做的不好
406752
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示