赛尔号论坛

 找回密码
 立即注册
查看: 1635|回复: 6

sdk python扩展的更新和使用教程

[复制链接]

2

主题

3

回帖

7678

积分

空间站典狱官

Rank: 10Rank: 10

积分
7678
发表于 2024-1-23 20:19:26 | 显示全部楼层 |阅读模式
本贴目录

  • 项目介绍
  • 更新说明
  • 使用方法
  • 教程例子
  • 等待完善


项目介绍
本项目旨在使用python开发sdk扩展
借用python语言特点,使用更少的代码完成插件的编写,一切都是为了降低工作量
项目优势还在于能够使用vscode,pycharm等优秀的编辑器,让开发流程更加丝滑,抛弃易语言。
此外项目可以在开发过程中边编写,边调试,只要打开chika,能够立刻获得每条封包的响应,不用像易语言一样要进行编译,导入,启动。


更新说明
和之前帖子发出来的版本不同,本次项目进行了底层逻辑重构,能让插件能够更稳定,结构更清晰,代码更简洁



  • 引入with上下文管理器,实现插件结束自动还原用户的背包,不用再编写还原背包的代码。
  • 实现精灵id到精灵catchtime的映射,尽量屏蔽掉用户需要自己获取精灵catchtime的操作。一般情况下,用户只需要指定一个精灵id,本项目会自动找到精灵catchtime,而且引用了缓存机制,比每次搜索精灵仓库会更加高效。
  • 加入回调函数的支持,由于项目特性,之前发布的版本不支持回调函数,类似于通用对战和设置对战回调等需要设置回调函数的功能无法实现。当前版本能够引入回调函数。
  • 允许用户使用开发者安装的库,开发者如果需要用到第三方库可以直接在本机使用try except方法块进行安装,使用,不需要管用户,用户运行时会自动调用pip下载相应的库。
  • 更改项目命名规范,让项目结构更加清晰,让用户能够猜到想要的功能大概会对应什么方法。
  • 修复若干bug




使用方法
开发者


  • 开发者想要进行开发和测试,需要以下准备。
  • 安装python环境,python>=3.8。本项目对python版本要求不严格,我是用python3.11进行开发的,不过其他版本应该是能兼容的,大家可以自行测试。
  • 下载ChikaPlus以及附属库,我会把源文件发出来,用户在使用过程中,只需要保证编写的插件和ChikaPlus放在同一个目录,然后在插件中正常进行导入,就可以正常运行,而且智能的编辑器会有代码提示和注释说明。
  • 下载dll,像安装正常插件一样安装到chika中。
  • 打开chika,打开插件列表不需要点启动和菜单即可开始开发。由于chika只有在打开插件列表的时候才会加载插件,所以,每次重新打开chika需要重新打开插件列表,才能正常启动插件。打开过后可以关闭。
  • 当chika在运行状态,就可以运行编写的python插件,进行开发和测试了。


安装扩展

安装扩展

项目结构

项目结构

引入依赖

引入依赖

空白例子

空白例子


用户
  • 用户不需要装python环境
  • 将开发者发布的.py文件放到chika插件目录下(即ini\DLL\目录下)。
  • 把.py文件当作正常的插件对待。
  • 之后点开插件列表。
  • 选择本项目的dll点击菜单。不用点开启,本插件没有实现开启接口,功能都在菜单里面。
  • 看到可运行插件列表,选中,运行,便可执行插件了。

进入用户界面

进入用户界面


教程例子
由于本人之前对sdk没进行过多少开发,所以给的例子都是些简单例子。
用到了插件开发中的常用功能,精力有限,例子没有覆盖插件所有方法,后续会给出更多例子。

11.png 22.png 33.png

教程.zip (333.13 KB, 下载次数: 22)


等待完善
以下列出项目的局限性以及开发方向

  • 插件延迟加载的问题。python扩展依赖于dll,chika必须在加载dll后python扩展才能开启。但是chika只有在用户点击插件列表,才会加载dll。因此每次重启chika都需要重新点击插件列表才能正常启动python扩展。对于开发者来说,每次都要重新点一下插件列表是一个简单又烦躁的工作。之后可能会通过劫持的方式,在chika开始运行时就加载dll。
  • 功能覆盖不完全的问题。本插件并没有完全实现chika SDK的功能,而是选择了常用的进行实现,并且对部分功能实现了封装。如果开发者有新的功能需求,可以反馈给我,我继续添加。
  • 测试中的玄学问题,某些功能可能和预期结果不一致。我在使用技能名转id的过程中,得到的id永远都是10001,这显然是不对的。但是这并非本项目的问题,哪怕我使用易语言编写的插件也出现了同样的问题。但这也不是sdk的问题,因为我把编译好的dll发给别人测试,别人是正常的。而且我和别人的chika登陆器版本一致,那么最后只能归咎于个人体质和权限问题。如果测试中出现了类似的问题,可以给我反馈。
  • 依赖问题。目前开发者使用本插件进行开发的方法都是需要把本插件源代码放入项目目录,才能进行测试和语法提示。之后可能会把本项目上传pypi,供开发者使用pip安装使用。
  • 用户体验问题。目前插件的主要开发方向是给开发者,用户交互界面还没怎么设计,所以普通用户的体验可能不会太好。之后会完善用户交互界面。


在未来,本插件可能会提供magic plus功能,替代原本的魔法窗口,既实现对原来魔法指令的兼容,还会将python语言特性加入进去,实现条件控制逻辑和变量声明等。

本项目开源
源码和dll.zip (41.18 MB, 下载次数: 21)
蓝奏云链接。密码:1ps8

评分

参与人数 1黑钻 +20 蓝钻 +100 收起 理由
Jshama + 20 + 100 这个项目我投了,给大佬点赞!!!.

查看全部评分

2

主题

3

回帖

7678

积分

空间站典狱官

Rank: 10Rank: 10

积分
7678
 楼主| 发表于 2024-2-19 08:50:52 来自手机 | 显示全部楼层
Jshama 发表于 2024-2-14 12:44
老哥,我用了Python3.8的版本运行后,提示了:TypeError: 'type' object is not subscriptable,用了3.9及 ...

那就是python版本问题嘛,可能有些写法低版本不支持,那就换成python 3.9及以上嘛
回复

使用道具 举报

4

主题

35

回帖

3106

积分

空间站巡逻员

Rank: 5Rank: 5Rank: 5

积分
3106
发表于 2024-2-14 12:44:20 | 显示全部楼层
老哥,我用了Python3.8的版本运行后,提示了:TypeError: 'type' object is not subscriptable,用了3.9及以上就没这个问题,是我哪里配置有问题吗
回复

使用道具 举报

0

主题

2

回帖

253

积分

飞船探险员

Rank: 1

积分
253
发表于 2024-1-26 21:48:12 | 显示全部楼层
好好好,cy
回复

使用道具 举报

0

主题

33

回帖

390

积分

飞船探险员

Rank: 1

积分
390
发表于 2024-1-26 17:32:42 | 显示全部楼层
厉害啊哥
回复

使用道具 举报

0

主题

8

回帖

243

积分

飞船探险员

Rank: 1

积分
243
发表于 2024-1-26 13:03:10 | 显示全部楼层
支持
回复

使用道具 举报

5

主题

38

回帖

613

积分

飞船探险员

Rank: 1

积分
613
发表于 2024-1-26 08:10:47 | 显示全部楼层
666
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|yoso论坛

GMT+8, 2024-11-23 16:26 , Processed in 1.090788 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表