东方符斗祭是一个以东方Project为背景类“三国杀”卡牌游戏。 原版(纯 Python 版)已不再维护,可以在 legacy 分支 找到。 目前这里是符斗祭的核心代码,包括游戏逻辑、游戏服务端、后端以及部署相关的描述符。游戏客户端因为使用了商业插件无法开源。
仍然在开发中。
以下列表仅作展示使用,并不会随着游戏更新而更新
所有代码发布在 GPLv3 协议下。
A Sanguosha board game clone, based on Touhou Project
Home Page: http://www.thbattle.net
License: GNU General Public License v3.0
东方符斗祭是一个以东方Project为背景类“三国杀”卡牌游戏。 原版(纯 Python 版)已不再维护,可以在 legacy 分支 找到。 目前这里是符斗祭的核心代码,包括游戏逻辑、游戏服务端、后端以及部署相关的描述符。游戏客户端因为使用了商业插件无法开源。
仍然在开发中。
以下列表仅作展示使用,并不会随着游戏更新而更新
所有代码发布在 GPLv3 协议下。
On enter:
/home/marisa/Work/thbattle/src/pyglet/gl/gl_info.py:166: UserWarning: No GL context created yet.
warnings.warn('No GL context created yet.')
On exit:
AL lib: (EE) alc_cleanup: 1 device not closed
Segmentation fault
现在的卡牌「争议」状态的实现是「卡牌记着牌堆,牌堆不记着卡牌」。这种实现会对计算卡牌数量的逻辑产生影响,尤其是在类似于 action_shootdown
这样的不会影响游戏进程的逻辑中,在客户端判定是和逻辑真正跑起来时结果会不一样。
考虑实现成由卡牌记录「争议」状态,禁止 naive 的方式遍历 CardList,提供专门的遍历函数。
游戏内举报,方便快捷,
0局萌新一登录就直接进入新手教程内部游戏,而不需要自己创房找,
任务多一点而且游戏内要有体现,而且真的要多不是一点。
等级制度,可以直接按照论坛制度在游戏内体现,
个人信息系统,战力胜率常玩模式最近游戏的对局数据方便回忆查看。
排位。
势力不如搞个公会或者战队会不会更符合当下潮流。
希望希望头像可以手机游戏内也能换,签名系统。
头像框系统(可以官方出,节操买,活动送,任务送,排位送)
游戏内商店和论坛的相比希望更有实用性(金币卡好人卡改名卡可以保留,可以加入如sgs的鲜花鸡蛋系统)
房间内查看玩家数据,就是那种点玩家头像出现小菜单然后有查看资料,添加好友,举报,赠送礼物,等等
可以手机查看观战玩家并选择t出去
妖梦换酒瓢消耗干劲bug
最好把每日签到也搞到游戏内,形式肯定和论坛不一样
游戏内宣传论坛地址
抽奖系统,至于奖品可以是头像框,聊天表情(仅限私聊)人物左或右上角角标(总之可以看出与别人不一样的地方)
皮肤系统,小众游戏就少想氪金方面,希望是原画师作画,点击玩家选择的角色可以弹出皮肤选择弹窗(游戏内)有条件的话不同皮肤说不同的台词感觉超棒(有条件的情况下)
背包,包含购买道具,节操数量,皮肤等
全服公告,例如某玩家在什么什么局打出操作就会全服发一个金色的弹幕(例如某人一局使用10个麻薯,一回合打死3个人,一局游戏被袋子炸了两次及以上)
成就系统
角色好感度(也就是熟练度,到达一定阶段可以赠送特别奖励,例如角色特殊表情包,角色特殊台词,角色特殊皮肤,角色特殊卡牌效果,就是出弹幕的时候角色会有点特效。)
我先想想有空再补
https://bbs.hankcs.com/t/topic/1455
新用户在加入时是 信用评级 0 ,意味着还需要争取社群的信任。信用评级 0 的用户会受到 新用户限制 :
不能发送私信;
不能标记帖子;
不能发多于 1 张图片;
不能发附件;
不能在同一帖子里发多于 2 个链接;
不能在「关于我」中发链接(会被处理为纯文字);
不能在同一帖子里 @ 多于 2 个人;
不能发表多于 3 个主题;
不能发表多于 10 个帖子。
在论坛浏览一会儿帖子(至少 5 个主题、30 条回帖和一定时间)后就能升级到 信用评级 1 ,解除上述新用户限制。信用评级 1 的用户:
可以发送私信;
可以上传图片和附件;
可以编辑维基帖子;
可以标记帖子。
信用评级 2 是真正融入到蝴蝶效应社群当中的成员。要升级到信用评级 2 需要:
访问至少 15 天(无需连续访问);
送出至少 1 个赞,收到至少 1 个赞;
在至少 3 个不同的主题下回帖;
阅读至少 20 个主题,至少 100 个回帖;
花至少 60 分钟阅读。
信用评级 2 的成员:
可以邀请新成员加入(邀请的成员会自动获得 Trust Level 1);
可以私信群组;
可以使用匿名模式;
每天可以送出的赞数增加 1.5 倍。
信用评级 3 是蝴蝶效应社群的主心骨。要升级到信用评级 3 需要 在过去 100 天内 :
访问至少 50 天(无需连续访问);
回复至少 10 个不同的帖子;
看过在过去 100 天内发表的帖子的至少 25%,或 200 个帖子(取较大值,但不超过 500);
看过在过去 100 天内发表的回帖的至少 25%,或 500 个回帖(取较大值,但不超过 20000);
送出至少 30 个赞,收到至少 20 个赞;
不能被标记为广告或不友善超过 5 次;
不能被封禁或禁言。
信用评级 3 的成员:
可以修改别人帖子的标题和标签;
把别人的帖子移动到别的板块;
访问一个私密的特别版块(仅信用评级 3 以上可见);
创建新的标签;
取消链接的 no-follow;
若标记信用评级 0 的用户的帖子,则立刻自动隐藏该帖子(若足够多的信用评级 3 的成员这样做,则信用评级 0 的用户会立刻自动禁言);
将自己的帖子设置为维基帖子,允许别的成员编辑;
每天可以送出的赞数增加 2 倍。
信用评级 4 的用户只能由管理员升级。
可以编辑所有的帖子;
可以置顶/取消置顶;
可以关闭帖子;
可以存档帖子;
可以隐藏帖子;
可以合并/拆分帖子;
任何标记都将直接生效;
每天可以送出的赞数增加 3 倍。
with fbo:
fbo.texture = xxx
gl.glFramebufferTexture2DEXT(
gl.GL_DRAW_FRAMEBUFFER_EXT,
gl.GL_COLOR_ATTACHMENT0_EXT,
t.target, t.id, 0,
) # crashes here
need Intel card to debug
不好意思歪个楼。
喜欢作者头像,Google搜不到,请问下出自哪里,画师是谁?谢谢
在测试服中水密的水难不是要一张牌吗 可以是装备牌也可以是手牌 但是昨天的一局比赛中我明明点了武器 但却把防具或手牌给了水密 总之希望修改一下 这种情况发生了很多次 没有截图 忘了保存 ... ...
Reported by: 这里是萌蛙
根据描述,怪力弃置牌的时机是在造成伤害后,然而在悔悟棒取消伤害后,仍旧触发了弃置牌的效果。
物部布都 3残机
龙脉:弃牌阶段开始时,若你于出牌阶段内使用牌数的奇偶性与场上的角色数相同,你摸一张牌。
烬仏:出牌阶段限一次,你可令一名角色弃置一张于本局游戏中未因『烬仏』而弃置过的花色的牌。若该角色不如此做,你失去『烬仏』,并令其选择:弃置区域内所有牌,或受到2点你造成的伤害。
苏我屠自古 3残机
怨雷:锁定技,若你已受伤,你于出牌阶段内使用基本牌造成的伤害与回复的体力值皆+1;若你未受伤,你于摸牌阶段的摸牌数与手牌上限皆+1。
丰聪耳神子 4残机
笏德:其他角色于其出牌阶段内限一次,若你的手牌数不为全场最多,该角色可交给你一张牌并获得你的攻击范围,直到当前阶段结束;锁定技,若你的手牌数为全场最多,其他角色皆在你的攻击范围内,你使用的牌不能被响应。
我对豪族的定义是“能拥有更多牌的人”,不知道这样准不准确……
龙脉是涉及道法数算的,寻找龙脉就是寻找灵气充沛之地,在那地方获得一些增益,故而设计成了根据用牌数奇偶性和场上角色数匹配的条件,奖励设置了摸一张牌,在弃牌阶段前摸用以调控强度。同样奇偶性也是为了角色技能的独特性,不希望玩家的体验重复,也有操作空间。
龙脉之名,来源于符卡【火焰龙脉】,与后文中的烬佛有关。
而烬佛,取材自物部布都的事迹“火烧樱井寺(符卡为【樱井寺炎上】”,一次一次的令弃置添柴,最后一把火焚烬(同时也失去了技能),焚的效果参考了焚城中的焚,弃置所有牌或者掉2血,是很严厉的惩罚。
做成令弃置的伪限定形式同样是强度和可玩性的调控,为了防止变成神周瑜那样失控的角色。
我在项目中没有找到python游戏客户端,或者unity客户端的位置,能告诉我他们的位置吗?
There are often less than 8 people in the server.
maybe it would be great idea to have it in English as well.
marisa@lolisa:~/Work/thbattle/bin$ python start_client
/home/marisa/Work/thbattle/src/pyglet/gl/gl_info.py:166: UserWarning: No GL context created yet.
warnings.warn('No GL context created yet.')
'/home/marisa/Work/thbattle/src'
Traceback (most recent call last):
File "/home/marisa/Work/thbattle/src/client/core/executive.py", line 365, in do_update
for p in up.update():
File "/home/marisa/Work/thbattle/src/autoupdate.py", line 30, in update
repo = pygit2.Repository(self.base)
File "/usr/local/lib/python2.7/dist-packages/pygit2/repository.py", line 59, in init
super(Repository, self).init(_args, *_kwargs)
KeyError: '/home/marisa/Work/thbattle/src'
Traceback (most recent call last):
File "/home/marisa/Work/thbattle/eggs/gevent-1.0.1-py2.7-linux-x86_64.egg/gevent/greenlet.py", line 327, in run
result = self._run(_self.args, *_self.kwargs)
File "/home/marisa/Work/thbattle/src/client/ui/screens.py", line 411, in work
if not options.no_update and not Executive.is_version_match(server['branch']):
File "/home/marisa/Work/thbattle/src/client/core/executive.py", line 390, in is_version_match
return up.is_version_match(version)
File "/home/marisa/Work/thbattle/src/autoupdate.py", line 89, in is_version_match
repo = pygit2.Repository(self.base)
File "/usr/local/lib/python2.7/dist-packages/pygit2/repository.py", line 59, in init
super(Repository, self).init(_args, *_kwargs)
KeyError: '/home/marisa/Work/thbattle/src'
<Greenlet at 0x7f42ecf5a0f0: work> failed with KeyError
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
AL lib: (EE) alc_cleanup: 1 device not closed
Segmentation fault
I'm on debian.
Or at least provide a option to start with mute= =
咲夜在受到忧郁的情况下对梅蒂欣使用装备栏中装备飞刀会失败。(操作成功,但是判定失败)
Customization of language/font/picture will make the game more playable, plus a Japanese/English port will be easier.
论坛上别人的帖子,帮忙提issue
PC端游戏运行时间长后可能在游戏开始/结束切换界面时,或在游戏过程中崩溃
手机端需要添加掉线、逃跑的显示
建议添加掉线强制等待时间(至少一分钟)
以下是原帖:
多少年了还是那老样子PC端开久了,在大厅里还好区别不大。一进对局,要么玩着玩着就崩掉,要么游戏开始或者结束时切换界面就崩掉。
我真的服了,因为这种问题给我加了4次逃跑了,要不是以前的逃跑数没了,一共十几次了。
还有就是这掉线问题,PC端可以看出掉线和逃跑,但手机端看不出,什么时候能给手机端优化一下这两者的显示问题。
最后是掉线,建议加上掉线强制等待时间(最低一分钟)。
我刚才打一把22,对局中因为游戏开太久导致游戏爆炸而掉线,从游戏爆炸到重新上线不到一分钟,游戏对局结束,我逃跑喜加一???
明明是游戏的问题,却要我买单???
thbattle.net网站上存在flash内容(如首页左侧部分和更改头像),可否进行替换?
marisa@lolisa:~/Work/thbattle$ buildout -vvv
Traceback (most recent call last):
File "/usr/local/bin/buildout", line 9, in
load_entry_point('zc.buildout==2.3.1', 'console_scripts', 'buildout')()
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 356, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2476, in load_entry_point
return ep.load()
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2190, in load
['name'])
File "/usr/local/lib/python2.7/dist-packages/zc/buildout/buildout.py", line 18, in
import zc.buildout.easy_install
File "/usr/local/lib/python2.7/dist-packages/zc/buildout/easy_install.py", line 29, in
import setuptools.archive_util
File "/usr/local/lib/python2.7/dist-packages/setuptools/init.py", line 11, in
from setuptools.extension import Extension
File "/usr/local/lib/python2.7/dist-packages/setuptools/extension.py", line 8, in
from .dist import _get_unpatched
File "/usr/local/lib/python2.7/dist-packages/setuptools/dist.py", line 21, in
packaging = pkg_resources.packaging
AttributeError: 'module' object has no attribute 'packaging'
i tried to use travis to compile, but always fails.
Are there any problems with the travis yml file#
分离 detach_cards
与 migrate_cards
的职责
About all,from my perspective,thbattle is an interesting game.
But as a python beginner,if I want to clone a new game like this.How do I start the first step——how to read the source code and where is the main program extrance?
如,可以根据技术分选出 MVP
请问这个东方符斗服务器源码可以开源吗
1.「罪袋」→「生态瓶」
2.「好人卡」→「灵击」
3.「地图炮」→「非定向光线」(这个不一定要改,可能念起来太长,原来的也不是不可以)
Is this intended or a misimplementation? Really stressful because different character work for different identity...
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.