针对不断有玩家对招募门客的一些误解,特地发贴解释门客招募的原理.....
玩家招募门客是有一定的几率,绿->蓝->紫,招募几率依次降低,关于大家说的某某不是名人,并不是别人已经把他招募到,所以后面招募此名的都是农民,而是招募后会分别计算出此次玩家能招募到几名什么颜色门客,当然,大部分为0,然后随机从数据库中抽取未被招募的门客,其他平民门客,就会随机生成姓名,所以有可能生成和某历史人物一样的名字,但并不是你应该招到名人而此人被别人先招了,而是你此次招募的就是一平民门客,只是名字和名人的名字重合而已。 关于门客招募,玩家 andyllr 的建议如下,还提供了简易的算法,大家共勉: 我建议可以通过逻辑判断来防止生成的门客名可能会和名人冲突,只要用生成的用户名去查一下库,看一下是否和名人冲突就够了,小生班门弄斧提供一个算法供参考:优点:解决系统生成门客和名人名字重复问题缺点:会增加访问DB的次数 假设mingren_name为名人名,t_mingren为名人表,para为变量既生成的门客名sql statement: select count(mingren_name) from t_mingren where mingren_name=#para#//判断库中没有和生成的门客名冲突的if(count(para)=0){ 生成门客;} 这样代码很简单就解决了。当然了,最优的方法是将生成的门客批量处理,然后将重复的REMOVE,再从新生成,直到达到30个为止。