海盗王实现随身NPC功能

article/2025/7/6 15:10:07

曾经玩过一个海盗王的服,它里面有个随身NPC交易的功能。

一般正常情况下,是在城里或者野外,来到一个NPC旁边,点击打开交易功能,才能进行物品的购买和出售。随身NPC可以在身边没有NPC的情况下,通过工坊的按钮,直接打开一个跟售卖NPC一样的窗口,在里面可以购买到常用的物品,当然也可以把背包的物品出售换成海盗币。

这个功能非常的方便。

具体他们是怎么实现的,我也没看过他们的代码,不过听说可以被某些人利用来复制物品。这显然是不可接受的。

一直以来,也想自己实现这个功能。

研究了一段时间相关的代码后,发现那个交易的NPC代码是绑定到具体NPC的,交易的时候调用了NPC的对话功能,然后才弹出窗口交易窗口,交易时会进行物品列表校验的。那个服可能是改了这些代码,删除了校验功能来实现随身售卖功能。

本来也想修改下来实现的,但是想了想,这样做还是不安全,不如重新写一套逻辑来处理,这样可以避免被人利用来复制物品。

想重新做一个仿照商城的UI,但是那样的话,要耗费很多精力写很多代码,能不能复用它原来的交易窗口呢?

对客户端交易窗口的代码又仔细研究了一番,发现通过一些取巧的方法,可以复用的。然后动手修改了部分代码,添加新的功能进去。服务端当然也要做相应消息处理的。这样的话,别人根本感觉不到跟正常NPC交易的不同,其实实现逻辑完成不同的。

经过实践,既保留原有的NPC交易功能,有增加了随身NPC交易功能,完美实现了这个功能。

他们还有一个随身银行的功能,实现应该也类似的。不过,这个觉得不是十分必要,所以没去弄了。

在这里插入图片描述

文章来源:https://blog.csdn.net/lixiaoxing2/article/details/129323850
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://chatgpt.dhexx.cn/article/cAfbn0d6.shtml

相关文章

游戏经济系统分析:通货与交易

来自GameRes,转载请标明出处:http://www.gameres.com/689338.html 文/旭曜灵 接上篇《 《PoE》的技能串联与体验设计:《Diablo II》的另一种诠释 》,这次是PoE系列的最后一篇,终于要来谈它特殊的经济系统了&#xf…

python中科学计数法怎么表示_python科学计数法转换

python 输出数字,如何不以科学计数法输出? 概述利用numpy设置输出选项即可 代码解析 未使用numpy设置: import time # time 时间类 print(time*time*1000) #输出一个非常大的数字 #out: 6.30e1352 由此可以看到,默认输出是以科学计数方式输出 使用numpy设置print的输出选项…

MATLAB临时关闭科学计数法显示

MATLAB临时关闭科学计数法显示,在format命令后加g即可解决,如: >> format long g

科学计数法

1.应用场景 较大较小数字表示&#xff0c;在一些算法中被用到。 如计算2^64&#xff0c;编程语言基本都是使用科学计数法表示结果。 2.介绍 科学记数法是一种记数的方法。把一个数表示成a与10的n次幂相乘的形式&#xff08;1≤|a|<10&#xff0c;n为整数&#xff09;&…

matlab 坐标不用科学计数法,matlab不用科学计数法

『壹』 matlab中怎么才能不是科学计数法表示结果。比如1.0e003 * 2.7581&#xff0c;怎么使它显示为2758.1谢谢了&#xff0c;很急啊 format long (小数位14) 或 format short(小数位4) 『贰』 matlab中科学计数法怎么表示 在matlab中&#xff0c;科学计数法用如下形式表示&…

计算机科学计数法符号,科学计数法怎么表示

科学计数法怎么表示2019-09-26 16:35:10文/陶凯月 科学计数法就是用幂的方式来表示。科学记数法是一种记数的方法。把一个数表示成a与10的n次幂相乘的形式(1≤|a|<10&#xff0c;n为整数)&#xff0c;这种记数法叫做科学记数法。 科学记数法是一种记数的方法。把一个数表示成…

计算机输出科学计数法,python不用科学计数法

❶ Spyder集成开发环境中,Python绘图如何让Y轴不以科学计数法显示 很简单只需两个语句: import numpy as np np.set_printoptions(suppress=True) 这样就可以搞定! ❷ python 输出数字,如何不以科学计数法输出 概述 利用numpy设置输出选项即可 代码解析 1、未使用numpy设置…

C语言科学计数法介绍和示例

文章目录 1、科学计数法2、获取视频教程3、版权声明 1、科学计数法 在实际开发中&#xff0c;我们很少使用科学计数法&#xff0c;但是它经常出现在计算机系统中&#xff0c;例如浮点数在内存中的存放方式就是科学计数法&#xff0c;所以我们还是有必要学习科学计数法。 科学…

mysql查出来科学计数法_数据库字段出现科学计数法e+的情况分析

问题: 有时候,我们在将excel表格中数据导入数据库中时,对于表格中的数字会默认为float的数据类型,这个时候导入到数据库中的这个表的值是正常显示的; 然而如果你要把导入到数据库中的表,再插入到另一个表中,并且对应的字段如果是char、varchar或者是nvarchar等类型时,并…

C语言科学计数法E格式

记住口诀 e前e后必有数&#xff0c;e前为小数可以省略整数部分或者小数部分&#xff0c;e后必须为整数&#xff0c;中间不能加空格 e前为小数省略小数部分 e前为小数省略整数部分 e后不为整数不合法 e前为小数同时省略整数部分和小数部分不合法 用空格隔开不合法

C语言-求阶乘的两种方法

目录 方法一&#xff1a;递归法求阶乘 方法二&#xff1a;循环法求阶乘 main及结果 方法一&#xff1a;递归法求阶乘 long Factorial_way1(int m){if(m1)return 1;else{return m*Factorial_way1(m-1);}}方法二&#xff1a;循环法求阶乘 long Factorial_way2(int m){long su…

c语言中实现阶乘的方法,c语言实现阶乘的方法

c语言实现阶乘的方法 从键盘输入一个数&#xff0c;求出这个数的阶乘&#xff0c;即 n!。 算法思想 首先要清楚阶乘定义&#xff0c;所谓 n 的阶乘&#xff0c;就是从 1 开始乘以比前一个数大 1 的数&#xff0c;一直乘到 n&#xff0c;用公式表示就是&#xff1a;1234…(n-2)(…

C语言求阶乘案例教程

思路分析&#xff1a; 1.我们先搞清楚阶乘是什么&#xff0c;怎么用数学符号表示出来。 我们看百度百科对阶乘的介绍。 “一个正整数的阶乘是所有小于及等于该数的正整数的积&#xff0c;并且0的阶乘为1。自然数n的阶乘写作n!” 举个例子&#xff1a;求3的阶乘就是3!1*2*36 …

c语言-阶乘求和的几种方法

阶乘求和的几种方法 目录 一、阶乘定义 二、阶乘求和 1.两层for循环嵌套使用 2.一层for循环直接实现 3.函数的递归调用来求阶乘 总结&#xff1a; 一、阶乘定义 任何大于等于1 的自然数n 阶乘表示方法&#xff1a; n!n*(n-1)*(n-2)3*2*1 二、阶乘求和 1.两层for循环嵌套使用…

利用C语言求阶乘

#include<stdio.h> #define N 3 double fun(int x) { int i; double y1; for(i1;i<x;i) yy*i; return y; } int main() { printf("%lf\n",fun(N)); }

c语言 计算整数n的阶乘之和,c语言求阶乘之和是多少

快速导读: Q1:用C语言求1~20的阶乘之和! /** **程序描述:求求1~20的阶乘之和。 **算法思路:先求出每一项的阶乘值,然后将所有项的阶乘值相加。 */ #include #defineN20 typedefunsignedlonglonguInt64;//自定义类型 //求出每一项阶乘值的函数 uInt64fact(intn) {inti; uInt6…

C语言求阶乘的和

C语言实现求阶乘和阶乘的和&#xff1a; #include<stdio.h> int getMul(int n){ //递归调用计算阶乘!n int mul1;if(n1){mul1;return mul;}else{muln*getMul(n-1);return mul;} }int getSum(int n){ //求阶乘的和 int sum1;if(n0){sum0;}else{sum getMul(n)getSum(…

菜菜之路-C语言求阶乘和

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、阶乘是什么&#xff1f;二、思想 1.思路12.思路2总结 前言 C语言其实要学好并不简单碰到一道题我们有时根本无从下手&#xff0c;其实要想学好它&#xff…

MacBookPro硬盘升级记

MacBookPro2015款15.4寸256G硬盘升级 以下图片和文字穿插使用&#xff1a; 以下图片和文字穿插使用&#xff1a; 欢迎大家评论区留言交流。 1、笔者的电脑是2015年款A1398型号电脑&#xff0c;并且笔者是一位程序开发者&#xff0c;由于使用长期要大量空间存储数据&#xff0c…

Mac -- 插入移动硬盘后没有显示

插入移动硬盘后&#xff0c;打开 Finder &#xff0c;在左侧【设备】树中没有发现移动硬盘设备 解决办法&#xff1a; 左上角&#xff0c;Finder&#xff0c;偏好设置 选中【外置磁盘】之后&#xff0c;我们的移动硬盘在插入之后就直接展示在桌面上了