自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 资源 (4)
  • 收藏
  • 关注

原创 mapstruct default 方法覆盖其他参数

后面联调发现名称字段被覆盖了,和班级名称一模一样,然后去检查注解是否写错。后续去检查 mapstruct 生成的实现类发现 setName 也调用了 getClassNameFun 方法,所以导致被覆盖。由于对 mapstruct 仅会用点皮毛,当时以为碰到了一个诡异的 bug,后面排查发现是由于 default 方法使用不当。发现,生成实现类的时候,如果有 default methods 会去匹配输入输出的类型,如果相同那么会默认使用这个方法。converter 类似这样。

2023-02-28 23:22:37 788

原创 常用的限流方式 Java 实现

限流器通过限制请求次数来达到保护服务的目的,每次请求都会尝试执行,如果接口返回成功则可以执行,如果返回失败则需要等待或者直接返回失败。限流器主要分为固定时间窗口限流、滑动时间窗口限流、漏斗式限流和令牌桶限流。比较常用的是 guava 中的限流器,采用的是令牌桶的限流方式。固定时间窗口限流的方式比较简单,但是无法限制住突发流量。假设固定窗口大小为 1s,限制请求次数为 100,如果在 0.99s 和 1.01s 都被请求 100 次,对于固定时间窗口限流器来说,是正常流量,但是可能就导致服务异常。

2023-02-15 22:20:29 1662

原创 thrift .field 赋值无效

后面发现是他直接使用 object.filed 进行赋值,由于我这边将属性设置的 optional 可选字段,导致他赋值无效。这里是因为 thrift 里面有个 isSet 的方法,如果直接通过属性进行赋值 isSet 方法为 false,因此在 rpc 调用的时候并没有把对应的属性序列化并传出,所以返回值一直为默认值。如果是 required 必填字段,可以直接用对属性进行赋值。之前使用 thrift 的时候,给同事提供了接口,但是他调用我这边也返回值一直错误,我这边日志也显示入参为默认值。

2022-11-30 23:44:57 276

原创 spring 事务中先删除再插入后唯一键冲突 delete then insert duplicate key

今天在同事碰到了一个比较有意思的问题,为了实现某个场景中的数据更新和删除,想通过 delete all entities 然后 insert new entities 的方式减少判断数据是否删除的操作,结果由于表内有其他唯一索引报错唯一键冲突。并且也没有对唯一索引进行更新,从而导致后面插入新版本数据的过程中,如果是修改的数据那么会在唯一索引找到重复的键从而导致冲突。后面在 debug 的过程中,用 evaluate 查询数据确实不在,但是 insert 的时候会报唯一键冲突导致插入失败事务回滚。

2022-11-30 23:36:04 4040 3

原创 Java8 函数式编程常用方法总结

class Student{ private String name; private int grade; //get set ..}List<Student> list = new ArrayList<>();Predicate 判定public interface Predicate<T>{ // lamda表达式匿名函数修改的test boolean test(T t); // 可以和其他判定条件进行逻辑运算 (还

2022-05-22 23:10:09 306

原创 【RPC项目】从 0 到 1 完成RPC项目

RPC(Remote Procedure Call)即远程过程调用,通过名字我们就能看出 RPC 关注的是远程调用而非本地调用。RPC 的主要目的就是让远程调用和本地调用一样方便,项目也是从最简单的 RPC 开始优化,一步一步完成一个相对全面的 RPC 小项目。客户端:调用远程方法的一端。客户端 Stub: 可以理解为代理类。主要做任务就是把调用的方法、方法参数等信息传递到服务端。网络传输: 包括把客户端 Stub 生成的信息传输到服务端,然后服务端执行完把结果通过网络传回客户端。可以使用 So.

2022-03-29 10:15:21 1645

原创 【RPC项目】3.增加注册中心

增加注册中心工作内容主要是服务注册、服务发现、服务下线,负载均衡。并且将服务端提供的服务用 ZkServiceProviderImpl 保存。注册中心使用 ZooKeeper 实现,使用 Curator 框架对 ZooKeeper 进行调用。服务注册包括注册服务的方法,将服务写到 ZooKeeper 中。服务发现包括发现服务的方法,通过负载均衡选择服务地址。服务下线包括删除所有服务端的服务。负载均衡这里只实现了最简单的随机分配。ZkServiceProviderImpl 需要使用单例模式,增加

2022-02-22 01:03:02 2237

原创 【RPC项目】2.项目标准化

上一篇文章中的项目比较乱,并且只能对一个类中的方法进行远程调用,如果需要对其他类中的方法进行远程调用还需要进行修改,这一节把远程调用一些关键的信息提取出来,通过 RpcRequest 和 RpcResponse 来传输关键信息。网络传输这里也为了之后升级为 netty 增加了 RpcRequestTransport 接口,现在先实现 Socket 传输的方法。其他就是优化了 RpcClientProxy 客户端动态代理,因为将网络传输独立处理,之前的 Proxy 类需要进行修改。还优化了 Server

2022-02-20 21:13:47 2034

原创 【RPC项目】1.从不代理到动态代理

先放一些公共类: ServiceImpl ```javapackage common.ServiceImpl;import common.Hello;import common.HelloService;import lombok.extern.slf4j.Slf4j;@Slf4jpublic class HelloServiceImpl implements HelloService {@Overridepublic String hello(Hello hello) { .

2022-02-17 22:06:15 434

原创 Linux 内核编程 - 进程篇

进程进程是程序执行的基本单位,而程序是若干个函数组成的可执行文件。进程由当前已有进程调用 fork 创建,分叉的进程叫做子进程,创建者叫做父进程。子进程和父进程并发运行。如果父进程有多个子进程,那么这些子进程间是兄弟进程。进程被创建后是就绪状态,表示内核已经为进程建立了所有结构并且获取了必要的信息。当它被 CPU 选中时,就会进入运行状态。在运行状态,进程可以被取消,进入就绪状态;被中断,进入阻塞状态;僵死,调用 exit 来销毁进程。进程描述符内核中有个 task_struct 结构体表示进程

2021-12-01 15:19:20 303

原创 Linux 环境下 C 语言简单编程

单独 C 语言程序首先新建一个文件 touch test.c,然后用 vim 编辑器进行编辑。#include<stdio.h>#include<stdlib.h>int main(){ printf("hello world!\n"); exit(0);}然后用 gcc 编译器进行编译 gcc -o test test.c,接着运行程序 ./test。会打印出 hello world! 结果。库文件标注系统的库文件一般存储在 /lib 或者 us

2021-11-03 21:27:32 926

原创 Redis 面试知识点

数据结构及应用基础数据结构String 类型简单的 key/value 类型,可以保存文本数据和二进制数据操作:set、mset、get、mget、strlen、exists、decr、incr、setex应用场景:最多的是用于需要计数的场景,比如用户访问的次数,热点文章的点赞转发之类的数量。缓存,用于支持高并发计数器,视频播放数限速,处于安全考虑,每次进行登录时让用户输入手机验证码,为了短信接口不被频繁访问,会限制用户每分钟获取验证码的频率。就是设置过期时间set key value

2021-10-28 16:02:46 224

原创 Redis 订阅发布模式底层实现

频道的订阅与退订Redis 中有个 pubsub_channels 字典 ,里面保存了所有频道和订阅的关系。struct redisServer{ dict *pubsub_channels;};[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eSWKAEBc-1634819967212)(/Users/chenzhijie/Library/Application Support/typora-user-images/image-20211021195647122.

2021-10-21 20:40:33 181

原创 从字节码角度深入理解 String 常量池

直接上菜,本文环境为 jdk1.8之前一直对字符串常量池理解不深,看了一些文章和自己一些实验整理一下。文章主要是解释了 “一段代码会创建多少个对象?” 以及 “两个字符串变量是否指向同一个地址?” 的问题。首先 String 是一种不可变类型,和 Integer 之类的包装类型有 [-128,127] 的常量池一样,String 也有它的常量池,只不过 Integer 是在创建实例的时候就创建了这个常量池(具体实现如下),而 String 是在创建过程中新增到常量池中。 private stat

2021-09-22 00:42:40 151

原创 2021.9.7 百度笔试 A卷 包含k种字母的子序列

在群里看到这个题目做了一下,图片侵删测试用例:输入:6 5eecbad输出:3说明:满足的有 “eecbad” 和两种 “ecbad”,不同位置的 e 也算不同子序列。输入:10 2aaaccebecd输出:126思路:先将字符串处理为整形数组,数组存各个字母的个数,记录字母种类将不存在字母的位置去掉选择第 i 种字母时,选择种类有 (1 << arr[i]) - 1 种dfs 选择 k 种字母,选择满 k 种记录增加到 sumimport java.u

2021-09-07 22:14:33 338 1

原创 美团笔试题 环形数组的连续子数组最大和

小美请小团吃回转寿司。转盘上有N盘寿司围成一圈,第1盘与第2盘相邻,第2盘与第3盘相邻,…,第N-1盘与第N盘相邻,第N盘与第1盘相邻。小团认为第i盘寿司的美味值为A[i](可能是负值,如果小团讨厌这盘寿司)。现在,小团要在转盘上选出连续的若干盘寿司,使得这些寿司的美味值之和最大(允许不选任何寿司,此时美味值总和为0)。输入:第一列为数据组数第二列和第三列分别是当前寿司盘数和寿司的美味值依次同上输出:连续寿司的美味值之和最大值输入示例:143 -2 4 -1输出示例:6这里有个特殊

2021-05-27 22:03:51 405 4

原创 美团2021校招笔试-通用编程试题,第10场

淘汰分数某比赛已经进入了淘汰赛阶段,已知共有n名选手参与了此阶段比赛,他们的得分分别是a_1,a_2….a_n,小美作为比赛的裁判希望设定一个分数线m,使得所有分数大于m的选手晋级,其他人淘汰。但是为了保护粉丝脆弱的心脏,小美希望晋级和淘汰的人数均在[x,y]之间。显然这个m有可能是不存在的,也有可能存在多个m,如果不存在,请你输出-1,如果存在多个,请你输出符合条件的最低的分数线。输入描述:输入第一行仅包含三个正整数n,x,y,分别表示参赛的人数和晋级淘汰人数区间。(1<=n<=50

2021-05-15 22:34:38 941 1

原创 leetcode 1269. 停在原地的方案数 每日一题 动态规划

有一个长度为 arrLen 的数组,开始有一个指针在索引 0 处。每一步操作中,你可以将指针向左或向右移动 1 步,或者停在原地(指针不能被移动到数组范围外)。给你两个整数 steps 和 arrLen ,请你计算并返回:在恰好执行 steps 次操作以后,指针仍然指向索引 0 处的方案数。由于答案可能会很大,请返回方案数 模 10^9 + 7 后的结果。示例 1:输入: steps = 3, arrLen = 2输出: 4解释:3 步后,总共有 4 种不同的方法可以停在索引 0 处。向右,

2021-05-13 11:09:04 134

原创 leetcode1734 解码异或后的排列 异或基本知识

给你一个整数数组 perm ,它是前 n 个正整数的排列,且 n 是个 奇数 。它被加密成另一个长度为 n - 1 的整数数组 encoded ,满足 encoded[i] = perm[i] XOR perm[i + 1] 。比方说,如果 perm = [1,3,2] ,那么 encoded = [2,1] 。给你 encoded 数组,请你返回原始数组 perm 。题目保证答案存在且唯一。基本运算法则归零律:a ⊕ a = 0恒等律:a ⊕ 0 = a交换律:a ⊕ b = b ⊕ a

2021-05-11 10:28:30 98 2

原创 拼多多2021笔试真题集 多多的数字组合 多多的字符变换 多多的求和计算 多多的骰子组合

第一题 多多的数字组合多多君最近在研究某种数字组合:定义为:每个数字的十进制表示中(0~9),每个数位各不相同且各个数位之和等于N。满足条件的数字可能很多,找到其中的最小值即可。输入描述:共一行,一个正整数N,如题意所示,表示组合中数字不同数位之和。(1 <= N <= 1,000)输出描述:共一行,一个整数,表示该组合中的最小值。如果组合中没有任何符合条件的数字,那么输出-1即可。输入例子1:5输出例子1:5例子说明1:符合条件的数字有:5,14,23,32,41

2021-05-10 17:59:16 2843 5

原创 从==和equals的区别的角度看String

== 和 equals()首先,== 比较两个对象的地址是否相等。基本数据类型比较值,引用数据类型比较内存地址。equals() 判断两个对象是否相等1.类没有覆写equals方法,等价于 ==2.覆写了 equals 方法,按照 equals 方法规则进行比较 String a = new String("ab"); // a == b|| a == bb false 地址不同 String b = new String("ab"); // a.equals(b) true S

2021-04-23 16:58:46 84

原创 解数独-经典回溯-华为算法题

输入描述:输入9行,每行为空格隔开的9个数字,为0的地方就是需要填充的。输出描述:输出九行,每行九个空格隔开的数字,为解出的答案。示例:import java.util.*;public class Main{ //分别保存行、列、9宫格中已填的数字 static boolean[][] row = new boolean[9][10]; static boolean[][] col = new boolean[9][10]; static boolean[][][

2021-04-14 17:21:10 138

原创 字符去重-华为算法题

输入一个字符串,求出该字符串包含的字符集合输入描述:每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。输出描述:每组数据一行,按字符串原有的字符顺序,输出字符集合,即重复出现并靠后的字母不输出。示例1输入abcqweracb输出abcqwerimport java.util.*; public class Main{ public static void main(String[] args){ Scanner scann

2021-04-14 17:03:50 116

原创 删数字-约瑟夫环问题-华为算法题

有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。输入描述:每组数据为一行一个整数n(小于等于1000),为数组成员数,如果大于1000,则对a[999]进行计算。输出描述:一行输出最后一个被删掉的数的原始下标位

2021-04-14 17:01:20 236

原创 十六进制转十进制-华为算法题

输入描述:输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据,请参考帖子https://www.nowcoder.com/discuss/276处理多组输入的问题。输出描述:输出该数值的十进制字符串。不同组的测试用例用\n隔开。输入例子:0xA0xAA输出例子:10170...

2021-04-12 15:13:14 1765

原创 明明的随机数Java-排序去重-华为算法题

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据(用于不同的调查),希望大家能正确处理)。注:测试用例保证输入参数的正确性,答题者无需验证。测试用例不止一组。当没有新的输入时,说明输入结束。输入描述:注意:输

2021-04-12 14:59:17 110

原创 iphone连接WIFI后应用无法使用网络+applewatch用户

rt。打开手机的 watch 应用,进入蜂窝数据网,然后将微信和QQ设置为允许 Wi-Fi ,这样微信和QQ就可以使用无线局域网络了。坑!

2021-02-02 16:34:03 2268

原创 剑指 Offer 16. 数值的整数次方

实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。2^10 = 2^(1 * 3) * 2^(0 * 2 ) * 2^(1 * 1) * 2^(0 * 0)其中,10(10) = 1010(2);每次对可以判读当前对应二进制位是 0 还是 1 来判断是否把当前数乘到最后结果中。这里题目给的 n 的范围是 [-2 ^ 31,2 ^ 31 - 1],这样如果令 n = -n 时,n 会溢

2020-12-26 00:24:43 71

原创 Java List 类型转换为整形数组 int[]

网上普遍都是循环什么的。有个不用那么长的方法:public static void main(String args[]){ List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); int[] array = list.stream().mapToInt(Integer::intValue).toArray(); //array = {1,2,3};}...

2020-12-10 10:28:07 2723

原创 剑指offer 04 二维数组中的查找

在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。首先这个题目可以用暴力方法加一定条件的剪枝,但是这样的时间复杂度是 O(mn) ,因为最坏的情况可能会遍历整个二维数组。还有一种方法是从左下角或者是右上角开始判断,这样每次比较都可以划分出一行或者一列,这时的时间复杂度为 O(m+n) 。主要说一下第二种算法的思路:1 首先选择左下角或者右上角是因为每次比较 Ma

2020-12-08 11:26:02 65

原创 spring cloud+vue在线视频网站 7.代码生成模块 part 1

这一章主要是完成代码生成的模块,用到的工具是 freemaker ,在完成代码生成模块的同时会完成小节部分的代码。freemaker 的基本用法一般来说一个 freemaker 的模版基本会包括下面四部分。文本:直接输出的部分注释:<#–2333–>格式部分,不会输出插值:即${…}或#{…}格式的部分,将使用数据模型中的部分替代输出FTL指令:FreeMarker指定,和HTML标记类似,名字前加#予以区分,不会输出引入 freemaker首先在 course 的依赖管理中添加

2020-11-15 21:35:50 618 1

原创 spring cloud+vue在线视频网站 6.章节编辑删除功能、前端优化和校验模块

这一节增加了大章的编辑和删除功能,这样大章的增删改查功能就都有了,但是在增加和修改时应该还要有校验功能。编辑功能这一节主要对大章模块增加编辑功能,其次还删除一些多余组件。首先,我们将多余对按钮进行了删除,并且对剩余按钮绑定函数;接着我们将修改功能和增加功能合并,修改了前端的 save 方法和后端对应的类。修改页面删除了部分按钮,并把编辑按钮和删除按钮绑定对应函数。 <tbody> <tr v-for="chapter in chapters" v-bind:key="chapt

2020-11-10 09:13:39 2173

原创 leetcode 每日一题 463 岛屿的周长

给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域。网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。到值为 1 的位置判断上下左右的的值是否为 1 ,或者是否为边缘。如果边上为 0,周长加 1;或者是边缘也会加 1。

2020-10-30 17:21:42 104

原创 leetcode 461 汉明距离 Hamming distance 讲解

两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 231.WIKI 中给出的解释是 在信息论中,两个等长字符串之间的汉明距离(Hamming distance)是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。例子:1011101与1001001之间的汉明距离是2。2143896与2233796之间的汉明距离是3。"toned"与"

2020-10-29 23:09:36 298

原创 leetcode 每日一题 543 二叉树的直径 dfs方法

给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。这里最长直径的边一定都是叶子结点,用深度遍历整个树。一般思路是找出节点左边的最大长度和右边的最大长度加起来可能就是最大直径,这里就只需要返回 max(right,left)。但是因为最长直径可能不过根节点,所以这里多加一个判断条件,如果当前节点的左子树最大长度和右子树最大长度之和大于当前最大长度就更新一下。class Solution { int max = 0;

2020-10-29 22:14:05 174

原创 leetcode 每日一题 129 求根到叶子节点数字之和

给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。递归遍历到叶子结点时处理数字总和,遍历过程中,每次把当前的记录传下去。class Solution { int sum=0; public int sumNumbers(TreeNode root) { if(root==n

2020-10-29 21:04:54 77

原创 spring cloud+vue在线视频网站 5.分页功能+增加章节

1 分页功能开发首先集成分页功能需要先在 Maven 中添加 pagehelper 依赖,然后在 ChapterService 中添加 pagehelper 的设置,接着试一下分页功能是否生效。后面添加分页功能的具体细节,第一修改成后端接收分页要求,第二修改前端分页布局,第三修改前端请求。1 添加依赖首先在 course 的 pom.xml 文件中添加依赖和版本 <dependency> <groupId>com.github.pagehelper</groupId

2020-10-25 23:45:59 564

原创 leetcode 每日一题 763 划分字母区间

题目:字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。例子:输入:S = “ababcbacadefegdehijhklij”输出:[9,7,8]解释:划分结果为 “ababcbaca”, “defegde”, “hijhklij”。每个字母最多出现在一个片段中。像 “ababcbacadefegde”, “hijhklij” 的划分是错误的,因为划分的片段数较少。首先看到题目赶紧有点复杂,想了几

2020-10-22 16:16:45 156

原创 pagehelper-spring-boot-starter 分页功能无效

在给 Spring Cloud 项目添加分页插件的时候,出现了分页插件失效的情况。package com.course.server.service;import com.course.server.domain.Chapter;import com.course.server.domain.ChapterExample;import com.course.server.dto.ChapterDto;import com.course.server.dto.PageDto;import com

2020-10-21 23:04:54 1205 1

原创 leetcode 每日一题 52 N皇后 II

N皇后的详细解法可以看leetcode 每日一题 51 N皇后,这里只需要把 i==chars.length 下的添加解法改为 count++ 即可。package com.company;import java.util.Arrays;import java.util.LinkedList;import java.util.List;public class lc52 { int count = 0; public int totalNQueens(int n) { .

2020-10-17 13:34:22 104 1

spring cloud系列博客完整源代码

spring cloud在线视频网站完整版源代码下载。完整讲解视频可以自己下载

2020-10-17

学成网站源码.zip

学成在线借鉴了MOOC(大型开放式网络课程,即MOOC(massive open online courses))的设计思想,是一个提供IT职业课程在线学习的平台,它为即将和已经加入IT领域的技术人才提供在线学习服务,用户通过在线学习、在线练习、在线考试等学习内容,最终掌握所学的IT技能,并能在工作中熟练应用。 1、用户可以通过pc、手机等客户端访问系统进行在线学习。 2、 系统应用CDN技术,对一些图片、CSS、视频等资源从CDN调度访问。 3、所有的请求全部经过负载均衡器。 4、对于PC、H5等客户端请求,首先请求UI层,渲染用户界面。 5、客户端UI请求服务层获取进行具体的业务操

2020-10-16

fritzing软件版本0.9.4

电子仿真软件,嵌入式必备。可以先在fritzing上面模拟后在电路板上进行实验,很大程度减小毁坏模块几率。

2020-08-23

飞机大战源码 c++版

飞机大战c++源码,包含BOSS、飞机可以施放技能、坠毁敌机有几率产生生命包。简介、帮助、暂停、血条、蓝条等都已有

2020-08-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除