问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求单机飞飞代码

发布网友 发布时间:2022-04-24 10:04

我来回答

3个回答

懂视网 时间:2022-04-23 03:22

这次给大家带来puppeteer入门使用代码大全,puppeteer入门使用的注意事项有哪些,下面就是实战案例,一起来看一下。

1、Puppeteer 简介

Puppeteer 是一个node库,他提供了一组用来操纵Chrome的API, 通俗来说就是一个 headless chrome浏览器 (当然你也可以配置成有UI的,默认是没有的)。既然是浏览器,那么我们手工可以在浏览器上做的事情 Puppeteer 都能胜任, 另外,Puppeteer 翻译成中文是”木偶”意思,所以听名字就知道,操纵起来很方便,你可以很方便的操纵她去实现:

1) 生成网页截图或者 PDF
2) 高级爬虫,可以爬取大量异步渲染内容的网页
3) 模拟键盘输入、表单自动提交、登录网页等,实现 UI 自动化测试
4) 捕获站点的时间线,以便追踪你的网站,帮助分析网站性能问题

如果你用过 PhantomJS 的话,你会发现她们有点类似,但Puppeteer是Chrome官方团队进行维护的,用俗话说就是”有娘家的人“,前景更好。

2、运行环境

查看 Puppeteer 的官方 API 你会发现满屏的 async, await 之类,这些都是 ES7 的规范,所以你需要:

  1. Nodejs 的版本不能低于 v7.6.0, 需要支持 async, await.

  2. 需要最新的 chrome driver, 这个你在通过 npm 安装 Puppeteer 的时候系统会自动下载的

npm install puppeteer --save

3、基本用法

先开看看官方的入门的 DEMO

const puppeteer = require('puppeteer');
(async () => {
 const browser = await puppeteer.launch();
 const page = await browser.newPage();
 await page.goto('https://example.com');
 await page.screenshot({path: 'example.png'});
 await browser.close();
})();

上面这段代码就实现了网页截图,先大概解读一下上面几行代码:

  1. 先通过 puppeteer.launch() 创建一个浏览器实例 Browser 对象

  2. 然后通过 Browser 对象创建页面 Page 对象

  3. 然后 page.goto() 跳转到指定的页面

  4. 调用 page.screenshot() 对页面进行截图

  5. 关闭浏览器

是不是觉得好简单? 反正我是觉得比 PhantomJS 简单,至于跟 selenium-webdriver 比起来, 那更不用说了。下面就介绍一下 puppeteer 的常用的几个 API。

3.1 puppeteer.launch(options)

使用 puppeteer.launch() 运行 puppeteer,它会 return 一个 promise,使用 then 方法获取 browser 实例, 当然高版本的 的 nodejs 已经支持 await 特性了,所以上面的例子使用 await 关键字,这一点需要特殊说明一下,Puppeteer 几乎所有的操作都是 异步的, 为了使用大量的 then 使得代码的可读性降低,本文所有 demo 代码都是用 async, await 方式实现。这个 也是 Puppeteer 官方推荐的写法。对 async/await 一脸懵逼的同学狠狠的戳这里

options 参数详解

参数名称参数类型参数说明
ignoreHTTPSErrorsboolean在请求的过程中是否忽略 Https 报错信息,默认为 false
headlessboolean是否以”无头”的模式运行 chrome, 也就是不显示 UI, 默认为 true
executablePathstring可执行文件的路劲,Puppeteer 默认是使用它自带的 chrome webdriver, 如果你想指定一个自己的 webdriver 路径,可以通过这个参数设置
slowMonumber使 Puppeteer 操作减速,单位是毫秒。如果你想看看 Puppeteer 的整个工作过程,这个参数将非常有用。
argsArray(String)传递给 chrome 实例的其他参数,比如你可以使用”–ash-host-window-bounds=1024x768” 来设置浏览器窗口大小。更多参数参数列表可以参考这里
handleSIGINTboolean是否允许通过进程信号控制 chrome 进程,也就是说是否可以使用 CTRL+C 关闭并退出浏览器.
timeoutnumber等待 Chrome 实例启动的最长时间。默认为30000(30秒)。如果传入 0 的话则不限制时间
dumpioboolean是否将浏览器进程stdout和stderr导入到process.stdout和process.stderr中。默认为false。
userDataDirstring设置用户数据目录,默认linux 是在 ~/.config 目录,window 默认在 C:Users{USER}AppDataLocalGoogleChromeUser Data, 其中 {USER} 代表当前登录的用户名
envObject指定对Chromium可见的环境变量。默认为process.env。
devtoolsboolean是否为每个选项卡自动打开DevTools面板, 这个选项只有当 headless 设置为 false 的时候有效

3.2 Browser 对象

当 Puppeteer 连接到一个 Chrome 实例的时候就会创建一个 Browser 对象,有以下两种方式:

Puppeteer.launch 和 Puppeteer.connect.

下面这个 DEMO 实现断开连接之后重新连接浏览器实例

const puppeteer = require('puppeteer');
puppeteer.launch().then(async browser => {
 // 保存 Endpoint,这样就可以重新连接 Chromium
 const browserWSEndpoint = browser.wsEndpoint();
 // 从Chromium 断开连接
 browser.disconnect();
 // 使用endpoint 重新和 Chromiunm 建立连接
 const browser2 = await puppeteer.connect({browserWSEndpoint});
 // Close Chromium
 await browser2.close();
});

Browser 对象 API

方法名称返回值说明
browser.close()Promise关闭浏览器
browser.disconnect()void断开浏览器连接
browser.newPage()Promise(Page)创建一个 Page 实例
browser.pages()Promise(Array(Page))获取所有打开的 Page 实例
browser.targets()Array(Target)获取所有活动的 targets
browser.version()Promise(String)获取浏览器的版本
browser.wsEndpoint()String返回浏览器实例的 socket 连接 URL, 可以通过这个 URL 重连接 chrome 实例

好了,Puppeteer 的API 就不一一介绍了,官方提供的详细的 API, 戳这里

4、Puppeteer 实战

了解 API 之后我们就可以来一些实战了,在此之前,我们先了解一下 Puppeteer 的设计原理,简单来说 Puppeteer 跟 webdriver 以及 PhantomJS 最大的 的不同就是它是站在用户浏览的角度,而 webdriver 和 PhantomJS 最初设计就是用来做自动化测试的,所以它是站在机器浏览的角度来设计的,所以它们 使用的是不同的设计哲学。举个栗子,加入我需要打开京东的首页并进行一次产品搜索,分别看看使用 Puppeteer 和 webdriver 的实现流程:

Puppeteer 的实现流程:

  1. 打开京东首页

  2. 将光标 focus 到搜索输入框

  3. 键盘点击输入文字

  4. 点击搜索按钮

webdriver 的实现流程:

  1. 打开京东首页

  2. 找到输入框的 input 元素

  3. 设置 input 的值为要搜索文字

  4. 触发搜索按钮的单机事件

个人感觉 Puppeteer 设计哲学更符合任何的操作习惯,更自然一些。

下面我们就用一个简单的需求实现来进行 Puppeteer 的入门学习。这个简单的需求就是:

在京东商城抓取10个手机商品,并把商品的详情页截图。

首先我们来梳理一下操作流程

  1. 打开京东首页

  2. 输入“手机”关键字并搜索

  3. 获取前10个商品的 A 标签,并获取 href 属性值,获取商品详情链接

  4. 分别打开10个商品的详情页,截取网页图片

要实现上面的功能需要用到查找元素,获取属性,键盘事件等,那接下来我们就一个一个的讲解一下。

4.1 获取元素

Page 对象提供了2个 API 来获取页面元素

(1). Page.$(selector) 获取单个元素,底层是调用的是 document.querySelector() , 所以选择器的 selector 格式遵循css 选择器规范

let inputElement = await page.$("#search", input => input);
//下面写法等价
let inputElement = await page.$('#search');

(2). Page.$$(selector) 获取一组元素,底层调用的是 document.querySelectorAll(). 返回 Promise(Array(ElemetHandle)) 元素数组.

const links = await page.$$("a");
//下面写法等价
const links = await page.$$("a", links => links);

最终返回的都是 ElemetHandle 对象

4.2 获取元素属性

Puppeteer 获取元素属性跟我们平时写前段的js的逻辑有点不一样,按照通常的逻辑,应该是现获取元素,然后在获取元素的属性。但是上面我们知道 获取元素的 API 最终返回的都是 ElemetHandle 对象,而你去查看 ElemetHandle 的 API 你会发现,它并没有获取元素属性的 API.

事实上 Puppeteer 专门提供了一套获取属性的 API, Page.$eval() 和 Page.$$eval()

(1). Page.$$eval(selector, pageFunction[, …args]), 获取单个元素的属性,这里的选择器 selector 跟上面 Page.$(selector) 是一样的。

const value = await page.$eval('input[name=search]', input => input.value);
const href = await page.$eval('#a", ele => ele.href);
const content = await page.$eval('.content', ele => ele.outerHTML);

4.3 执行自定义的 JS 脚本

Puppeteer 的 Page 对象提供了一系列 evaluate 方法,你可以通过他们来执行一些自定义的 js 代码,主要提供了下面三个 API

(1). page.evaluate(pageFunction, …args) 返回一个可序列化的普通对象,pageFunction 表示要在页面执行的函数, args 表示传入给 pageFunction 的参数, 下面的 pageFunction 和 args 表示同样的意思。

const result = await page.evaluate(() => {
 return Promise.resolve(8 * 7);
});
console.log(result); // prints "56"

这个方法很有用,比如我们在获取页面的截图的时候,默认是只截图当前浏览器窗口的尺寸大小,默认值是800x600,那如果我们需要获取整个网页的完整 截图是没办法办到的。Page.screenshot() 方法提供了可以设置截图区域大小的参数,那么我们只要在页面加载完了之后获取页面的宽度和高度就可以解决 这个问题了。

(async () => {
 const browser = await puppeteer.launch({headless:true});
 const page = await browser.newPage();
 await page.goto('https://jr.dayi35.com');
 await page.setViewport({width:1920, height:1080});
 const documentSize = await page.evaluate(() => {
 return {
 width: document.documentElement.clientWidth,
 height : document.body.clientHeight,
 }
 })
 await page.screenshot({path:"example.png", clip : {x:0, y:0, width:1920, height:documentSize.height}});
 await browser.close();
})();

(2). Page.evaluateHandle(pageFunction, …args) 在 Page 上下文执行一个 pageFunction, 返回 JSHandle 实体

const aWindowHandle = await page.evaluateHandle(() => Promise.resolve(window));
aWindowHandle; // Handle for the window object. 
const aHandle = await page.evaluateHandle('document'); // Handle for the 'document'.

从上面的代码可以看出,page.evaluateHandle() 方法也是通过 Promise.resolve 方法直接把 Promise 的最终处理结果返回, 只不过把最后返回的对象封装成了 JSHandle 对象。本质上跟 evaluate 没有什么区别。

下面这段代码实现获取页面的动态(包括js动态插入的元素) HTML 代码.

const aHandle = await page.evaluateHandle(() => document.body);
const resultHandle = await page.evaluateHandle(body => body.innerHTML, aHandle);
console.log(await resultHandle.jsonValue());
await resultHandle.dispose();

(3). page.evaluateOnNewDocument(pageFunction, …args), 在文档页面载入前调用 pageFunction, 如果页面中有 iframe 或者 frame, 则函数调用 的上下文环境将变成子页面的,即iframe 或者 frame, 由于是在页面加载前调用,这个函数一般是用来初始化 javascript 环境的,比如重置或者 初始化一些全局变量。

4.4 Page.exposeFunction

除此上面三个 API 之外,还有一类似的非常有用的 API, 那就是 Page.exposeFunction,这个 API 用来在页面注册全局函数,非常有用:

因为有时候需要在页面处理一些操作的时候需要用到一些函数,虽然可以通过 Page.evaluate() API 在页面定义函数,比如:

const docSize = await page.evaluate(()=> {
 function getPageSize() {
 return {
 width: document.documentElement.clientWidth,
 height : document.body.clientHeight,
 }
 }
 return getPageSize();
});

但是这样的函数不是全局的,需要在每个 evaluate 中去重新定义,无法做到代码复用,在一个就是 nodejs 有很多工具包可以很轻松的实现很复杂的功能 比如要实现 md5 加密函数,这个用纯 js 去实现就不太方便了,而用 nodejs 却是几行代码的事情。

下面代码实现给 Page 上下文的 window 对象添加 md5 函数:

const puppeteer = require('puppeteer');
const crypto = require('crypto');
puppeteer.launch().then(async browser => {
 const page = await browser.newPage();
 page.on('console', msg => console.log(msg.text));
 await page.exposeFunction('md5', text =>
 crypto.createHash('md5').update(text).digest('hex')
 );
 await page.evaluate(async () => {
 // use window.md5 to compute hashes
 const myString = 'PUPPETEER';
 const myHash = await window.md5(myString);
 console.log(`md5 of ${myString} is ${myHash}`);
 });
 await browser.close();
});

可以看出,Page.exposeFunction API 使用起来是很方便的,也非常有用,在比如给 window 对象注册 readfile 全局函数:

const puppeteer = require('puppeteer');
const fs = require('fs');
puppeteer.launch().then(async browser => {
 const page = await browser.newPage();
 page.on('console', msg => console.log(msg.text));
 await page.exposeFunction('readfile', async filePath => {
 return new Promise((resolve, reject) => {
 fs.readFile(filePath, 'utf8', (err, text) => {
 if (err)
 reject(err);
 else
 resolve(text);
 });
 });
 });
 await page.evaluate(async () => {
 // use window.readfile to read contents of a file
 const content = await window.readfile('/etc/hosts');
 console.log(content);
 });
 await browser.close();
});

5、Page.emulate 修改模拟器(客户端)运行配置

Puppeteer 提供了一些 API 供我们修改浏览器终端的配置

  1. Page.setViewport() 修改浏览器视窗大小

  2. Page.setUserAgent() 设置浏览器的 UserAgent 信息

  3. Page.emulateMedia() 更改页面的CSS媒体类型,用于进行模拟媒体仿真。 可选值为 “screen”, “print”, “null”, 如果设置为 null 则表示禁用媒体仿真。

  4. Page.emulate() 模拟设备,参数设备对象,比如 iPhone, Mac, Android 等

page.setViewport({width:1920, height:1080}); //设置视窗大小为 1920x1080
page.setUserAgent('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36');
page.emulateMedia('print'); //设置打印机媒体样式

除此之外我们还可以模拟非 PC 机设备, 比如下面这段代码模拟 iPhone 6 访问google:

const puppeteer = require('puppeteer');
const devices = require('puppeteer/DeviceDescriptors');
const iPhone = devices['iPhone 6'];
puppeteer.launch().then(async browser => {
 const page = await browser.newPage();
 await page.emulate(iPhone);
 await page.goto('https://www.google.com');
 // other actions...
 await browser.close();
});

Puppeteer 支持很多设备模拟仿真,比如Galaxy, iPhone, IPad 等,想要知道详细设备支持,请戳这里 DeviceDescriptors.js.

6、键盘和鼠标

键盘和鼠标的API比较简单,键盘的几个API如下:

  1. keyboard.down(key[, options]) 触发 keydown 事件

  2. keyboard.press(key[, options]) 按下某个键,key 表示键的名称,比如 ‘ArrowLeft' 向左键,详细的键名映射请戳这里

  3. keyboard.sendCharacter(char) 输入一个字符

  4. keyboard.type(text, options) 输入一个字符串

  5. keyboard.up(key) 触发 keyup 事件

page.keyboard.press("Shift"); //按下 Shift 键
page.keyboard.sendCharacter('嗨');
page.keyboard.type('Hello'); // 一次输入完成
page.keyboard.type('World', {delay: 100}); // 像用户一样慢慢输入

鼠标操作:

mouse.click(x, y, [options]) 移动鼠标指针到指定的位置,然后按下鼠标,这个其实 mouse.move 和 mouse.down 或 mouse.up 的快捷操作

mouse.down([options]) 触发 mousedown 事件,options 可配置:

  1. options.button 按下了哪个键,可选值为[left, right, middle], 默认是 left, 表示鼠标左键

  2. options.clickCount 按下的次数,单击,双击或者其他次数

  3. delay 按键延时时间

mouse.move(x, y, [options]) 移动鼠标到指定位置, options.steps 表示移动的步长

mouse.up([options]) 触发 mouseup 事件

7、另外几个有用的 API

Puppeteer 还提供几个非常有用的 API, 比如:

7.1 Page.waitFor 系列 API

  1. page.waitFor(selectorOrFunctionOrTimeout[, options[, …args]]) 下面三个的综合 API

  2. page.waitForFunction(pageFunction[, options[, …args]]) 等待 pageFunction 执行完成之后

  3. page.waitForNavigation(options) 等待页面基本元素加载完之后,比如同步的 HTML, CSS, JS 等代码

  4. page.waitForSelector(selector[, options]) 等待某个选择器的元素加载之后,这个元素可以是异步加载的,这个 API 非常有用,你懂的。

比如我想获取某个通过 js 异步加载的元素,那么直接获取肯定是获取不到的。这个时候就可以使用 page.waitForSelector 来解决:

await page.waitForSelector('.gl-item'); //等待元素加载之后,否则获取不到异步加载的元素
const links = await page.$$eval('.gl-item > .gl-i-wrap > .p-img > a', links => {
 return links.map(a => {
 return {
 href: a.href.trim(),
 name: a.title
 }
 });
});

其实上面的代码就可以解决我们最上面的需求,抓取京东的产品,因为是异步加载的,所以使用这种方式。

7.2 page.getMetrics()

通过 page.getMetrics() 可以得到一些页面性能数据, 捕获网站的时间线跟踪,以帮助诊断性能问题。

  1. Timestamp 度量标准采样的时间戳

  2. Documents 页面文档数

  3. Frames 页面 frame 数

  4. JSEventListeners 页面内事件监听器数

  5. Nodes 页面 DOM 节点数

  6. LayoutCount 页面布局总数

  7. RecalcStyleCount 样式重算数

  8. LayoutDuration 所有页面布局的合并持续时间

  9. RecalcStyleDuration 所有页面样式重新计算的组合持续时间。

  10. ScriptDuration 所有脚本执行的持续时间

  11. TaskDuration 所有浏览器任务时长

  12. JSHeapUsedSize JavaScript 占用堆大小

  13. JSHeapTotalSize JavaScript 堆总量

8、总结和源码

本文通过一个实际需求来学习了 Puppeteer 的一些基本的常用的 API, API 的版本是 v0.13.0-alpha. 最新邦本的 API 请参考 Puppeteer 官方API.

总的来说,Puppeteer 真是一款不错的 headless 工具,操作简单,功能强大。用来做UI自动化测试,和一些小工具都是很不错的。

下面贴上我们开始的需求实现源码,仅供参考:

//延时函数
function sleep(delay) {
 return new Promise((resolve, reject) => {
 setTimeout(() => {
 try {
 resolve(1)
 } catch (e) {
 reject(0)
 }
 }, delay)
 })
}
const puppeteer = require('puppeteer');
puppeteer.launch({
 ignoreHTTPSErrors:true, 
 headless:false,slowMo:250, 
 timeout:0}).then(async browser => {
 let page = await browser.newPage();
 await page.setJavaScriptEnabled(true);
 await page.goto("https://www.jd.com/");
 const searchInput = await page.$("#key");
 await searchInput.focus(); //定位到搜索框
 await page.keyboard.type("手机");
 const searchBtn = await page.$(".button");
 await searchBtn.click();
 await page.waitForSelector('.gl-item'); //等待元素加载之后,否则获取不异步加载的元素
 const links = await page.$$eval('.gl-item > .gl-i-wrap > .p-img > a', links => {
 return links.map(a => {
 return {
 href: a.href.trim(),
 title: a.title
 }
 });
 });
 page.close();
 const aTags = links.splice(0, 10);
 for (var i = 1; i < aTags.length; i++) {
 page = await browser.newPage()
 page.setJavaScriptEnabled(true);
 await page.setViewport({width:1920, height:1080});
 var a = aTags[i];
 await page.goto(a.href, {timeout:0}); //防止页面太长,加载超时
 //注入代码,慢慢把滚动条滑到最底部,保证所有的元素被全部加载
 let scrollEnable = true;
 let scrollStep = 500; //每次滚动的步长
 while (scrollEnable) {
 scrollEnable = await page.evaluate((scrollStep) => {
 let scrollTop = document.scrollingElement.scrollTop;
 document.scrollingElement.scrollTop = scrollTop + scrollStep;
 return document.body.clientHeight > scrollTop + 1080 ? true : false
 }, scrollStep);
 await sleep(100);
 }
 await page.waitForSelector("#footer-2014", {timeout:0}); //判断是否到达底部了
 let filename = "images/items-"+i+".png";
 //这里有个Puppeteer的bug一直没有解决,发现截图的高度最大只能是16384px, 超出部分被截掉了。
 await page.screenshot({path:filename, fullPage:true});
 page.close();
 }
 browser.close();
});

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

jQuery实现模糊查询实战案例解析

怎样优化node Async/Await异步编程

热心网友 时间:2022-04-23 00:30

一些单机飞飞的代码 翅膀代码
Blinkwing的Darkon 达肯2镇翅膀 4806
Blinkwing的Darkon 1 达肯1翅膀 4807
Blinkwing的Darkon 3 达肯3翅膀 4808
Blinkwing的Dekane 达肯矿洞口翅膀 4809
Blinkwing的Flaris 东广场翅膀 4803
Blinkwing 帕里矿洞入口翅膀 4810
Blinkwing 晨光镇魔法店翅膀 4804
Blinkwing的火龙洞翅膀4811

先进入到服务器文件夹FlyffServer里面,找到world_server这个文件,用记事本打开,然后就会看到这么一段代码:
name=FLYFF
exprate=10.0
fxprate=5.0
droprate=2
questdroprate=2

name是服务器里面线程名称,我还是用原来名称FLYFF
exprate 就是经验倍率了,我调为10倍。1级的号进去砍个1级怪就升级了。
fxprate 是飞行经验倍率,我调为5倍
droprate 怪物刷新速度。
questdroprate应该就是怪物掉物品率。我调为2倍

XX代表代码

1.更改等级
.lvl xx
2.刷装备及物品 (各类武器可以调.item XX 1 10 1 10 ,就是双10火属性,第1个1 10 是骰子加的,后面的1 10是火加10,后面的属性1是火,2是水,3是雷,4是风,5是土属性,同理衣服.item xx 1 10就是加10衣服)
.item xx
3.更改职业
.job xx
4.刷怪
刷出怪物1个距离1不主动攻击,想主动攻击就把倒数第2个10改成1,除去1其他数字都不主动攻击,最后已个1是怪物模型大小
.mon XX 1 1 1 1
5.人物属性点(恢复到人物该等级的属性点)
.statreset
6.全部技能学满
.maxskills

作者:请叫我闹闹 2008-10-5 19:33 回复此发言 2回复:一些单机飞飞的代码 常用武器代码
各类武器可以调.item XX 1 10 1 10 ,就是双10火属性,第1个1 10 是骰子加的,后面的1 10是火加10,后面的属性1是火,2是水,3是雷,4是风,5是土属性
75级普通武器:
天籁之音Blue Jade Sword 57
勾魂战斧Exhaust Axe 113
符文幽翼剑Adaptizer 131
藏刺斧Lurknition 140
灵印魔棒Moralemine Stick 209
嗜血拳套Edoren Knuckle 359
魔心法杖Ruofl Staff 309
星尘魔杖Moira Wand 259
触息精弓Hydron Bow 459
飘渺之轮Anakun 409

80级普通武器:
天火刃Zeroth Sword 59
裂地战斧Shakyfin Axe 115
黑炎龙牙剑Zweigazer 132
纤击之斧Avnition 141
圣羽之翼Shinewing Stick 211
死神之触Skellock Knuckle 361
天使法杖Featherwing Staff 311
水灵魔杖Arcadia Wand 261
虔诚之弓Cenatin Bow 461
梦痕Circern 411

110级普通武器:
星灵之剑Shadeving Sword 71
龙飞九天斧Waturan Axe 125
骑士双手斧剑 ??
Piecenition(骑士双手斧头) 22366
圣心魔棒Shait Stick 221
苍茫金印拳套Knighteel Knuckle 371
魔炎鬼莲Elfyren Staff 321
末日魔杖Daris Wand 271
安抚之吻Brouton Bow 471
觉醒的秘密Enaphoon 421

120级普通武器:
焚城之焰Hotter Sword 73
开天辟地斧Lichiky Axe 127
骑士双手斧剑 ??
Lasternition(骑士双手斧头) 22367
伽蓝魔棒Garlain Stick 223
魔皇轰天拳套Lordorbl Knuckle 373
圣裁的光芒Fosharpen Staff 323
灭世魔杖Lorai Wand 273
盘龙Sevoy Bow 473
恐怖之源Coroner 423

75紫色武器
悠久之剑Ultimate Historic Sword @ 22369
悠久之斧Ultimate Historic Axe @ 22379
悠久巨剑Ultimate Historic Big Sword @ 22374
悠久双手斧Ultimate Historic Ambidextrous Axe @ 22384
悠久魔棒Ultimate Historic Stick @ 22394
悠久拳套Ultimate Historic Knuckle @ 22389
悠久法杖Ultimate Historic Staff @ 22414
悠久魔杖Ultimate Historic Wand @ 22409
悠久之弓Ultimate Historic Bow @ 22399
悠久飞轮Ultimate Historic Yo-Yo @ 22404

90紫色武器
天使之剑Ultimate Angel Sword @ 22370
天使之斧Ultimate Angel Axe @ 22380
天使巨剑Ultimate Angel Big Sword @ 22375
天使双手斧Ultimate Angel Two-Handed Axe @ 22385
天使魔棒Ultimate Angel Stick @ 22395
天使拳套Ultimate Angel Glove @ 22390
天使法杖Ultimate Angel Staff @ 22415
天使魔杖Ultimate Angel Wand @ 22410
天使之弓Ultimate Angel Bow @ 22400
天使飞轮Ultimate Angel Yo-Yo @ 22405

105紫色武器
传奇之剑Ultimate Legendary Golden Sword @ 22371
传奇之斧Ultimate Legendary Golden Axe @ 22381
传奇巨剑Ultimate Legendary Golden Big Sword @ 22376
传奇双手斧Ultimate Legendary Big Golden Axe @ 22386
传奇魔棒Ultimate Legendary Golden Stick @ 22396
传奇拳套Ultimate Legendary Golden Gloves @ 22391
传奇法杖Ultimate Legendary Golden Staff @ 22416
传奇魔杖Ultimate Legendary Golden Wand @ 22411
传奇之弓Ultimate Legendary Golden Bow @ 22401
传奇飞轮Ultimate Legendary Golden Yo-Yo @ 22406

120
血腥之剑Ultimate Bloody Sword @ 22372
血腥之斧Ultimate Bloody Axe @ 22382
血腥巨剑Ultimate Bloody Slayer @ 22377
血腥双手斧Ultimate Bloody Two-hand Axe @ 22387
血腥魔棒Ultimate Bloody Stick @ 22397
血腥拳套Ultimate Bloody Knuckle @ 22392
血腥法杖Ultimate Bloody Staff @ 22417
血腥魔杖Ultimate Bloody Wand @ 22412
血腥之弓Ultimate Bloody Bow @ 22402
血腥飞轮Ultimate Bloody Yo-Yo @ 22407 作者:请叫我闹闹 2008-10-5 19:34 回复此发言 3回复:一些单机飞飞的代码 常用盾牌代码
盾牌代码:
Toeffin Shield(105级盾牌) 10297
Catepo Shield(113级盾牌) 10298

特效盾牌:
Light Shield(7级精铜战盾) 7000
Battle Shield(11级战争之盾) 7001
Fury Shield(23级复仇盾) 7002
Heavy Shield(33级巨灵盾) 7003
Avalon Shield(45级圣地盾) 7004
Ancient Shield(57级远古盾) 7005
Shield of Ivillnes(75级样子的特效盾) 26247 作者:请叫我闹闹 2008-10-5 19:34 回复此发言 4回复:一些单机飞飞的代码 职业代码
0 - Vagrant (初新者)
1 - Mercenary(战士)
2 - Acrobat(弓箭手)
3 - Assist(圣职者)
4 - Magician(法师)
5 - Puppeteer
6 - Knight(骑士)
7 - Blade(刀锋)
8 - Jester(暗杀)
9 - Ranger(游侠)
10 - Ringmaster(守护)
11 - Billposter(暴力)
12 - Psykeeper(精神)
13 - Elementor(元素)
14 - GateKeeper
15 - Doppler
16 - Knight[m](骑士M)
17 - Blade[m](刀锋M)
18 - Jester[m](暗杀M)
19 - Ranger[m]游侠M)
20 - Ringmaster[m](守护M)
21 - Billposter[m](暴力M)
22 - Psykeeper[m](精神M)
23 - Elementor[m](元素M)
24 - Knight[H](骑士H)
25 - Blade[H](刀锋H)
26 - Jester[H](暗杀H)
27 - Ranger[H](游侠H)
28 - Ringmaster[H](守护H)
29 - Billposter[H](暴力H)
30 - Psykeeper[H](精神H)
31 - Elementor[H](元素H) 作者:请叫我闹闹 2008-10-5 19:35 回复此发言 5回复:一些单机飞飞的代码 飞行器代码
飞剑.item 30126
1摩托车.item 30118
2摩托车.item 30119
老虎.item 30120
云.item 30122
龙头.item 30127
飞毯.item 30129
雪橇.item 30124 作者:请叫我闹闹 2008-10-5 19:36 回复此发言 6回复:一些单机飞飞的代码 宠物代码
宠物要先用单的代码然后在用从蛋直接付出宠物的东西的代码,有好几种宠物加不同属性
.raisepet 宠物升级
21029 蛋
21036 从蛋直接付出宠物的东西
21032 10分钟宠物不HP不掉
21030 是宠物降级
21034 是给宠物增加生命的
21037 是宠物食品 作者:请叫我闹闹 2008-10-5 19:36 回复此发言 7回复:一些单机飞飞的代码 物品
物品里都可以.item xx 99 (把数量改为99个)
速度卷轴10432 加快移动速度
粉红蛋糕26324 加FP
烟花2904-2908 烟火效果 爱心礼花10222
心曲奇26402 加HP
绿色蛋糕26323 加MP
爱神的翅膀6319 人物翅膀特效 作者:请叫我闹闹 2008-10-5 19:36 回复此发言 8回复:一些单机飞飞的代码 隐藏地图
直接复制代到对话栏码敲回车
传送雪地通行证代码 .item 26530
.teleworld 1 7000 150 3400 出来的命令
.teleworld 200 1000 100 900 帕里密殿
.teleworld 201 886 85 772 达肯密殿
.teleworld 201 1246 85 789 达肯密殿2阶
.teleworld 201 1300 85 647 达肯密殿3阶
.teleworld 201 1480 85 711 达肯密殿4阶
.teleworld 201 1747 85 800 达肯密殿5阶
.teleworld 201 2027 80 1053 达肯密殿最终阶
.teleworld 203 668 88 888 红龙地图

热心网友 时间:2022-04-23 01:48

【首饰代码】
和装备武器一样使用“.item XX 1 20”首饰最高为+20。 2727-----流星+3 2726-----流星+2
2725-----流星+1
2724-----神异+3
2723-----神异+2
2722-----神异+1
2721-----神力+3
2720-----神力+2
2719-----神力+1
2718-----神圣守护项链+3 2717-----神圣守护项链+2
2716-----神圣守护项链+1
2715-----魔力项链+3
2714-----魔力项链+2
2713-----魔力项链+1
2712-----血脉+3
2711-----血脉+2
2710-----血脉+1
2709-----虚幻+3
2708-----虚幻+2
2707-----虚幻+1
2706-----耳环+3
2705-----耳环+2
2704-----耳环+1
2703-----战神+3
2702-----战神+2
2701-----战神+1 10297-----105盾
26468-----白银
26469-----金刚
力量戒指 26464
智力戒指 26467
*戒指 26465
敏捷戒指 26466

魔力之源 26471
活力之源 26472
女神项链 26470
这个就是波波酷的新婚新郎套装(男)
16612
16613
16614
16615 .item 4706 获得一个龙纹披风 4706是龙纹披风代码其它披风没找到 这点就是我所能获得的了其他的不好意思啊老大!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
赵玉平名家论坛 赵玉平人物经历 杭州市汽车西站 现在能提前几天售票啊? 请问杭州西站汽车票可以提前几天买? 杭州汽车西站在节假日的时候需要提前买票的吗 散步有助于减肥吗 魑瑟忝箜莫尘读什么 端午送什么 端午节家里要摆放什么东西 龙舟是如何制作的? 什么是闹闹和飞飞 网线的水晶头怎么接 武汉早上公交什么时候开始? 电脑水晶头插座怎么连接法? 常营地铁站有几个出口? 电脑网线水晶头的接法排序是什么? 到万达广场的公交车? 水晶头接法? 萧山到义桥怎么做公交车 连接电脑的水晶头怎样做 武汉火车站公交 北京到万达广场坐几路公交车? 水晶头网线怎么接 去万达 坐几路公交车? 哪几路公交车路过万达广场? 萝卜炖牛肉的做法牛肉怎么做好吃 高清 从中南民族大学哪一站坐哪路公交车到武汉理工大学华夏学院,在哪一站下车?能说的具体点吗?谢谢 经过草房的公交车线路,到草房的公交车怎么坐 从武汉理工大学华夏学院到武昌火车站的公交车费 去径山寺交通攻略(怎么去+限行指南+新增线路) 哈奇小镇是什么 什么是飞飞 平遥古城被誉为“天下第一城”,有何缘故呢? 谁能给我一个魔法哈奇的号,暴暴龙12级以上的,人物12级以上的 关于平遥古城的历史传说,你了解多少? 在哈气小镇怎样喂抱抱龙食物 请问,平遥古城是怎样的一个历史古城?它是在哪个朝代建立的? 新飞飞这游戏怎样,能玩吗 平遥古城有什么特色? 天天酷跑舞狮闹闹配什么宠物 介绍一下平遥 新天堂2 和 新飞飞 有没有单机版? 平遥古城是中国保存最好的古城吗? 哈气小镇找老师 平遥是一个古城,为什么会被列入世界文化遗产名录? 新飞飞聊天记录删除 新飞飞与旧飞飞哪个更好玩? 哈奇小镇 著名的平遥古城在哪座城市?平遥古城值得一去吗? 平遥古城民居的特点是什么?