麦德三世 发表于 2011-5-2 00:10:42

特别注意一下,目前同步字符串函数有问题。

所以尽量不要使用同步字符串。

sseldn12 发表于 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系统,优化后即可放出 ^ - ^

嗯,说了很多废话。
望头目指正。

actboy168 发表于 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里有完整的实现,有兴趣可以去看下 images/back.gif

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

actboy168 发表于 2011-6-6 22:52:30

没什么值得回的贴就潜水而已,其实希瓦第一次发的我也看到了

麦德三世 发表于 2011-6-6 22:53:03

此前我倒是用利用玩家名系统搞过物品\\单位的动态提示信息。

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

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


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

actboy168 发表于 2011-6-6 22:55:13

引用第30楼希瓦于2011-06-06 22:48发表的:

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



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

希瓦 发表于 2011-6-6 23:06:02

引用第31楼actboy168于2011-06-06 22:52发表的  :
没什么值得回的贴就潜水而已,其实希瓦第一次发的我也看到了  images/back.gif

第一次发的是什么我也忘了,只是记得多少有点气愤吧……
后面因为觉得说话太冲动了就编辑掉了……嘿嘿
气愤的是不同步的使用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一样基本上就是一个明文保存的系统。得考虑一些稍微靠谱的加密方式。

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

chilled 发表于 2011-6-6 23:15:40

思想短暂穿越了

閃洸メ血舞 发表于 2011-6-10 18:56:45

头目的刷屏有点多了...
页: 1 [2] 3
查看完整版本: 用Preload做S/L系统