分屏版
签到天数: 3 天
[LV.2]偶尔看看I
初级会员
lqcstyle 发表于 2022-5-12 09:40 楼主加油,最近在修一个86的端,等这段时间结束了,交流一下
使用道具 举报
签到天数: 20 天
[LV.4]偶尔看看III
www2109 发表于 2022-5-21 20:04 能不能出个详细的idea 源码导入然后启动运行的视频,小白没看懂
该用户从未签到
新人上路
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
2023-2-3 09:42
签到天数: 3 天
[LV.2]偶尔看看I
初级会员
好呀,我也不是很懂,都是慢慢debug
使用道具 举报
2023-2-3 09:42
签到天数: 3 天
[LV.2]偶尔看看I
初级会员
这里涉及到脚本任务的完成,但是脚本任务完成原本的代码实际上并没有任何逻辑,所以要完成任务还是需要wz的任务进行支撑。
一个合理的猜测是脚本任务只能是马上完成的?不能是有过程的?
格兰蒂斯的神秘石任务
数据库添加1463任务的数据即可
```sql
INSERT INTO `chms`.`wz_questdata`(`questid`, `name`, `autoStart`, `autoPreComplete`, `viewMedalItem`, `selectedSkillID`, `blocked`, `autoAccept`, `autoComplete`, `selfStart`) VALUES (1463, '格兰蒂斯的神秘石', 0, 0, 0, 0, 0, 0, 0, 0);
# 我添加的是简单老麦的信息,应该都可以触发。
INSERT INTO `chms`.`wz_questreqdata`(`id`, `questid`, `name`, `type`, `stringStore`, `intStoresFirst`, `intStoresSecond`) VALUES (22729, 1463, 'mob', 1, '0', '8880010', '1');
```
绯红的神秘石
次元之镜加一个废弃营地
脚本是直接完成了任务,说明这个估计不好修复,我也跳过了
server.maps.MapleSlideMenu.SlideMenu5.TownTeleport
最后一行加
bus(24, "万神殿", 400000000, 0),
but(25, "废弃营地", 105300000, 0);
---
然后就是获取神秘球的任务 questId = 1466 添加信息
INSERT INTO `chms`.`wz_questreqdata`(`id`, `questid`, `name`, `type`, `stringStore`, `intStoresFirst`, `intStoresSecond`) VALUES (null, 1466, 'mob', 1, '0', '8641000', '10');
INSERT INTO `chms`.`wz_questdata`(`questid`, `name`, `autoStart`, `autoPreComplete`, `viewMedalItem`, `selectedSkillID`, `blocked`, `autoAccept`, `autoComplete`, `selfStart`) VALUES (1466, '另一种力量,神秘力量', 0, 0, 0, 0, 0, 0, 0, 0);
总结:不太懂脚本任务是怎么完成的,是否可以像系统任务一样完成,还是只能纯对话完成,不能有打怪或者收集的任务?
使用道具 举报
2023-2-3 09:42
签到天数: 3 天
[LV.2]偶尔看看I
初级会员
0514
学习ida,我也不是很会,也是新手,就来简单学习一下:
在swordie代码中可以看到outbound他都有标注,
```java
// CUserLocal::OnPacket
EMOTION(685),
```
在我们maplesotry143找到这个包头
``
// handling.opcode.SendPacketOpcode
USER_EMOTION_LOCAL(0x2d4),
``
02d4换算出来就是724
然后在143的idb文件找到这个CUserLocal::OnPacket
点进这个USER_EMOTION_LOCAL
我们143服务端也是这样封包的,这个包应该是控制用户表情的
这样就对应上了,这就是一个简单的例子,具体什么意思我也不懂,需要再研究研究。同理可以把maplestory143代码里的包头也按照Onpacket区分一下
使用道具 举报
2023-2-3 09:42
签到天数: 3 天
[LV.2]偶尔看看I
初级会员
今天弄了一天的抓包,没人教自己摸索是真的很艰难。都说使用mapleshark抓,github上拉源码下来,用vscode搞了半天都没启动起来。换成vs2017 就好了。千万不要用vscode启动。然后就是我也看不懂c#的源码,瞎搞了大半天,实在不行就强行开始debug ,看了一会发现代码并不难,
但是有一个问题:已经改了秘钥却一直抓包都报错,十分的奇怪。后来换了snowsniffer也不行,以为snowsniffer用Java写的 改起来会容易一点。谁知道我把mapelstroy的代码复制进去都不行,最后还是回来使用mapleshark,实在不行自己开始用vscode开始debug,最终发现他默认用的网上的密钥进行解密的所以不行,把那一段代码改了就好了
1. github上下载mapleshark
2. 看maplestory143的代码,找到143的密钥
3. 修改mapleshark的源码,去掉加载网络密钥的一段直接加载本地的秘钥,很简单就不放代码了。
就能对应上了
主要是一开始很慌不会c#就不敢去debug,后面发现实在不行只能自己上了。感觉还是不错的
使用道具 举报
2022-5-20 17:17
签到天数: 20 天
[LV.4]偶尔看看III
初级会员
使用道具 举报
2023-2-3 09:42
签到天数: 3 天
[LV.2]偶尔看看I
初级会员
1. 封包的每一部分具体的意思
2. 响应的封包需要包装成什么样的数据:是伤害还是debuff还是什么七七八八的,感觉这一部分可以责任链来包装
3. 每个职业尽量区分开,技能id区分出职业?然后每个职业走自己的逻辑?
4. 想想swordie会怎么做
这游戏的核心就是打怪,技能放完就到文件末尾,玩个锤子。这一部分还有很多可以做的,只是好不好修复罢了,毕竟143已经不能抓包了?先慢慢来把
使用道具 举报
2022-5-20 17:17
签到天数: 20 天
[LV.4]偶尔看看III
初级会员
使用道具 举报
2023-2-3 09:42
签到天数: 3 天
[LV.2]偶尔看看I
初级会员
我都寫的很清楚啦,就是圖片加載不出來我也沒辦法咯。導入源碼之後把wz和腳本放到配置的目錄就好了
使用道具 举报
2023-2-3 09:42
签到天数: 3 天
[LV.2]偶尔看看I
初级会员
0520
1. 重构攻击的发现里面有079的技能判定删掉了,侠盗的金钱攻击
2. 主要拆分攻击不同的攻击类型 近战、远程、魔法攻击,不同的职业需要单独实现的功能
1. 解析包体
2. 是否显示暴击
3. 控制被动攻击、例如斗气掉点数(原来代码就是写在近战攻击的处理里面)
4. 攻击类
1. 判断攻击怪物数
2. 判断攻击段数
3. beforeAttack(计算实际数值,比如是否对已经有刺客标记的怪物做出响应,或者其他)
4. 判断是否无视反伤
5. onAttack判断攻击应该角色的状态,包括怪物的状态等、
6. afterAttack (攻击完后的状态,比如是否无敌等等)
总结:
1. 主要解耦成以上这几个方面,远程和魔法攻击也是类似,先把所有职业都解耦出来,然后打算再一个一个的修复。后面这几个attack的不同状态,会麻烦一些,而且看完代码发现好多都没有实现的。所以还是慢慢来咯。
2. 还要把状态相关的部分也了解,不然技能感觉也不好修复3.主要就三个维度:1.伤害 ,2.不同职业、职业群的效果 3.不同的状态。 职业和状态可能是多对多?
使用道具 举报
该用户从未签到
新人上路
使用道具 举报