Online-game服务器端设计(3)

Ubuntu 14.04 + Magento 1.9 部署实战:LAMP 栈深度调优指南 LAMP 栈是 Web 应用最基础的运行环境,其组件间版本兼容性、模块加载顺序与运行时配置共同决定了系统稳定性。Apache 的 .htaccess 解析机制、PHP 的内存限制与 opcache 行为、MySQL 的 sql_mode 与 InnoDB 缓冲池设置,三者协同影响着电商系统的并发能力与安全基线。尤其在老旧但仍在服役的 Ubuntu 14.04 环境中,PHP 5.5.9 与 Magento 1.9.x 的耦合关系暴露出大量隐藏依赖——从 Apache 的 upstart 启动逻辑,到 MyS 阅读详情

  下面我想来谈谈关于服务器上NPC的设计以及NPC智能等一些方面涉及到的问题。首先,我们需要知道什么是NPC,NPC需要做什么。NPC的全称是(Non-Player Character),很显然,他是一个character,但不是玩家,那么从这点上可以知道,NPC的某些行为是和玩家类似的,他可以行走,可以战斗,可以呼吸(这点将在后面的NPC智能里面提到),另外一点和玩家物件不同的是,NPC可以复生(即NPC被打死以后在一定时间内可以重新出来)。其实还有最重要的一点,就是玩家物件的所有决策都是玩家做出来的,而NPC的决策则是由计算机做出来的,所以在对NPC做何种决策的时候,需要所谓的NPC智能来进行决策。

  下面我将分两个部分来谈谈NPC,首先是NPC智能,其次是服务器如何对NPC进行组织。之所以要先谈NPC智能是因为只有当我们了解清楚我们需要NPC做什么之后,才好开始设计服务器来对NPC进行组织。


NPC智能

  NPC智能分为两种,一种是被动触发的事件,一种是主动触发的事件。对于被动触发的事件,处理起来相对来说简单一些,可以由事件本身来呼叫NPC身上的函数,比如说NPC的死亡,实际上是在NPC的HP小于一定值的时候,来主动呼叫NPC身上的OnDie() 函数,这种由事件来触发NPC行为的NPC智能,我称为被动触发。这种类型的触发往往分为两种:

一种是由别的物件导致的NPC的属性变化,然后属性变化的同时会导致NPC产生一些行为。由此一来,NPC物件里面至少包含以下几种函数:

class NPC {

public:

    // 是谁在什么地方导致了我哪项属性改变了多少。

    OnChangeAttribute(object_t *who, int which, int how, int where);

Private:

    OnDie();

    OnEscape();

    OnFollow();

    OnSleep();

    // 一系列的事件。

}

  这是一个基本的NPC的结构,这种被动的触发NPC的事件,我称它为NPC的反射。但是,这样的结构只能让NPC被动的接收一些信息来做出决策,这样的NPC是愚蠢的。那么,怎么样让一个NPC能够主动的做出一些决策呢?这里有一种方法:呼吸。那么怎么样让NPC有呼吸呢?

  一种很简单的方法,用一个计时器,定时的触发所有NPC的呼吸,这样就可以让一个NPC有呼吸起来。这样的话会有一个问题,当NPC太多的时候,上一次NPC的呼吸还没有呼吸完,下一次呼吸又来了,那么怎么解决这个问题呢。这里有一种方法,让NPC异步的进行呼吸,即每个NPC的呼吸周期是根据NPC出生的时间来定的,这个时候计时器需要做的就是隔一段时间检查一下,哪些NPC到时间该呼吸了,就来触发这些NPC的呼吸。

  上面提到的是系统如何来触发NPC的呼吸,那么NPC本身的呼吸频率该如何设定呢?这个就好象现实中的人一样,睡觉的时候和进行激烈运动的时候,呼吸频率是不一样的。同样,NPC在战斗的时候,和平常的时候,呼吸频率也不一样。那么就需要一个Breath_Ticker来设置NPC当前的呼吸频率。

  那么在NPC的呼吸事件里面,我们怎么样来设置NPC的智能呢?大体可以概括为检查环境和做出决策两个部分。首先,需要对当前环境进行数字上的统计,比如说是否在战斗中,战斗有几个敌人,自己的HP还剩多少,以及附近有没有敌人等等之类的统计。统计出来的数据传入本身的决策模块,决策模块则根据NPC自身的性格取向来做出一些决策,比如说野蛮型的NPC会在HP比较少的时候仍然猛扑猛打,又比如说智慧型的NPC则会在HP比较少的时候选择逃跑。等等之类的。

  至此,一个可以呼吸,反射的NPC的结构已经基本构成了,那么接下来我们就来谈谈系统如何组织让一个NPC出现在世界里面。


NPC的组织

  这里有两种方案可供选择,其一:NPC的位置信息保存在场景里面,载入场景的时候载入NPC。其二,NPC的位置信息保存在NPC身上,有专门的事件让所有的NPC登陆场景。这两种方法有什么区别呢?又各有什么好坏呢?

  前一种方法好处在于场景载入的时候同时载入了NPC,场景就可以对NPC进行管理,不需要多余的处理,而弊端则在于在刷新的时候是同步刷新的,也就是说一个场景里面的NPC可能会在同一时间内长出来。而对于第二种方法呢,设计起来会稍微麻烦一些,需要一个统一的机制让NPC登陆到场景,还需要一些比较麻烦的设计,但是这种方案可以实现NPC异步的刷新,是目前网络游戏普遍采用的方法,下面我们就来着重谈谈这种方法的实现:

  首先我们要引入一个“灵魂”的概念,即一个NPC在死后,消失的只是他的肉体,他的灵魂仍然在世界中存在着,没有呼吸,在死亡的附近漂浮,等着到时间投胎,投胎的时候把之前的所有属性清零,重新在场景上构建其肉体。那么,我们怎么来设计这样一个结构呢?首先把一个场景里面要出现的NPC制作成图量表,给每个NPC一个独一无二的标识符,在载入场景之后,根据图量表来载入属于该场景的NPC。在NPC的OnDie() 事件里面不直接把该物件destroy 掉,而是关闭NPC的呼吸,然后打开一个重生的计时器,最后把该物件设置为invisable。这样的设计,可以实现NPC的异步刷新,在节省服务器资源的同时也让玩家觉得更加的真实。

(这一章节已经牵扯到一些服务器脚本相关的东西,所以下一章节将谈谈服务器脚本相关的一些设计)

补充的谈谈启发式搜索(heuristic searching)在NPC智能中的应用。

  其主要思路是在广度优先搜索的同时,将下一层的所有节点经过一个启发函数进行过滤,一定范围内缩小搜索范围。众所周知的寻路A*算法就是典型的启发式搜索的应用,其原理是一开始设计一个Judge(point_t* point)函数,来获得point这个一点的代价,然后每次搜索的时候把下一步可能到达的所有点都经过Judge()函数评价一下,获取两到三个代价比较小的点,继续搜索,那些没被选上的点就不会在继续搜索下去了,这样带来的后果的是可能求出来的不是最优路径,这也是为什么A*算法在寻路的时候会走到障碍物前面再绕过去,而不是预先就走斜线来绕过该障碍物。如果要寻出最优化的路径的话,是不能用A*算法的,而是要用动态规划的方法,其消耗是远大于A*的。

  那么,除了在寻路之外,还有哪些地方可以应用到启发式搜索呢?其实说得大一点,NPC的任何决策都可以用启发式搜索来做,比如说逃跑吧,如果是一个2D的网络游戏,有八个方向,NPC选择哪个方向逃跑呢?就可以设置一个Judge(int direction)来给定每个点的代价,在Judge里面算上该点的敌人的强弱,或者该敌人的敏捷如何等等,最后选择代价最小的地方逃跑。下面,我们就来谈谈对于几种NPC常见的智能的启发式搜索法的设计:

Target select (选择目标):

  首先获得地图上离该NPC附近的敌人列表。设计Judge() 函数,根据敌人的强弱,敌人的远近,算出代价。然后选择代价最小的敌人进行主动攻击。

Escape(逃跑):

  在呼吸事件里面检查自己的HP,如果HP低于某个值的时候,或者如果你是远程兵种,而敌人近身的话,则触发逃跑函数,在逃跑函数里面也是对周围的所有的敌人组织成列表,然后设计Judge() 函数,先选择出对你构成威胁最大的敌人,该Judge() 函数需要判断敌人的速度,战斗力强弱,最后得出一个主要敌人,然后针对该主要敌人进行路径的Judge() 的函数的设计,搜索的范围只可能是和主要敌人相反的方向,然后再根据该几个方向的敌人的强弱来计算代价,做出最后的选择。

Random walk(随机走路):

  这个我并不推荐用A*算法,因为NPC一旦多起来,那么这个对CPU的消耗是很恐怖的,而且NPC大多不需要长距离的寻路,只需要在附近走走即可,那么,就在附近随机的给几个点,然后让NPC走过去,如果碰到障碍物就停下来,这样几乎无任何负担。

Follow Target(追随目标):

  这里有两种方法,一种方法NPC看上去比较愚蠢,一种方法看上去NPC比较聪明,第一种方法就是让NPC跟着目标的路点走即可,几乎没有资源消耗。而后一种则是让NPC在跟随的时候,在呼吸事件里面判断对方的当前位置,然后走直线,碰上障碍物了用A*绕过去,该种设计会消耗一定量的系统资源,所以不推荐NPC大量的追随目标,如果需要大量的NPC追随目标的话,还有一个比较简单的方法:让NPC和目标同步移动,即让他们的速度统一,移动的时候走同样的路点,当然,这种设计只适合NPC所跟随的目标不是追杀的关系,只是跟随着玩家走而已了。
 
WordPress+WooCommerce独立站搭建:从环境配置到电商功能实战 独立站搭建是跨境电商和内容创作者实现品牌自主、数据可控的核心路径。很多开发者或运营在初期会直接套用开源模板,但真正进入生产环境后,才发现域名解析、SSL证书、支付接口、商品管理、主题定制、性能优化这一系列环节都需要独立处理。本文将以一个可运行的独立站示例为主线,从服务器选型、环境配置、源码部署、后台管理到上线前检查,完整走通技术闭环。 如果你正在评估自建电商站点的可行性,或需要将现有项目从第三方平台迁移到独立服务器,这篇文章会帮你避开环境冲突、权限错误、支付回调失败和搜索引擎收录异常等典型问题。最终你会得到 阅读详情

相关推荐

关于游戏架构设计的一些整理吧

在单位设计上必须冲头到尾贯彻面向对象的“继承”观念 先设计基础单位A ,再在之上扩展到所有的单位, 也就是说,所有的普通单位都可以追溯到一个起源的对象, 否则代码量会让你想死 然后就能获得所有的单位和建筑物了 ----------------------------------------------------------------------- 地图寻

yolo模型训练找我,AI游戏合作找我 4万+

小谈Online-game服务器端设计(3)

 下面我想来谈谈关于服务器上NPC的设计以及NPC智能等一些方面涉及到的问题。首先,我们需要知道什么是NPC,NPC需要做什么。NPC的全称是(Non-Player Character),很显然,他是一个character,但不是玩家,那么从这点上可以知道,NPC的某些行为是和玩家类似的,他可以行走,可以战斗,可以呼吸(这点将在后面的NPC智能里面提到),另外一点和玩家物件不同的是,NPC可以复生

游戏开发文摘 1452

游戏结构课程设计——RPG游戏策划

自己写的原创RPG游戏策划书,可用于课程设计,开发团队为小组4人,用RPGMAKER开发周期为全职1星期

游戏架构其一:常用工具集合

常用工具集合: I. 游戏中的点和矩形相关操作 #pragma once /* #pragma once DO YOUR FAVOURITE 等价于下面 #ifndef XXX #define XXX do something #endif #define XXX DO SOMETHING #undef XXX /

Blary的专栏 1600

网络五子棋加报告本文主要对五子棋网络游戏技术进行研究,以VB为平台设计并实现了一个基于C/S模式的五子棋网络游戏。包括服务器端和客户端,游戏双方一方先运行服务器端,另一方运行客户端,连接到服务器端,双方通过网络对战,能够自动判断胜负,还支持双方聊天的功能。该游戏的界面能显示目前的对弈状态,同时能显示对弈双方之间的聊天信息;,通过它建立起服务器与客户端之间的连接,服务器端负责接受客户端的连接和处理客户端的数据,客户端负责连接到服务器并处理游戏时的交互。

网络五子棋本文主要对五子棋网络游戏技术进行研究,以VB为平台设计并实现了一个基于C/S模式的五子棋网络游戏。包括服务器端和客户端,游戏双方一方先运行服务器端,另一方运行客户端,连接到服务器端,双方通过网络对战,能够自动判断胜负,还支持双方聊天的功能。该游戏的界面能显示目前的对弈状态,同时能显示对弈双方之间的聊天信息;,通过它建立起服务器与客户端之间的连接,服务器端负责接受客户端的连接和处理客户端的数据,客户端负责连接到服务器并处理游戏时的交互。

银河麒麟V10 SP3离线安装Nginx1.21.5全记录(附11个rpm包下载清单)

本文详细记录了在银河麒麟V10 SP3操作系统上离线安装Nginx 1.21.5的全过程,包括11个必备rpm包的下载清单。通过分步骤的实战指南,帮助用户在国产化环境中高效部署Nginx服务,涵盖安装、配置、调优及故障排查等关键环节,特别适合金融、政务等对安全性要求高的场景。

weixin_30872337的博客 608

VxWorks内核解读-内存管理

VxWorks内核解读 内存管理

chenzhjlf的专栏 2930

Innovus Function ECO实战:5步搞定数字后端设计中的网表修正(含Calibre LVS验证技巧)

本文提供了一份完整的Innovus Function ECO实战指南,详细解析了数字后端设计中网表修正的五步流程。从理解Function ECO概念、准备关键文件,到在Innovus中执行逻辑比对、自动布线及GUI检查,并重点攻克了ECO后Calibre LVS验证的难点与调试技巧,帮助工程师高效、精准地完成流片前的设计微调。

day7的博客 950

游戏架构设计Day1

游戏架构与设计开发Day1 欢迎读者进入简单的游戏架构设计开发。由于本作者也正在经历学习的过程。希望借此机会跟大家分享游戏架构的内容。 本文以介绍简单的游戏:坦克大战、合金弹头为基础。 1.游戏架构的设计 敌人可以自由移动——游戏的自动化 主角可以被控制——键盘监听 子弹的自动出现——监听+自动化 背景移动或者音乐——自动化 游戏架构设计的思考: 人物主角和NPC数据存储 图片资源加载 C/S客户端与服务器端 开发者关注: 易于维护 易于功能扩展 容易进行项目分割-分工 提取思想: 界面美观—

server643的博客 1398

几款支持国标GB28181的平台以及视频监控设备接入的配置方法(Web端无插件播放)

GB28181解决的一个主要问题就是如何远程、跨网络、跨区域、跨级别的访问网络中的监控设备(包括IPC、NVR等),本文介绍几款G28181平台的接入配置方法,适合有监控视频摄像头的远程接入和预览需求的人群参考使用。

一名高级工程师的博客 1万+

喷雾破碎模型解析:从理论到CFD应用实践

本文深入解析喷雾破碎模型的理论基础与CFD应用实践,重点介绍KHRT、TAB和ETAB等主流模型的核心原理与工程调参技巧。通过OpenFOAM实例演示和参数优化建议,帮助工程师精准预测液滴破碎行为,提升燃烧效率与排放控制性能,适用于汽车发动机、燃气轮机等工业场景。

weixin_29281915的博客 499

magento----已经存在的图片地址,生成自定义尺寸的图片

根据已经存在的图片地址,生成自定义尺寸的图片。。 public function getThumbnailResize($width, $height = null) {         // actual path of image         $imageUrl = Mage::getBaseDir('media').DS.$this->getData("thumbnail");         // path of the resized image to be saved        

Terry - 专注外贸B2C 829

测试用例经典练习之微信发红包测试用例

微信发红包测试用例

ZCYaiCLX3344的博客 1万+

在 Laradock 中部署 Thumbor:开箱即用的智能图片裁剪、缩放与按需处理服务

Thumbor 是一个开源的智能图片服务,可通过 URL 参数按需完成图片的裁剪、缩放、翻转等处理,并支持可插拔的 Loader 与 Storage 后端(文件系统、Redis、MongoDB、S3 兼容对象存储)。本文基于 Laradock 仓库中的 Thumbor 服务配置,完整讲解该容器的启动、停止、配置参数、健康检查、存储后端切换与缓存清理,帮助你在一套 PHP/Docker 开发环境中直

gitblog_00058的博客 599

SAP BSP网页开发入门:从SE80创建到MVC实战(附成品展示)

本文详细介绍了SAP BSP网页开发的入门与实战,从SE80环境搭建到MVC架构实现的全流程。通过具体案例和代码示例,帮助开发者掌握业务服务器页面(BSP)技术,提升SAP Web化转型中的开发效率,适用于需要扩展SAP功能的企业场景。

x1y2z的博客 1万+

AI漫剧实战:MiniMaxH3本地部署+ComfyUI工作流,6G显存出长视频

随着AI视频生成技术的普及,创作者开始追求在有限硬件条件下的本地化部署。本地部署不仅降低使用成本,更能获得对生成流程的完全可控性,这为高频次的内容生产提供了基础。以开源工作流引擎ComfyUI为依托,通过量化模型与显存优化,即便是6G显存的中端显卡也能流畅运行MiniMaxH3视频生成模型,输出60秒级别的AI漫剧片段。本文从视频生成原理出发,讲解模型选择、节点搭建、参数调优与提示词结构化设计,并延伸到剧本拆分、角色一致性控制、后期合成及平台变现路径,为AI漫剧创作者提供一套低成本、可复制的工程化方案。无论

weixin_29051149的博客 161

独立站建站工具选型指南:避开平台绑架,构建自主品牌资产

在跨境电商独立站领域,建站工具选型直接关系到生意的自主性与长期成本。从底层技术概念来看,开源系统、SaaS平台与Headless架构各自遵循不同的运行原理:开源方案将数据主权与代码控制权交还用户,SaaS平台则以托管服务换取便捷性,而Headless架构通过前后端分离实现极致的定制灵活性。理解这些原理,有助于卖家穿透广告宣传,基于费用结构、技术门槛、性能优化与数据可迁移性等核心维度做出理性判断。技术价值体现在,选择合适的工具组合不仅能降低平台抽成与隐性成本,更能通过自主的性能调优和AI能力扩展,构建差异化的

weixin_34405354的博客 331

C#winform自定义绘制曲线控件实例

本文实例讲解自定义绘制曲线控件过程。 在实际项目中,需要绘制曲线,系统的提供的绘制曲线的控件有时不能满足自己的需要,需要根据项目需要定制开发曲线控件。 实例目标,实时绘制显示温湿度值曲线。

qq_30725967的博客 1735

2026年中小卖家独立站选型:Shopify迁移与自托管方案全解析

独立站建站方案的本质,是SaaS平台与自托管系统之间的一次控制权权衡。SaaS模式以订阅费换取便捷,却往往在插件叠加、交易抽成和数据锁定上持续增加成本;自托管方案则需要技术投入,但能换回数据主权、URL自定义和成本可控的长期优势。理解两者原理,能帮中小卖家在技术价值与运营成本之间找到平衡点。在实际应用中,SEO权重保全、301重定向映射、支付回调配置等工程细节,决定了平台迁移能否平稳落地。当Shopify月费、交易手续费与插件订阅逐年攀升,而WordPress/WooCommerce以更高的自由度和五年周期

weixin_34146805的博客 249

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

claude-seo 电商 SEO 分析实战:产品页审计、Google Shopping 市场情报与 Product Schema 校验

本文基于 claude-seo 仓库中的 [seo-ecommerce 子代理定义](https://pre-link.gitcode.com/i/1597a6b15c443b10f5819eec8cd5b1a7) 及其配套的 [seo-ecommerce 技能文档](https://pre-link.gitcode.com/i/3f0adf7dba3b2151dfdfab2cf2d16f1f),

gitblog_00119的博客 460

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

2026 Shopify替代选型全解析:三条技术路线与迁移实战指南

在跨境电商独立站建设中,建站工具的选择直接关系到运营成本与长期发展。SaaS平台以开箱即用著称,但月费、插件与交易抽成可能侵蚀利润;开源自托管方案如WooCommerce,以灵活性和数据掌控见长,却需要投入维护成本。理解不同技术路线的原理与适用场景,是做出合理决策的基础。从SEO优化、内容营销到支付配置,每一环节都影响独立站的业务效率。本文系统对比SaaS托管、开源自托管与Headless架构的优劣势,提供一套可执行的技术选型决策矩阵与迁移实操指南,帮助卖家在Shopify替代过程中少走弯路,平衡成本、自由

weixin_34294649的博客 393

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Shopify之外的选择:2026独立站建站工具选型与迁移全解析

独立站作为品牌出海的重要载体,选对建站工具直接影响成本结构与运营效率。当前主流方案可分为SaaS托管与开源自托管两大流派:前者如Shopify以省心著称,但订阅费、插件费及交易手续费对中小卖家形成持续压力;后者如WordPress+WooCommerce提供高度自由与数据掌控,同时要求具备技术维护能力。理解两种架构的基本原理,才能正确评估其技术价值与实际拥有效率。2026年,越来越多卖家开始关注成本、数据所有权、SEO控制力与迁移风险,Shopify替代方案因此成为高搜索话题。基于业务需求清单与选型判断框架

weixin_34159110的博客 389

claude-seo 电商 SEO 战略模板实战:从站点架构、Schema 到 GEO 引用的完整落地指南

本文基于开源仓库 claude-seo 中 `seo-plan` 技能附带的 E-commerce SEO Strategy Template([skills/seo-plan/assets/ecommerce.md](https://pre-link.gitcode.com/i/58cec1f18be4b7e43ffca88504ed86c5))展开,完整继承其行业特征、站点架构、Schema

gitblog_00818的博客 877

2026年Shopify替代方案全解析:从SaaS到可组合架构的选型指南

独立站卖家在业务成长中常面临平台成本与数据主权的双重考验。以SaaS为代表的托管模式虽然上手快,但订阅费用、应用支出与API限制会随规模扩大而逐渐成为瓶颈。自托管开源方案则将服务器与数据库完全纳入自有体系,带来数据掌控力,却也要求团队具备运维能力。可组合架构则通过前后端解耦,以API为核心将订单、库存、支付等模块化组合,为复杂业务提供高度定制空间。理解这三类技术路线的原理与适用场景,是做出理性选型的前提。Shopify替代并非否定平台价值,而是让工具匹配业务阶段。从BigCommerce、WooCommer

weixin_33860528的博客 264

人生最好的php,mysql,linux,redis,docker等相关技术经典面试题,新手收藏学习,持续更新中。。。

php面试题 1、写出你能想到的所有HTTP返回状态值,并说明用途(比如:返回404表示找不到页面) # 200:服务器请求成功 # 301:永久重定向,旧网页已被新网页永久替代 # 302:表示临时性重定向 # 400:错误请求 # 401:未授权,没有权限,未登录 # 403:禁止访问 # 404:找不到页面 # 500:系统错误,服务器错误 # 502:无效响应 # 503:服务不可用,服务器由于维护或者负载过重未能应答 # 504:网关超时(nginx做为反向代理服务器,所连接的应用服务器无响应导致

cxhblog的博客 1万+
上一篇: Online-game服务器端设计(1、2)
下一篇: Online-game服务器端设计(4)
Image_Graphics
博客等级 码龄20年 18粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值