Coder Social home page Coder Social logo

scarsty / kys-cpp Goto Github PK

View Code? Open in Web Editor NEW
2.5K 74.0 363.0 7.13 MB

《金庸群侠传》c++复刻版,已完工

License: BSD 3-Clause "New" or "Revised" License

C++ 94.28% C 5.63% CMake 0.06% Shell 0.01% Batchfile 0.02%
game-development sdl2 cpp jinyong cpp14

kys-cpp's Introduction

Hi there 👋

kys-cpp's People

Contributors

caishanli avatar crazyks avatar fyt000 avatar luke19821001 avatar ncnnnnn avatar scarsty avatar td1tfx avatar tpoisonooo avatar wkcn avatar zhangn1985 avatar zhangyebo1991 avatar zpffly001 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kys-cpp's Issues

DOS版中对应的z.dat文件是拆解了吗?

不好意思,我不是专业的,编程我不太懂。从玩家的角度,我玩DOS版时候针对z.dat文件做过一些调整,现在玩复刻版,不知道对应的修改文件是哪一个,我想调整一下武器附加值。

地面纹理黑色

想问下,windows下编译,运行的时候地面的纹理是黑色的,打印并没什么异常的。
不知是什么情况?

U5DG(TXUA %5YFS~C0GBJ7Q

[反馈]Hades版本与原版的体验比较

2023年11月20日,我尝试了Hades版本的金庸群侠传原版和苍龙逐日,以下是我的体验和观察:

  • 九阳神功和扫地僧在Hades版本中表现相对较弱。
  • 暗器只需装备即可无限使用。
  • 多人集中攻击一人时,伤害反而降低。
  • 重击相对不太实用,轻攻更有效,除非学会《左右互搏》。
  • 当体力减少时,剑招变慢。长按键会迅速降低体力,而连续敲击则可以在体力减少时回复体力。
  • 打败十大善人非常困难,通关似乎不可能。只能被逼到墙角,不断使用药物,在间隙中使用野球拳一点点击败对手。
  • 打败日寇只能使用远程攻击,近战几乎不可能成功。
  • 即使通关多次,主角仍无法击败全真七子和洪七公的组合。
  • 钟灵的闪电貂毒攻击没有效果。

2024年2月1日,我切换回了原版的战斗模式,使用苍龙逐日中的主角对着镜子战斗。以下是我的体验:

  • 钟灵的闪电貂只造成了3点伤害,没有毒的效果。
  • 暗器的伤害原来如此高!在Hades版本中没有这种感觉。
  • 白万剑和李莫愁的实力原来如此强大!在Hades版本中,主角使用杨家枪法前期战斗够用。然而在原版中,主角必须修炼高级武学才能战胜白万剑。

最后,看作者最近仍有commit,是否Hades版本有更新?只狼 和 Hades是一回事吗? 看以前的README写的“黑帝斯”,现在“只狼”

ubuntu18.04上编译报错

[ 55%] Building CXX object CMakeFiles/kys.dir/Save.cpp.o
/usr/bin/c++   -I/home/luffysman/workspace/playground/jynews/kys-cpp/src/../include -I/home/luffysman/workspace/playground/jynews/kys-cpp/src/. -I/home/luffysman/workspace/playground/jynews/kys-cpp/src/../mlcc -I/home/luffysman/workspace/playground/jynews/kys-cpp/src/../others -I/home/luffysman/workspace/playground/jynews/kys-cpp/src/../local/include  -O2 -std=c++17 -pthread -DNDEBUG -DUSE_SDL_MIXER_AUDIO   -o CMakeFiles/kys.dir/Save.cpp.o -c /home/luffysman/workspace/playground/jynews/kys-cpp/src/Save.cpp
/home/luffysman/workspace/playground/jynews/kys-cpp/src/RunNodeFromJson.cpp: In member function ‘void RunNodeFromJson::create(YAML::Node&, RunNode*)’:
/home/luffysman/workspace/playground/jynews/kys-cpp/src/RunNodeFromJson.cpp:56:20: error: binding reference of type ‘YAML::Node&’ to ‘const YAML::Node’ discards qualifiers
             create(n1, new_node.get());
                    ^~
/home/luffysman/workspace/playground/jynews/kys-cpp/src/RunNodeFromJson.cpp:25:6: note:   initializing argument 1 of ‘void RunNodeFromJson::create(YAML::Node&, RunNode*)’
 void RunNodeFromJson::create(YAML::Node& n, RunNode* run_node)
      ^~~~~~~~~~~~~~~
In file included from /usr/include/yaml-cpp/yaml.h:17:0,
                 from /home/luffysman/workspace/playground/jynews/kys-cpp/src/RunNodeFromJson.h:3,
                 from /home/luffysman/workspace/playground/jynews/kys-cpp/src/RunNodeFromJson.cpp:1:
/usr/include/yaml-cpp/node/impl.h: In instantiation of ‘const T YAML::as_if<T, void>::operator()() const [with T = YAML::Node]’:
/usr/include/yaml-cpp/node/impl.h:139:31:   required from ‘const T YAML::Node::as() const [with T = YAML::Node]’
/usr/include/yaml-cpp/node/convert.h:200:7:   required from ‘static bool YAML::convert<std::vector<T> >::decode(const YAML::Node&, std::vector<T>&) [with T = YAML::Node]’
/usr/include/yaml-cpp/node/impl.h:116:27:   required from ‘const T YAML::as_if<T, void>::operator()() const [with T = std::vector<YAML::Node>]’
/usr/include/yaml-cpp/node/impl.h:139:31:   required from ‘const T YAML::Node::as() const [with T = std::vector<YAML::Node>]’
/home/luffysman/workspace/playground/jynews/kys-cpp/src/RunNodeFromJson.cpp:54:67:   required from here
/usr/include/yaml-cpp/node/impl.h:116:27: error: incomplete type ‘YAML::convert<YAML::Node>’ used in nested name specifier
     if (convert<T>::decode(node, t))
         ~~~~~~~~~~~~~~~~~~^~~~~~~~~
[ 56%] Building CXX object CMakeFiles/kys.dir/Scene.cpp.o
/usr/bin/c++   -I/home/luffysman/workspace/playground/jynews/kys-cpp/src/../include -I/home/luffysman/workspace/playground/jynews/kys-cpp/src/. -I/home/luffysman/workspace/playground/jynews/kys-cpp/src/../mlcc -I/home/luffysman/workspace/playground/jynews/kys-cpp/src/../others -I/home/luffysman/workspace/playground/jynews/kys-cpp/src/../local/include  -O2 -std=c++17 -pthread -DNDEBUG -DUSE_SDL_MIXER_AUDIO   -o CMakeFiles/kys.dir/Scene.cpp.o -c /home/luffysman/workspace/playground/jynews/kys-cpp/src/Scene.cpp
CMakeFiles/kys.dir/build.make:809: recipe for target 'CMakeFiles/kys.dir/RunNodeFromJson.cpp.o' failed
make[2]: *** [CMakeFiles/kys.dir/RunNodeFromJson.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/luffysman/workspace/playground/jynews/kys-cpp/src'
CMakeFiles/Makefile2:70: recipe for target 'CMakeFiles/kys.dir/all' failed
make[1]: *** [CMakeFiles/kys.dir/all] Error 2
make[1]: Leaving directory '/home/luffysman/workspace/playground/jynews/kys-cpp/src'
Makefile:86: recipe for target 'all' failed
make: *** [all] Error 2

Can not build object file "Zip.cpp.o" duing to "dos_date" on Arch Linux

Hi there,

I can't quite find out that how to build certain object files of this game on Linux. Could you please provide a more detail instructions?

Here are the logs I found from console:

[ 88%] Building CXX object CMakeFiles/kys.dir/Zip.cpp.o
/usr/bin/c++   -I/home/foobar/kys-cpp-git/kys-cpp/src/../include -I/home/foobar/kys-cpp-git/kys-cpp/src/. -I/home/foobar/kys-cpp-git/kys-cpp/src/./others  -O3 -std=c++11 -pthread   -o CMakeFiles/kys.dir/Zip.cpp.o -c /home/foobar/kys-cpp-git/kys-cpp/src/Zip.cpp
/home/foobar/kys-cpp-git/kys-cpp/src/Zip.cpp: In static member function 'static int Zip::zip(std::__cxx11::string, std::vector<std::__cxx11::basic_string<char> >)':
/home/foobar/kys-cpp-git/kys-cpp/src/Zip.cpp:31:45: error: 'struct zip_fileinfo' has no member named 'dos_date'; did you mean 'dosDate'?
         get_file_date(zip_file.c_str(), &zi.dos_date);
                                             ^~~~~~~~
                                             dosDate
/home/foobar/kys-cpp-git/kys-cpp/src/Zip.cpp: In static member function 'static int Zip::unzip(std::__cxx11::string, std::vector<std::__cxx11::basic_string<char> >)':
/home/foobar/kys-cpp-git/kys-cpp/src/Zip.cpp:49:54: warning: passing NULL to non-pointer argument 3 of 'int unzLocateFile(unzFile, const char*, int)' [-Wconversion-null]
         if (unzLocateFile(zip, filename.c_str(), NULL) != UNZ_OK)
                                                      ^
make[2]: *** [CMakeFiles/kys.dir/build.make:573: CMakeFiles/kys.dir/Zip.cpp.o] Error 1
make[2]: Leaving directory '/home/foobar/kys-cpp-git/kys-cpp/src'
make[1]: *** [CMakeFiles/Makefile2:71: CMakeFiles/kys.dir/all] Error 2
make[1]: Leaving directory '/home/foobar/kys-cpp-git/kys-cpp/src'
make: *** [Makefile:87: all] Error 2

Whereas "error: 'struct zip_fileinfo' has no member named 'dos_date'" , I found that the "dos_date" was defined in "src/others/minishared.c" and declared in "src/others/minishared.h",

Any ideas how I can resolve this ?

Target: x86_64-pc-linux-gnu
Thread model: posix
gcc version 8.1.1 20180531 (GCC)
cmake 3.11.4
minizip 1.2.11

Thanks,
-Lin

编译提示:找到一个或多个重定义的符号?

非常困惑,
操作系统是windows10;编译环境是vs2019;第三方库用的vcpkg下载的。
共5个error:

错误 LNK1169
找到一个或多个多重定义的符号 kys
D:\projects\kys-c++\kys-cpp\x64\Release\kys.exe 1

错误(活动) E0070
不允许使用不完整的类型 kys
C:\src\vcpkg\installed\x64-windows\include\asio\impl\compose.hpp 62
在 class "asio::detail::composed_work_guard<Executor, > [其中 Executor=asio::system_executor, =void]" 所在行数:208 实例化期间检测

错误 LNK2005
"void __cdecl fmt::v7::vprint(class fmt::v7::basic_string_view,struct fmt::v7::format_args)" (?vprint@v7@fmt@@yaxv?$basic_string_view@D@12@Uformat_args@12@@z) 已经在 fmt.lib(fmt.dll) 中定义 kys
D:\projects\kys-c++\kys-cpp\src\BattleNetwork.obj 1

错误 LNK2005
"void __cdecl fmt::v7::detail::vprint_mojibake(struct _iobuf *,class fmt::v7::basic_string_view,struct fmt::v7::format_args)" (?vprint_mojibake@detail@v7@fmt@@YAXPEAU_iobuf@@v?$basic_string_view@D@23@Uformat_args@23@@z) 已经在 fmt.lib(fmt.dll) 中定义 kys
D:\projects\kys-c++\kys-cpp\src\BattleNetwork.obj 1

错误 LNK2005
"class std::basic_string<char,struct std::char_traits,class std::allocator > __cdecl fmt::v7::detail::vformat(class fmt::v7::basic_string_view,struct fmt::v7::format_args)" (?vformat@detail@v7@fmt@@ya?AV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@v?$basic_string_view@D@23@Uformat_args@23@@z) 已经在 fmt.lib(fmt.dll) 中定义 kys
D:\projects\kys-c++\kys-cpp\src\BattleNetwork.obj 1

玩苍龙逐日加张无忌提示“队伍已满,我去小村。“张无忌加入。到了小村,张无忌站那,请求加入,得到2个张无忌。

操作系统:Xubuntu20.04LTS
游戏:kys-cpp
游戏资源:hades/game12/
版本:最新版
$ ln -s hades/game12
$ mv game12 game
存档一(需解压):
r1.grp32.zip
控制台输出:
two_zhangwuji.txt
(以前也玩过,没有遇到加到2个张无忌,可能是偶尔会遇到。我不会修bug,只能将张无忌离队2次,再重新收)

留1队伍空位
光明顶将金毛给张无忌,张无忌说: 你的队伍已满,我就直接去小村吧。张无忌加入,得到九阳真经。
来到小村,看到张无忌站在那里,对话张无忌加入,得到2个张无忌。
给张无忌修炼九阳真经,另一个张无忌会修炼上,是同一个对象。
战斗系统里选2个张无忌,上场的只有1个张无忌。
再加人提示队伍已满。
two_zhangwuji

shared_ptr/unique_ptr 区别是什么?

查看并修改了 src/Application.cpp 文件中, 变量 s 的定义。在修改 s 定义之前,已能够正常运行 (ubuntu 22.04, 使用 game21 目录的资源).

int Application::run()
{
    auto engine = Engine::getInstance();
    engine->setStartWindowSize(1280, 720);
    engine->init();    //引擎初始化之后才能创建纹理
    engine->createAssistTexture(800, 450);

    config();

    //开始界面
    //auto s = std::make_shared<TitleScene>();    // ok
    //auto s = std::make_unique<TitleScene>();    // crash
    //std::shared_ptr<TitleScene> s(new TitleScene); // ok
    std::unique_ptr<TitleScene> s(new TitleScene); // crash
    
    s->run();

    return 0;
}

对应的报错信息:

MoneyItemID = 174
CompassItemID = 182
terminate called after throwing an instance of 'std::bad_weak_ptr'
  what():  bad_weak_ptr
zsh: IOT instruction (core dumped)  ./kys

疑问: 此处 s 变量没有被拷贝使用,为啥不能用 unique_ptr ?

无法运行程序

作者,您好!
我按照说明,vcpkg下载了所有的库。
好不容易编译过去,运行时报错,应用程序无法正常启动0xc000007b,也不知道是不是动态库不对了,心塞。编译好的exe放到bin下面,跑不起来...
这是需要我把vcpkg里的dll替换掉游戏目录bin里的dll吗。

无法输入名字

网盘资源文件中下载的kys-c++.zip(2020-09-30 14:44)的这个版本,进入到输入姓名界面,在输入框中按下键盘任意键就报错退出了,弹出信息如下:
问题签名:
问题事件名称: APPCRASH
应用程序名: kys.exe
应用程序版本: 0.0.0.0
应用程序时间戳: 5f6afdb3
故障模块名称: opencc.dll
故障模块版本: 0.0.0.0
故障模块时间戳: 5b6536ff
异常代码: c0000005
异常偏移: 000000000002a19d
OS 版本: 6.1.7601.2.1.0.256.1
区域设置 ID: 2052
其他信息 1: 5f0e
其他信息 2: 5f0ee22938bebf2caaab67a2dbeb1e49
其他信息 3: 5a20
其他信息 4: 5a207e5dc819a9bc44cf89a2fc0f8fa8

玩苍龙逐日使用物品[闯王军刀],门却没有打开,无法获得门内的宝藏

玩苍龙逐日使用物品[闯王军刀],门却没有打开,无法获得门内的宝藏

simplescreenrecorder-2023-11-14_14.55.25.mp4

*物品[闯王宝藏图](24, 16) 
闯王宝藏的所在地与平时的不同,新的地点在落花流水与血刀老祖战斗的雪山脚下

面对门上的刀槽,ESC打开物品栏,用WSAD选择物品,按下回车使用物品[闯王军刀],门却没有打开

操作系统:Xubuntu20.04LTS
资源文件:hades/game12/
kys是最新源码编译得到的

存档一:
r1.grp32.zip
存档文件为.zip需解压

有两下子啊

问下年轻人今年几岁啊?做这个花了多长时间啊?

vs 2019下如何运行

Release编译下会提示bass.dll 找不到。
debug下如何调试运行 是不是把hades中的game文件夹放在x64文件夹下就可以了 编译的项目工程层级路径应该怎样的 资源文件放那个文件夹的
请大佬指点

VS编译笔记

编译

  1. git clone https://github.com/scarsty/kys-cpp.git
  2. 在0步路径下 git clone https://github.com/scarsty/common.git
  3. 任意路径 git clone https://github.com/scarsty/local-lib.git, 复制include, lib到0步的目录下

建议作者尝试submodules https://blog.github.com/2016-02-01-working-with-submodules/ 这样就可以避开再额外clone和复制了

运行

下载ReadMe.MD中的资源文件,替换bin中的kys.exe即可

其他问题

如果找不到 <*.h>头文件,需要 Properties->General->Windows SDK Version 换成最新的

玩苍龙逐日收虚竹擂鼓山剧情后,未得到秘籍及七宝指环,灵鹫宫路口有人阻拦进不去。

玩苍龙逐日收虚竹擂鼓山剧情,未得到秘籍及七宝指环,灵鹫宫路口有人阻拦不让进入。

操作系统:Xubuntu20.04LTS
游戏源码是最新版
资源文件hades/game12/
$ ln -s hades/game12/
$ mv game12 game
$ ./kys
游戏选择重新开始,取名“小小猪”,升道德75
收虚竹擂鼓山剧情,虚竹属性大涨,学会天山六阳掌和小无相功,并加资质。
却没有得到N本武功秘籍及七宝指环,灵鸠宫的路口有人阻拦不让进入。
(我不会修bug,如果确是bug,我不知道该找哪个目录的哪个文件,若有知道的请指点我)

造成的影响:灵鸠宫剧情没法展开。杀丁春秋由于没有七宝指环就无法做。

存档一:已收虚竹,得传功却不给武功秘籍及掌门指环,灵鸠宫的路口被人拦着不让过。
r1.grp32.zip
存档文件为.zip需解压

苍龙逐日战斗错误

debian sid, 运行wine64-stable kys game11

其中battle 210, 有个日月神教教徒位于地图右上角不可探测区域,导致战斗过程挂死。

苍龙逐日倚天邪线对玄慈使用成昆的人头没有反应,无法获得”倚天屠龙记“

我网上查了一下,2008年百度知道就有人问
“玩苍龙逐日发现走倚天邪线对玄慈使用成昆人头不起作用,拿不到倚天屠龙记怎么回事“。
不能先跟玄慈对话,若道德太高,会获得燃木刀法,造成成昆人头换倚天屠龙记的事件失效。
如果这是bug,那么都15年过去了,依然没有修复过吗?
当然,作者这个项目只是框架,好像跟剧情没有关系,苍龙逐日的bug估计作者也不会过问。

编译报错

common中的FILE和convert等文件更改后,包含报错

资源文件如何找

请问 game下的资源文件在那里找
百度网盘下载下来的没有资源文件

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.