游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2810|回复: 3

策划来问各位程序大神一个问题,求解答~

[复制链接]

2

主题

3

帖子

0

积分

新手上路

Rank: 1

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

6

主题

74

帖子

230

积分

中级会员

Rank: 3Rank: 3

积分
230
发表于 2012-3-5 19:32:00 | 显示全部楼层

Re:策划来问各位程序大神一个问题,求解答~

计数器解决

假设只有2方,那么就2个计数器。
进来一个人时,该方计数器加1
出去一个人,计数器减1.

需要保证死亡的人计数器也会减掉。

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

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

Re:策划来问各位程序大神一个问题,求解答~

读条+1


循环列举场景里所有玩家

      如果 场景里有其他玩家的flag 那么 读条=0,跳出循环

循环结束


如果 读条>读条需要时间 那么 场景flag切换

10

主题

182

帖子

182

积分

注册会员

Rank: 2

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

Re:策划来问各位程序大神一个问题,求解答~

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

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

本版积分规则

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

GMT+8, 2025-8-1 01:18

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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