请选择 进入手机版 | 继续访问电脑版

GA地精研究院

 找回密码
 立即注册
楼主: actboy168

用Preload做S/L系统

[复制链接]
发表于 2011-5-2 00:10:42 | 显示全部楼层
特别注意一下,目前同步字符串函数有问题。

所以尽量不要使用同步字符串。
回复 支持 反对

使用道具 举报

发表于 2011-5-2 16:53:46 | 显示全部楼层
保存实数读取不出值~~~难道跟字串符一样~~是编码问题~~~还有不能读取负数~~
回复 支持 反对

使用道具 举报

发表于 2011-5-14 17:44:06 | 显示全部楼层
5555555555555
WE新手飘过
表示很想学
但是看着像天书
这个可以做出orpg么
如果可以
那么还需要别的东西来辅助么?
最后问下9种兵器也使用这种方法做出来的么?
回复 支持 反对

使用道具 举报

发表于 2011-6-6 21:50:27 | 显示全部楼层
刚看到希瓦回了个帖子~~本来还想说一下的~~现在却没了~~怎么?~~已经自己解决了么?~~
回复 支持 反对

使用道具 举报

发表于 2011-6-6 21:52:48 | 显示全部楼层
嗯,差不多吧。
只是说异步修改玩家最大科技等级是会导致掉线的~
异步后再同步太麻烦了。
用另外的方法解决了。
回复 支持 反对

使用道具 举报

发表于 2011-6-6 21:56:43 | 显示全部楼层
哦?想出了别的法子么?~~不妨说说好了~~

反正目前we综合区缺乏讨论气氛~~应该多一些讨论的~~
回复 支持 反对

使用道具 举报

发表于 2011-6-6 22:22:47 | 显示全部楼层
以前看过一个关于制作互通作弊图的帖子。
为了保证100%不掉线,作者需要将:

储存(原数据)
储存(修改的数据)
同步(储存的数据)

的顺序修改为

储存(修改的数据)
同步(储存的数据)
储存(原数据)

这样,就算同步失败,也不会导致掉线。

因此,为了保证楼主的触发不会导致多玩家因不同步而掉线
(直接使用肯定是不行的,就算像18楼一样使用,也会导致玩家最大科技不同步而掉线)

所以,我们需要在preloader后,将所有数据都储存到缓存里面,然后把受到preloader影响的科技项全部还原(此法可能会带来一段读秒时间)……最后同步,同步的时候为了防止因延迟而掉线,应该使用上面说的那种结构。

这应该就是使用preload制作SL系统的注意事项了
相信很是有一些人受到了楼主的影响,想用异步setplayermaxtechallowed的方法来实现ORPGSL系统的…………
最后他们都掉线了……

可见,最好是不要使用maxteach,直接用playername是最好,也是最简单的了。
至少不同步玩家名称不会导致掉线就是了。
我也就是这样做的…………倒也没什么新奇之处

不过玩家名可以储存至少2000个字符了……使用也简单,确实是很好的方法。
我已经完成了简单的ORPGSL系统,优化后即可放出 ^ - ^

嗯,说了很多废话。
望头目指正。
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2011-6-6 22:41:53 | 显示全部楼层
嘛。楼上可以看看17~18楼。

然后方法肯定是没问题的,YDWE1.20里有完整的实现,有兴趣可以去看下
回复 支持 反对

使用道具 举报

发表于 2011-6-6 22:43:54 | 显示全部楼层
hmmm~~very good哦~~


话说,用setplayermaxtechallowed倒也不是必须掉线~~用同步保存GameCache来做~~处理得当就好~~但是确实没有玩家名来的安全呢~~而且这样确实方便~~



其实我之前也试过玩家名存取法呢~~不过我由于主要在搞SC2~~所以没有把完整系统做出来~~只是验证了下可行性而已~~
回复 支持 反对

使用道具 举报

发表于 2011-6-6 22:46:25 | 显示全部楼层
说起来楼主好久没冒出了~~最近跑哪去了?~~
回复 支持 反对

使用道具 举报

发表于 2011-6-6 22:48:56 | 显示全部楼层
引用第27楼actboy168于2011-06-06 22:41发表的  :
嘛。楼上可以看看17~18楼。

然后方法肯定是没问题的,YDWE1.20里有完整的实现,有兴趣可以去看下
我知道是可以实现的~~不过必须在读取后同步而已
话说楼主前辈把YDWE的SL系统做出来之后就消失了,没有提出下文,所以我稍微补充一下而已。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-6-6 22:52:30 | 显示全部楼层
没什么值得回的贴就潜水而已,其实希瓦第一次发的我也看到了
回复 支持 反对

使用道具 举报

发表于 2011-6-6 22:53:03 | 显示全部楼层
此前我倒是用利用玩家名系统搞过物品\\单位的动态提示信息。

就是把物品扔在地上后,在同一位置放一个单位(如果是直接给单位+提示信息就不用放了)和一个Trackable,利用单位的玩家名来做物品提示信息。利用Trackable来捕捉鼠标高亮事件,然后修改玩家名为对应的提示信息什么的。提示信息里要换行只需要+|n即可。由于玩家名是可以异步的,所以可以实现多人。

不过这个仅限于物品在地上的情况,直接修改在物品栏里的提示信息还是没法用这个法子啦。


所以用在物品提示信息上不是很完美,不过要给单位+提示信息就很方便了。比如鼠标移动上去显示单位的各种信息什么的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-6-6 22:55:13 | 显示全部楼层
引用第30楼希瓦于2011-06-06 22:48发表的  :

我知道是可以实现的~~不过必须在读取后同步而已
话说楼主前辈把YDWE的SL系统做出来之后就消失了,没有提出下文,所以我稍微补充一下而已。


那是你sync的代码没写对吧,上次看了萃梦写的也是同样的问题
回复 支持 反对

使用道具 举报

发表于 2011-6-6 23:06:02 | 显示全部楼层
引用第31楼actboy168于2011-06-06 22:52发表的  :
没什么值得回的贴就潜水而已,其实希瓦第一次发的我也看到了  
第一次发的是什么我也忘了,只是记得多少有点气愤吧……
后面因为觉得说话太冲动了就编辑掉了……嘿嘿
气愤的是不同步的使用SetPlayerMaxTeachAllowed导致我重复测试了几十次……
本来还以为是sync代码写错的问题……
后来才发现是最大科技等级不能异步的原因……
回复 支持 反对

使用道具 举报

发表于 2011-6-6 23:08:05 | 显示全部楼层
原本那法子确实可行。不过用玩家名确实更安全一些。

主要更方便一些不是非常了解游戏断线机制的同学使用。毕竟有一部分同学不大搞得清楚GetLocalPlayer()的后面半个大括号该放在哪里。
回复 支持 反对

使用道具 举报

发表于 2011-6-6 23:12:57 | 显示全部楼层
e,用惯了galaxy习惯性地说大括号了。应该说一部分同学不大搞得清楚GetLocalPlayer包裹的语句应该到哪里为止。
回复 支持 反对

使用道具 举报

发表于 2011-6-6 23:15:03 | 显示全部楼层
说起来这个S/L系统。目前基本上就剩下一个问题了。

这个系统有没有好点加密方式?毕竟这个系统和SC2的Bank一样基本上就是一个明文保存的系统。得考虑一些稍微靠谱的加密方式。

当然,要完全无法破解那不可能。毕竟地图本身都没法完全加密。稍微靠谱点就好了。
回复 支持 反对

使用道具 举报

发表于 2011-6-6 23:15:40 | 显示全部楼层
思想短暂穿越了
回复 支持 反对

使用道具 举报

发表于 2011-6-10 18:56:45 | 显示全部楼层
头目的刷屏有点多了...
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2018-8-16 12:10 , Processed in 0.052255 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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