游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2256|回复: 4

[讨论] 求助脚本相关问题

[复制链接]

2

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2012-3-5 12:59:00 | 显示全部楼层 |阅读模式
    现在要写一个城战脚本规则,在胜利条件的地方遇到了困难,假设现在有一个皇宫,当皇宫内所有的玩家都是一个公会的时候,开始读条,读条完毕后占领皇宫,如果期间进入了其他公会的玩家,那么读条停止归0,直到又全是一个公会以后重新开始读条。
    可用的函数有场景Flag,玩家自身的Flag,进出通知等等,不用写出代码,只想知道一个编写的逻辑思维,现在这个问题研究了很久不知道怎么解决,求高手解答~ [em21] [em21] [em21]

5

主题

752

帖子

855

积分

高级会员

Rank: 4

积分
855
发表于 2012-3-5 13:25:00 | 显示全部楼层

Re:求助脚本相关问题

没写过脚本
既然有进出通知,每次触发就处理是否行的通?

如果怕处理频繁,设置个对玩家较短对运算较长的时间,查看这段时间是否有外帮进出记录

好吧- -我纯粹扯淡

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20527
发表于 2012-3-5 21:07:00 | 显示全部楼层

Re:求助脚本相关问题

多发,可以跳转到:http://bbs.gameres.com/thread_180737.html

10

主题

182

帖子

182

积分

注册会员

Rank: 2

积分
182
发表于 2012-3-5 23:45:00 | 显示全部楼层

Re:求助脚本相关问题

方式一:
1、玩家A进入时,将其血盟信息存储进场景变量里,并用另一个变量记录它的数量为1。同样的,当有其他血盟的玩家B进入该场景时,便将其血盟信息存储进该场景变量里,用另一个变量记录它的数量。
2、若玩家A此时离开该场景,则该场景中用来记录他所在血盟的变量信息中的玩家个数信息置为0,此时删除它的变量信息,用来接受其他变量。
3、每次有玩家进入或者离开时,除记录他们各自的变量信息外,还要做一次判定,所有在该场景的血盟信息中,是否有多个血盟个数不为0,若存在,则不读条,若不存在,则读条。
说明:记录血盟信息,在需要的时候,可以用来显示当前皇宫中存在的血盟及其人数。或者一些类似弱势力BUFF的东西,例如人数少的血盟成员可以获得一定的血量加成什么的。
方式二:
1、记录第一个进入皇城的血盟信息,开始读条操作
2、每次有玩家进入皇城时,所有在皇城玩家,都发送消息询问服务器中储存的血盟信息是否与自己相同,若不同,则替换服务器中所存放的血盟信息为自己当前血盟,同时发送终止读条操作。
3、10秒之后(估算大多数玩家的延迟范围),若无玩家或者只有一个玩家发出终止读条的操作,则读条继续。
说明:这种做法比上面的方式在开发难度上简单一些,不过貌似对服务器会造成一定压力。而且10秒时间对于当前的网络延迟来说并不一定可靠,还是需要考虑。

写完之后发现自己对玩家频繁进出的情况考虑不周,如若担心服务器压力过大,建议采用5秒或者10秒检测一次场景内玩家血盟信息的方式来执行,而不是考虑进出的方式。

7

主题

151

帖子

165

积分

注册会员

Rank: 2

积分
165
发表于 2012-3-6 00:47:00 | 显示全部楼层

Re:求助脚本相关问题

    可以这样:每次有玩家离开皇宫场景的时候,判断一下皇宫内的所有玩家是否属于同一个公会,同时将公会编号存起来(可以让程序给你导出接口,自己遍历的话效率太低),如果结果=true,那么服务器就开始倒计时10秒,同时发送读条指令到客户端。当服务器倒数到10之后,宣布本公会胜利就是了。
    同时你需要在每次玩家进入皇宫的时候,判断一下服务器是否在进行10秒倒数,如果结果=true,那么你需要判断一下进入玩家的公会是否和倒数的公会相同,如果是同一个公会,那就return掉;如果不是则结束服务器和客户端的10秒倒数。同理,如果服务器根本没进行倒数,那么就也直接return掉。
    当然,是否开始读条的判断,你在攻城战一开始的时候也可以调用一下,因为有可能一个攻城对手也没有,自己方直接赢了(这个看你攻城战的规则,来决定是否需要调用)
    3楼说的玩家频繁进出的情况应该可以忽视,这对服务器造成的压力是很小的。
     
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-30 03:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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