王树贤

Results 728 comments of 王树贤

# 25. Combat Tricks 战斗技巧 ## 1. Debuff Tags Debuff 标签 不同属性的技能,造成伤害时,在一段时间内对目标持续造成伤害的减益效果。 ### 为简化代码,伤害型技能使用单一伤害类型 DamageTypes 替换为 DamageType 之后的循环伤害类型代码替换为直接使用单一类型 `Source/Aura/Public/AbilitySystem/Abilities/AuraDamageGameplayAbility.h` ```h protected: // 包含多种伤害类型 // 每一组键值对对应一种伤害类型。 // 并且可扩展浮动值-例如曲线表 包含不同等级下的伤害值。 // 使技能可具有多种伤害类型,水属性伤害,火属性伤害...

# 26. What a Shock ## 1. FireBolt Projectile Spread 火球传播 ### 火球抛射物技能 添加生成多抛射物函数 `Source/Aura/Public/AbilitySystem/Abilities/AuraFireBolt.h` ```h public: UFUNCTION(BlueprintCallable) void SpawnProjectiles(const FVector& ProjectileTargetLocation, const FGameplayTag& SocketTag, bool bOverridePitch, float PitchOverride, AActor*...

# 27. Passive Spells 被动技能 ## 1. Passive Spell tags 被动技能标签 `Source/Aura/Public/AuraGameplayTags.h` ```h public: // 被动技能标签 FGameplayTag Abilities_Passive_HaloOfProtection; FGameplayTag Abilities_Passive_LifeSiphon; FGameplayTag Abilities_Passive_ManaSiphon; ``` `Source/Aura/Private/AuraGameplayTags.cpp` ```cpp // 初始化游戏标签 void FAuraGameplayTags::InitializeNativeGameplayTags() {...

# 28. Arcane Shards 奥术碎片 ## 1. Magic Circle 魔法阵 魔法阵技能,将为地面贴上圆形贴画Decal ### 创建奥术碎片文件夹 Content/Blueprints/AbilitySystem/Aura/Abilities/Arcane/ArcaneShards/ ### 基于 Actor 创建奥术碎片的贴花组件Actor C++ MagicCircle ![image](https://github.com/WangShuXian6/blog/assets/30850497/787ec01b-b351-4d15-8f1b-5e7c550bda1d) `Source/Aura/Public/Actor/MagicCircle.h` ```h #pragma once #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include...

# 29 Fire Blast 火焰爆炸 生成多个火球,冲向四周。 ## 1 FireBlast Ability 火焰爆炸技能 ### 基于 AuraDamageGameplayAbility c++ 创建派生C++ AuraFireBlast 火焰爆炸技能 ![image](https://github.com/WangShuXian6/blog/assets/30850497/4023812e-9cff-4785-b32a-5d74ab3f1cf9) `Source/Aura/Public/AbilitySystem/Abilities/AuraFireBlast.h` ```h #pragma once #include "CoreMinimal.h" #include "AbilitySystem/Abilities/AuraDamageGameplayAbility.h" #include "AuraFireBlast.generated.h" UCLASS()...

# Saving Progress 保存进度 ## 1 Saving Progress 保存进度 ### 需要保存和加载的数据列表: 1-技能的主要属性:str,int,dex等。 技能系统组件本身具由技能相关的数据。 通过游戏标签识别技能。所以通过保存技能的游戏标签来保存技能。 也需要保存技能的等级,所以需要数据结构来保存技能的相关信息。 ![image](https://github.com/WangShuXian6/blog/assets/30850497/a4da1f2b-b254-4af6-bd9b-129810460ab4) 2-玩家状态:关卡,技能点,属性点,经验值 ![image](https://github.com/WangShuXian6/blog/assets/30850497/9dd8b8a0-2f7d-4f7b-99e8-7b2f22502dda) 3-玩家位置,玩家所在关卡,玩家职业,与玩家关联的其他编号,id。 ### 保存数据的方法 1-保存到磁盘,即玩家的实际机器。适合单人游戏,更简单。不需要数据库。 但重要内容需要保存到数据库,例如购买,排行榜。 2-保存到云,数据库,需要通过网络传输数据。适合多人游戏。 可以加密敏感信息。 虽然加密可以破解,但仍具由一定程度的安全性。 现代专用服务器使用数据库保存。 专用服务器没有玩家。 玩家从其他地方连接到专用服务器。服务器连接到数据库,为玩家准备好信息。 为了防止作弊,服务器对数据拥有权限。服务器负责保存数据和加载数据后发送到客户端。...

# GPT-Academic Report ## 接下来请你逐文件分析下面的工程[0/159] 请对下面的程序文件做一个概述: MetaGPT-main/setup.py 该文件是一个Python项目的设置文件,用于配置项目的元数据和项目的依赖关系。 代码中的`setup()`函数定义了该项目的名称、版本、描述、作者等信息。它还指定了项目的长描述,以及长描述的格式类型。项目的URL,许可证和关键词也在这里进行了定义。 该文件还指定了项目的依赖关系,使用了一个`requirements.txt`文件来获取依赖项列表。额外的依赖项根据不同的条件进行了分组,如`selenium`和`playwright`。 还定义了一个名为`InstallMermaidCLI`的自定义命令类,用于在子进程中运行`npm install -g @mermaid-js/mermaid-cli`命令来安装`mermaid-cli`。 最后,使用`setup()`函数来配置项目的各种选项和属性,并指定了一些其他参数,如要排除的目录等。 总之,该文件用于定义和配置Python项目的元数据、依赖关系和其他选项。 ## [1/159] 请对下面的程序文件做一个概述: MetaGPT-main/startup.py 这个程序文件是一个Python脚本,文件名为`startup.py`。该脚本定义了一个名为`startup`的异步函数和一个名为`main`的函数。`startup`函数表示运行一个创业公司,接受创意、投资金额、轮数和是否进行代码审查等参数。`main`函数是程序的入口点,接受与`startup`函数相同的参数,并通过`fire`模块将其转发到`startup`函数。整个脚本依赖于`asyncio`和`fire`模块,以及其他被引入的自定义模块。 ## [2/159] 请对下面的程序文件做一个概述: MetaGPT-main/metagpt/llm.py 这个文件是一个Python脚本,名为llm.py。它的主要功能是使用LLM(OpenAIGPT模型)进行问答(QA)。脚本引入了名为Claude和LLM的两个类,并创建了一个名为DEFAULT_LLM的LLM实例和一个名为CLAUDE_LLM的Claude实例。脚本还定义了一个异步函数ai_func,用于接受一个提示(prompt)并使用DEFAULT_LLM进行问答。 ## [3/159] 请对下面的程序文件做一个概述: MetaGPT-main/metagpt/const.py...

## [101/159] 请对下面的程序文件做一个概述: MetaGPT-main/tests/metagpt/__init__.py 这是一个Python源代码文件,文件名为`__init__.py`,位于`MetaGPT-main/tests/metagpt`文件夹下。该文件的作用是初始化`metagpt`模块。它包含了作者、创建时间和文件名的注释。 ## [102/159] 请对下面的程序文件做一个概述: MetaGPT-main/tests/metagpt/provider/test_base_gpt_api.py 这是一个名为test_base_gpt_api.py的测试文件。它使用了metagpt.schema模块中的Message类进行测试。 测试函数test_message()创建了一个Message对象,并对该对象的属性进行了断言验证。 其中,断言语句assert 'role' in message.to_dict()检查'message'对象是否包含键名为'role'的属性,并将断言结果与True进行比较。 断言语句assert 'user' in str(message)检查'message'对象的字符串表示是否包含'user',同样将断言结果与True进行比较。 ## [103/159] 请对下面的程序文件做一个概述: MetaGPT-main/tests/metagpt/provider/__init__.py 这个文件是一个Python模块的初始化文件。它没有具体的代码内容,只包含了一些注释信息。主要目的是说明作者、创建时间和文件功能等基本信息。 ## [104/159] 请对下面的程序文件做一个概述: MetaGPT-main/tests/metagpt/management/test_skill_manager.py 这是一个名为test_skill_manager.py的测试文件。它测试了一个叫SkillManager的类,该类定义在metagpt.management.skill_manager模块中。在测试中,它首先创建了一个SkillManager对象,并打印了manager._store的日志。 接下来,它创建了两个WritePRD和WriteTest的对象,并为它们设置了描述。然后,它调用manager的add_skill函数将这两个对象添加到技能管理器中。...

# C 工程化软件包 >编辑器:VSCode ## Linux 上需要的软件包[Ubuntu] ```bash sudo apt-get update sudo apt-get upgrade # Mandatory sudo apt-get install gcc g++ gdb sudo apt-get install make cmake sudo apt-get install...

# 代码组织 ## Clang-Format ## Cmake-Format