- 博客(142)
- 资源 (18)
- 收藏
- 关注
原创 计算两个时间之间相差多少天
计算两个时间之间相差多少天class DateUtil { // 方法1 public static long getDiffDays1(long timestamp1, long timestamp2) { Calendar cal1 = Calendar.getInstance(); cal1.setTimeInMillis(timestamp1); cal1.set(Calendar.HOUR_OF_DAY, 0); c
2021-08-26 12:16:15 643
原创 阿里云续费后服务不可用
阿里云到期续费后之前跑的好好的服务跑不起来了,启动时报jdbc空指针错误。后来重启了服务器,报错Read-only file system。然后搜了一下,执行命令mount-oremountrw/问题就解决了
2021-07-04 12:27:17 395
原创 非法访问:此Web应用程序实例已停止
非法访问:此Web应用程序实例已停止二月 08, 2021 5:48:11 下午 org.apache.catalina.loader.WebappClassLoaderBase checkStateForResourceLoading信息: 非法访问:此Web应用程序实例已停止。无法加载[com.watermelon.acs.grpc.task.GatewayUpdateTask]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。java.lang.IllegalStateException
2021-02-09 17:04:55 4151 2
原创 idea远程调试tomcat项目
idea远程调试tomcat项目tomcat修改idea修改tomcat修改打开tomcat/bin/catalina.sh文件,在文件开头加入如下代码:export JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'idea修改
2021-02-09 16:41:04 164
原创 Mybatis动态获取列数据
Mybatis动态获取列数据先修改xml<select id="getColumnById" resultType="String"> SELECT ${column} FROM player WHERE player_id = #{playerId}</select>修改MapperString getColumnById(@Param("playerId") int playerId, @Param(
2020-12-21 10:58:11 1650
原创 goim授权流程
本文简单描述一下goim的auth流程auth成功以后,便可以接收推送过来的聊天消息auth流程如下:client ⇒ comet ⇒ logic ⇒ comet ⇒ client其中client发往comet的结构为message Proto { int32 ver = 1 [(gogoproto.jsontag) = "ver"]; int32 op = 2 [(gogoproto.jsontag) = "op"]; int32 seq = 3 [(go
2020-11-10 15:53:36 867
原创 ExecutionException: io.grpc.StatusRuntimeException: RESOURCE_EXHAUSTED: Bandwidth exhausted
17:02:39.745 [grpc-default-worker-ELG-1-2] WARN io.grpc.netty.NettyClientHandler - Received GOAWAY with ENHANCE_YOUR_CALM. Debug data: {1}17:02:39.745 [grpc-default-worker-ELG-1-2] WARN io.grpc.internal.AtomicBackoff - Increased keepalive time nanos to ..
2020-11-09 17:07:46 4946
原创 fastjson使用问题
public class PlayerVo implements Serializable { private static final long serialVersionUID = -5248543655901813565L; private HeroListVo heroListVo; public HeroListVo getHeroListVo() { if (heroListVo == null) { heroListVo .
2020-10-21 14:23:11 192
原创 kafka demo
demo目录结构如下上面的是生产者,下面是消费者运行之前需要先安装kafka本人测试用,故装了个虚拟机,虚拟机地址为192.168.40.105,kafka监听端口9092一下是kafka的版本以及在虚拟机的位置这时候可以启动kafka了,启动命令分两步,bin/zookeeper-server-start.sh config/zookeeper.propertiesbin/kafka-server-start.sh config/server.properties
2020-09-30 11:57:22 306
原创 kafka timeout
注意,当kafka没有安装在本机时,记得修改server.properties文件中的listeners属性今天就被这个坑了,客户端发消息始终不成功,总是提示发到了localhost,改成本地地址就好了
2020-09-30 11:39:09 1009
原创 goim 纯windows环境搭建
今天在win10的环境下搭建了一下goim,在此记录一下。goim的具体介绍可直接访问github:https://github.com/Terry-Mao/goim1.kafka参考:https://blog.csdn.net/github_38482082/article/details/82112641参考此链接正常启动kafka即可2.discovery参考:https://github.com/bilibili/discovery参考以上连接启动discovery即可,
2020-07-21 15:04:37 865 3
原创 java list 查找元素
从list中查找符合条件的元素是一个很常见的需求,有很多办法可以做到,详见参考链接。本文讨论的点是如何把这个过程封装成一个方法,这样做的好处如下:1.简化调用2.容易替换成不同的实现3.可以做一些统一的处理这就是抽象的好处吧假设List中保存的元素是Item,定义如下:public class Item { private Integer id; private Integer weight; public Item(Integer id, Integer weight)
2020-06-22 11:21:03 13313 1
原创 java random by weight
使用反射实现了一个通用的random by weight,只要被随机的结构中带有getWeight函数即可public static <T extends Object>T getRandomObjByWeight(List<T> objs, Class<?> clazz) { try { Method getWeightFunc = clazz.getMethod("getWeight"); Double totalWeight = 0.0; f
2020-06-19 18:03:31 303
原创 golang gin第一个例子
gin框架的github地址https://github.com/gin-gonic/gin按照github上的文档,执行go get -u github.com/gin-gonic/gin不能成功。还好有镜像可用,执行以下命令go env -w GO111MODULE=ongo env -w GOPROXY=https://mirrors.aliyun.com/go...
2020-04-08 19:10:06 832
翻译 实时渲染第四版前言
前言 “在过去八年里东西没有改变太多”,是过去我们进入第四版的想法。“出一个新版本能有多难?”一年半以后,并且还有另外三个专家的加入,我们的任务完成了。我们或许还得花费一年编辑和细化,到那时会很轻易的有超过一百篇的文章和演讲稿再加入进来。就像数据指出的,我们用Google Doc做的参考文献超过170页的长度,每页大约有20个参考资料和相关的注释。我们列出的有些参考在一些其他书中会占用慢...
2019-12-13 17:47:42 483
原创 curl命令
1.curl发送带参数的get请求curl"http://127.0.0.1:3000/field?page=0&pageSize=10"2.curl发送带token的get请求curl -H "Authorization: Bearer tokenString" "http://127.0.0.1:3000/field?page=0&pageSize=10"3...
2019-12-09 19:59:42 1153
原创 ue4 IK心得
ik一般涉及到位置和旋转比如双手握枪的实现枪是由手柄驱动的,因此可以在游戏中得到枪的位置及朝向,有了枪的位置及朝向,通过枪上的socket就可以算出左右手所在的位置及其朝向。在ue4中,twoboneik通常只管ik的位置,但如果只管位置,手就不能很好的握在枪上。因此,枪上的socket应该不止决定手的位置,还要决定手的朝向。具体来说,左右手分别叫hand_l和hand_r,这样分两步来实...
2019-10-18 18:54:27 2114
原创 ue4随笔
1.好用的ue4命令log logonlineall 打开所有log类型为logonline的log的输出log logtexture off 关闭log类型为logtexture的log输出ToggleDebugCamera 可以让相机和玩家脱离Slomo0.001 可实现慢放,比如子弹事件效果2.ue4调试常用变量(1).UActorComponnet的常用调试变量...
2019-10-18 18:36:55 702
原创 ue4 DerivedDataCache报错
启动ue4时报错,报错堆栈如下:从堆栈可以看出是DerivedDataCache报错,从堆栈的CachedDataProbablyExists函数更可以看出是在判断cache是否存在,故而想到删除项目目录下DerivedDataCache中的Boot.ddc文件,果然问题解决了...
2019-09-23 15:29:35 801
原创 ue4 Actor属性同步流程
Actor属性同步明确几个概念ActorChannel(用来实现Actor同步的通道)其中有保存对应的Actor和Actor中需要同步的Component(Component是从UObject派生)先来关注函数为了方便理解,此处可以把Bunch理解为接收到的数据包,有了Bunch,首先需要知道此数据是同步给哪个Object的,ProcessBunch中的如下代码来获...
2019-09-20 19:34:41 1676
原创 fatal: did not receive expected object
使用git clone命令复制项目,报错,如下图要了解这个报错先得了解git clone的过程。git clone命令手下会下载整个仓库到本地,目录是./git/objects/pack,里面有个.pack文件(也可能有多个)。这个报错猜测应该是由于下载了这个文件后,检测到此文件有问题,然后导致clone失败。这么猜测的原因是,通过如下操作,可以把.pack下载下来1.mkdir ...
2019-09-20 11:42:37 2427 3
原创 ue4 UParticleSystemComponent 详解
UParticleSystemComponent是ue4中用来管理粒子系统的component,用起来也很简单,一般常用的方法有virtual void Activate(bool bReset=false) override;virtual void Deactivate() override;注意这两个接口是虚函数,最早的定义是在UActorComponent中,在UActorCo...
2019-06-29 14:45:54 3985
原创 ue4 BlueprintNativeEvent用法
BlueprintNativeEvent在ue4中是用来修饰UFUNCTION的,和BlueprintImplementableEvent有点类似,BlueprintImplementableEvent用于实现C++调蓝图(声明在C++,实现在蓝图)BlueprintNativeEvent除了实现C++调用蓝图外,同样会调用一个本地方法,本地方法为 声明的函数名+_Implementati...
2019-04-28 12:15:20 5220
原创 ue4 Encountered %d object(s) breaking Disregard for GC assumptions
今天遇到一个奇怪的崩溃Bug,具体的崩溃log如下:[2019.04.19-02.36.16:128][618]LogGarbage: Warning:Disregard for GC object Monatge_ON_AnimNotify/Game/_AI/BT/Task/AI_Random/W2_Stand_Relaxed_Unjam_Montage.W2_Stand_Relax...
2019-04-19 15:44:18 2339
原创 ue4 AimOffset和Montage
ue4如何实现不同瞄准方向的开火动画呢?不同方向的瞄准可以使用AimOffset实现,可参考官方文档。https://docs.unrealengine.com/en-us/Engine/Animation/AnimHowTo/AimOffset开火动画一般可采用Montage实现,一般会把开火动作做成设置为一个上半身的Montage,这样就可以实现站立射击,边走边射击的效果。但是...
2019-04-11 11:34:03 661
原创 Was only expecting C++ files to have CachedCPPEnvironments!
今天把ue4引擎从4.21.0升级到了4.21的最新版本,发现之前可以正常编译的代码编译不过了,输出错误为:Was only expecting C++ files to have CachedCPPEnvironments!找到报错的代码,如下:if (!IsCPPFile(PrerequisiteItem)){ throw new BuildException("Was on...
2019-02-28 15:59:31 637
原创 git submodule
在管理多个项目同用代码的时候,submodule比较有用假设有三个项目仓库,MyProjectA,MyProjectB,MyPluginMyPlugin由MyProjectA和MyProjectB共用,当然也可以把MyPlugin项目在两个项目中都放一遍,但这样修改MyPlugin后两边就得都改一遍,比较好的做法是使用submodule,用法也很简单,如下:比如在MyProjectA中...
2019-01-03 16:14:42 1398
原创 ue4 Could not find definition for module 'CryptoPP'
今天遇到一个问题,自己写的插件使用引擎源码编译正常,但用编译过的引擎编译插件,提示Could not find definition for module 'CryptoPP',这个插件确实依赖了CryptoPP,这是ue4依赖的一个第三方模块,具体路径是D:\work\UE_4.21\Engine\Source\ThirdParty\CryptoPP,发现相比引擎源码目录,少了CryptoPP....
2018-12-20 11:22:44 6065
原创 ue4 Animation Notify不触发
今天遇到一个奇怪的问题,当AI不在视野内,animation notify不触发当AI进入玩家视野,animation notify触发正常后来发现是SkeletalMeshComponent的VisibilityBasedAnimTickOption属性设置问题。当VisibilityBasedAnimTickOption设置为OnlyTickPoseWhenRendered时,就会...
2018-12-13 19:50:49 1775
原创 c#访问c++dll不能调试
vs2017中用C#程序访问c++dll的时候不能调试c++,只需要修改项目设置即可,如下图启用本地代码调试选项默认是没有勾选的,勾选以后应该就可以正常调试c++了如果还是不行,在vs 工具->选项->调试->常规把逐过程执行属性和运算符(仅限托管)前面勾去掉即可 ...
2018-11-30 17:34:37 729
原创 mysqld启动失败
昨天阿里云服务器到期了,今天续费后,发现mysqld启动不了了启动记录如下:根据提示,先输入systemctl status mysqld.service并没有看到十分明显的信息再输入journalctl -xe还是没有发现十分明显的提示这时候想到查看mysql的错误日志根据以上命令,发现错误日志路径为查看这个文件,发现没有任何本次启动的输出...
2018-11-12 16:05:09 1529
原创 算法图解 第4章第一节习题解答
最近看算法图解,对个别章节习题尝试作答,如果错误,欢迎指出4.1 请编写前述sum函数的代码def sum(a): if len(a) == 0: return 0 elif len(a) == 1: return a[0] else: return a[0] + sum(a[1:])val = sum([1,2,3,4,5,6,7,8,9,10])print v...
2018-07-31 11:11:12 2132 6
原创 ue4 FUdpSocketReceiver接收不到消息
ue4中udp接收消息端代码如下:bool FShooterUDPReceiver::Start(const int32 ThePort){ //Create Socket FIPv4Endpoint Endpoint(FIPv4Address(0,0,0,0), ThePort); //BUFFER SIZE int32 BufferSize = 2 * 1024 * 1024;...
2018-06-25 15:25:50 2325 1
原创 vs文件编码批量转换工具
https://blog.csdn.net/xiaozhi0999/article/details/52469979上文提到了ue4中出现中文乱码问题,可通过修改文件编码格式解决,但当文件很多的时候,一个个修改文件编码比较费事,所以本人用python写了一个批量转换编码工具(gb2312转utf8),其他编码转换,只需要对代码稍作修改即可。python2.7import osde...
2018-06-23 17:59:46 9246
原创 ue4同c#通信时的中文乱码问题
本文讨论C#同ue4进行通信,出现的中文乱码情况,其他语言类似。本文分两种情况讨论,1.C#向ue4发送string在C#发送string时,要先区分发送的字符串中是否包含中文,判断方法很简单,如下: private bool IsPureAnsi(string str) { for (int i = 0; i < str.Length;...
2018-06-23 17:53:03 1157 1
原创 ue4源码本地git管理
本文主要记录一下使用gitlab在局域网管理ue4源码的流程大体思路是在局域网创建gitlab仓库来管理ue4的源码,当引擎源码需要更新时,先把本地代码同步到github上最新的,然后在push到局域网的gitlab仓库,其他人通过gitlab来更新源码即可具体操作流程如下,git remote add epichttps://github.com/EpicGames/UnrealE...
2018-06-20 13:49:04 2350 1
原创 ue4获取所有mac地址
ue4 4.16版本中获取MAC地址的接口为FGenericPlatformMisc::GetMacAddressString此接口在windows平台的实现是调用Win32接口GetAdaptersInfo,然后返回第一个mac地址,但如果需要获取所有mac地址,此接口就不满足了,但很容易根据此接口实现一个获取所有mac地址的接口,具体代码如下:TArray<FString> FWi...
2018-06-19 19:14:30 3232 2
原创 ue4基于ShooterGame实现弩
需求,实现武器弩1.实现可发射projectile的武器,类似shooterweapon_projectile2.弩击中地面(场景上的静态物体)上则箭插在地面上,如果击中可移动的刚体则箭跟着刚体一起运动,如果打到怪身上,则会跟着怪的bone一起变换(也就是说在怪的bone空间相对变换固定不变)第一条容易实现,只要从shooterweapon_projectile派生即可,主要在实现第二条。这里需要...
2018-06-08 14:32:56 867
原创 ue4 PlayerState跨地图传递变量
切换地图时,PlayerController默认是不会被销毁的而PlayerState默认会被销毁如果PlayerState中有变量需要跨地图传递,可以有如下两种实现方法:1.可以在PlayerController中增加相应的变量,然后在PlayerController派生类中的InitPlayerState(重载)方法中,获取该变量,再给PlayerState中对应的变量赋值2....
2018-04-23 18:22:20 4491
VA2017 2212
2018-07-24
vs文件编码批量转换工具
2018-06-23
LINUX与UNIX SHELL编程指南
2013-06-20
tcp/ip详解(卷一)
2011-08-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人